OSID Logo
OSID Specifications
repository package
Version 3.0.0
Release Candidate Preview
Interfaceosid.repository.Asset
Implementsosid.OsidObject
osid.Aggregateable
osid.Sourceable
Description

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.

MethodgetTitle
Description

Gets the proper title of this asset. This may be the same as the display name or the display name may be used for a less formal label.

Returnosid.locale.DisplayTextthe title of this asset
CompliancemandatoryThis method must be implemented.
MethodisCopyrightStatusKnown
Description

Tests if the copyright status is known.

Returnboolean true if the copyright status of this asset is known, false otherwise. If false, isPublicDomain(), canDistributeVerbatim(), canDistributeAlterations() and canDistributeCompositions() may also be false.
CompliancemandatoryThis method must be implemented.
MethodisPublicDomain
Description

Tests if this asset is in the public domain. An asset is in the public domain if copyright is not applicable, the copyright has expired, or the copyright owner has expressly relinquished the copyright.

Returnboolean true if this asset is in the public domain, false otherwise. If true, canDistributeVerbatim(), canDistributeAlterations() and canDistributeCompositions() must also be true.
ErrorsILLEGAL_STATE isCopyrightStatusKnown() is false
CompliancemandatoryThis method must be implemented.
MethodgetCopyright
Description

Gets the copyright statement and of this asset which identifies the current copyright holder. For an asset in the public domain, this method may return the original copyright statement although it may be no longer valid.

Returnosid.locale.DisplayTextthe copyright statement or an empty string if none available. An empty string does not imply the asset is not protected by copyright.
ErrorsILLEGAL_STATE isCopyrightStatusKnown() is false
CompliancemandatoryThis method must be implemented.
MethodgetCopyrightRegistration
Description

Gets the copyright registration information for this asset.

Returnstringthe copyright registration. An empty string means the registration status isn't known.
ErrorsILLEGAL_STATE isCopyrightStatusKnown() is false
CompliancemandatoryThis method must be implemented.
MethodcanDistributeVerbatim
Description

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. This method is intended to offer consumers a means of filtering out search results that restrict distribution for any purpose. The scope of this method does not include licensing that describes warranty disclaimers or attribution requirements. This method is intended for informational purposes only and does not replace or override the terms specified in a license agreement which may specify exceptions or additional restrictions.

Returnboolean true if the asset can be distributed verbatim, false otherwise.
ErrorsILLEGAL_STATE isCopyrightStatusKnown() is false
CompliancemandatoryThis method must be implemented.
MethodcanDistributeAlterations
Description

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. This method is intended to offer consumers a means of filtering out search results that restrict the distribution or public display of any modification or alteration of the content or its metadata of any kind, including editing, translation, resampling, resizing and cropping. The scope of this method does not include licensing that describes warranty disclaimers or attribution requirements. This method is intended for informational purposes only and does not replace or override the terms specified in a license agreement which may specify exceptions or additional restrictions.

Returnboolean true if the asset can be modified, false otherwise. If true, canDistributeVerbatim() must also be true.
ErrorsILLEGAL_STATE isCopyrightStatusKnown() is false
CompliancemandatoryThis method must be implemented.
MethodcanDistributeCompositions
Description

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. This method is intended to offer consumers a means of filtering out search results that restrict the use of this asset within compositions. The scope of this method does not include licensing that describes warranty disclaimers or attribution requirements. This method is intended for informational purposes only and does not replace or override the terms specified in a license agreement which may specify exceptions or additional restrictions.

Returnboolean true if the asset can be part of a larger composition false otherwise. If true, canDistributeVerbatim() must also be true.
ErrorsILLEGAL_STATE isCopyrightStatusKnown() is false
CompliancemandatoryThis method must be implemented.
MethodgetSourceId
Description

Gets the 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.

Returnosid.id.Idthe source Id
CompliancemandatoryThis method must be implemented.
MethodgetSource
Description

Gets the 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.

Returnosid.resource.Resourcethe source
CompliancemandatoryThis method must be implemented.
MethodgetProviderLinkIds
Description

Gets the resource Ids representing the source of this asset in order from the most recent provider to the originating source.

Returnosid.id.IdListthe provider Ids
CompliancemandatoryThis method must be implemented.
MethodgetProviderLinks
Description

Gets the Resources representing the source of this asset in order from the most recent provider to the originating source.

Returnosid.resource.ResourceListthe provider chain
ErrorsOPERATION_FAILEDunable to complete request
CompliancemandatoryThis method must be implemented.
MethodgetCreatedDate
Description

Gets the created date of this asset, which is generally not related to when the object representing the asset was created. The date returned may indicate that not much is known.

Returnosid.calendaring.DateTimethe created date
CompliancemandatoryThis method must be implemented.
MethodisPublished
Description

Tests if this asset has been published. Not all assets viewable in this repository may have been published. The source of a published asset indicates the publisher.

Returnbooleantrue if this asset has been published, false if unpublished or its published status is not known
CompliancemandatoryThis method must be implemented.
MethodgetPublishedDate
Description

Gets the published date of this asset. Unpublished assets have no published date. A published asset has a date available, however the date returned may indicate that not much is known.

Returnosid.calendaring.DateTimethe published date
ErrorsILLEGAL_STATE isPublished() is false
CompliancemandatoryThis method must be implemented.
MethodgetPrincipalCreditString
Description

Gets the credits of the principal people involved in the production of this asset as a display string.

Returnosid.locale.DisplayTextthe principal credits
CompliancemandatoryThis method must be implemented.
MethodgetAssetContentIds
Description

Gets the content Ids of this asset.

Returnosid.id.IdListthe asset content Ids
CompliancemandatoryThis method must be implemented.
MethodgetAssetContents
Description

Gets the content of this asset.

Returnosid.repository.AssetContentListthe asset contents
ErrorsOPERATION_FAILEDunable to complete request
CompliancemandatoryThis method must be implemented.
MethodisComposition
Description

Tetss if this asset is a representation of a composition of assets.

Returnbooleantrue if this asset is a composition, false otherwise
CompliancemandatoryThis method must be implemented.
MethodgetCompositionId
Description

Gets the Composition Id corresponding to this asset.

Returnosid.id.Idthe composiiton Id
ErrorsILLEGAL_STATE isComposition() is false
CompliancemandatoryThis method must be implemented.
MethodgetComposition
Description

Gets the Composition corresponding to this asset.

Returnosid.repository.Compositionthe composiiton
ErrorsILLEGAL_STATE isComposition() is false
OPERATION_FAILEDunable to complete request
CompliancemandatoryThis method must be implemented.
MethodgetAssetRecord
Description

Gets the asset record corresponding to the given 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 .

Parametersosid.type.TypeassetRecordTypean asset record type
Returnosid.repository.records.AssetRecordthe asset record
ErrorsNULL_ARGUMENT assetRecordType is null
OPERATION_FAILEDunable to complete request
UNSUPPORTED hasRecordType(assetRecordType) is false
CompliancemandatoryThis method must be implemented.