<div dir="auto">I am merely talking of common fields between node and statements sharing a common definition. Bounding box fields are one example.</div><div dir="auto"><br></div><div dir="auto">I think you already said the above.</div><div dir="auto"><br></div><div dir="auto">The @rotation is a good example too.</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 5, 2021 at 12:31 AM Don Brutzman <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</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)">John, compression is likely useless because we can't develop a schema if it is encoded in binary.<br>
<br>
The key to making such a schema smaller lies in whether JSON Schema is object oriented or not.<br>
<br>
If object oriented, then all of the shared strongly typed field information doesn't have to appear multiple times.<br>
<br>
X3DUOM includes the entire X3D inheritance hierarchy so this can be automated.<br>
<br>
After searching I think the descriptions you seek can be found at (of all places) the JSON schema documentation:<br>
<br>
* Understanding JSON Schema 7.0, Structuring a complex schema<br>
<a href="https://json-schema.org/understanding-json-schema/structuring.html#structuring-a-complex-schema" rel="noreferrer" target="_blank">https://json-schema.org/understanding-json-schema/structuring.html#structuring-a-complex-schema</a><br>
<br>
Again the key here is to not perform brute-force heroics on a gigantic schema by hand.<br>
<br>
Instead make a series of JSON schemas of gradually increasing expressive power that validate something extremely simple, like HelloTriangle.json or Hello World.json models.<br>
<br>
* X3D Example Archives: X3D4WA, X3D for Web Authors, Chapter 01 Technical Overview, Hello Triangle<br>
<a href="https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloTriangleIndex.html" rel="noreferrer" target="_blank">https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloTriangleIndex.html</a><br>
<a href="https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloTriangle.json" rel="noreferrer" target="_blank">https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloTriangle.json</a><br>
<a href="https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloTriangle.x3d" rel="noreferrer" target="_blank">https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloTriangle.x3d</a><br>
<br>
On 4/3/2021 10:56 PM, John Carlson wrote:<br>
> <br>
> I think we can make some effort to reduce the size of the X3D JSON<br>
> auto-generated schema (especially 4.0). There is a lot of duplicated<br>
> stuff there, I think.<br>
> <br>
> We can look to Roy's schema for inspiration, likely.<br>
> <br>
> es6x3d/x3d.js grew by an order of magnitude just by sitting there. I<br>
> think it's too big now.<br>
> <br>
> Is there an optimizer person available?<br>
> <br>
> Thanks!<br>
> <br>
> John<br>
<br>
all the best, Don<br>
-- <br>
Don Brutzman Naval Postgraduate School, Code USW/Br <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><br>
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149<br>
X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" rel="noreferrer" target="_blank">http://faculty.nps.edu/brutzman</a><br>
</blockquote></div></div>