[x3d-public] x3d.py Re: Tree-to-tree transformation
John Carlson
yottzumm at gmail.com
Wed Aug 2 13:08:02 PDT 2023
Good luck with JSON output with x3d.py. WIP
My tendency is to convert to an object model, then write modules to output
for each encoding or binding. The problem is, these modules should share
more code.
That the crux. I’d like to see a solution.
I have 2 ECMAScript files generated from X3DUOM that are shared among all
my modules. But these need to be patched and I wrote a patch file for one
of them that doesn’t seem to work, so I patch in each module. This code is
the part that should be shared.
The 2 files are a map between field -> field type and another that maps a
parent->child relationship to method name. The latter requires patching
and is a heuristic.
John
On Wed, Aug 2, 2023 at 2:28 PM GPU Group <gpugroup at gmail.com> wrote:
> I haven't seen any import functions in x3d.py. The code isn't too hard to
> read. I think import is harder than export, because there are so many
> things that can be wrong with an import file, and it's not 1:1. But
> exporting --once you have a clean scenegraph-- is easy.
> I think the default brute force way to import is to load a file into its
> native tree -- html into an html tree, json into a json tree (like we load
> glTF), x3d into an xml tree. There are standard loaders for those. Is there
> a loader like that for vrml/classic/x3dv?
> Then traverse that tree and convert to x3d.py nodes as you go.
> -Doug
> Here's another example code of a standalone program using x3d.py I was
> working on recently.
>
> https://freewrl.sourceforge.io/tests/43_MIDI/88key/OLD/keyboard_gen_x3dpy.py
>
> - which shows a few more examples of the syntax x3d.py needs.
> - program didn't work due to hard thing: a ProtoInstance with SFNode in an
> MFNode fieldvalue. Hypotheses: H0: I'm not using the right syntax for
> x3d.py in that case H1: x3d.py has a bug.
> - But generally works pretty good once you figure out the syntax, class
> names, fields etc.
>
>
> On Wed, Aug 2, 2023 at 1:00 PM John Carlson <yottzumm at gmail.com> wrote:
>
>> I am thinking about X3d.py design.
>>
>> I was not aware if x3d.py had any input, clarification?
>>
>> I’m trying to read this:
>>
>> https://www.web3d.org/x3d/stylesheets/python/python.html
>>
>>
>> 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.
>>
>> I would propose stylesheets for each encoding, just like we have for
>> converting XML to various encodings, X3dTo….xslt.
>>
>> What’s the counter argument?
>>
>> I welcome any discussion, this is kind of the monolithic kernel versus
>> microkernel idea i realize. Monolithic won.
>>
>> This is also along the lines of HTMLElement, SVGElement, Node, and
>> Element in ECMAScript.
>>
>> 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.
>>
>> Is this somehow un-pythonic?
>>
>> John
>>
>> On Wed, Aug 2, 2023 at 1:21 PM John Carlson <yottzumm at gmail.com> wrote:
>>
>>> 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?
>>>
>>> John
>>>
>> _______________________________________________
>> x3d-public mailing list
>> x3d-public at web3d.org
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230802/a2d42ecd/attachment-0001.html>
More information about the x3d-public
mailing list