[x3d-public] X3D Semantic Web minutes 16 March: meeting plans, structuring MetadataSet vocabularies in X3D4, preparing for SPARQL queries

Don Brutzman brutzman at nps.edu
Tue Mar 16 10:07:06 PDT 2021


0. All about time....

Attendees: Jakub and Don.  We noted that time zone shifts are making it very confusing, with US now in daylight savings time and Europe shifting during the week of 28 March.

Our experiments with calendar updates did succeed, which is good to know.

Web3D Calendar is maintained (pacific time USA) at

[0.1]	Web3D Calendar
      	https://www.web3d.org/calendar/month

Next meeting: Tuesday 23 March.  Special time: 09-1000 pacific, 17-1800 CET.

After that: Monday 29 March, trying new regular time 09-1000 pacific, 16-1700 CET (probably, to be confirmed, following time zone shift).

Once we got calendar all sorted out for March, we had almost no time left to meet...   :0

In case anyone is not confused yet:

[0.2]	Summer Time in Europe
      	https://en.wikipedia.org/wiki/Summer_time_in_Europe

I can hardly wait until we get busy with the Time ontology...  hopefully "real soon now (RSN)" - hmmm is "RSN" an already-defined term in that ontology?!  8)

---

2. *Web3D Board of Directors Review*.

We discussed goodnesses and gaps for all working groups, including this one.

Summary of recommendations to Web3D Board of Directors:

a. Biggest advantage:  X3D4 stability for 3D graphics, HTML and Web Audio.  We have achieved our biggest technical goals and this enables every single working group to succeed well.

b. Biggest emerging capability: unified metadata strategy for X3D connections in every active domain we have.

c. Biggest need, across all activities: greater outreach, and greater engagement on active goals for each group.

Thus many opportunities are available for anyone to help in these worthy endeavors.

---

3. *X3D Ontology plans*.

We discussed long-term strategies for further disseminating concepts and products from this working group.

Lots of promising possibilities!  We have an ambitious set of goals that are steadily being achieved.

[3.1]	X3D Ontology for Semantic Web
      	https://www.web3d.org/x3d/content/semantics

"The X3D Ontology for Semantic Web provides terms of reference for semantic query of X3D models."

---

4. *X3D Meeting Minutes review*.

Progress described last Friday is worth review here, appropriately excerpted:

[4.0]	[x3d-public] X3D minutes 5, and 12 March 2012: outreach activity, HAnim, metadata explorations, X3D Ontology, glTF examples
      	https://web3d.org/pipermail/x3d-public_web3d.org/2021-March/014796.html

> 3. Metadata
> 
> Ongoing line of investigation is to create an example suite of X3D metadata sets that maps to a variety different metadata vocabularies.
> 
> Motivation: we expect that such activity can lead to:
> 
> - capture of relevant metadata with geometric export (for example with STEP or for Smart Cities)
> - corresponding Semantic Web query via X3D Ontology constructs.
> 
> CAD Design Printing Scanning (DPS) group: member-only forum has excellent in-depth technical collaborations with other ISO standards for STEP and geometry.
> 
> We confirmed that VRML97 has full expressive power matching the X3D metadata model.
> 
> [3.1]	X3D for Web Authors, Chapter 15 Metadata Information
>       	https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15Metadata/Chapter15MetadataInformation.html
> 
> [3.2]	X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 15 Metadata
>       	https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15Metadata
> 
> The X3dToVRML97.xslt stylesheet inserts external prototypes during conversion to VRML97, since the prototypes are so simple we could easily add option to copy the prototypes themselves.
> 
> [3.3]	X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 15 Metadata, Metadata Node Examples
>       	https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15Metadata/MetadataNodeExamplesIndex.html
> 
>       	https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15Metadata/MetadataNodeExamples.html#MyMetadataSetNode
> 	https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15Metadata/MetadataNodeExamples.wrl
> 
> inserted VRML97 prototype excerpts:
> ===================================
> EXTERNPROTO MetadataBoolean [
>    # [appinfo] MetadataBoolean contains a list of booleans in the value field
>    exposedField SFString name
>    exposedField MFFloat value
>    exposedField SFString reference
>    exposedField SFNode metadata # [appinfo] Metadata node only
> ][
>    "MetadataPrototypes.wrl#MetadataBoolean"
>    "https://www.web3d.org/x3d/content/examples/Basic/development/MetadataPrototypes.wrl#MetadataBoolean"
>    "MetadataPrototypes.x3d#MetadataBoolean"
>    "https://www.web3d.org/x3d/content/examples/Basic/development/MetadataPrototypes.x3d#MetadataBoolean"
>   ]
> 
> MetadataString {
>    name "TestRootMetadataNode"
>    value [ "Test satisfactory." "Note that all SFString values must be quoted."  ]
> }
> ===================================
> 
> We discussed metadata in glorious detail and plan to next work on mapping the XMP vocabulary.  Originally by Adobe, XMP is supported by ISO 16684-1:2019 part 1 & ISO 16684-2:2014 part 2.
> 
> [3.4]	Wikipedia: Extensible Metadata Platform
>       	"an ISO standard for the creation, processing and interchange of metadata for all kinds of resources
>       	https://en.wikipedia.org/wiki/Extensible_Metadata_Platform
> 
> Don plans to add HAnim LOA1 example to this metadata collection:
> 
> [3.5]	X3D Example Archives: Humanoid Animation, Characters, Korean Character 01 Jin
>       	https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/KoreanCharacter01JinIndex.html
> 
> Excerpt of interest follows.  X3dTidy cleaned up the original /info/ field by saving it as a comment and converting all name=value pairs into a corresponding MetadataSet clooeltion.:
> ====================
> 
> <HAnimHumanoid DEF='hanim_Jin' name='Jin' scale='0.0225 0.0225 0.0225'>
> <!-- HAnimHumanoid original info='"authorName=Chul Hee Jung and Myeong Won Lee" "authorEmail=myeongwonlee at gmail.com" "creationDate=31 March 2011" "humanoidVersion=2.0" "gender=female" "height=1.5"' -->
> <MetadataSet name='HAnimHumanoid.info' reference=' https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid ' containerField='metadata'>
>     <MetadataString containerField='value' name='authorName' value='Chul Hee Jung and Myeong Won Lee'/>
>     <MetadataString containerField='value' name='authorEmail' value='myeongwonlee at gmail.com'/>
>     <MetadataString containerField='value' name='creationDate' value='31 March 2011'/>
>     <MetadataString containerField='value' name='gender' value='female'/>
>     <MetadataString containerField='value' name='height' value='1.5'/>
>     <MetadataString containerField='value' name='humanoidVersion' value='"2.0"'/>
> </MetadataSet>
> ====================
> 
> Conversion mismatch: corrected entry for height should be
> 
>     <MetadataFloat containerField='value' name='height' value='1.5'/>

(This prior conversion mismatch is now corrected, checked in and published.)

> Specification documentation on Humanoid /info/ field:
> 
> [3.6]	HAnim version 2, Part 1 HAnim Architecture, 6 Object interfaces, 6.2 Humanoid
>       	https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid
> [...]
> 
>> The info field consists of a sequence of strings, each of which is of the form term=value. The following terms are defined in this document:
>> 
>>    authorName
>>    authorEmail
>>    copyright
>>    creationDate
>>    usageRestrictions
>>    humanoidVersion
>>    age
>>    gender
>>    height
>>    weight
>> 
>> The gender term typically has a value of female, male or neuter. The humanoidVersion term refers to the version of the humanoid being used, in order to track revisions to the data. It is not the same as the version field of the Humanoid object, which refers to the version of the HAnim specification that was used when building the humanoid. Additional term=value pairs may be included as needed for specific applications.

Dick and Don discussed how, by default, /height/ and /weight/ are in X3D base units of meters & kilograms respectively, and represented as MetadataFloat.  Captured in Mantis issue 1354 (below).

> Will also copy/create add X3D Geospatial and XMP examples in the archive [3.2].
> 
> ---
> 
> 4. X3D Ontology
> 
> Special queries for metadata:
> 
> [4.1]	X3D Ontology for Semantic Web: Queries using SPARQL
>       	https://www.web3d.org/x3d/content/semantics/semantics.html#HelloX3dAuthorsAnimationChainQueries
> 
> [4.2]	X3D Ontology for Semantic Web: Queries using SPARQL, all document meta information
>       	"Query HelloX3dAuthorsAnimationChain.ttl to identify all document meta information."
>       	https://www.web3d.org/x3d/content/semantics/queries/AllDocumentMetaInformation.rq.txt
> yields
> 
> ---------------------------------------------------------------------------------------------------------------------------------------------
> | metaName      | metaContent                                                                                                               |
> =============================================================================================================================================
> | "modified"    | "20 October 2019"                                                                                                         |
> | "generator"   | "X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit"                                                                           |
> | "description" | "Fully developed animation-chain example showing spinning globe and text: Hello!"                                         |
> | "title"       | "HelloX3dAuthorsAnimationChain.x3d"                                                                                       |
> | "identifier"  | "http://X3dGraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation/HelloX3dAuthorsAnimationChain.x3d" |
> | "license"     | "../license.html"                                                                                                         |
> | "creator"     | "Don Brutzman"                                                                                                            |
> | "reference"   | "https://www.web3d.org/x3d/content/examples/Basic/course/HelloX3dAuthorsAnimationChain.x3d"                               |
> | "created"     | "5 October 2000"                                                                                                          |
> ---------------------------------------------------------------------------------------------------------------------------------------------
> 
> Further parsing these as SPARQL queries:
> 
> [4.3]	X3D Ontology for Semantic Web: identify specific document meta properties
>       	"Query HelloX3dAuthorsAnimationChain.ttl to identify specific document meta properties of interest."
>       	https://www.web3d.org/x3d/content/semantics/queries/DocumentMetaProperties.rq.txt
> 
> ------------------------------------------------------------------------------------------------------------------------------------------------------------
> | title                               | creator        | created          | modified          | hasLicense | hasDescription | hasIdentifier | hasReference |
> ============================================================================================================================================================
> | "HelloX3dAuthorsAnimationChain.x3d" | "Don Brutzman" | "5 October 2000" | "20 October 2019" | true       | true           | true          | true         |
> ------------------------------------------------------------------------------------------------------------------------------------------------------------
> 
> This is a start, these string responses to queries might possibly become RDF triples in our next iteration.
> 
> We plan to add special queries for HAnimHumanoid metadata to accomplish similar feats of Semantic Web magic.
> 
> We will then continue with X3D Geospatial and XMP examples.
> 
> Jakub Flotyński typically meet Tuesday mornings to work on X3D Ontology and Semantic Web constructs.  Lots of very cool progress is percolating.
> 
> [4.4]	[x3d-public] X3D Semantic Web minutes 5 March 2020: modified meeting time, essential books, Apache, DFDL pipeline and 3D conversions
>       	https://web3d.org/pipermail/x3d-public_web3d.org/2021-March/014776.html
> 
> ---

5. *Next steps on X3D Metadata*.

The need to update X3D Specification has been articulated by Dick and Don in Mantis during yesterday's specification editors meeting.

[5.0]	Mantis 1354, regularization of HAnimHumanoid.info and GeoMetadata.summary information as MetadataSet collection
      	https://www.web3d.org/member-only/mantis/view.php?id=1354

(requires member access, attached as pdf)

> Description: Metadata can be contained in HAnimHumanoid info field (as "name=value" strings) and GeoMetadata summary ("name" "value" string pairs).
> 
> Practice has shown that these different techniques are each difficult to perform, parse, and keep updated.
> 
> Suggested refinement: regularization of HAnimHumanoid.info and GeoMetadata.summary information as MetadataSet collection can simply metadata handling and encourage metadata use.
> 
> Maintenance of typed MetadataSet collections facilitates query by X3D Ontology techniques and can also be supported by QA tools.

We next explored the two solutions for GeoMetadata /summary/ and HAnimHumanoid /info/ (each backed up by X3DUOM and validation tools, X3D Schematron and X3dTidy):

> Additional Information	Example solution
> * https://www.web3d.org/x3d/content/examples/Basic/Geospatial/newGeospatialSceneIndex.html
> 
> <GeoMetadata
>   url=' "http://exampleResource.com/ExternalMetadataDescription.x3d" '>
> <!-- original GeoMetadata summary='"title" "example title" "description" "example description"' -->
> <MetadataSet name='GeoMetadata.summary'
>    reference=' https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD/Part01/components/geospatial.html#GeoMetadata ' containerField='metadata'>
>   <MetadataString containerField='value' name='title' value='TODO'/>
>   <MetadataString containerField='value' name='description' value='TODO'/>
>   <MetadataString containerField='value' name='coordinateSystem' value='TODO'/>
>   <MetadataString containerField='value' name='horizontalDatum' value='TODO'/>
>   <MetadataString containerField='value' name='verticalDatum' value='TODO'/>
>   <MetadataString containerField='value' name='ellipsoid' value='TODO'/>
>   <MetadataString containerField='value' name='extent' value='0'/>
>   <MetadataFloat containerField='value' name='resolution' value='0'/>
>   <MetadataString containerField='value' name='originator' value='TODO'/>
>   <MetadataString containerField='value' name='copyright' value='TODO'/>
>   <MetadataString containerField='value' name='date' value='TODO'/>
>   <MetadataString containerField='value' name='metadataFormat' value='TODO'/>
>   <MetadataString containerField='value' name='dataUrl' value='TODO'/>
>   <MetadataString containerField='value' name='dataFormat' value='TODO'/>
> </MetadataSet>
> </GeoMetadata>
> 
> Example solution
> * https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/KoreanCharacter01JinIndex.html
> 
> <HAnimHumanoid DEF='hanim_Jin' name='Jin' scale='0.0225 0.0225 0.0225'>
> <!-- HAnimHumanoid original info='"authorName=Chul Hee Jung and Myeong Won Lee" "authorEmail=myeongwonlee at gmail.com" "creationDate=31 March 2011" "humanoidVersion=2.0" "gender=female" "height=1.5"' -->
> <MetadataSet name='HAnimHumanoid.info'
>    reference=' https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid ' containerField='metadata'>
>   <MetadataString containerField='value' name='authorName' value='Chul Hee Jung and Myeong Won Lee'/>
>   <MetadataString containerField='value' name='authorEmail' value='myeongwonlee at gmail.com'/>
>   <MetadataString containerField='value' name='creationDate' value='31 March 2011'/>
>   <MetadataString containerField='value' name='gender' value='female'/>
>   <MetadataFloat containerField='value' name='height' value='1.5'/>
>   <MetadataString containerField='value' name='humanoidVersion' value='"2.0"'/>
> </MetadataSet> 

Next after that will be to write the SPARQL queries corresponding to the Turtle translations for GeoMetadata.summary and HAnimHumanoid.info in these examples.  Interestingly, in essence these two terms define annotation metadata namespaces.

Producing named properties for easy re-use will give us the same expressive power for Geo and HAnim metadata queries that we currently have for head/meta information.

Writing such SPARQL queries is a good job for next week!

If we can do that, we think that can also do it for approximately any structured metadata vocabulary...  perhaps XMP will be next to follow.

Topic for Friday's X3D call: whether to *deprecate or prohibit* use of the irregularly defined GeoMetadata /summary/ field and HAnimHumanoid /info/ field in X3D4.

Onward we go.  Have fun with X3D Semantic Web!  8)

all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001354_ regularization of HAnimHumanoid.info and GeoMetadata.pdf
Type: application/pdf
Size: 178066 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20210316/dc4b9309/attachment-0001.pdf>


More information about the x3d-public mailing list