VRML, URNs and UMEL

Recommended Practice Proposal

This document proposes the use of Uniform Resource Names (URNs) as the general mechanism which the Universal Media Element Library (UMEL) shall use to reference library media elements.

Document URL: http://www.mantiscorp.com/vrml/umel/proposals/urn.html
Authors: Mitra, Chris Marrin, and members of the VRML-UMEL Working Group.
Revised: 06/19/98

Note: This proposal is based on an earlier document that describes the use of URNs in relation to VRML. Authored by Mitra, the original URN work is referenced in the VRML specification and is available at:
http://earth.path.net/mitra/papers/vrml-urn.html. 


Overview

VRML2.0 (ISO/IEC 14772-1:1997) requires that browsers either support or ignore URNs in "url" MFString fields. Conforming browsers are required to ignore URNs if they don't understand what to do with them, and to skip on to the first URL in the field in this case.

URNs are ideal for naming elements of a library independent of their actual location. In fact, this is exactly what URNs were originally designed for, making them ideal for use with the Universal Media Element Library.

URN resolution (how a browser "resolves", or translates, a URN into a file) is the key issue addressed in this UMEL recommended practice proposal. While the Internet Engineering Task Force (IETF) has spent many years attempting to define how URNs should be resolved, an issue which remains outstanding, the lack of a standard solution for URN resolution does not preclude the use of URNs for our purposes. Since "url" fields in VRML are multi-value, unlike those in HTML (which are single-value), and will only resolve to a previously installed library, our use of URNs is not contingent on the network-wide resolution method currently being sought by the IETF.

This document specifies a resolution mechanism to be used when a browser encounters a URN in a multi-value url field.


URN Syntax

URNs used to reference an element in the UMEL will look like this:
urn:vrml:umel:texture/wood/oak001.gif
Where:
 
urn:
Is the defined prefix for all URNs.
vrml:
Specifies that this is the VRML Consortium's namespace (i.e. a place where the VRML Consortium defines the rules on  name allocation).
umel:
Is a string assigned by the VRML Consortium that specifies who is assigning names. In this case, it specifies that the names are being assigned by the Universal Medial Element Library working group. The the VRML Consortium could, for example, also allocate "lw" to Living Worlds defined names (for example Prototypes) or "pharmaceutical" to a working group assigning names to Pharmaceutically related media elements.
texture/wood/oak001.gif
Is an example string assigned by the UMEL working group that is used to reference a specific media element, which is a texture in this case  (note: the exact format of this string is still to be determined by that group).
The naming authority  may also be any domain name registered to the supplier of a  library, meaning,  for example, that a URN could be of the form urn:vrml:sgi.com:toollibrary/0001.jpg  where sgi.com has allocated the name "toollibrary/0001.jpg"


URN Resolution

When a browser tries to resolve a URN, it will attempt to determine where a library is installed,  looking for the file there. In order to do this, the browser must first find configuration information (stored in a platform dependent location, as described in the Platform Specific Bindings section below) for an initial sub-string match. For example, with the URN above the browser is typically looking for a place that all or parts of the library "urn:vrml:umel:" is installed.

When the browser determines the location of the library, it will replace the initial sub-string of the URN with the location of the library, and find the file relative to that location. For instance, if the browser determines that the library "urn:vrml:umel:" is installed at "C:\vrml-libraries\umel\" then it will look for the file above at "C:\vrml-libraries\umel\texture\wood\oak001.gif". If it finds the library is at "http://vrml.org/libs/umel",  it will then retrieve the file from "http://vrml.org/libs/umel/texture/wood/oak001.gif".

Note that on some platforms the character "/" in the URN will need to be replaced with the appropriate directory hierarchy separator character, for example "\" in DOS.

If the file is not found at the location specified,  the browser will then move to the next string in the url field. The next string in the url field  will typically be the location (URL) of the file, although it might also be another URN.
 

Platform Specific Bindings

The following section defines binding information for the most common personal computing platforms.

Windows 95 and Windows NT

Windows 95 / NT configuration information is kept in the registry. Registry entries live under the following key:
  HKEY_LOCAL_MACHINE\VRML\PROTOCOLS\urn
where the key's name is derived from the URN, and the value gives the URL of the installed location of a specific library. This is a semi-colon separated list of alternative locations.

Continuing the example above, the key HKEY_LOCAL_MACHINE\VRML\PROTOCOLS\urn\vrml\umel would have a value "file:///C|/vrml-libraries/umel".

If the library might optionally be found on a CD, then it might also have a value of "file:C|/vrml-libraries/umel;D:"

Unix

In Unix there must exist a file at /etc/urn which contains one line per entry, such as:
 urn:vrml:umel:    file:///usr/local/lib/vrml-libraries/umel
or for multiple entries, with one option available locally via HTTP:
 urn:vrml:umel:    file:///usr/local/lib/vrml-libraries/umel,http://myserver/vrml-libraries/umel
where the part on the right is the initial sub-string being matched, and it is separated by white-space before the comma (and optionally white-space) separated locations of the libraries.

Continuation lines may be separated by white-space, so the above could be written:
 

 urn:vrml:umel:    file:///usr/local/lib/vrml-libraries/umel,

                   http://myserver/vrml-libraries/umel

Macintosh

A file, identical to that for the Unix bindings above, is placed in the System/Preferences folder.

Note:  The Preferences folder itself may need to be creating under System 6.x and earlier if it doesn't already exist since these versions of the Macintosh OS don't inherently support the notion of "Preferences" as System 7.x and greater does.
 

Related Information

The following URN-related information sources may be of use when evaluating this proposal.

Web pages

IETF URN Charter: http://www.ietf.org/html.charters/urn-charter.html

World Wide Web Consortium Addressing: http://www.w3.org/Addressing/Addressing.html
 

RFCs and Internet Drafts

The following Request For Comments (RFC) and Internet Draft documents are available from ftp://ftp.internic.net and various
mirror sites:
 
"A URN Namespace for IETF Documents"
   Filename: draft-ietf-urn-ietf-02.txt

"URN Syntax"
   Filename: draft-ietf-urn-syntax-05.txt

"Functional Requirements for Uniform Resource Names"
   Memo: RFC 1737

"URN Syntax"
   RFC 2141

"Resolution of Uniform Resource Identifiers using the Domain Name System"
  RFC 2168
 

Under Review

The follow issues are currently under review by the VRML-UMEL Working Group:


Summary

URNs are an ideal mechanism for referencing VRML Universal Media Element Library (VRML-UMEL) elements such as textures, sounds and objects. Using URNs in VRML-UMEL does not require the IETF to define a standard resolution method. By following the recommended practice set forth in this document, VRML tool vendors, browser developers and content authors may use URNs to reference UMEL elements today.
 
###