<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><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;}
/* 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;}
span.EmailStyle19
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@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:381291420;
        mso-list-template-ids:5412680;}
@list l0:level1
        {mso-level-tab-stop:-66.0pt;
        mso-level-number-position:left;
        margin-left:-66.0pt;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-tab-stop:-30.0pt;
        mso-level-number-position:left;
        margin-left:-30.0pt;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:6.0pt;
        mso-level-number-position:left;
        margin-left:6.0pt;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:42.0pt;
        mso-level-number-position:left;
        margin-left:42.0pt;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:78.0pt;
        mso-level-number-position:left;
        margin-left:78.0pt;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:114.0pt;
        mso-level-number-position:left;
        margin-left:114.0pt;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:150.0pt;
        mso-level-number-position:left;
        margin-left:150.0pt;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:186.0pt;
        mso-level-number-position:left;
        margin-left:186.0pt;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:222.0pt;
        mso-level-number-position:left;
        margin-left:222.0pt;
        text-indent:-.25in;}
@list l1
        {mso-list-id:1247575063;
        mso-list-type:hybrid;
        mso-list-template-ids:-331200658 -419776356 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@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:;
        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:;
        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:;
        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:;
        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:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>John, every single one of the ~4000 scenes created for Java X3DJSAIL and Python x3d.py X3DPSAIL and JSON includes statement and node creation.  They are designed to follow the X3D SAI, as Joe indicates.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Example abridged excerpts showing X3D, head and meta statements follow.  Inquiring eyes will note that they have essentially identical structure, just different syntax for each programming language.<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:l1 level1 lfo1'><b>X3D Example Archives: X3D4AM, X3D for Advanced Modeling, Hello World Scenes, Hello World<o:p></o:p></b></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l1 level1 lfo1'>https://x3dgraphics.com/examples/X3dForAdvancedModeling/HelloWorldScenes/HelloWorldIndex.html<o:p></o:p></li></ul><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><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 lfo1'>https://x3dgraphics.com/examples/X3dForAdvancedModeling/HelloWorldScenes/HelloWorld.java<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>  x3dModel = new X3D().setProfile(X3D.PROFILE_IMMERSIVE).setVersion(X3D.VERSION_3_3)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>  .setHead(new head()<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    .addComments(" Alternate encodings: VRML97, X3D ClassicVRML Encoding, X3D Compressed Binary Encoding (CBE), X3DOM, JSON ")<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("HelloWorld.x3d"))<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("Simple X3D model example: Hello World!"))<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("30 October 2000"))<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("11 June 2021")))<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>  .setScene(new Scene()<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    .addComments(" Example scene to illustrate X3D nodes and fields (XML elements and attributes) ")<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    .addChild(new WorldInfo().setInfo(new String[] {"Example scene to illustrate a simple X3D model"}).setTitle("Hello World!"))<o:p></o:p></span></p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><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 lfo1'>https://x3dgraphics.com/examples/X3dForAdvancedModeling/HelloWorldScenes/HelloWorld.python<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>newModel=X3D(profile='Immersive',version='3.3',<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>  head=head(<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    children=[<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    #  Alternate encodings: VRML97, X3D ClassicVRML Encoding, X3D Compressed Binary Encoding (CBE), X3DOM, JSON <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    meta(content='HelloWorld.x3d',name='title'),<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    meta(content='Simple X3D model example: Hello World!',name='description'),<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    meta(content='30 October 2000',name='created'),<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    meta(content='11 June 2021',name='modified')]),<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>  Scene=Scene(<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    #  Example scene to illustrate X3D nodes and fields (XML elements and attributes) <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    children=[<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>    WorldInfo(info=["Example scene to illustrate a simple X3D model"],title='Hello World!'),<o:p></o:p></span></p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><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 lfo1'>https://x3dgraphics.com/examples/X3dForAdvancedModeling/HelloWorldScenes/HelloWorld.json<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>{ "X3D": {<o:p></o:p></p><p class=MsoNormal>    "encoding":"UTF-8",<o:p></o:p></p><p class=MsoNormal>    "@profile":"Immersive",<o:p></o:p></p><p class=MsoNormal>    "@version":"3.3",<o:p></o:p></p><p class=MsoNormal>    "@xsd:noNamespaceSchemaLocation":<a href="https://www.web3d.org/specifications/x3d-3.3.xsd">https://www.web3d.org/specifications/x3d-3.3.xsd</a>,<o:p></o:p></p><p class=MsoNormal>    "JSON schema":<a href="https://www.web3d.org/specifications/x3d-4.0-JSONSchema.autogenerated.json">https://www.web3d.org/specifications/x3d-4.0-JSONSchema.autogenerated.json</a>,<o:p></o:p></p><p class=MsoNormal>    "head": {<o:p></o:p></p><p class=MsoNormal>        "-children":[<o:p></o:p></p><p class=MsoNormal>          {<o:p></o:p></p><p class=MsoNormal>            "#comment":"Alternate encodings: VRML97, X3D ClassicVRML Encoding, X3D Compressed Binary Encoding (CBE), X3DOM, JSON"<o:p></o:p></p><p class=MsoNormal>          }<o:p></o:p></p><p class=MsoNormal>        ],<o:p></o:p></p><p class=MsoNormal>        "meta": [<o:p></o:p></p><p class=MsoNormal>          {<o:p></o:p></p><p class=MsoNormal>            "@name":"title",<o:p></o:p></p><p class=MsoNormal>            "@content":"HelloWorld.x3d"<o:p></o:p></p><p class=MsoNormal>          },<o:p></o:p></p><p class=MsoNormal>          {<o:p></o:p></p><p class=MsoNormal>            "@name":"description",<o:p></o:p></p><p class=MsoNormal>            "@content":"Simple X3D model example: Hello World!"<o:p></o:p></p><p class=MsoNormal>          },<o:p></o:p></p><p class=MsoNormal>          {<o:p></o:p></p><p class=MsoNormal>            "@name":"created",<o:p></o:p></p><p class=MsoNormal>            "@content":"30 October 2000"<o:p></o:p></p><p class=MsoNormal>          },<o:p></o:p></p><p class=MsoNormal>          {<o:p></o:p></p><p class=MsoNormal>            "@name":"modified",<o:p></o:p></p><p class=MsoNormal>            "@content":"11 June 2021"<o:p></o:p></p><p class=MsoNormal>          }<o:p></o:p></p><p class=MsoNormal>        ]<o:p></o:p></p><p class=MsoNormal>    },<o:p></o:p></p><p class=MsoNormal>    "Scene": {<o:p></o:p></p><p class=MsoNormal>        "-children":[<o:p></o:p></p><p class=MsoNormal>          {<o:p></o:p></p><p class=MsoNormal>            "#comment":"Example scene to illustrate X3D nodes and fields (XML elements and attributes)"<o:p></o:p></p><p class=MsoNormal>          },<o:p></o:p></p><p class=MsoNormal>          { "WorldInfo":<o:p></o:p></p><p class=MsoNormal>            {<o:p></o:p></p><p class=MsoNormal>              "@info":["Example scene to illustrate a simple X3D model"],<o:p></o:p></p><p class=MsoNormal>              "@title":"Hello World!"<o:p></o:p></p><p class=MsoNormal>            }<o:p></o:p></p><p class=MsoNormal>          },<o:p></o:p></p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt'>plus ça change…<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt'>https://en.wiktionary.org/wiki/plus_ça_change<o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:1.2pt;margin-left:74.4pt;text-indent:-.25in;mso-list:l0 level1 lfo2;background:white'><![if !supportLists]><span style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#202122'><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>      </span></span></span><![endif]><span style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#202122'>(<i><a href="https://en.wiktionary.org/wiki/Appendix:Glossary#literally" title="Appendix:Glossary"><span style='color:#0645AD'>literally</span></a></i>) The more it changes, the more it's the same thing (sometimes loosely translated as <a href="https://en.wiktionary.org/wiki/the_more_things_change,_the_more_they_stay_the_same" title="the more things change, the more they stay the same"><span style='color:#0645AD'>the more things change, the more they stay the same</span></a>).<o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:1.2pt;margin-left:74.4pt;text-indent:-.25in;mso-list:l0 level1 lfo2;background:white'><![if !supportLists]><span style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#202122'><span style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>      </span></span></span><![endif]><span style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#202122'>Although the outward appearance may change, fundamentals are constant.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, Navy robotics https://</span> <span style='font-size:10.0pt;font-family:"Courier New"'>faculty.nps.edu/brutzman<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From:</b> x3d-public <x3d-public-bounces@web3d.org> <b>On Behalf Of </b>Joseph D Williams<br><b>Sent:</b> Wednesday, January 25, 2023 9:48 AM<br><b>To:</b> John Carlson <yottzumm@gmail.com>; X3D Graphics public mailing list <x3d-public@web3d.org><br><b>Subject:</b> Re: [x3d-public] createStatement for SAI<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Please look at the X3D Abstract SAI spec.<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:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Tuesday, January 24, 2023 7:52 PM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>[x3d-public] createStatement for SAI<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>How is statement creation done in SAI?  How similar is it to node creation?<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Thanks,<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>John<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>