public interface Asset extends OsidObject, Aggregateable, Sourceable
An Asset
represents some digital content. Example assets
might be a text document, an image, or a movie. The content data, and
metadata related directly to the content format and quality, is accessed
through AssetContent. Assets
, like all OsidObjects,
include a type a record to qualify the Asset
and
include additional data. The division between the Asset
Type
and AssetContent
is to separate data
describing the asset from data describing the format of the contents,
allowing a consumer to select among multiple formats, sizes or levels of
fidelity.
An example is a photograph of the Bay Bridge. The content may deliver
a JPEG in multiple resolutions where the AssetContent
may
also desribe size or compression factor for each one. The content may also
include an uncompressed TIFF version. The Asset
Type
may be "photograph" indicating that the photo itself is the asset
managed in this repository.
Since an Asset may have multiple AssetContent
structures, the decision of how many things to stuff inside a single asset
comes down to if the content is actually a different format, or size, or
quality, falling under the same creator, copyright, publisher and
distribution rights as the original. This may, in some cases, provide a
means to implement some accessibility, it doesn't handle the case where,
to meet an accessibility requirement, one asset needs to be substituted
for another. The Repository OSID manages this aspect outside the scope of
the core Asset
definition.
Assets
map to AssetSubjects.
AssetSubjects
are OsidObjects
that capture a
subject matter. In the above example, an AssetSubject
may
be defined for the Bay Bridge and include data describing the bridge. The
single subject can map to multiple assets depicting the bridge providing a
single entry for a search and a single place to describe a bridge.
Bridges, as physical items, may also be described using the Resource OSID
in which case the use of the AssetSubject
acts as a cover
for the underlying Resource
to assist repository-only
consumers.
The Asset
definition includes some basic copyright and
related licensing information to assist in finding free-to-use content, or
to convey the distribution restrictions that may be placed on the asset.
Generally, if no data is available it is to be assumed that all rights are
reserved.
A publisher is applicable if the content of this Asset
has been published. Not all Assets
in this
Repository
may have a published status and such a status may
effect the applicability of copyright law. To trace the source of an
Asset,
both a provider and source are defined. The provider
indicates where this repository acquired the asset and the source
indicates the original provider or copyright owner. In the case of a
published asset, the source is the publisher.
Assets
also define methods to facilitate searches over
time and space as it relates to the subject matter. This may at times be
redundant with the AssetSubject.
In the case of the Bay
Bridge photograph, the temporal coverage may include 1936, when it opened,
and/or indicate when the photo was taken to capture a current event of the
bridge. The decision largeley depends on what desired effect is from a
search. The spatial coverage may describe the gps coordinates of the
bridge or describe the spatial area encompassed in the view. In either
case, a "photograph" type may unambiguously defined methods to describe
the exact time the photograph was taken and the location of the
photographer.
The core Asset defines methods to perform general searches and
construct bibliographic entries without knowledge of a particular
Asset
or AssetContent
record Type.
Modifier and Type | Method and Description |
---|---|
boolean |
canDistributeAlterations()
Tests if there are any license restrictions on this asset that
restrict the distribution, re-publication or public display of any
alterations or modifications to this asset, commercial or otherwise,
for any purpose.
|
boolean |
canDistributeCompositions()
Tests if there are any license restrictions on this asset that
restrict the distribution, re-publication or public display of this
asset as an inclusion within other content or composition, commercial
or otherwise, for any purpose, including restrictions upon the
distribution or license of the resulting composition.
|
boolean |
canDistributeVerbatim()
Tests if there are any license restrictions on this asset that
restrict the distribution, re-publication or public display of this
asset, commercial or otherwise, without modification, alteration, or
inclusion in other works.
|
IdList |
getAssetContentIds()
Gets the content
Ids of this asset. |
AssetContentList |
getAssetContents()
Gets the content of this asset.
|
AssetRecord |
getAssetRecord(Type assetRecordType)
Gets the asset record corresponding to the given
Asset
record Type. |
Composition |
getComposition()
Gets the Composition corresponding to this asset.
|
Id |
getCompositionId()
Gets the
Composition Id corresponding to
this asset. |
DisplayText |
getCopyright()
Gets the copyright statement and of this asset which identifies the
current copyright holder.
|
java.lang.String |
getCopyrightRegistration()
Gets the copyright registration information for this asset.
|
DateTime |
getCreatedDate()
Gets the created date of this asset, which is generally not related to
when the object representing the asset was created.
|
DisplayText |
getPrincipalCreditString()
Gets the credits of the principal people involved in the production of
this asset as a display string.
|
IdList |
getProviderLinkIds()
Gets the resource
Ids representing the source of this
asset in order from the most recent provider to the originating
source. |
ResourceList |
getProviderLinks()
Gets the
Resources representing the source of this
asset in order from the most recent provider to the originating
source. |
DateTime |
getPublishedDate()
Gets the published date of this asset.
|
Resource |
getSource()
Gets the
Resource of the source of this asset. |
Id |
getSourceId()
Gets the
Resource Id of the source of this asset. |
DisplayText |
getTitle()
Gets the proper title of this asset.
|
boolean |
isComposition()
Tetss if this asset is a representation of a composition of assets.
|
boolean |
isCopyrightStatusKnown()
Tests if the copyright status is known.
|
boolean |
isPublicDomain()
Tests if this asset is in the public domain.
|
boolean |
isPublished()
Tests if this asset has been published.
|
getDescription, getDisplayName, getGenusType, isOfGenusType
getId, isCurrent
getRecordTypes, hasRecordType
getProperties, getPropertiesByRecordType
getBranding, getBrandingIds, getLicense, getProvider, getProviderId
DisplayText getTitle()
mandatory
- This method must be implemented. boolean isCopyrightStatusKnown()
true
if the copyright status of this asset is
known, false
otherwise. If false,
isPublicDomain(),
canDistributeVerbatim(),
canDistributeAlterations() and canDistributeCompositions()
may also be false.
mandatory
- This method must be implemented. boolean isPublicDomain()
true
if this asset is in the public domain,
false
otherwise. If true,
canDistributeVerbatim(), canDistributeAlterations() and
canDistributeCompositions()
must also be true.
IllegalStateException
- isCopyrightStatusKnown()
is false
mandatory
- This method must be implemented. DisplayText getCopyright()
IllegalStateException
- isCopyrightStatusKnown()
is false
mandatory
- This method must be implemented. java.lang.String getCopyrightRegistration()
IllegalStateException
- isCopyrightStatusKnown()
is false
mandatory
- This method must be implemented. boolean canDistributeVerbatim()
true
if the asset can be distributed verbatim,
false
otherwise.IllegalStateException
- isCopyrightStatusKnown()
is false
mandatory
- This method must be implemented. boolean canDistributeAlterations()
true
if the asset can be modified, false
otherwise. If true,
canDistributeVerbatim()
must also be true.
IllegalStateException
- isCopyrightStatusKnown()
is false
mandatory
- This method must be implemented. boolean canDistributeCompositions()
true
if the asset can be part of a larger
composition false
otherwise. If true,
canDistributeVerbatim()
must also be
true.
IllegalStateException
- isCopyrightStatusKnown()
is false
mandatory
- This method must be implemented. Id getSourceId()
Resource Id
of the source of this asset. The
source is the original owner of the copyright of this asset and may
differ from the creator of this asset. The source for a published book
written by Margaret Mitchell would be Macmillan. The source for an
unpublished painting by Arthur Goodwin would be Arthur Goodwin.
An Asset
is Sourceable
and also contains
a provider identity. The provider is the entity that makes this
digital asset available in this repository but may or may not be the
publisher of the contents depicted in the asset. For example, a map
published by Ticknor and Fields in 1848 may have a provider of Library
of Congress and a source of Ticknor and Fields. If copied from a
repository at Middlebury College, the provider would be Middlebury
College and a source of Ticknor and Fields. Id
mandatory
- This method must be implemented. Resource getSource()
Resource
of the source of this asset. The
source is the original owner of the copyright of this asset and may
differ from the creator of this asset. The source for a published book
written by Margaret Mitchell would be Macmillan. The source for an
unpublished painting by Arthur Goodwin would be Arthur Goodwin.mandatory
- This method must be implemented. IdList getProviderLinkIds()
Ids
representing the source of this
asset in order from the most recent provider to the originating
source. Ids
mandatory
- This method must be implemented. ResourceList getProviderLinks() throws OperationFailedException
Resources
representing the source of this
asset in order from the most recent provider to the originating
source.OperationFailedException
- unable to complete requestmandatory
- This method must be implemented. DateTime getCreatedDate()
mandatory
- This method must be implemented. boolean isPublished()
false
if
unpublished or its published status is not knownmandatory
- This method must be implemented. DateTime getPublishedDate()
IllegalStateException
- isPublished()
is
false
mandatory
- This method must be implemented. DisplayText getPrincipalCreditString()
mandatory
- This method must be implemented. IdList getAssetContentIds()
Ids
of this asset. Ids
mandatory
- This method must be implemented. AssetContentList getAssetContents() throws OperationFailedException
OperationFailedException
- unable to complete requestmandatory
- This method must be implemented. boolean isComposition()
false
otherwisemandatory
- This method must be implemented. Id getCompositionId()
Composition
Id
corresponding to
this asset. Id
IllegalStateException
- isComposition()
is false
mandatory
- This method must be implemented. Composition getComposition() throws OperationFailedException
IllegalStateException
- isComposition()
is false
OperationFailedException
- unable to complete requestmandatory
- This method must be implemented. AssetRecord getAssetRecord(Type assetRecordType) throws OperationFailedException
Asset
record Type.
This method is used to retrieve an object
implementing the requested record. The assetRecordType
may be the Type
returned in getRecordTypes()
or any of its parents in a Type
hierarchy where
hasRecordType(assetRecordType)
is true
.assetRecordType
- an asset record typeNullArgumentException
- assetRecordType
is null
OperationFailedException
- unable to complete requestUnsupportedException
-
hasRecordType(assetRecordType)
is false
mandatory
- This method must be implemented.