<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">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.<div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>So while XML and JSON documents may contain the same content, schemas don’t need to.  Additional tools such as X3DJSAIL are required.</div><div><br></div><div>Bug reports are welcome!</div><div><br></div><div>John<br><div><div><div><br><div dir="ltr">Sent from my iPad</div><div dir="ltr"><br><blockquote type="cite">On Oct 26, 2021, at 7:27 PM, Joseph D Williams <joedwil@earthlink.net> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="Generator" content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Courier New \,serif";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:324362571;
        mso-list-template-ids:-1;}
@list l0:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:523514576;
        mso-list-type:hybrid;
        mso-list-template-ids:199755718 -1 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:\F0D8;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;
        mso-fareast-font-family:"Times New Roman";
        mso-bidi-font-family:Calibri;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l2
        {mso-list-id:888418747;
        mso-list-template-ids:-1;}
@list l2:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><div class="WordSection1"><ul type="disc"><li style="mso-list:l1 level1 lfo3">The other thing we might do is restrict USE to nodes that appear with the USE field in X3DUOM.<o:p></o:p></li></ul><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">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?</p><p class="MsoNormal">Choose markup for structure and content in way that works same for all encodings, Please, because the content must be the same. </p><p class="MsoNormal">How could I clear a json schema that does not exactly reflect the xml schema? </p><p class="MsoNormal">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</p><p class="MsoNormal">Thanks,</p><p class="MsoNormal">Joe</p><p class="MsoNormal"><o:p> </o:p></p><div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Tuesday, October 26, 2021 12:10 AM<br><b>To: </b><a href="mailto:joedwil@earthlink.net">Joseph D Williams</a>; <a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Public Mailing List (x3d-public@web3d.org)</a><br><b>Subject: </b>Re: [x3d-public] JSON Schema meeting minutes</p></div><p class="MsoNormal"><o:p> </o:p></p><p>The other thing we might do is restrict USE to nodes that appear with the USE field in X3DUOM.</p><p>John</p><div><p class="MsoNormal">On 10/25/21 10:03 PM, Joseph D Williams wrote:<o:p></o:p></p></div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><p class="MsoNormal">Hi Don and All, <o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><ol style="margin-top:0in" start="1" type="1"><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">The USE pattern we were working on in the X3D JSON Schema was common to all nodes,<o:p></o:p></li></ol><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">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. <o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">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.<o:p></o:p></p><p class="MsoNormal">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.  <o:p></o:p></p><p class="MsoNormal">Respectfully seeking the Universal Pattern(s) … <o:p></o:p></p><p class="MsoNormal">All Best, <o:p></o:p></p><p class="MsoNormal">Joe<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Sent: </b>Monday, October 25, 2021 12:10 AM<br><b>To: </b><a href="mailto:joedwil@earthlink.net">Joseph D Williams</a>; <a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Public Mailing List (x3d-public@web3d.org)</a><br><b>Subject: </b>RE: [x3d-public] JSON Schema meeting minutes<o:p></o:p></p></div><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">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.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">We are always striving for consistent expressive power for all the different language bindings and file encodings.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">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.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">all the best, Don<br><span style="font-size:10.0pt;font-family:"Courier New ,serif",serif">-- <br>Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a><br>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<br>X3D graphics, virtual worlds, Navy robotics <a href="https://faculty.nps.edu/brutzman">https://faculty.nps.edu/brutzman</a></span><o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:joedwil@earthlink.net">Joseph D Williams</a><br><b>Sent: </b>Sunday, October 24, 2021 5:12 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a>; <a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Public Mailing List (x3d-public@web3d.org)</a><br><b>Subject: </b>RE: [x3d-public] JSON Schema meeting minutes<o:p></o:p></p></div><p class="MsoNormal"> <o:p></o:p></p><div><p class="MsoNormal">Hi John, Getting this to work will help. Are you looking for examples to validate, beginning with a .x3d file? <o:p></o:p></p><p class="MsoNormal">If I can include USE in the HanimDisplacer pt. then I can include USE as Interpolator key and value fields(?)<o:p></o:p></p><p class="MsoNormal">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.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Thanks,<o:p></o:p></p><p class="MsoNormal">Joe<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Sunday, October 24, 2021 11:44 AM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Public Mailing List (x3d-public@web3d.org)</a><br><b>Subject: </b>Re: [x3d-public] JSON Schema meeting minutes<o:p></o:p></p></div><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Don, schema is here, python seems to be working with added metaschema checks.<br><br><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcoderextreme%2FX3DJSONLD%2Ftree%2Fmaster%2Fsrc%2Fmain%2Fschema&data=04%7C01%7Cbrutzman%40nps.edu%7C51fbb182092b4d5bb02c08d9974c199c%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637707175517256956%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=ZcklHNEBEtinlpnaTacqhx6dQUY2X0MYdh7vhMIRo1M%3D&reserved=0">https://github.com/coderextreme/X3DJSONLD/tree/master/src/main/schema</a><o:p></o:p></p><div><p class="MsoNormal"> <o:p></o:p></p></div><div><p class="MsoNormal">Next on agenda is bpy to JSON conversion, possibly with added GUI/X3D conversion tool.<o:p></o:p></p></div><div><div><p class="MsoNormal"> <o:p></o:p></p></div><div><p class="MsoNormal">John<o:p></o:p></p></div><div><p class="MsoNormal"> <o:p></o:p></p></div><div><div><p class="MsoNormal">Sent from my iPad<o:p></o:p></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"> <o:p></o:p></p><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><p class="MsoNormal" style="margin-bottom:12.0pt">On Oct 18, 2021, at 5:09 PM, Brutzman, Donald (Don) (CIV) <a href="mailto:brutzman@nps.edu"><brutzman@nps.edu></a> wrote:<o:p></o:p></p></blockquote></div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><div><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">John and I reviewed his latest schema today and discussed various design considerations.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">His latest version, generated by a Python program reading X3DUOM, is found as follows:<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><ol style="margin-top:0in" start="1" type="1"><li class="MsoListParagraph" style="margin-left:0in;mso-list:l2 level1 lfo2"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/schema/x3d-4.0-JSONSchema.json">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/schema/x3d-4.0-JSONSchema.json</a><o:p></o:p></li></ol><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">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.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">The result looks great.  One refinement John will handle: for nodes with a USE field, no -children nodes are permitted.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Once he has the next version, I will check it into the specifications directory (next to X3D XML Schema and XML DOCTYPE).<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">At that point we are ready to begin further validation efforts using multivarious tools against the many X3D examples in JSON, such as<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><ol style="margin-top:0in" start="2" type="1"><li class="MsoListParagraph" style="margin-left:0in;mso-list:l2 level1 lfo2"><a href="https://savage.nps.edu/Savage/GroundVehicles/Jeep/Jeep.json">https://savage.nps.edu/Savage/GroundVehicles/Jeep/Jeep.json</a><o:p></o:p></li></ol><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Testing without regex patterns is good for now.  A prior version had acceptable regex, so that appears to be do-able.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Having fun with X3D JSON!  8)<o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New ,serif",serif"> </span><o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New ,serif",serif">all the best, Don</span><o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New ,serif",serif">-- </span><o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New ,serif",serif">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a></span><o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New ,serif",serif">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span><o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New ,serif",serif">X3D graphics, virtual worlds, navy robotics https://</span> <span style="font-size:10.0pt;font-family:"Courier New ,serif",serif">faculty.nps.edu/brutzman</span><o:p></o:p></p></div></blockquote></div></div><p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:1.0in;margin-bottom:5.0pt;margin-left:1.0in"> <o:p></o:p></p></div><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p></blockquote><p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.5in;margin-bottom:5.0pt;margin-left:.5in"> <o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p></div></div></blockquote></div></div></div></div></body></html>