Differences between AOM 2 and AOM 1.4

Background

Original change list here.

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