[x3d-public] X3D Semantic Web minutes 12 JAN 2021: book, Daffodil, field synonyms, simple-type field default values

Don Brutzman brutzman at nps.edu
Tue Jan 12 13:36:51 PST 2021


Attendees: Jakub and Don.

1. Book Release.  Congratulations Jakub!

========================================

[1]	Jakub Flotyński, Knowledge-Based Explorable Extended Reality Environments, Springer, 2020.
    	https://www.springer.com/gp/book/9783030599645

Describes the concept, architectures, methods and tools for the spatial-temporal composition of XR environments.

This book presents explorable XR environments—their rationale, concept, architectures as well as methods and tools for spatial-temporal composition based on domain knowledge, including geometrical, presentational, structural and behavioral elements. Explorable XR environments enable monitoring, analyzing, comprehending, examining and controlling users’ and objects’ behavior and features as well as users’ skills, experience, interests and preferences.

The E-XR approach proposed in this book relies on two main pillars. The first is knowledge representation technologies, such as logic programming, description logics and the semantic web, which permit automated reasoning and queries. The second is imperative programming languages, which are a prevalent solution for building XR environments. Potential applications of E-XR are in a variety of domains, e.g., education, training, medicine, design, tourism, marketing, merchandising, engineering and entertainment.

The book’s readers will understand the emerging domain of explorable XR environments with their possible applications. Special attention is given to an in-depth discussion of the field with taxonomy and classification of the available related solutions. Examples and design patterns of knowledge-based composition and exploration of XR behavior are provided, and an extensive evaluation and analysis of the proposed approach is included.

This book helps researchers in XR systems, 3D modeling tools and game engines as well as lecturers and students who search for clearly presented information supported by use cases. For XR and game programmers as well as graphic designers, the book is a valuable source of information and examples in XR development. Professional software and web developers may find the book interesting as the proposed ideas are illustrated by rich examples demonstrating design patterns and guidelines in object-oriented, procedural and declarative programming.

========================================

---

2. Daffodil (DFDL)

[2.1]	Wikipedia: Data Format Description Language
      	https://en.wikipedia.org/wiki/Data_Format_Description_Language

"Data Format Description Language (DFDL, often pronounced daff-o-dil), published as an Open Grid Forum Proposed Recommendation in January 2011, is a modeling language for describing general text and binary data in a standard way. A DFDL model or schema allows any text or binary data to be read (or "parsed") from its native format and to be presented as an instance of an information set."

We discussed recent progress on the following.

[2.2]	Data Format Description Language (DFDL) Pipeline Project
      	https://gitlab.nps.edu/Savage/robodata/-/blob/master/DFDL/pipeline/README.md

"This project is working to show that additional DFDL support for XML attributes is feasible.  Good initial progress has been made that allows use of an attribute-aware XML schema.  Pre- and post-processing XSLT stylesheets can convert XML documents and schemas into equivalent element-only form that DFDL can use to parse/unparse data documents."

DFDL conversion examples of interest include text-based and binary formats, including CSV Shape PNG and JPEG.

[2.2]	DFDL Schemas for Commercial and Scientific Data Formats
      	https://github.com/DFDLSchemas

Schema for Shape files:
https://github.com/DFDLSchemas/shapeFile/blob/master/src/main/resources/org/mitre/shp/xsd/shape.dfdl.xsd

When alternate formats have data representations that are close to being directly converted as X3D, it is interesting to consider how we might decorate variations of the X3D4 schema to permit parsing/unparsing them.  Future work awaits.

---

3. Field synonyms

[3.1]	"Re: X3DUOM: Objections for creating aliases for these fields? also updating X3D Ontology" 10 JAN 2021
      	https://web3d.org/pipermail/x3d-public_web3d.org/2021-January/014445.html

We reviewed paragraph 3 of that message, which examined ways to represent renamed-field synonyms that changed from X3D3 to X3D4.

Goal: define equivalent properties that are sufficient to query consistently across X3D3 and X3D4 models using either field name.

For the example ComposedCubeMapTexture field /back/ getting renamed as /backTexture/ the following property additions appear to handle this goal nicely.

:hasBack a owl:ObjectProperty ;
    owl:equivalentProperty :hasBackTexture .

:fieldBackHasParentComposedCubeMapTexture a owl:ObjectProperty ;
    owl:equivalentProperty :fieldBackTextureHasParentComposedCubeMapTexture  .

I will apply this design pattern to next round of updates to X3D Ontology.

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

Thanks to Protege, found that the property inheritance needs to be included.  Thus pattern is:

:hasBack a owl:ObjectProperty ;
   owl:equivalentProperty :hasBackTexture ;
   rdfs:subPropertyOf :hasChild .

:fieldBackHasParentComposedCubeMapTexture a owl:ObjectProperty ;
   owl:equivalentProperty :fieldBackTextureHasParentComposedCubeMapTexture ;
   rdfs:subPropertyOf :hasParentComposedCubeMapTexture .

Change applied, tested in Protégé, committed and deployed.

---

4. Protégé warnings

We took a few more minutes to look at some obscure warnings being thrown by the Protégé  tool when loading the X3D ontology.

INFO  10:24:53  ------------------------------- Loading Ontology -------------------------------
    INFO  10:24:53  Loading ontology from file:/C:/x3d-code/www.web3d.org/semantics/ontologies/X3dOntology4.0.ttl
    WARN  10:24:54  Annotation property domain axiom turned to data property domain after parsing. This could introduce errors if the original domain was an anonymous expression: http://www.w3.org/2001/XMLSchema#NMTOKEN is the new domain.
    WARN  10:24:54  Annotation property domain axiom turned to data property domain after parsing. This could introduce errors if the original domain was an anonymous expression: http://www.w3.org/2001/XMLSchema#NMTOKEN is the new domain.
    WARN  10:24:54  Annotation property domain axiom turned to data property domain after parsing. This could introduce errors if the original domain was an anonymous expression: http://www.w3.org/2001/XMLSchema#NMTOKEN is the new domain.
    WARN  10:24:54  Annotation property domain axiom turned to data property domain after parsing

These messages are vague and imprecise, unfortunately.  We suspect the 4 warnings are provoked by the following 4 instances:

###############################################
:accessTypeProperty a owl:DatatypeProperty ;
   dc:description "accessTypeProperty values denote accessType for a given field within a given node." .
:accessTypeInputOutput a owl:DatatypeProperty ;
   rdfs:subPropertyOf :accessTypeProperty ;
   dc:description "accessTypeInputOutput values denote accessType=inputOutput for a given field within a given node." ;
   rdfs:domain xsd:NMTOKEN ;
   rdfs:range  xsd:NMTOKEN .
  :accessTypeInitializeOnly a owl:DatatypeProperty ;
   rdfs:subPropertyOf :accessTypeProperty ;
   dc:description "accessTypeInitializeOnly values denote accessType=initializeOnly for a given field within a given node." ;
   rdfs:domain xsd:NMTOKEN ;
   rdfs:range  xsd:NMTOKEN .
:accessTypeInputOnly a owl:DatatypeProperty ;
   rdfs:subPropertyOf :accessTypeProperty ;
   dc:description "accessTypeInputOnly values denote accessType=inputOnly for a given field within a given node." ;
   rdfs:domain xsd:NMTOKEN ;
   rdfs:range  xsd:NMTOKEN .
:accessTypeOutputOnly a owl:DatatypeProperty ;
   rdfs:subPropertyOf :accessTypeProperty ;
   dc:description "accessTypeOutputOnly values denote accessType=outputOnly for a given field within a given node." ;
   rdfs:domain xsd:NMTOKEN ;
   rdfs:range  xsd:NMTOKEN .
###############################################

We'll keep looking at that, the above 4 constructs "rdfs:domain xsd:NMTOKEN ;" (out of 37 total) are the most likely culprits.

---

5. Field default values review

For clarity we also reviewed the addition of default values to simple-type fields in the ontology, with step-by-step progress reported over the past month.  For example:

:Disk2D a owl:Class ;
   rdfs:subClassOf :X3DGeometryNode ;
   rdfs:label "Disk2D is a geometry node that defines a filled (or partially filled) planar circle with center (0,0)." .
:innerRadius a owl:DatatypeProperty ;
   rdfs:subPropertyOf :accessTypeInitializeOnly ;
   rdfs:domain :Disk2D ;
   rdfs:range :SFFloat ;
   :innerRadiusDefault 0 .
:outerRadius a owl:DatatypeProperty ;
   rdfs:subPropertyOf :accessTypeInitializeOnly ;
   rdfs:domain :Disk2D ;
   rdfs:range :SFFloat ;
   :outerRadiusDefault 1 .

This seems to be working well for all simple-type fields.  We also looked at the example metaquery included in the build with finds and reports all default field values:

[5.0]	X3D Ontology for Semantic Web: Queries
      	https://www.web3d.org/x3d/content/semantics/semantics.html#Queries

[5.1]	X3dOntologyQuery_04.rq.txt
      	https://www.web3d.org/x3d/content/semantics/queries/X3dOntologyQuery_04.rq.txt

Output excerpt:
###############################################
--------------------------------------------------------------------------------------------------------------------------------------------------
| fieldDefault                                   | x3dNode                                 | defaultValue        | accessType                    |
==================================================================================================================================================
| x3do:absorptionDefault                         | x3do:AcousticProperties                 | 0                   | x3do:accessTypeInputOutput    |
| x3do:activeLayerDefault                        | x3do:LayerSet                           | 0                   | x3do:accessTypeInputOutput    |
...
| x3do:innerRadiusDefault                        | x3do:Disk2D                             | 0                   | x3do:accessTypeInitializeOnly |
...
| x3do:outerRadiusDefault                        | x3do:Disk2D                             | 1                   | x3do:accessTypeInitializeOnly |
| x3do:oversampleDefault                         | x3do:WaveShaper                         | "none"              | x3do:accessTypeInputOutput    |
| x3do:particleLifetimeDefault                   | x3do:ParticleSystem                     | 5                   | x3do:accessTypeInputOutput    |
...
###############################################

etc.  Looks good, great work by Jakub figuring out this concise representation.

Updates are uploading now.  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



More information about the x3d-public mailing list