[x3d-public] Proposal for MetadataVersion (like MetadataSet), any number of dimensions

John Carlson yottzumm at gmail.com
Thu Apr 3 07:15:02 PDT 2025


Versioning might be a good addition to the JSON and XML, like adding a
version to elements, objects and arrays.  One can already add versions to
HTML elements, but there’s no way to BOM them yet, there’s no
inline/include versions for HTML that I know of

What this means for programming, IDK, seems like dependencies are already
handled.

If I could choose which BOM version of animations I want to use…, or
customize a web page by client.

I’m not sure if OpenUSD or glTF has this.

John

On Thu, Apr 3, 2025 at 8:57 AM John Carlson <yottzumm at gmail.com> wrote:

> I guess what I’m saying is, it would be nice to have
> npm/package.json/versioning/dependencies in X3D.
>
> John
>
> On Thu, Apr 3, 2025 at 8:51 AM John Carlson <yottzumm at gmail.com> wrote:
>
>> Understood, I just have a need to separate out normal MetadataSets from
>> versioned MetadataSets.  See proposal for adding optional versions
>> alongside DEF/USE/id/ROUTE.
>>
>> Of course, adding a hierarchical bill of materials (BOM) becomes relevant
>> once one has versions.
>>
>> Perhaps a MetadataSet can do a BOM.
>>
>> John
>> On Thu, Apr 3, 2025 at 8:38 AM Holger Seelig <holger.seelig at yahoo.de>
>> wrote:
>>
>>> The metadata system is actually already so universal that all data
>>> structures can be represented with it.
>>>
>>> Several versions of data can be displayed with MetadataSet, for example:
>>>
>>> MetadataSet {
>>>   name "versions"
>>>   value [
>>>     MetadataSet {
>>>       name "version A"
>>>       value MetadataInteger {
>>>         name "count"
>>>         value 3
>>>       }
>>>     }
>>>     MetadataSet {
>>>       name "version B"
>>>       value MetadataInteger {
>>>         name "count"
>>>         value 4
>>>       }
>>>     }
>>>   ]
>>> }
>>>
>>> Best regards,
>>> Holger
>>>
>>> --
>>> Holger Seelig
>>> Leipzig, Germany
>>>
>>> holger.seelig at yahoo.de
>>> https://create3000.github.io/x_ite/
>>>
>>> Am 03.04.2025 um 15:27 schrieb John Carlson via x3d-public <
>>> x3d-public at web3d.org>:
>>>
>>> One can also think about providing different versions to prototypes and
>>> protoinstances.
>>>
>>> Hmm!
>>>
>>> John
>>>
>>> On Thu, Apr 3, 2025 at 8:00 AM John Carlson <yottzumm at gmail.com> wrote:
>>>
>>>> This seems relevant:
>>>>
>>>> https://3drepo.com/wp-content/uploads/2022/02/xml3drepo.pdf
>>>>
>>>> I’m interested in versioning some objects, not necessarily a whole
>>>> document.   The question is, how to define a versioned collection of
>>>> objects in an X3D encoding, particularly JSON.
>>>>
>>>> I’m also interested in temporal logic for a 3D graph (humanoid),
>>>> potentially for HIPAA data.
>>>>
>>>> John
>>>>
>>>> On Thu, Apr 3, 2025 at 7:33 AM John Carlson <yottzumm at gmail.com> wrote:
>>>>
>>>>> I’m thinking that adding a sequence or index field to MetadataVersion
>>>>> may be appropriate, if not MetadataInteger..  Also, add a MetadataTime
>>>>> node/statement as well, but a generic set of fields for metadata rears its
>>>>> head  again, but I’m not doing it yet.
>>>>>
>>>>> Ideally, we could store events in a time series data store,
>>>>> potentially gathered from multiple sources.   Scripts might do that, but a
>>>>> way to replay events might be needed/ helpful.
>>>>>
>>>>> Traditional source code repositories are line oriented.  I’m aiming
>>>>> for a versioned object store, like recording animation.   If a program is
>>>>> an AST, I’m working on saving changes to the AST.
>>>>>
>>>>> Think about it.
>>>>>
>>>>> John
>>>>>
>>>>> On Wed, Apr 2, 2025 at 11:49 PM John Carlson <yottzumm at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> I want 2 more fields beyond MetadataSet, below.
>>>>>>
>>>>>> I want a MetadataVersion to call it out as different from MetadataSet.
>>>>>>
>>>>>> I realized that I can give the MetadataSet a "version" name.
>>>>>>
>>>>>> I also want to achieve a crontab-like or scheduling feature.
>>>>>>
>>>>>> Ideally, I could provide field-like nodes or statements for version information separate from axes.
>>>>>>
>>>>>> The idea is to create a vector-like object to maintain time series data
>>>>>>
>>>>>> and version data, and for building information, bill or materials, etc.  There may already be something in X3D,
>>>>>>
>>>>>> but I've not spotted it yet...CAD?
>>>>>>
>>>>>> The goal is to put this into a SQL database, such that I can input and output different versions of the JSON or JSON objects and arrays, watch the JSON change through time, etc.  The whole history of the document is stored.
>>>>>>
>>>>>>
>>>>>> If the axes field is unacceptable, can we have a version field in MetadataSet?
>>>>>>
>>>>>>
>>>>>> Basically, I need a way to separate version and dimensional data from ordinary MetadataSets.
>>>>>>
>>>>>> MetadataVersion: MetadataSet
>>>>>>
>>>>>> {
>>>>>>
>>>>>>   MFNode axes NULL [X3DMetadataObject]
>>>>>>
>>>>>>   MFString version '"0"'
>>>>>>
>>>>>> // Add everything from MetadataSet.
>>>>>>
>>>>>> // Default containerField is axes, not value or metadata.
>>>>>> }
>>>>>>
>>>>>> Possible axes are below:
>>>>>>
>>>>>> <MetadataVersion version='"A"'>
>>>>>>
>>>>>> <MetadataVersion version='"1" "b"'>
>>>>>>
>>>>>> <MetadataInteger name="count" value="3"/>
>>>>>>
>>>>>> <MetadataDouble  name="quantity" value="3.5"/>
>>>>>>
>>>>>> <MetadataString  name="unit" value='"mg"'/>
>>>>>>
>>>>>> <MetadataDouble name="mg" value="0.4"/>
>>>>>>
>>>>>> <MetadataDouble name="x" value="1.0"/>
>>>>>>
>>>>>> <MetadataDouble name="y" value="4.0"/>
>>>>>>
>>>>>> <MetadataDouble name="z" value="9.0"/>
>>>>>>
>>>>>> <MetadataInteger name="century" value="2000"/>
>>>>>>
>>>>>> <MetadataInteger name="score" value="20"/>
>>>>>>
>>>>>> <MetadataInteger name="decade" value="20"/>
>>>>>>
>>>>>> <MetadataInteger name="year" value="2025"/>
>>>>>>
>>>>>> <MetadataInteger name="decade" value="20"/>
>>>>>>
>>>>>> <MetadataInteger name="month" value="4"/>
>>>>>>
>>>>>> <MetadataInteger name="fortnight" value="3"/>
>>>>>>
>>>>>> <MetadataInteger name="week" value="6"/>
>>>>>>
>>>>>> <MetadataInteger name="day" value="2"/>
>>>>>>
>>>>>> <MetadataInteger name="pm" value="10"/>
>>>>>>
>>>>>> <MetadataInteger name="24" value="22"/>
>>>>>>
>>>>>> <MetadataInteger name="minute" value="51"/>
>>>>>>
>>>>>> <MetadataInteger name="second" value="0"/>
>>>>>>
>>>>>> <MetadataDouble name="subsecond" value="0.0025"/>
>>>>>>
>>>>>> </MetadataVersion>
>>>>>>
>>>>>> </MetadataVersion>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  _______________________________________________
>>> 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/20250403/fec1793e/attachment-0001.html>


More information about the x3d-public mailing list