Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • renamed the 'ontology' section 'terminology' (and an old desire for many!)
  • 'id-codes' are now a real thing - i.e. where we had CLUSTER [at0004] we would now have CLUSTER [id4]
  • 'at-codes' are used only for value terms, not for identifier 'terms'
  • id-codes have their own id_definitions section in the archetype terminology
  • id-codes are mandatory on every node in an archetype
  • id-codes must have a definition in the terminology.id_definitions section if they are on a C_OBJECT under a container attribute; definitions for other id-codes is optional
  • the root id code is now id1, rather than at0000. Specialised archetypes have root ids always of the form id1.1, id1.1.1 etc.
    • because of this renumbering, conversion of an ADL 1.4 archetype involves adding 1 to the numbers of all at-codes used as id-codes (but not other at-codes), so actually CLUSTER[at0004] becomes CLUSTER[id5]
  • a single id9999 code is used for primitive terminal C_PRIMITIVE_OBJECTs because:
    • every node has to have an id
    • but terminal primitive constraints don't have the class or node id shown in ADL (since all types are lexically recognised), so noone no one cares about the id for these nodes
    • converting older ADL 1.4 archetypes is a pain if a new id-code has to be created for every terminal node
    • it doesn't break the rules - only paths have to be unique,  not individual node ids.
  • All archetype codes (id, at, ac codes) follow the standard regex (id|at|ac)(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))*
  • Archetype paths only contain id-codes, not at-codes
    • unless they happen to have some more complicated predicate e.g. items[id3 and value/defining_code='at12']
  • For the moment, only paths have to be unique, not individual node ids. 
    • right now, there dondoesn't seem to be any compelling reason to change this.

...

  • convert the 'ontology' section to be named 'terminology'
  • add the new id_definitions section into the archetype terminology
  • for all at-codes used as node ids, renumber and reformat them as follows:
    • at0000 => at1; id0000at0000.1 => id1.1 and so on
    • at000N => idN+1 e.g. at0003 => id4, at0022 => id23
  • move all id codes from the term_definitions section to the new id_definitions section
  • for all other at-codes, reformat by removing leading zeroes in the top level of the codes
  • interior nodes that are missing codes get codes in the 5000 range, i.e. new codes like id5001 are created
    • in specialised archetypes, the same nodes are matched and if no constraint overrides are detected, the same code is reused
  • leaf C_PRIMITIVE_OBJECT nodes always get the code id9999.

...