Metadata Information

Table of Contents

1. What this chapter covers
2. Concepts
2.1. Purpose and common functionality
2.2. Comments
2.3. Abstract node types
3. Node descriptions
3.1. WorldInfo node
3.2. MetadataDouble node
3.3. MetadataFloat node
3.4. MetadataInteger node
3.5. MetadataString node
3.6. MetadataSet node
4. Summary
4.1. Key ideas
4.2. Related nodes and concepts
 

Metadata defined: in general, "data about data;" functionally, "structured data about data." Metadata includes data associated with either an information system or an information object for purposes of description, administration, legal requirements, technical functionality, use and usage, and preservation.

 
 --Dublin Core Metadata Initiative (DCMI)

Metadata is the use of data to explain other data. In other words, the information provided in a document might have further descriptions that explain the origin or context of the information itself.

An X3D metadata node can be used to provide such information about any node in an X3D scene graph, and is placed as a child of the node that it describes. Metadata nodes are persistent, meaning that their values remain available and accessible after loading. Metadata nodes do not affect the visible rendering of a scene.

Other mechanisms to place information in a scene include meta tags, the WorldInfo node, and comments.

X3D documents are a growing and important part of the World Wide Web. Metadata strategies become important when X3D scenes might get reused, repurposed or improved. Since authoring good content takes time, and since one X3D motto states "content is king," it is often worth documenting the relevant resources that are used to construct the many details presented in an X3D scene.

There are four general mechanisms for adding metadata information in an X3D scene, listed as follows.

Meta tags are discussed in Chapter 1, Technical Introduction, section 1.2.5.5.

The metadata nodes include MetadataDouble, MetadataFloat, MetadataInteger, MetadataString and MetadataSet. Each node can contain an array of named values, along with an optional reference that governs naming and semantic conventions. In each case, the data value is strongly typed to match the name of the node.

The WorldInfo node was defined in the original Virtual Reality Modeling Language (VRML97) specification and was the only way to persistently save metadata in such scenes. Because each WorldInfo node was able to include an array of arbitrary string values, it might seem that any type of metadata information might be included. However, without internal structure, and without the ability to read such strings at run time, WorldInfo has limited practical use from a metadata standpoint and is infrequently used.

Comment syntax and considerations appear in the next section. Abstract node type definitions and detailed node definitions follow.

The WorldInfo node can provide a title for a scene as well as a simple string array providing arbitrary information. WorldInfo implements the X3DInfoObject type.

WorldInfo title information is helpful. A good authoring practice is to put a WorldInfo node with title information near the top of a scene so that it is easily found by an author.

The WorldInfo node is in the Interchange Profile. The Interchange Profile provides full support for all fields. The WorldInfo node has the fields defined in Table 15.3. Node syntax is shown in Table 15.4.

WorldInfo nodes can appear at the top level of the scene graph, and as a child under a grouping node.

WorldInfo is not an X3DMetadataObject and cannot appear as a child of other nodes where only metadata nodes are allowed.

The MetadataString node holds a value array of string values. MetadataString implements the X3DMetadataObject type.

As discussed above, the Metadata nodes allow the storage of node-specific information in the scene graph. While the WorldInfo node does support the general issue of a "storage" node, it's fields are not accessible outside of the node, and WorldInfo does not support non-String datatypes. The Metadata nodes do support datatype specific information that is accessible in a structured manner.

The MetadataString node holds a value array string of information. It is possible to use this node to hold all information as a string, but using the other datatype-specific nodes is generally recommended for non-string data.

MetadataString is in the Core Profile. The node has the fields defined in Table 15.11. Node syntax is shown in Table 15.12.

The MetadataSet node holds zero or more metadata nodes. This allows more complex structures than the simple parnet-child relationship available with the basic metadata nodes.

MetadataDouble implements the X3DMetadataObject type.

MetadataDouble is in the Core Profile. The node has the fields defined in Table 15.13. Node syntax is shown in Table 15.14.