Differences between AOM 2 and AOM 1.4
Background
Description
The main differences in ADL 2 would be:
the node id numbering (topic of discussion on what to do with this!)
differential specialisation support. This includes
rules for specializing nodes
a specification how node ids work in specialization (same as in ADL 1.4, but now specified)
sibling node markers to allow changing order of nodes
new validation rules to ensure correct specialisation
every node now has a node id, including archetype roots and slots
nodes that did not have a node id in ADL 1.4, do not need a terminology entry
Little impact on OPT, some nodes will have node ids that did not in ADL 1.4
cardinality and existence default to what is defined in RM in differential archetypes (no change in OPT!)
domain types are removed in favour of tuples
archetype ids have minor and patch versions
native namespace support (its use is optional!)
TODO: I think some widely used metadata now has a field, but Im not sure, check
templates are now specialised archetypes
including archetype id format for template ids
template overlays allow for specialising included archetypes inside a template ADL file. They are also just archetypes
Possible Impact for RM:
specialised node ids for things changed in a template
template id format is different
always a local at-code present for external codes, with a term binding. Can be replaced in OPT to keep data + AOM the same.
OPT is just the AOM, no longer a separate format
couple of changes to the AOM, mainly archetype roots can have child nodes, and component terminologies
generating OPT 1.4 from ADL/AOM 2 should be possible (but not yet done)
Since OPT was already mainly AOM, this is a smaller change than it may appear to be at first glance
And then there's new features, such as:
terminology binding strength
grouping of nodes (AFAIK not supported by any tooling yet)
annotations section
including rm visibility (a bit like OPT hide on form) and attribute aliases for renaming attributes