OpenAssetIO / OpenAssetIO-MediaCreation

OpenAssetIO extensions for use in the Media Creation industry.
Apache License 2.0
12 stars 10 forks source link

Investigate current state of MovieLabs Ontology #104

Open SamCrooksFoundry opened 2 months ago

SamCrooksFoundry commented 2 months ago

What

Document the current completeness of the Ontology and create a rough plan for incorporating into Media Creation Traits Library.

Why

The MovieLabs Ontology could be a good basis for the traits of Media Creation Library.

Acceptance Criteria

Add a comment to this issue with the status and plan.

feltech commented 21 hours ago

I made a brief start on this, with a view to de-risking https://github.com/OpenAssetIO/OpenAssetIO-TraitGen/issues/80 - i.e. since we'll be doing a lot of code changes to TraitGen, should we also make changes, or at least leave the door open to changes, that better support the OMC?

I've been investigating the current JSON schema description of the OMC, and hackily probing it with Python scripts to see how easy it is to pull out the info needed to generate traits/specifications (TLDR: its quite difficult).

With regard to the current state of the OMC. As of now the CG Assets work (e.g. geometry) isn't in there. However, there is a lot of overlap with existing MediaCreation traits.

Structure

A summary of the structure, with some callouts to interesting definitions I found:

Conversion

Conversion from OMC to traits/specification is a bit tricky.

The JSON schema makes heavy use of referencing ($ref) to compose "traits" together in a hierarchy. References are recursive in several cases

There are several traits that have multiple allowed alternative representations (oneOf, anyOf).

Some trait properties are arrays, which TraitGen doesn't currently support.

On hackily attempting (and largely failing) to parse this, I think a broad approach would be: