[x3d-public] X3D Semantic Web updated ontology release, query progress
Don Brutzman
brutzman at nps.edu
Sun Jun 28 23:00:20 PDT 2020
Preparations for weekly meeting:
1. Fixed several subtle flaws in X3D Ontology.
[1] X3D Ontology for Semantic Web
https://www.web3d.org/x3d/content/semantics/semantics.html
[2] X3D Ontology X3dOntology4.0.ttl
https://www.web3d.org/x3d/content/semantics/ontologies/X3dOntology4.0.ttl
Also produced a version using RDF syntax via Protege.
[3] X3D Ontology X3dOntology4.0.rdf
https://www.web3d.org/x3d/content/semantics/ontologies/X3dOntology4.0.rdf
a. Enumeration variable Values/Choices lists had domain defined but not range. Fixed, surprising the tools didn't flag this.
b. Enumueration variable lists were utilizing owl:unionOf lists of nodes and types, as part of rdfs:domain, which mostly worked but had some examples creating "blank nodes (bnodes)" which caused owldoc problems (and goodness knows what other potential inference problems). This problem didn't occur in rdfs:range definitions.
Because errors were inconsistent in Protege, very tricky to track down.
Finally got proper syntax by deleting a construct in Protege, manually re-creating it via interface, and then saving into turtle output to see what syntax Protege preferred. Turned out to be simpler, can just omit owl:unionOf [ ] and simply list the nodes/types.
Example correct implementation:
:matchCriterion a owl:DatatypeProperty ;
rdfs:label "X3DPickSensorNode field matchCriterion is implemented by multiple nodes." ;
rdfs:subPropertyOf :accessTypeInputOutput ;
rdfs:domain :X3DPickSensorNode , :LinePickSensor , :PointPickSensor , :PrimitivePickSensor , :VolumePickSensor ;
rdfs:range :pickSensorMatchCriterionChoices .
c. Ensured that only xsd: namespace used within X3D Ontology, matching Protege approach and eliminating several apparent ambiguities.
---
2. Improvement in X3dToTurtle.xslt stylesheet.
:DEF and :USE values were not getting generated during model conversion. This ontology feature simplifies pattern matching. Restored, running updates to all models in X3D Example Archives overnight.
Example conversion:
<TimeSensor DEF='OrbitalTimeInterval' cycleInterval='12'/>
to
:OrbitalTimeInterval a owl:NamedIndividual, x3do:TimeSensor ;
x3do:hasParent :Scene ;
x3do:DEF 'OrbitalTimeInterval' ;
x3do:cycleInterval '12' .
---
3. Initial ROUTE query
Now that we have accessType and DEF defined throughout, can get to work on queries that check if a ROUTE connection is well-defined and matches both type and accessType.
[4] X3D Ontology for Semantic Web: Queries
https://www.web3d.org/x3d/content/semantics/semantics.html#Queries
see last entry in table:
* https://www.web3d.org/x3d/content/semantics/examples/HelloX3dAuthorsAnimationChain.ttl
* https://www.web3d.org/x3d/content/semantics/queries/HelloX3dAuthorsAnimationChainQuery_01.rq.txt
Initial inspection/extracttion of ROUTE values works. Now working on removing duplication entries for fromNodeTypeFound.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
| parentNode | RouteFound | fromNodeDEF | fromNodeTypeFound | fromField | toNodeDEF | toField |
======================================================================================================================================================================
| "Scene" | "ROUTE_2_5" | "OrbitalTimeInterval" | owl:NamedIndividual | "fraction_changed" | "SpinThoseThings" | "set_fraction" |
| "Scene" | "ROUTE_2_5" | "OrbitalTimeInterval" | x3do:TimeSensor | "fraction_changed" | "SpinThoseThings" | "set_fraction" |
| "EarthCoordinateSystem" | "ROUTE_2_6_1" | "SpinThoseThings" | owl:NamedIndividual | "value_changed" | "EarthCoordinateSystem" | "set_rotation" |
| "EarthCoordinateSystem" | "ROUTE_2_6_1" | "SpinThoseThings" | x3do:OrientationInterpolator | "value_changed" | "EarthCoordinateSystem" | "set_rotation" |
| "EarthCoordinateSystem" | "ROUTE_2_6_5" | "ClickTriggerTouchSensor" | owl:NamedIndividual | "touchTime" | "OrbitalTimeInterval" | "startTime" |
| "EarthCoordinateSystem" | "ROUTE_2_6_5" | "ClickTriggerTouchSensor" | x3do:TouchSensor | "touchTime" | "OrbitalTimeInterval" | "startTime" |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
# TODO Node types, field types, accessTypes, diagnostics for matches
Weekly call is Monday 0830 pacific, have fun with X3D Query!
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