<div dir="auto">An abstract SAI might be something written in SysML and stored in an appropriate file format.   Would it be appropriate to convert X3DUOM to SysML?   I don’t know what encoding SysML is written in.   How can we leverage SysML to produce additional bindings/skeletons?   I’m thinking of possibly using any SysML tools out there.   I agree our current tools are sufficient for the declarative tasks in front of us.</div><div dir="auto"><br></div><div dir="auto">John</div><div dir="auto"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 23, 2022 at 11:39 PM Brutzman, Donald (Don) (CIV) <brutzman@np> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word"><div class="m_8424861762968072158WordSection1"><p class="MsoNormal">Hi John.  Each programming language has a great variety of features and alternatives like you suggest.  It is easy to get overwhelmed by overlapping jargon and complexity.  The key qualities needed are clarity and re-usability, I think.  This provides us a straight path through all of it.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Our next working group focus will be using X3D4 Architecture for updating the abstract API defined by 19775-2 Scene Access Interface (SAI), and then further rippling across all our various programming-language specifications: Javascript Java Python C C++ C# whatever.  We will also update specification documents for file encodings that support JSON (subset of Javascript), EXI compression, Turtle, whatever.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Am expecting this to be pretty repetitive and do-able, which is good.  Thus an author’s X3D4 model can be consistent and clearly understandable and equivalently re-usable across all of these programming dialects and file formats.  Then gurus and plain folks can just re-use interactive X3D graphics models, which is what everyone really wants.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Classic stumbling blocks like “this programming language is better than that one” are perhaps simply boring, from a shared group perspective.  Let’s make the best of each world available and easy, however each set of experts want to do it.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Onward we go.  However you like to have fun… have fun with X3D!  8)<u></u><u></u></p><p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New""><u style="font-family:"Courier New""></u> <u style="font-family:"Courier New""></u></span></p><p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">all the best, Don<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p><p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">-- <u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p><p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank" style="font-family:"Courier New"">brutzman@nps.edu</a><u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p><p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p><p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">X3D graphics, virtual worlds, Navy robotics https://</span> <span style="font-size:10pt;font-family:"Courier New""><a href="http://faculty.nps.edu/brutzman" target="_blank" style="font-family:"Courier New"">faculty.nps.edu/brutzman</a><u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p></div></div><div lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word"><div class="m_8424861762968072158WordSection1"><p class="MsoNormal"><u></u> <u></u></p><div style="border-style:solid none none;border-top-width:1pt;padding:3pt 0in 0in;border-top-color:rgb(225,225,225)"><p class="MsoNormal"><b>From:</b> x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" target="_blank">x3d-public-bounces@web3d.org</a>> <b>On Behalf Of </b>John Carlson<br><b>Sent:</b> Thursday, June 23, 2022 7:03 PM<br><b>To:</b> X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br><b>Subject:</b> [x3d-public] Potentially important work: Java/Python/JavaScript encoding parsers<u></u><u></u></p></div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">We all know about SAI bindings and X3D encodings.<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Can I suggest an alternative?  Has anyone considered limited parsers for X3D Java/Python/JavaScript SAI examples?   That is, don’t use a full parser/compiler to read examples, use a limited one to reduce the attack surface of SAI examples.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I believe there is precedent for this.   In the early 1990’s Tim Sullivan of Independence technologies devised a way to either compile or interpret specialized apps, like CRUD forms.   It was called iScreen, and one could use a variety of toolkits, SunView, XView and Motif to write cross-platform apps.   I took the idea and we developed a programming language that could be written and read from flat files and C++ variables.   We had a primitive parser, or you could compile the program with a full blown C++ parser and link it to a virtual machine.   Today, Cameron Browne is using a “class grammar” in his Ludii project.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">The point is to treat X3D examples half like programs and half like program encodings.   One should be able to “compile” an encoding example to native  code.   This is probably a lot like JIT compiling.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Does X3D have a native JIT compiler?  Java?   Can we improve on code we produce from X3dToJava.xslt to do something even faster?   Can we strip away the object model, or compile the object model to native code?<u></u><u></u></p></div></div></div></blockquote></div></div>