Erik,
thanks for the pointer. I like this set of rules. It is not too 
different from the current draft identification spec 
<http://www.openehr.org/svn/specification/TRUNK/publishing/architecture/am/knowledge_id_system.pdf>,
 
and it would be easy to upgrade it to reflect the SemVer rules more 
faithfully. In the openEHR spec, major.minor.patch is referred to as 
version.revision.build. I seem to remember a discussion where we thought 
about renaming these. Do people think we should just stop mentioning 
version/revision/build with respect to archetypes? Or is it helpful to 
think of an openEHR 'revision' as being the same as a 'minor' version 
(personally I think yes)?

The only thing I don't like that much is going back to putting 'draft' 
etc on the end of the version string, but I guess it is so common, that 
we should just go with the flow.

If we can get a bit of consensus here, I can update this draft proposal 
to reflect it pretty quickly.

- t

On 14/06/2011 09:24, Erik Sundvall wrote:
> Hi!
>
> I came to think of this openEHR versioning discussion thread when I
> read about the Semantic Versioning initiative at http://semver.org/
>
> I think the reasoning there is very appropriate also for openEHR artifacts.
>
> The problem for openEHR might be that there are so many seemingly
> usable archetypes in the openEHR-hosted CKM that are neither modified
> for a long time nor officially tagged as "published". It is
> understandable if it's tempting to start using them in real systems
> already now. After all the alternative is to reinvent the wheel
> locally and is that really better? Perhaps there should be a time
> limit on how long artifacts in the CKM can stay at a version below
> 1.0.0?
>
> Perhaps things would become easier if we break the link between an
> artifact having "published" status (as in being CRB approved) and the
> fact that an artifact has a version over 1.0.0. That way systems can
> start using archetypes past 1.0.0 knowing that non-compatible changes
> will have new major version numbers (irrespective of if they are
> published or not).
>
> Keeping approval "badges" like "ARB published", "NHS approved" or "WHO
> 2011 Certified" separate from technical version numbers might be a
> good idea anyway... (Example: the first "ARB published" version of
> Archetype X might be 2.4.2 and the next time it's awarded an "ARB
> published" badge again might be when the ARB has time to get around to
> looking at version 2.8.4 or 7.8.9). Likely, agencies will want to
> approve sets of artifacts on a regular basis like tagging a number of
> mutually compatible archetypes and templates as "NHS 2012-Q1
> approved".
>
> The reasoning under #3 at http://semver.org/ (regarding 1.0.0beta1<
> 1.0.0beta2<  1.0.0.) might solve the "draft problem" discussed in this
> openEHR thread previously. (Provided that beta versions etc. don't get
> used/abused in live EHR systems.)
>
> The Semantic Versioning specification formalism is also machine
> processable in a nice way.
>
> Best regards,
> Erik Sundvall
> erik.sundvall at liu.se http://www.imt.liu.se/~erisu/  Tel: +46-13-286733
>
>
>
> On Thu, Apr 28, 2011 at 13:41, Thomas Beale
> <thomas.beale at oceaninformatics.com>  wrote:
>> On 28/04/2011 02:07, Heather Leslie wrote:
>>
>> Hi everyone,
>>
>> I think you are missing some of the further complexity here. There is a
>> definite need for differentiation between draft and published archetypes for
>> which a version number alone is not enough.
>> Currently we are talking only about v1 archetypes and how to manage them,
>> and to a degree it makes sense. We certainly considered using v0.x for
>> drafts but it doesn't solve the downstream problems - once a v1 archetype is
>> published, the non-breaking revisions will become v1.1, 1.2 etc. No problem
>> But when we make a breaking change it becomes v2 (or v3 or v4 or 125), but
>> it needs to be clear that it is v2 *draft* initially and not v2 *published*
>> until we have completed the neccessary collaborative reviews.
>>
>> There are two ways to look at this:
>>
>> A - 'draft' is only possible at the notional v0 or first version stage;
>> after initial publication, it can't be used, since the archetype is now 'in
>> the open'
>> B - it is possible to go back to 'draft' status when the major version
>> number is incremented on the basis that a new major version is a new
>> archetype, and authors need to be able to go back into 'initial development'
>> mode
>>
>> I can see arguments for both. What we need to decide on as a community is
>> what rule we want here, and to stick to it. If we can decide that, we can
>> document it and post it in a new draft of the identification specification.
>>
>> Diego's problem of knowing what archetype one is actually using is real and
>> needs to be solved. CKM does track revision numbers, but they are not part
>> of the version id, and you have to go into the revision history view to see
>> them. However the above-mentioned identification draft spec indicates a
>> system of referencing to do this such that an archetype whose id is
>> currently shown as openEHR-EHR-EVALUATION.diagnosis.v1 would be referenced
>> from data and / or software (i.e. in any operational context) as
>> openEHR-EHR-EVALUATION.diagnosis.v1.29.0, or in the future with a namespace
>> as well, i.e. org.openehr.ehr::openEHR-EHR-EVALUATION.diagnosis.v1.29.0
>>
>> Note that in this system of identification, if the final part of the
>> revision number is a '0', i.e. the '0' above in '1.29.0', it means that the
>> archetype is published; if it is anything else it is draft or some other
>> pre-release state (this corresponds with view B above). Changes in the
>> lifecycle state of the archetype are assumed to always cause an increment in
>> final number of the extended version id.
>>
>> A fuller idea of referencing archetypes from from data is described in this
>> spec, exemplified by the following:
>>
>> se.skl.epj::openEHR-EHR-EVALUATION.genetic_diagnosis.v1.12,  -- some Swedish
>> archetype
>> org.openehr.ehr::openEHR-EHR-EVALUATION.diagnosis.v1.29,   -- its parent,
>> the CKM diagnosis archetype
>> org.openehr.ehr::openEHR-EHR-EVALUATION.problem.v2.4       -- the ultimate
>> parent, the CKM problem archetype
>>
>> here the whole specialisation lineage has been included. The reason for
>> doing this are a) if the archetype lineage information is not shared between
>> sender and receiver (maybe the receiver can't see the Swedish CKM) and b) to
>> enable the receiver to know what archetypes could be used for querying the
>> data, assuming it was not going to use the most specialised one (e.g. the
>> data might have been sent from Sweden to Denmark, and the Danish system
>> doesn't use the Swedish genetic diagnosis archetype, but does use the other
>> two).
>>
>> Note that the version ids above only have 2 parts, because the final part is
>> always '0' for published archetypes (but it could be included for better
>> consistency).
>>
>> Assuming this kind of system was used, then supporting it requires some
>> changes in CKM to a) make the full version + revision id visible.
>>
>> Note that the 'identifiers' above are just strings. Even in a future where
>> Oids were used for identifying artefacts, you still need to generate the
>> above strings, or the equivalent, from meta-data - essentially as composite
>> keys (in the relational sense) so that comparisons can be made between
>> artefacts. (Or they might also be obtainable from some Oid-keyed meta-data
>> repository). In other words, embedding such strings in data isn't making a
>> statement about how archetypes are identified, it is just one useful means
>> of referencing archetypes.
>>
>> Finally, to be sure that the archetype you have in your environment is
>> indeed what you think it is, digital signing, or at least hashing, is needed
>> such that published archetypes are posted with their signatures alongside
>> for verification by accessing systems. MD5-based hashing is already in use
>> in some openEHR-based products, but it has not been properly described (an
>> initial idea is in section 8 of the identification spec doc).
>>
>> It seems that there is enough use of archetypes now to finalise many of
>> these issues, and describe them in a new issue of the identification
>> specification. We then need to work out an implementation plan, mostly to do
>> with changes to CKM to support the decisions.
>>
>> There are two ways to go about this:
>>
>> interested parties review the identification spec, and provide feedback
>> we work out the details on the technical list + wiki via discussion and then
>> update the spec.
>>
>> Key things that need decisions:
>>
>> do we go with starting at v0 or v1 (I still like v0 because it implies 'you
>> will most likely get burnt by using this archetype in a real system, but
>> have fun and tell us your experience')?
>> can we agree on the archetype life-cycle states and the idea that a change
>> in state always causes an increment in minor revision number?
>> how should archetypes be referenced from data?
>> what system of hashing and signing should be used?
>>
>> - thomas
>>
>>
>> _______________________________________________
>> openEHR-technical mailing list
>> openEHR-technical at openehr.org
>> http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical
>>
>>
> _______________________________________________
> openEHR-clinical mailing list
> openEHR-clinical at openehr.org
> http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-clinical
>


-- 
Ocean Informatics       *Thomas Beale
Chief Technology Officer, Ocean Informatics 
<http://www.oceaninformatics.com/>*

Chair Architectural Review Board, /open/EHR Foundation 
<http://www.openehr.org/>
Honorary Research Fellow, University College London 
<http://www.chime.ucl.ac.uk/>
Chartered IT Professional Fellow, BCS, British Computer Society 
<http://www.bcs.org.uk/>
Health IT blog <http://www.wolandscat.net/>


*
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20110616/85351743/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ocean_full_small.jpg
Type: image/jpeg
Size: 5828 bytes
Desc: not available
URL: 
<http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20110616/85351743/attachment.jpg>

Reply via email to