Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For example, if you have a "content" Bitstream and want to find out if
it has a thumbnail image, you would call

...

getBitstreamsRelatedToSelf("THUMBNAIL")

...

, and check if the array
returned has any elements.

Looking for LOM metadata is a more involved application: First you'd
have to get any related Bitstreams in the

...

METADATA

...

bundle, and then
search through those for one of the appropriate type (perhaps indicated by
its

...

BitstreamFormat

...

).

Establishing a relationship is easy. In code that creates a Bitstream
by deriving it from another Bitstream, like a media filter plugin,
it's obvious: set the new Bitstream to be related from the one from
which it was derived, and

...

setRelationshipType(REL_TYPE_DERIVED).

When ingesting a package (SIP) that includes an encoding of relationships
between Bitstreams (e.g. METS), the ingester code should also
make the appropriate calls to

...

setRelatedBitstream()

and

...

setRelationshipType()

...

to mark metadata, derived, and alternate Bitstreams.

The implementation is straightforward. It can be done by adding two
columns to the Bitstream table; one containing a

...

bitstream_id

...

key
(or

...

NULL

...

) to the related Bitstream, and another with an integer for
the relationship type.

...

I think we need set relationships analogous to the METS fileGrp or div elements. Right now DSpace has the concept of bundles, but those bundles are used to separate derived bitstreams from original/content bitstreams. This means the user has no way of selecting what bundle to place a bitstream in, nor can they create bundles. Everything the user adds to an item is placed in the

...

original/content

...

bundle.

If container relationships are added at the bitstream level there are several possible uses. The first use that comes to mind is relating scanned pages together into chapters, sections, or other groupings. Another possibility is relating together different types of pictures for one physical artifact. There are various use cases, and most depend on the type of artifact being stored.

...

  • Follow Jim's suggestion about Code Block N-N relationships
  • Make these relationships interact with bundles; this would allow administrative and technical metadata to be applied to a bundle of bitstreams.
  • Make bundles recursive, so that bundles can contain other bundles.
  • Enable the user to create and modify bundles.

...