Constructing References to Internal Media Objects

All metadata elements referred to in this document are defined in UW-Madison Digital Library Data Dictionary: Multimedia and Bibliographic Databases. Structural metadata for a single (possibly composite) Media object consists of:

Base-Path
Directory path to all images for the collection
Local-Path
Directory path within the collection or component, separated by (and ending with) forward slash (/)
Object-ID
Unique name for media object
Num-Components
Number of serial components in object
Relative-Size
Relative resolution(s) available for the object; single characters from predefined list, separated by vertical bar (|)
DC.Format
Internet MIME type for the object
Label
Display label associated with the object

Since multiple media objects may be attached to a single record, these data elements need to be grouped together for each media object. With a hierarchical data model such as SGML/XML, this is straightforward:

<media>
	<basePath> ... </basePath>
	<localPath> ... </localPath>
	
	<objectID> ... </objectID>
	<numComponents> ... </numComponents>
	<relativeSize> ... </relativeSize>

	<dc.format> ... </dc.format>
	<label> ... </label>
</media>

For applications with a flatter data model (such as Excel), the data elements need to be concatenated into a single field. The preferred encoding of these elements is:

Local-Path;Object-ID;Num-Components;Relative-Size;DC.Format;Label

It is assumed that the Base-Path is known to the interface application, and does not therefore need to be encoded at the record level.

Let’s say there are JPEG images of three pages of sheet music for “The Jensen Waltz”, available as thumbnails or reference size. Files are stored as:

/db/dlmap/[Collection-ID]/htdocs/data/images/waltz/swedish/thumb/JensWaltz01t.jpg
/db/dlmap/[Collection-ID]/htdocs/data/images/waltz/swedish/thumb/JensWaltz02t.jpg
/db/dlmap/[Collection-ID]/htdocs/data/images/waltz/swedish/thumb/JensWaltz03t.jpg
/db/dlmap/[Collection-ID]/htdocs/data/images/waltz/swedish/reference/JensWaltz01r.jpg
/db/dlmap/[Collection-ID]/htdocs/data/images/waltz/swedish/reference/JensWaltz02r.jpg
/db/dlmap/[Collection-ID]/htdocs/data/images/waltz/swedish/reference/JensWaltz03r.jpg

Data values are:

Base-Path = /db/dlmap/[Collection-ID]/htdocs/data/images/
Local-Path = waltz/swedish/
Object-ID = JensWaltz
Num-Components = 3
Relative-Size = t|r
DC.Format = image/jpeg
Label = Sheet music

This would be encoded as:

waltz/swedish/;JensWaltz;3;t|r;image/jpeg;Sheet music

Now, let’s suppose that there are also two resolutions of a sound file for the waltz, stored as:

/db/dlmap/[Collection-ID]/htdocs/data/sound/waltz/swedish/low/JensWaltzl.ram
/db/dlmap/[Collection-ID]/htdocs/data/sound/waltz/swedish/high/JensWaltzh.ram

Data values are:

Base-Path = /db/dlmap/[Collection-ID]/htdocs/data/sound/
Local-Path = waltz/swedish/
Object-ID = JensWaltz
Num-Components = 1
Relative-Size = l|h
DC.Format = audio/x-pn-realaudio
Label = Performance

This would be encoded as:

waltz/swedish/;JensWaltz;1;l|h;audio/x-pn-realaudio;Performance

Here’s a more explicit view of how the metadata elements are reflected in path and file names:

MediaRef2.0