[x3d-public] Mantis? No SceneGraphStructureStatement AbstractNodeType present in old X3D3 versions, X3DUOM

John Carlson yottzumm at gmail.com
Sun Sep 19 23:09:46 PDT 2021


Looking good, Don.  Thanks for your tireless efforts!

Don't forget that X3DUOM has other potential downstream effects, on JSON 
schemas, field types for serializers, method names for serializers, etc. 
etc.

I find it marvelous amazing all this "Just works," and can provide 
validation for products for people to rely on.

As I realize that we don't have a perfect solution yet (ECMAScript is 
unvalidated), I know we strive for purely declarative solutions like PBR 
and PBR Next.

As I revamp my personal portfolio, I have been copying and revising my 
structures.  In particular, I am incorporating SaxonJS2 into some of my 
web pages, to provide conversion from XML to JSON using X3dToJson.xslt, 
so that's a big credit to you and your work.

John

On 9/19/21 11:22 PM, Brutzman, Donald (Don) (CIV) wrote:
>
> John, am happy to explain this detailed but step-by-step process.
>
> The XML Schema captures the relationships exactly.  However XML Schema 
> does not have sufficient power to valididate inputOnly or outputOnly 
> fields, because transient values cannot appear in an XML document 
> (i.e. an .x3d scene).
>
> Therefore, each and every one of those inputOnly/ outputOnly fields 
> are added in place as annotations (sort of like structured comments).  
> Similarly, parent-child node-type relationships are also listed as 
> node types.  The X3DUOM is created to provide a comprehensive list of 
> everything.  This autogeneration approach is repeated for each X3D 
> Schema and X3DUOM pair.  Validation is pretty rigorous (meaning 
> everything fails horribly if not exactly right). Using X3DUOM to then 
> autogenerate Java, Python and Turtle leads to multiple forms of 
> round-trip testing.
>
> These construction details are all explained on the X3DUOM page.
>
>   * X3D Unified Object Model (X3DUOM) (web3d.org)
>     <https://www.web3d.org/specifications/X3DUOM.html>
>   * The X3D Unified Object Model (X3DUOM) is a full set of
>     object-oriented interfaces for all nodes, fields and statements in
>     the X3D Architecture Specification.
>   * https://www.web3d.org/specifications/X3DUOM.html
>     <https://www.web3d.org/specifications/X3DUOM.html>
>
> You will find X3DUOM versions 3.0, 3.1, 3.2, 3.3, and 4.0 all present 
> there.  Each was independently constructed from the corresponding X3D 
> XML schema.
>
> X3DUOM construction diagram:
>
>   * X3dUnifiedObjectModelCreation.png (2448×1829) (web3d.org)
>     <https://www.web3d.org/specifications/X3DUOM/X3dUnifiedObjectModelCreation.png>
>   * https://www.web3d.org/specifications/X3DUOM/X3dUnifiedObjectModelCreation.png
>     <https://www.web3d.org/specifications/X3DUOM/X3dUnifiedObjectModelCreation.png>
>
>
> Since we have placed such a high value on backwards compatibility, it 
> seems much more practical to let our X3DJSAIL Java and X3DPSAIL Python 
> implementations simply support X3D 4.0 plus every prior version.  
> Having five versions of each software library is easily created but 
> totally impractical to maintain.
>
> If you really want to perform archaeological sleuthing of the trail 
> behind SceneGraphStructureStatement, then diff the schema to prior 
> versions and see how it evolved.  We have gradually refactored and 
> improved the X3D XML Schema over the years when possible. All changes 
> are summarized in the build log.
>
>   * X3D Specifications: Schema and DOCTYPE Validation assets are
>     commonly used for XML validation of X3D scenes, and in-depth
>     documentation is also provided here.
>   * https://www.web3d.org/specifications
>     <https://www.web3d.org/specifications>
>
> Changelogs are listed right up top:
>
>   * https://www.web3d.org/specifications/x3d-schema-changelog.txt
>     <https://www.web3d.org/specifications/x3d-schema-changelog.txt>
>   * https://www.web3d.org/specifications/x3d-dtd-changelog.txt
>     <https://www.web3d.org/specifications/x3d-dtd-changelog.txt>
>
> A magnificent (i.e. endless) list of each asset produced across our 
> history makes every change visible.
>
> As ever, round trip validation testing of thousands of X3D models 
> along the way has given us great confidence that everything is work.  
> Then, when some little thing doesn’t work, we fix it.  Lather rinse 
> repeat…
>
> Thanks to everyone on this list whose every comment typically does 
> something to help the process.
>
> Long time coming… Have fun with X3D4!  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 <http://faculty.nps.edu/brutzman>
>
> *From: *John Carlson <mailto:yottzumm at gmail.com>
> *Sent: *Tuesday, September 14, 2021 1:30 PM
> *To: *Brutzman, Donald (Don) (CIV) <mailto:brutzman at nps.edu>
> *Cc: *X3D Graphics public mailing list <mailto:x3d-public at web3d.org>
> *Subject: *Re: [x3d-public] Mantis? No SceneGraphStructureStatement 
> AbstractNodeType present in old X3D3 versions, X3DUOM
>
> Actually, the main focus of this thread was:
>
> There are many '<Inheritance 
> baseType="SceneGraphStructureStatement"/>' in X3DUOM V3.0-V3.3.   
> There is no AbstractNodeType of SceneGraphStructureStatement in V3.* 
> any more.
>
> I don't know if you want to remove the Inheritance or not. There are 
> '<xs:complexType name="SceneGraphStructureStatement" abstract="true">' 
> in the XML schema V3.*. The complexType seems to have disappeared in 
> translation to X3DUOM V3.*
>
> I will assume that the conversion from XML Schema to X3DUOM is broken 
> for V3.*
>
> I could dig a bit further, but at this point, I think an issue of 
> transferring complexTypes from XML Schema to X3DUOM V3.* has been 
> identifiied.
>
> I agree that V3.* is deprecated at this point.   Ideally, we could get 
> JSON Schemas checked into sourceforge.
>
> Likely, you are in the middle of testing.
>
> Going back into my cave.
>
> John
>
> On 9/14/21 2:53 PM, John Carlson wrote:
>
>     It sounds like we should focus on JSON schema 4.0, and leave old
>     schemas behind.
>
>     I have been validating files against various JSON schema versions.
>
>     I think my main problem was setIS in a field value, which we
>     started addressing Monday.
>
>     I have a list of pressing issues if you’re ready.
>
>     On Tue, Sep 14, 2021 at 2:36 PM Brutzman, Donald (Don) (CIV)
>     <brutzman at nps.edu <mailto:brutzman at nps.edu>> wrote:
>
>         Regarding backwards compatibility:
>
>           * XML Schemas are available for all versions of X3D, 3.0
>             through 4.0,  Each has evolved past the prior version.
>           * X3DUOM is autogenerated from each corresponding XML
>             schema, similarly showing evolution.
>           * We have paid a lot of attention to forward/backward
>             compatibility among these many versions of X3D and VRML97.
>
>         It is possible to maintain multiple versions of corresponding
>         software builds but that seems fairly counterproductive. 
>         Better is strategy at top of X3DJSAIL page:
>
>           * Test ongoing development of X3D version 4
>             <https://www.web3d.org/x3d4> (also supporting X3D versions
>             3.0 through 3.3).
>
>         So X3DJSAIL, X3DPSAIL and X3D Ontology (and for that matter
>         XML Schema and X3D DOCTYPE) are focused on 4.0 completeness in
>         each implementation, including backwards compatibility to good
>         effect.
>
>         Thus X3DUOM updates are not postponed at all, rather these
>         match exactly each version of the X3D Specification as
>         captured by X3D XML Schemas.
>
>         Hope this is clearer now.
>
>         all the best, Don
>
>
>         -- 
>         Don Brutzman  Naval Postgraduate School, Code USW/Br
>         brutzman at nps.edu <mailto: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 <http://faculty.nps.edu/brutzman>
>
>         *From: *John Carlson <mailto:yottzumm at gmail.com>
>         *Sent: *Tuesday, September 7, 2021 10:42 AM
>         *To: *X3D Graphics public mailing list
>         <mailto:x3d-public at web3d.org>
>         *Subject: *Re: [x3d-public] Mantis? No
>         SceneGraphStructureStatement AbstractNodeType present in old
>         X3D3 versions, X3DUOM
>
>         Hmm. I mean IS field in fieldValue in X3DUOM.   I guess X3DUOM
>         updates are postponed until X3D4 is done.
>
>         John
>
>         On Tue, Sep 7, 2021 at 12:28 PM John Carlson
>         <yottzumm at gmail.com <mailto:yottzumm at gmail.com>> wrote:
>
>             As previously reported, I am fairly sure I added an IS
>             node (which creates a setIS method).   I don’t think I
>             checked any of this in.
>
>             I haven’t formally tested  JSON schema that I remember.
>
>             John
>
>             On Thu, Sep 2, 2021 at 9:38 PM John Carlson
>             <yottzumm at gmail.com <mailto:yottzumm at gmail.com>> wrote:
>
>                 I just discovered this draft. Sorry for the delay.  I
>                 think the primary goal should be the alignment of the
>                 statement type hierarchy between X3D3 and X3D4.
>
>                 I’m wondering if my changes locally affected
>                 fieldValue.setIS as previously reported?  Or
>                 fieldValue.addChild(new IS()) (IS is not a node)
>
>                 I am thinking someone should look at the type
>                 hierarchy differences for statements. If we go with
>                 X3D4, I will upgrade various examples.
>
>                 I guess the other solution is to provide different
>                 jars for X3D3 versus X3D4.
>
>                 John
>
>                 On Sat, Aug 28, 2021 at 4:09 PM John Carlson
>                 <yottzumm at gmail.com <mailto:yottzumm at gmail.com>> wrote:
>
>         I'm still having to back out updates to X3DUOM:
>
>         $ grep SceneGraphStructureStatement X3dUnifiedObjectModel*|sort -u
>         X3dUnifiedObjectModel-3.0.xml: <Inheritance
>         baseType="SceneGraphStructureStatement"/>
>         X3dUnifiedObjectModel-3.1.xml: <Inheritance
>         baseType="SceneGraphStructureStatement"/>
>         X3dUnifiedObjectModel-3.2.xml: <Inheritance
>         baseType="SceneGraphStructureStatement"/>
>         X3dUnifiedObjectModel-3.3.xml: <Inheritance
>         baseType="SceneGraphStructureStatement"/>
>
>         Here's what's in the old X3D3 versions, but not 4.0:
>
>                <AbstractNodeType name="SceneGraphStructureStatement">
>                   <InterfaceDefinition
>         specificationUrl="https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#scenegraph
>         <https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#scenegraph>"
>         appinfo="SceneGraphStructureStatement is a marker interface that
>         identifies statements relating to nonrenderable scene graph
>         structure.
>         SceneGraphStructureStatement does not extend from any other
>         node type
>         since it is not an explicit part of the X3D node interface
>         hierarchy,
>         and DEF/USE is not appropriate for such statements.">
>                      <componentInfo name="Core" level="1"/>
>                      <field name="class"
>                             type="SFString"
>                             accessType="inputOutput"
>                             baseType="xs:NMTOKENS"
>                             description="The class attribute on each
>         X3D node
>         and statement is a space-separated list of classes, reserved
>         for use by
>         Cascading Style Sheets (CSS) and XML stylesheets."/>
>                   </InterfaceDefinition>
>                </AbstractNodeType>
>
>
>         I am proceeding to delete the Inheritance nodes from my 
>         versions 3
>         X3DUOM. There are some "AdditionalInheritance" elements that
>         may need to
>         be converted over to "Inheritance."
>
>         If you want me to proceed with updating X3DUOM and
>         AdditionalInheritance
>         on sourceforge.net
>         <https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fsourceforge.net%2F&data=04%7C01%7Cbrutzman%40nps.edu%7Ca6c40bdaee4944a7f70908d977be74f0%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637672482161086220%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=w%2FX%2Bs7Rsio4ApcwOSr5JJZfOfdN2MT97pgw7OQUd1Gs%3D&reserved=0>,
>         let me know, but that's treading on unknown
>         territory for me, updating the stuff that creates X3DUOM.  I
>         assume this
>         means updating XML schema versions 3.  Is there a Mantis issue
>         yet? I am
>         capable of filing one, I hope.
>
>         I am not currently testing anything that uses X3DUOM besides
>         my own
>         stuff. Mostly, I am just trying to get the JSON schema working.
>
>         Thanks!
>
>         John
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20210920/c07bf825/attachment-0001.html>


More information about the x3d-public mailing list