<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>See if there’s a setDomDocument(); somewhere, there is a getDomDocument()</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:andreasplesch@gmail.com">Andreas Plesch</a><br><b>Sent: </b>Thursday, July 20, 2017 6:02 PM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Cc: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a>; <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><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Thu, Jul 20, 2017 at 4:31 PM, Don Brutzman <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>> wrote:</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'><p class=MsoNormal style='margin-left:4.8pt'>On 7/20/2017 12:39 PM, Andreas Plesch wrote:</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'><p class=MsoNormal style='margin-left:9.6pt'><br>On Thu, Jul 20, 2017 at 3:13 PM, John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a> <mailto:<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>>> wrote:<br><br>    There is a node tree in X3DJSAIL.   There’s two parts to X3DJSAIL, jsail (the implementation) and sai (the interface)</p></blockquote><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:4.8pt'><br>correct, as are your other points.<br><br>There is some usage of DOM internally to the library, particularly when using Java reflection, but none of that is exposed to the programmer.<br><br>Conceivably we could add some form of DOM import and export for X3DJSAIL object trees.<br><br>        Conversions<br>        <a href="http://www.web3d.org/x3d/stylesheets/java/X3DJSAIL.html#Conversions" target="_blank">http://www.web3d.org/x3d/stylesheets/java/X3DJSAIL.html#Conversions</a></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'><p class=MsoNormal style='margin-left:9.6pt'>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 ?</p></blockquote><p class=MsoNormal style='margin-left:4.8pt'><br>Actually no...  I have implemented the X3D Java SAI interfaces quite strictly, and then added the jsail concrete classes using them.</p></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Ok. I was getting the impression that it had to be different due to the DEF/USE, Routes, statement discussions. SAI has importDocument</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal> <a href="http://www.web3d.org/documents/specifications/19777-2/V3.3/Part2/functions.html#importDocument">http://www.web3d.org/documents/specifications/19777-2/V3.3/Part2/functions.html#importDocument</a></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>where document is a DOM node org.w3c.dom.Node . For cobweb-dom, this is the main function to get the initial scene from the DOM into the x3d browser. Into where would X3DJSAIL import the DOM ? What is the equivalent to the 'Browser' ?</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'><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:4.8pt'><br>Nevertheless have found a number of omissions and contradictions in the Java SAI language binding for X3D.  Issues list maintained on X3DJSAIL page at:<br><br>============================================================================<br>Specification Changes under Consideration<br><a href="http://www.web3d.org/x3d/stylesheets/java/X3DJSAIL.html#SpecificationChanges" target="_blank">http://www.web3d.org/x3d/stylesheets/java/X3DJSAIL.html#SpecificationChanges</a><br><br>*  X3dJavaSpecificationChangesAndIssues.txt lists noted problems with the governing specification X3D Java SAI Language Bindings (ISO/IEC 19777-2).<br>   <a href="http://www.web3d.org/x3d/stylesheets/java/X3dJavaSpecificationChangesAndIssues.txt" target="_blank">http://www.web3d.org/x3d/stylesheets/java/X3dJavaSpecificationChangesAndIssues.txt</a></p></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Looking at these discoveries. I assume the referenced v3.0 spec. is substantially identical to v3.3 ? </p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal> </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'><p class=MsoNormal style='margin-left:4.8pt'>*  Specification prose is needed to define necessary support for DEF, USE and class attributes. </p></blockquote><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:4.8pt'>*  Consider appropriate specification issues for abstract SAI and corresponding encoding specifications.<br>*  Not needed: adding Annex D Java SAI Concrete Classes for standalone scene programming, since other approaches can be accomplished compatibly.<br>*  Mantis issue tracker keeps track of details, alternatives and resolution for each specification issue.<br>*  Web3D Consortium github (member-only access) is used to maintain editors-draft Web3D specifications in version control.<br>============================================================================</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'><p class=MsoNormal style='margin-left:9.6pt'>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 ?</p></blockquote><p class=MsoNormal style='margin-left:4.8pt'><br>Yes.</p></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Ah, good, I am on the right track. There could be a shortcut in the sequence above if the x3d browser would be able to directly process the object graph into the internal scene graph. Let's assume xj3d could do that. I think that would include replacing USE nodes with references to their DEF nodes ? So the scene graph would not actually have a need for a USE property. Another step would be compiling Routes into a fromNodeField-toNodeField map. So the scene graph would not have a need to keep Route definitions at certain tree path locations. This is why I thought there is a difference between X3DJSAIL dealing with an object graph and SAI dealing with the actual X3D scene graph and state.</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>-Andreas</p></div><div><p class=MsoNormal><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><div><p class=MsoNormal><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><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>