<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">I am in favor of allowing Metadata to
be attached to any node.<br>
<br>
I am suggesting that ClassicVRML encoding be enlarged to have an
explicit Scene node (for V4+) and implied when dealing with V3.x
or less. Metadata could be a child of Scene like it is a child of
any other node. <br>
<br>
I see the advantages as:<br>
1) It makes Scene explicit like all other nodes<br>
2) Scene has Metadata like all other nodes<br>
3) It does not require WorldInfo to contain the metadata at the
root level.<br>
<br>
<br>
Leonard Daly<br>
<br>
<br>
</div>
<blockquote cite="mid:56A0369C.4090000@nps.edu" type="cite">The X3D
working group is taking a close look at what nodes are allowed to
be root nodes in a scene graph.
<br>
<br>
This makes it useful to look at whether diverse metadata ought to
be allowed at the root of an X3D scene. - more than just
WorldInfo.
<br>
<br>
Wondering if this might e an X3D architecture design issue that
has further use cases, such as
<br>
- Re-usable metadata libraries for CAD, humans, medical, 3D
printing, etc.
<br>
- Modeling and simulation
<br>
- HTML microformats/metadata, perhaps
<br>
- Database and Semantic Web queries
<br>
- Other potential application areas.
<br>
<br>
Please advise if you know of any uses of metadata for entire or
multiple scenes, that will help.
<br>
<br>
================================
<br>
<br>
Preliminary technical analysis follows. All comments and
reactions welcome.
<br>
<br>
Typically, a WorldInfo node is used to provide information about a
scene.
<br>
<br>
GeoMetaData can also be used to provide metadata information about
other geospatial nodes in a scene.
<br>
<br>
GeoOrigin has some similarities since it is not rendered but is
typically shared among multiple geospatial nodes in a scene - and
so consistency is particularly important in this case. Because
GeoOrigin cannot be placed at the root of a scene, it is difficult
to share among multiple scenes, which is commonly needed when
building a large terrain set.
<br>
<br>
The various typed Metadata* nodes in the Core component are
typically used to annotate another node in the 'metadata' field.
MetadataSet collections can collect large amounts of metadata in
one place.
<br>
<br>
Conceivably authors may want to have scenes that contain complex
metadata structures, or even metadata libraries, that can be
easily re-used by other scenes via Inline/IMPORT/EXPORT.
<br>
<br>
Currently only WorldInfo and GeoMetadata would appear to be legal
root nodes, because each implements the X3DInfoNode interface
which in turn implements X3DChildNode, which in turn is an allowed
root node.
<br>
<br>
Related point. As a holdover from the original VRML97 design, the
root of a scene itself is defined a bit inconsistently expressed
in the various encodings.
<br>
- implicit, not referencable in VRML97 or ClassicVRML encoding
<br>
- explicit, referencable as Scene element in .x3d XML encoding,
compressed binary encoding, draft JSON encoding and when contained
within HTML document
<br>
<br>
The recent work on the JSON encoding mapped the VRML/X3D document
model to a strict object model, the JavaScript _Object_ notation.
Close scrutiny showed that the root (as embodied by Scene) is
directly similar to a Grouping node with children. This is
identical to the case when an Inline brings another scene graph
into a parent scene - it acts as a type of remotely-loaded
Grouping node.
<br>
<br>
NPS has some good experience with metadata collections via the
SAVAGE Modeling and Analysis Language (SMAL), in which we collect
many kinds of metadata in a metadata template that allows a
simulation tool to load an X3D model and utilize modifiable
metadata regarding the scene's utilization in a larger model.
<br>
<br>
In order to pass validation, the SMAL design pattern for
containing metadata in a scene is
<br>
<br>
X3D/Scene/WorldInfo/MetadataSet/[lots of structured metadata]
<br>
<br>
Not so bad, but multiple WorldInfo peers might be present. That
means the root of the scene (e.g. Scene element) does not have a
single 'metadata' field, thus making it different that other
grouping nodes.
<br>
<br>
Pretty involved! The X3D Working Group will continue to consider
potential specification improvements on this issue, all feedback
remains welcome.
<br>
<br>
References:
<br>
<br>
4.3.2 Root nodes
<br>
<a class="moz-txt-link-freetext" href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Rootnodes">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#Rootnodes</a>
<br>
<br>
X3D Core Component (WorldInfo, Metadata* nodes)
<br>
<a class="moz-txt-link-freetext" href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/core.html">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/core.html</a>
<br>
<br>
X3D Geospatial Component (GeoMetadataSet, GeoOrigin)
<br>
<a class="moz-txt-link-freetext" href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geodata.html">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geodata.html</a>
<br>
<br>
X3D for Web Authors: online chapter 14, Metadata Information
<br>
<a class="moz-txt-link-freetext" href="http://x3dgraphics.com/chapters/Chapter15-MetadataInformation.html">http://x3dgraphics.com/chapters/Chapter15-MetadataInformation.html</a>
<br>
<br>
SAVAGE Modeling and Analysis Language (SMAL)
<br>
<a class="moz-txt-link-freetext" href="https://savage.nps.edu/Savage/Tools/SMAL/SMAL.html">https://savage.nps.edu/Savage/Tools/SMAL/SMAL.html</a>
<br>
<br>
all the best, Don
<br>
</blockquote>
<br>
<br>
<div class="moz-signature">-- <br>
<font class="tahoma,arial,helvetica san serif" color="#333366">
<font size="+1"><b>Leonard Daly</b></font><br>
X3D Co-Chair<br>
Cloud Consultant<br>
President, Daly Realism - <i>Creating the Future</i>
</font></div>
</body>
</html>