[x3d-public] JSON Schema meeting minutes

John Carlson yottzumm at gmail.com
Thu Oct 28 20:06:41 PDT 2021


To attempt to straighten things out, I will try to explain.   We recently discovered a way to convert XML schema directly to JSON schema, the so-called XMLSpy converted schema.  This does not use X3DUOM at all.   I do not know how the XMLSpy converted schema uses USE, but I’m guessing that it’s a lot like X3DUOM.  My schema, the python generated schema, or x3d-4.0-JSONSchema.json, is derived from X3DUOM, but it extends X3DUOM in at least 2 ways, and can ignore many pieces of X3DUOM as well, due to concurrent development.  In particular, my schema has a slightly richer way to handle USE fields, namely by adding a parallel sub schema to each node, which instructs the validator to accept one of two subschemas, the other being a subschema without USE.  X3DUOM does not currently have this capability.   Another thing that my schema has is a geoSystem subschema inherited from Roy Walmsley, which is not in the XMLSpy converted schema or X3DUOM.  Yet one more thing my schema handles is node fields like -appearance and -material.

One thing we could consider is taking the XMLSpy converted schema and applying a stylesheet to create a better JSON schema than mine.  I doubt I will participate in such an endeavor, stylesheets are not my thing.

We have not been able to validate any JSON documents with the XMLSpy converted schema.   XML schema is not a complete description as things like XML schematron are added to validation workflow.  JSON also has a schematron as previously mentioned, but I’ve barely peeked at it.

So while XML and JSON documents may contain the same content, schemas don’t need to.  Additional tools such as X3DJSAIL are required.

Bug reports are welcome!

John

Sent from my iPad

> On Oct 26, 2021, at 7:27 PM, Joseph D Williams <joedwil at earthlink.net> wrote:
> 
> 
> The other thing we might do is restrict USE to nodes that appear with the USE field in X3DUOM.
>  
> OK, I haven’t looked at x3duom for this at this point, but if USE can be used with hanimdisplacer, then I think we have found a problem that connects with other nodes. How could json schema be different from x3d xml schema? The structure and content must be the same, yes?
> Choose markup for structure and content in way that works same for all encodings, Please, because the content must be the same.
> How could I clear a json schema that does not exactly reflect the xml schema?
> I can certainly see allowing USE for the hanim Humanoid, Joint, Segment, and Site nodes for consistency, even though even though I still think this could not result in a “standard’ humanoid
> Thanks,
> Joe
>  
> From: John Carlson
> Sent: Tuesday, October 26, 2021 12:10 AM
> To: Joseph D Williams; Brutzman, Donald (Don) (CIV)
> Cc: X3D Public Mailing List (x3d-public at web3d.org)
> Subject: Re: [x3d-public] JSON Schema meeting minutes
>  
> The other thing we might do is restrict USE to nodes that appear with the USE field in X3DUOM.
> 
> John
> 
> On 10/25/21 10:03 PM, Joseph D Williams wrote:
> Hi Don and All,
>  
> The USE pattern we were working on in the X3D JSON Schema was common to all nodes,
>  
> Then I think this could result in patterns that are not ‘standard’ or acceptable or usable syntax. As I read the example for hanimdisplacer which sort of matches construction of an interpolator node it appeared that I could put a USE in there to reference another displacer, I guess in order to use the same points and displacements(?) as one already defined. Maybe I am reading it wrong but I still can’t think of any example of displacer or any other interpolator where a USE is appropriate.
>  
> And, for hanim, I predict still no ‘standard’ humanoid is able to have a USE included in Joint, Segment, or Site nodes of a ‘standard’ skeleton, although contained nodes of those nodes may use previously defined stuffs.
> So, is the USE really common to all nodes? If so, then I want extension to be able to USE just a field of another node, such as using a common key time sequence in a set of interpolators.  
> Respectfully seeking the Universal Pattern(s) …
> All Best,
> Joe
>  
> From: Brutzman, Donald (Don) (CIV)
> Sent: Monday, October 25, 2021 12:10 AM
> To: Joseph D Williams; John Carlson
> Cc: X3D Public Mailing List (x3d-public at web3d.org)
> Subject: RE: [x3d-public] JSON Schema meeting minutes
>  
> Hi Joe.  The USE pattern we were working on in the X3D JSON Schema was common to all nodes, not just HAnim nodes.  So no change of functionality expected.
>  
> We are always striving for consistent expressive power for all the different language bindings and file encodings.
>  
> We have 3950 X3D Examples to test.  More are always welcome for the archives if you think that further coverage is needed of some capability.
>  
> 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 https://faculty.nps.edu/brutzman
>  
> From: Joseph D Williams
> Sent: Sunday, October 24, 2021 5:12 PM
> To: John Carlson; Brutzman, Donald (Don) (CIV)
> Cc: X3D Public Mailing List (x3d-public at web3d.org)
> Subject: RE: [x3d-public] JSON Schema meeting minutes
>  
> Hi John, Getting this to work will help. Are you looking for examples to validate, beginning with a .x3d file?
> If I can include USE in the HanimDisplacer pt. then I can include USE as Interpolator key and value fields(?)
> Including a USE in any of the HAnim… nodes Joints, Segments, Sites is not going to work unless, well, I can’t really see how it would work in a ‘standard’ humanoid.
>  
> Thanks,
> Joe
>  
>  
> From: John Carlson
> Sent: Sunday, October 24, 2021 11:44 AM
> To: Brutzman, Donald (Don) (CIV)
> Cc: X3D Public Mailing List (x3d-public at web3d.org)
> Subject: Re: [x3d-public] JSON Schema meeting minutes
>  
> Don, schema is here, python seems to be working with added metaschema checks.
> 
> https://github.com/coderextreme/X3DJSONLD/tree/master/src/main/schema
>  
> Next on agenda is bpy to JSON conversion, possibly with added GUI/X3D conversion tool.
>  
> John
>  
> Sent from my iPad
>  
> 
> On Oct 18, 2021, at 5:09 PM, Brutzman, Donald (Don) (CIV) <brutzman at nps.edu> wrote:
> 
> 
> John and I reviewed his latest schema today and discussed various design considerations.
>  
> His latest version, generated by a Python program reading X3DUOM, is found as follows:
>  
> https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/schema/x3d-4.0-JSONSchema.json
>  
> Looking at the result in Firefox was helpful because that has a great way to look at JSON which allowed us to iconize/expand (fold/unfold) as needed.  Excerpt follows.
>  
> The result looks great.  One refinement John will handle: for nodes with a USE field, no -children nodes are permitted.
>  
> Once he has the next version, I will check it into the specifications directory (next to X3D XML Schema and XML DOCTYPE).
>  
> At that point we are ready to begin further validation efforts using multivarious tools against the many X3D examples in JSON, such as
>  
> https://savage.nps.edu/Savage/GroundVehicles/Jeep/Jeep.json
>  
> Testing without regex patterns is good for now.  A prior version had acceptable regex, so that appears to be do-able.
>  
> Having fun with X3D JSON!  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 https:// faculty.nps.edu/brutzman
>  
>  
>  
>  
>  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20211028/408ecbf4/attachment-0001.html>


More information about the x3d-public mailing list