<div dir="auto">For example, compare the hand-coded design of x3djsonld.py:</div><div dir="auto"><br><div dir="auto"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/x3djsonld.py">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/x3djsonld.py</a></div><div dir="auto"><br></div><div dir="auto">to the possibly synthesized from X3DUOM design:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/x3dinput.py">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/x3dinput.py</a></div><div dir="auto"><br></div><div dir="auto">I know we chose the former initially, but I’m preferring program synthesis from X3DUOM at this point to very difficult hand coding to produce python which is not even based on X3DUOM!  I realize that program synthesis will be of equal or greater complexity.</div><div dir="auto"><br></div><div dir="auto">So, I’m going to proceed with yet another program synthesis project in Python.  I know it will probably be a mess!  Jeff H. is welcome to join me!   There are many examples to draw from, including previous Python library generators for X3D!</div><div dir="auto"><br></div><div dir="auto">It’s probably up in the air as to which one is better.  They probably both are equivalently difficult to program and maintain.   One follows X3DUOM and the other doesn’t.</div><div dir="auto"><br></div><div dir="auto">John </div><br></div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 2, 2023 at 1:59 PM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> 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 dir="auto">I am thinking about X3d.py design.</div><div dir="auto"><br></div><div dir="auto">I was not aware if x3d.py had any input, clarification?</div><div dir="auto"><br></div><div dir="auto">I’m trying to read this:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://www.web3d.org/x3d/stylesheets/python/python.html" target="_blank">https://www.web3d.org/x3d/stylesheets/python/python.html</a></div><br></div><div dir="auto"><br></div><div dir="auto">It would seem appropriate to have a core X3D abstract python model, call it the python object model or POM, and then add what i call python “view,” “presentation,” or “encoding” models for XML, JSON, X3DOM, VRML, and X_ITE …input/output, perhaps generated by more than one stylesheet.  I think stuffing the encodings into one package is not the right design.  We should follow the standards way of separating abstract architecture from encoding and binding.</div><div dir="auto"><br></div><div dir="auto">I would propose stylesheets for each encoding,  just like we have for converting XML to various encodings, X3dTo….xslt.</div><div dir="auto"><br></div><div dir="auto">What’s the counter argument?</div><div dir="auto"><br></div><div dir="auto">I welcome any discussion, this is kind of the monolithic kernel versus microkernel idea i realize.  Monolithic won.</div><div dir="auto"><br></div><div dir="auto">This is also along the lines of HTMLElement, SVGElement, Node, and Element in ECMAScript.</div><div dir="auto"><br></div><div dir="auto">You can still stuff it all in the same x3d.py file, one can also support XML(), VRML() methods on the abstract model that defer or delegate to encoding models.  I don’t think anything breaks.</div><div dir="auto"><br></div><div dir="auto">Is this somehow un-pythonic?</div><div dir="auto"><br></div><div dir="auto">John </div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 2, 2023 at 1:21 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> 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)">Does anyone know good tools for tree-to-tree transformation?  I know ANTLR and XML/XSL/XSLT.  I guess this is pretty much a compiler task.  Are there tools for Classic VRML and JSON?  Python/Perl/ECMAScrpt?<div dir="auto"><br></div><div dir="auto">John</div>
</blockquote></div></div>
</blockquote></div></div>