Dear all,
as some at least have noticed from previous posts, there is the
intention to move toward what we call 'source form' or 'differential'
archetypes, whereby archetypes contain only changes with respect to a
specialisation parent archetype. This move has no effect on the majority
of archetypes (since they are top-level archetypes) but specialised
archetypes are changed from being 'flat-form' archetypes (where
inherited, unchanged elements are repeated in the descendant) to
differential form, where they contain only new or redefined elements
with respect to the parent archetype. Doing this makes specialised
archetypes sustainable to maintain.
So far in the reference parser, we have implemented a fair bit of the
specialisatoin semantics, and are generating .adls (source form) files
from the existing .adl files. However, clearly in the future the aim is
to be authoring from the outset in .adls form. The Archetype Editor has
not had this capability added, but there are places where we want to do
this anyway.
As a result, we have the situation where for some time both .adl and
.adls files will be the authored form of an archetype, and therefore,
both .adls and .ald files may be generated - the former from current
.adl files, and the latter from de novo authoring in .adls (or an XML
equivalent).
My proposal is to add a single flag to the .adl grammar that indicates
whether an archetype, in either format, is 'generated', meaning was it
machine generated from the other form. If this flag is not set, it
means that the file is the original authored form of an archetype. The
actual form of the flag would be in the first line, in the bracketed
part after the 'archetype' keyword. For example, in the archetype at
http://svn.openehr.org/knowledge/archetypes/dev/adl/openehr/ehr/entry/observation/openEHR-EHR-OBSERVATION.ecg.v1draft.html
the first line is:
archetype (adl_version=1.4)
my proposal would be that if it were generated, it would be as follows:
archetype (adl_version=1.4; generated)
in a similar manner to the 'controlled' indicator defined in section
8.3.2 of the ADL 1.4 specification
(http://www.openehr.org/releases/1.0.1/architecture/am/adl.pdf). The
equivalent change would be made in the openEHR archetype XSD to allow
XML archetypes to include this flag.
This allows tools to know which form can safely be discarded, allowing
bugs and development to continue on the tools themselves. To move
forward on this, we would need the agreement of all archetype toolbuilders.
all feedback welcome.