[x3d-public] X3D Semantic Web agenda 21 OCT 2019: paper plans, added parent/child relationships, X3D-Tidy and comprehensive unit testing

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Sun Oct 20 18:50:35 PDT 2019


The X3D Semantic Web Working Group mission is to publish models to the Web using X3D in order to best gain Web interoperability and enable intelligent 3D applications, feature-based 3D model querying, and reasoning over 3D scenes.

	https://www.web3d.org/working-groups/x3d-semantic-web

We plan to hold a regular weekly meeting Monday 21 OCT 2019 at regular time, 0800-0900 pacific.

	https://www.web3d.org/member/teleconference-information

Prior minutes:

	[x3d-public] X3D Semantic Web agenda 14 OCT 2019: paper plans, mailing lists, X3D examples unit testing, X3D Ontology
	http://web3d.org/pipermail/x3d-public_web3d.org/2019-October/011348.html
	http://web3d.org/pipermail/semantics-public_web3d.org/2019-October/000004.html

Draft agenda follows, additions welcome.

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

1. *Conference and paper publication planning*

We'll discuss progress of work.

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

2. *X3D to Turtle Conversions Example Archive Updates*

Last week we discussed addition of x3do:hasParent and x3d:hasSomeNodeField relationships to the X3dToTurtle.xslt model converter.

These have now been successfully added, deployed and tested.

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

Example and excerpts:

	Hello World, turtle source and excerpted triples
	https://www.web3d.org/x3d/content/semantics/examples/HelloWorld.ttl

> :Group_2_2 a owl:NamedIndividual, x3do:Group ;
>   x3do:hasParent :Scene ;
>   x3do:hasChildren [ owl:unionOf ( :ViewUpClose :Transform_2_2_2 :Transform_2_2_3 ) ] .
> 
> :ViewUpClose a owl:NamedIndividual, x3do:Viewpoint ;
>   x3do:hasParent :Group_2_2 ;
>   x3do:centerOfRotation "0 -1 0" ;
>   x3do:description "Hello world!" ;
>   x3do:position "0 -1 7" .
> 
> :Transform_2_2_2 a owl:NamedIndividual, x3do:Transform ;
>   x3do:hasParent :Group_2_2 ;
>   x3do:hasChildren :Shape_2_2_2_1 ;
>   x3do:rotation "0 1 0 3" .
> 
> :Shape_2_2_2_1 a owl:NamedIndividual, x3do:Shape ;
>   x3do:hasParent :Transform_2_2_2 ;
>   x3do:hasGeometry :Sphere_2_2_2_1_1 ;
>   x3do:hasAppearance :Appearance_2_2_2_1_2 .

Here is an initial query to test:

https://www.web3d.org/x3d/content/semantics/queries/X3dHelloWorldQuery_01.rq.txt

> SELECT ?ShapeNodesFound ?parentNode ?grandParentNode
> 
> WHERE
> { 
>     ?shape  a x3do:Shape ; # Shorthand expression: a = rdf:type
>             x3do:hasParent ?parent .
>     ?parent x3do:hasParent ?grandParent .
> 
>     # https://stackoverflow.com/questions/11234371/sparql-query-results-without-namespace
>     BIND (strafter(xsd:string(?shape),"#")       AS ?ShapeNodesFound)
>     BIND (strafter(xsd:string(?parent),"#")      AS ?parentNode)
>     BIND (strafter(xsd:string(?grandParent),"#") AS ?grandParentNode)
> }
> ORDER BY (?ShapeNodesFound) # alphabetic order results in scene-graph order given by each name
> 
> ###############################################
> ---------------------------------------------------------
> | ShapeNodesFound | parentNode        | grandParentNode |
> =========================================================
> | "Shape_2_2_2_1" | "Transform_2_2_2" | "Group_2_2"     |
> | "Shape_2_2_3_1" | "Transform_2_2_3" | "Group_2_2"     |
> ---------------------------------------------------------

Note that no changes to the X3D Ontology were needed for modifying out turtle conversions or performing this query.

TODO we should come up with similar SPARQL queries that exercise the reasoner and all interdependent relations (x3do::hasChild x3do::hasParent x3do::hasDescendant and x3do:hasAncestor) together at one time.

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

3. *X3D-Tidy addition of WorldInfo nodes*

The default query against X3D Example Archive models lists title of WorldInfo node, if present.

As it turns out, only some of the examples had WorldInfo included.  Seems like a good practice for a model to describe itself as well, also good to have explicit (rather than implicit) SPARQL query test results.

Thus added an option to X3D-Tidy that adds WorldInfo if not found, using meta title if found.  Applied it to all scenes (nearly 4000 total).

This also modified all web3d.org url addresses as https://www.web3d.org (for XML schema, doctype, links etc.)

	X3D Tidy for Scene Cleanup, Corrections and Modifications
	https://www.web3d.org/x3d/stylesheets/X3dTidy.html

Updated, tested and uploaded all models.  Regression test results similarly updated at

	https://www.web3d.org/x3d/content/examples/build.turtle.all.log.txt

Randomly chosen example:

	X3D Example Archives: VRML 2 Sourcebook, Chapter 06 Rotating Shapes, Figure 06 1 2Desk Lamp Base Two Arms
	https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter06RotatingShapes/Figure06_12DeskLampBaseTwoArmsIndex.html
	https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter06RotatingShapes/Figure06_12DeskLampBaseTwoArms.x3d
	https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter06RotatingShapes/Figure06_12DeskLampBaseTwoArms.ttl
         https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter06RotatingShapes/Figure06_12DeskLampBaseTwoArms.rq.txt

> PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> PREFIX owl:  <http://www.w3.org/2002/07/owl#>
> PREFIX xsd:  <http://www.w3.org/2001/XMLSchema#>
> PREFIX x3d:  <https://www.web3d.org/specifications/x3d-4.0.xsd#>
> PREFIX x3do: <https://www.web3d.org/semantics/ontologies/X3dOntology4.0#>
> 
> # X3dHelloWorldQuery_03.rq    Query HelloWorld.ttl to show title given to model within a WorldInfo node.
> 
> ###############################################
> 
> SELECT ?WorldInfoNode ?title ?parentNode
> WHERE
> {
>     ?WorldInfo rdf:type       x3do:WorldInfo ;
>                x3do:title     ?title         ;
>                x3do:hasParent ?parent.
> 
>     BIND (strafter(xsd:string(?WorldInfo),"#") AS ?WorldInfoNode)
>     BIND (strafter(xsd:string(?parent),"#")    AS ?parentNode)
> }
> 
> ###############################################
> -----------------------------------------------------------------------
> | WorldInfoNode   | title                                | parentNode |
> =======================================================================
> | "WorldInfo_2_1" | "Figure06_12DeskLampBaseTwoArms.x3d" | "Scene"    |
> -----------------------------------------------------------------------

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

Making steady progress (and having 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