<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Joe, we should OK with restricting certain nodes from having
      @USE, but a complete list would be welcome, or we can discover
      these things one at a time.<br>
    </p>
    <p>I don't believe it's syntax (JSON), rather some kind of X3D
      semantics we are quibbling about.  If you can find the desired
      syntax or semantics for the X3D JSON Schema that will help with
      your example, please point it out. Note that for Interpolators,
      X3DUOM has USE fields, so the the USE fields should probably be
      removed from there, which probably means they should be removed
      from the XML Schema and the X3D standard, as you mention.  This
      may mean breaking examples (which might be a good thing).<br>
    </p>
    <p>In my schema generation, I merely have been taking Roy's example
      and slowly extending it as the JSON Schema drafts change. I have
      not done any extensive research into the JSON Schema--yes, I've
      been to an opthamologist, even the eye school at UCB.<br>
    </p>
    <p>Again, we probably need a full on implementation/SAI to discover
      such things, if not something like schematron.  Here we go: 
      <a class="moz-txt-link-freetext" href="https://www.npmjs.com/package/jsontron">https://www.npmjs.com/package/jsontron</a> .  I believe many of these
      sorts of things are added to adjunct JSON schema capabilities.  If
      we can find better tools than jsonschemafriend (Java), Ajv
      (JavaScript), and jsonschema (Python), let's use them!  This list
      piques my interest:
      <a class="moz-txt-link-freetext" href="https://json-schema.org/implementations.html#web-ui-generation">https://json-schema.org/implementations.html#web-ui-generation</a><br>
    </p>
    <p>We also lack the capability in the XMLSpy generated JSON schema
      to restrict USE from being used with other fields.  How much we
      can fiddle with this remains a question (JSON to JSON?).  There
      are rules hard-coded into X3D JSON schema generation that do not
      appear in X3DUOM (oops!).<br>
    </p>
    <p>If we could generate @geoSystem schema rules from X3DUOM, that
      would be really cool.<br>
    </p>
    <p>Here is some very interesting syntax from the XMLSpy converted
      schema:</p>
    <p> "..X3DNodeMixedContent.2": {<br>
                              "additionalProperties": false,<br>
                              "properties": {<br>
                                      "$": {<br>
                                              "type": [<br>
                                                      "string",<br>
                                                      "number",<br>
                                                      "boolean"<br>
                                              ]<br>
                                      },</p>
    <p>[snip]</p>
    <p>                       },<br>
                              "type": [<br>
                                      "object",<br>
                                      "string",<br>
                                      "number",<br>
                                      "boolean"<br>
                              ]<br>
                      },</p>
    <p>AFAIK, X3DNodeMixedContent is not found in X3DUOM!  X3D XSD, yes!</p>
    <p>Thanks!</p>
    <p>John<br>
    </p>
    <div class="moz-cite-prefix">On 10/25/21 10:03 PM, Joseph D Williams
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:61776ff4.1c69fb81.e9270.0480SMTPIN_ADDED_MISSING@mx.google.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style>@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;}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;}div.WordSection1
        {page:WordSection1;}ol
        {margin-bottom:0in;}ul
        {margin-bottom:0in;}</style>
      <div class="WordSection1">
        <p class="MsoNormal">Hi Don and All, </p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <ul style="margin-top:0in" type="disc">
          <li class="MsoListParagraph"
            style="margin-left:0in;mso-list:l1 level1 lfo2">The USE
            pattern we were working on in the X3D JSON Schema was common
            to all nodes,</li>
        </ul>
        <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="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:brutzman@nps.edu" moz-do-not-send="true">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"
              moz-do-not-send="true">Joseph D Williams</a>; <a
              href="mailto:yottzumm@gmail.com" moz-do-not-send="true">John
              Carlson</a><br>
            <b>Cc: </b><a href="mailto:x3d-public@web3d.org"
              moz-do-not-send="true">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 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">-- <br>
            Don Brutzman  Naval Postgraduate School, Code USW/Br      
             <a class="moz-txt-link-abbreviated" 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"
              moz-do-not-send="true">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" moz-do-not-send="true">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"
              moz-do-not-send="true">John Carlson</a>; <a
              href="mailto:brutzman@nps.edu" moz-do-not-send="true">Brutzman,
              Donald (Don) (CIV)</a><br>
            <b>Cc: </b><a href="mailto:x3d-public@web3d.org"
              moz-do-not-send="true">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" moz-do-not-send="true">John
                Carlson</a><br>
              <b>Sent: </b>Sunday, October 24, 2021 11:44 AM<br>
              <b>To: </b><a href="mailto:brutzman@nps.edu"
                moz-do-not-send="true">Brutzman, Donald (Don) (CIV)</a><br>
              <b>Cc: </b><a href="mailto:x3d-public@web3d.org"
                moz-do-not-send="true">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"
              moz-do-not-send="true">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 class="moz-txt-link-rfc2396E" 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>
                  <ul style="margin-top:0in" type="disc">
                    <li class="MsoListParagraph"
                      style="margin-left:0in;mso-list:l0 level1 lfo1"><a class="moz-txt-link-freetext" 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>
                  </ul>
                  <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>
                  <ul style="margin-top:0in" type="disc">
                    <li class="MsoListParagraph"
                      style="margin-left:0in;mso-list:l0 level1 lfo1"><a class="moz-txt-link-freetext" 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>
                  </ul>
                  <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"> </span><o:p></o:p></p>
                  <p class="MsoNormal"><span
                      style="font-size:10.0pt;font-family:"Courier
                      New",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">-- </span><o:p></o:p></p>
                  <p class="MsoNormal"><span
                      style="font-size:10.0pt;font-family:"Courier
                      New",serif">Don Brutzman  Naval Postgraduate
                      School, Code USW/Br        <a class="moz-txt-link-abbreviated" 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">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">X3D graphics, virtual worlds,
                      navy robotics https://</span> <span
                      style="font-size:10.0pt;font-family:"Courier
                      New",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:.5in;margin-bottom:5.0pt;margin-left:.5in"> <o:p></o:p></p>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
    </blockquote>
  </body>
</html>