<html 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:"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;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.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;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>From looking at the Java SAI I found online, I would say that X3DJSAIL and X3D Java SAI serve different purposes.  One is used for importing XML, building a scenegraph, and exporting X3D encodings, and the other is for manipulating the scenegraph (SAI) I believe that X3DJSAIL incorporates many features of X3D-Edit and Xj3D not found in Java SAI (but I could be missing something big in Java SAI, I just glanced at it).</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</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>Thursday, July 20, 2017 4:03 PM<br><b>To: </b><a href="mailto:andreasplesch@gmail.com">Andreas Plesch</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>RE: [x3d-public] setUSE in X3DJSAIL. Impact on X3DJSONLD.</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Don would have to weight in.  From what I’ve seen of Abstract SAI, it’s very different from sai. I haven’t found a good link for Java SAI.  I don’t know anything about the javascript SAI, except what Cobweb provides, I haven’t studied in in great detail. I’m more of a DOM/JSON programmer.  Think of X3DJSAIL jsail almost like POJOs or DTOs with exporters, with a big fancy converter object at the root of the object graph in jsail, and an XML loader sticking off the side.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I think X3DJSAIL is intended to speed up XML processing for Xj3D, so it doesn’t have to go through VRML first, and to provide more validation than what Xj3D provides.  Also, it integrates the conversions found in X3D-Edit. So I think it’s going to be used as the common substrate between X3D-Edit and Xj3D.  That’s my best guess. XML is used for output too.  Either jsail or sai will be used to maninpulate the scenegraph (or an implementation of jsail that does rendering).  I’m imagining X3DJSAIL being the Model, and one needs to add the View and the Controller (MVC terms) from Xj3D to have a functioning X3D browser.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If someone has an online copy of the use cases for X3DJSAIL besides conversion and marshalling/unmarshalling, I’d like to know them.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10<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:andreasplesch@gmail.com">Andreas Plesch</a><br><b>Sent: </b>Thursday, July 20, 2017 3:39 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] setUSE in X3DJSAIL. Impact on X3DJSONLD.<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Thu, Jul 20, 2017 at 3:13 PM, John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='margin-left:.2in'>There is a node tree in X3DJSAIL.   There’s two parts to X3DJSAIL, jsail (the implementation) and sai (the interface)<o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Ok. I think sai (lowercase), the interface, defined in X3DJSAIL, is quite different from the SAI defined in the standard (abstract, java or javascript), right ?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>My mental model currently is: Use X3DJSAIL to conveniently compose and manage an (X3D looking) object graph (a 'scene'). The object graph can be serialized (written out) to XML (strings). The XML is processed by the X3D browser to an internal scene graph with state. Use SAI to directly manipulate the internal scene graph. Does that sound right ?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Hoping to clarify and avoid misunderstandings,<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>-Andreas<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='margin-left:.2in'><b>From: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a><br><b>Sent: </b>Thursday, July 20, 2017 2:39 PM<br><b>To: </b><a href="mailto:andreasplesch@gmail.com" target="_blank">Andreas Plesch</a>; <a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>RE: [x3d-public] setUSE in X3DJSAIL. Impact on X3DJSONLD.<o:p></o:p></p></div><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p><p class=MsoNormal style='margin-left:.2in'>As far as I know, there is no DOM in X3DJSAIL except for processing XML input into the “scene” through reflection as defined with typesafe instances of concrete classes (not in SAI, but likely implementations of SAI).   XML output is done with strings.<o:p></o:p></p><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p><p class=MsoNormal style='margin-left:.2in'>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a> for Windows 10<o:p></o:p></p><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='margin-left:.2in'><b>From: </b><a href="mailto:andreasplesch@gmail.com" target="_blank">Andreas Plesch</a><br><b>Sent: </b>Thursday, July 20, 2017 2:35 PM<br><b>To: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] setUSE in X3DJSAIL. Impact on X3DJSONLD.<o:p></o:p></p></div><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p><div><div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:33.6pt'><br>Date: Thu, 20 Jul 2017 12:18:53 -0400<br>From: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br><br>As far as I know, there is no ?parents? property on a node in DOM, so this whole discussion is rather moot until that changes. If you don?t have parents, then there?s no way to get to one or more of your parents from a child node (not necessarily needed, but?)<o:p></o:p></p></blockquote><div><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'>There is parentNode:<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p></div><div><div><p class=MsoNormal style='margin-left:.2in'><a href="https://developer.mozilla.org/en-US/docs/Web/API/Node/parentNode" target="_blank">https://developer.mozilla.org/en-US/docs/Web/API/Node/parentNode</a><o:p></o:p></p></div></div><div><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'>But the property is readonly because there can be only one parent for a node.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'>x3dom/cobweb do not use the DOM for storing the x3d scene graph. They use javascript objects, for this reason among others. Additionally, there is a SAI service importDOM (or so) to help with bridging.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'>I am not sure if I am following the discussion completely. One key seems to be to be careful in distinguishing in nomenclature (and praxis) the abstract scene graph (including the runtime state) - accessible via standardized SAI - from the (XML) node tree. Is perhaps X3DJSAIL a bit of a misnomer somewhat conflating SAI services with node tree manipulation ?<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p></div></div></div></div><p class=MsoNormal style='margin-left:.2in'>Andreas<o:p></o:p></p><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p><p class=MsoNormal style='margin-left:.2in'> <o:p></o:p></p></div></div></blockquote></div><p class=MsoNormal><br><br clear=all><o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>-- <o:p></o:p></p></div></div><p class=MsoNormal>Andreas Plesch<br>39 Barbara Rd.<br>Waltham, MA 02453<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>