Thanks all for the excellent explanations on the differences between archetypes and templates both from functional and technical point of view. I agree with Sebastian, these rather educational comments should be included in our FAQ page.
On the technical side, I will be glad to review the early draft of TEMPLATE_SPEC specification. It can even be implemented by the Java community to provide feedbacks for further refinement. Cheers, Rong On 10/22/07, Heath Frankel <heath.frankel at oceaninformatics.com> wrote: > > I haven't followed this whole thread, in particular I haven't seen Rong's > emails about templates and aggregation archetypes but I thought I would > provide a little input about the future of the template specifications. > > > > If you have a look at the Template Object Model as published as a draft in > R1.0.1 you will find two packages. The first is the TEMPLATE_SPEC > package. This provides a mechanism to specify a template using references > to archetypes and aggregating them together. In addition it provides a > series of constraint rules of various kinds to do things like constrain > cardinalities or specify default values. We have been recently comparing > this with the current proprietary template definition used within the Ocean > Template Designer and have found that there are very few required template > semantics that cannot be expressed using the R1.0.1 TEMPLATE_SPEC draft. > > > > The second model is the operational template model. We have actually > implemented this and have needed to augment and change this model slightly, > but the principles expressed in the R1.0.1 draft (a Template object with > definition specified by a C_COMPLEX_OBJECT and list of path and default > value pairs) has work fine. This implementation experience will be feed > back into the openEHR community for the next release. > > > > So in summary, Rong's premise that we can express templates using the AOM > is true, but what he calls an "aggregation archetype" is an operational > template. The TEMPLATE_SPEC is just another representation of the same > template where it references the existing archetype artefacts and constrains > them using rules. The TEMPLATE_SPEC is used to store and maintain the > template definition within an authoring environment while the operational > template is derived from the TEMPLATE_SPEC and is used within software at > run-time. > > > > We are just completing the testing of a new export function in the Ocean > Template Designer that generates an operational template from its > proprietary template definition. This operational template will be used for > all sort of purposes including the generation and validation of RM objects > that conform to the template. > > > > Hope this helps keep you up to date with progress in this area. If you > have interest in this area from the technical perspective I suggest that we > progress this further in a collaborative manner. > > > > > > Regards > > > > Heath > > > > Heath Frankel > Product Development Manager > > Ocean Informatics > > Ground Floor, 64 Hindmarsh Square > > Adelaide, SA, 5000 > > Australia > > > > ph: +61 (0)8 8223 3075 > > mb: +61 (0)412 030 741 > email: heath.frankel at oceaninformatics.com<heath.frankel at > oceaninformatics.biz> > > > > *From:* openehr-technical-bounces at openehr.org [mailto: > openehr-technical-bounces at openehr.org] *On Behalf Of *Lisa Thurston > *Sent:* Monday, 22 October 2007 1:32 PM > *To:* For openEHR technical discussions > *Subject:* Re: Multiple parents and max number of nested specialized > archetypes? > > > > Hi all > > I think that in the absence of a template specification it is indeed > difficult to see, from a technical viewpoint, the difference between > templates and "aggregation archetypes" (which is what I think Rong means by > "all the constraints done in templates can be done with archetypes"). > Heather and Hugh point out that such archetypes would not be universal in > their applicability and therefore less shareable. This still leaves a blurry > line between where the archetype ends and the template begins. There are > some features of templates that do make this line clear, however. > > The best example I can think of is default values (not to be confused with > assumed values). At some point you'll want to be able to say things like > "the default temperature scale is Centigrade" or "the default number of > foeti is 1". If the default value is free text or even a coded term, this > implies that the template is targeted to a specific language/culture, thus > NOT universal. Therefore the template specification, when it arrives, is > likely to include ways to define default values and the target > language/culture of the template. A template is language/culture-specific. > There is provision made for default values in the AOM's archetype constraint > model but the TYPE of a default is left open. Since the TYPE of these values > cannot be constrained by the AOM, default values can never be meaningfully > applied in ADL. Rather they can only be applied in the template (which knows > about the reference model and target language/culture of the data). This > connects to Rong's point about expressing template constraints in AOM > semantics. I fully agree the template specification should make use all > useful parts of the archetype constraint model or "build on top of" the AOM. > > If a template was ever suddenly considered to encapsulate a structure > which was universally (or near-universally) applicable, as Hugh suggests, > the default values would have to be discarded (as well as other > culture-specific structures or assumptions). And for the archetype to be > practical in a more universal sense, any items added to the ontology in the > template (in the template's target language) would probably need to be > translated into the other languages. Therein lies the distinction. > > Regards > Lisa > > -- > > Lisa Thurston > > Phone +61.8.8223.3075 > > Skype lisathurston > > > > Ocean Informatics Pty Ltd > > Ground floor, 64 Hindmarsh Square > > Adelaide SA 5000 > > > > http://www.oceaninformatics.com > > > Hugh Leslie wrote: > > Hi All > > I think that there is a clear need for a distinction between archetypes > (specialized or not) and templates and this relates mainly as Rong has said > as to their intended use. Archetypes are for interoperability and so they > need to be designed to be able to handle any usage of the particular concept > that they are modelling. This means that valid ranges in archetypes should > be set so that valid values will never fall outside the range. ie the bp > archetype sets the max systolic value to 1000. Archetypes should be kept as > generic as possible for the particular concept and are maximal data sets and > so should contain every concept that is required for any use of that > concept. > > Templates are specific use cases of a particular archetype or groups of > archetypes and can be constrained down for a particular usage ie for the bp > archetype, you may constrain it to just contain the systolic and diastolic > in an 'any event' and remove any other non mandatory elements. Templates > are useful for turning a generic archetype into something more specific > i.e. the laboratory archetype can be constrained in a template (or at > runtime) to be a specific type of laboratory result. This means that > instead of 5000 specific laboratory archetypes, we only need one generic and > probably 20 or 30 agreed specializations. Templates can also be used for > creating very complex documents such as an antenatal visit which is made up > of many different archetypes. Templates can be made up of nested archetypes > as well as nested templates all of which can be further constrained within > the limits of the archetypes used - this allows for the development of > concepts and documents with any arbitrary level of complexity that still > conform to archetypes. > > The question has been raised as to the difference between a specialization > of an archetype and a template and when to use each. There is no absolute > answer to this, but there is a need to examine the need for specializations > of archetypes to see whether the archetype is general enough to be used * > everywhere*. If it meets this test, then it is reasonable to create it > and submit it as an archetype, otherwise a template should be used > constraining some more general archetype. I think that over time it will > become clear that there are some templates that should become archetypes. > > regards Hugh > > > > Rong Chen wrote: > > > > On 10/19/07, *Andrew Patterson* <andrewpatto at gmail.com> wrote: > > > Templates are the main means of constraint on archetypes - > Specialisations are mainly > > about adding attributes. > > Sam, surely those attributes are available by virtue of the fact that the > parent > archetype says nothing about them. Something in an archetype can never > 'add' > an attribute. All archetypes can do is constrain. And the specialised > archetype > can never remove a constraint of the parent surely? > > For example, an observation archetype that says nothing about the > 'State' attribute > imposes no constraints on that attribute. A specialisation of the > archetype could > impose extra constraints on 'State', but can't add the attribute in. I > mean, there is > either a 'state' attribute there in the RM or not - the archetype > can't add attributes. > > Of course this all leads to a much more interesting theoretical question - > aside > from the immediate syntactic differences, what exactly is the difference > between > a template and a specialisation? > > > Andrew, this is indeed a very interesting question. It seems to me that > all the constraints done in templates can be done with archetypes. The > 'artificial' divide between templates and archetypes are probably to do with > their different intended uses. Archetypes are semantically coherent and are > supposed to be shared between systems. Templates are, on the other hand, > created to meet local specific requirements, therefore not supposed to be > shared across sites. But the line of distinct seems to be blurred. How local > is a local requirement and thus justify the use of a template? Can one start > with a template for local use, and later convert the template into an > archetype for shared use? > > Also if all constraints can be expressed using the AOM semantics (which is > already very generic and powerful), we perhaps could re-use the same object > model to represent template constraints, which would facilitate the > conversion between archetypes and templates. > > Cheers, > Rong > > _______________________________________________ > openEHR-technical mailing list > openEHR-technical at openehr.org > http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20071022/25829cad/attachment.html>