Thomas et al :

As David acknowledges (below) your comments provide food for thought and 
further exploration. I am travelling April 8-24 (family gathering in
Australia) and will pick up on this thread whence I return.

carl


---------------------------- Original Message ----------------------------
Subject: Re: likes CAM [Fwd: Re: [bcm] Todays meeting [Fwd: Re: OASIS


I do like the possiblity here of mapping from OCL;
actually this kinda validates our approach - since
the scripting can support higher level representation
models well - that can then use production rules
to create the various sections of the CAM template.

Yes -  the external mapping is an after thought - mostly to
satisfy local formatting needs - and yes - you can make that
an <include> so its not part of the main mapping - just optional,
and that fixes the re-use issues.

It's one of those ugly - people will ask for it - so we added it
(specifically for a UPU address label application) things.

The way we do repeating groups is pretty clever - since we
only need to call these out for extended parent/child linkages
(this is one aspect I "borrowed" from the XML mapper I
engineered) - otherwise the engine can follow an intuitive
flow guided by the reference structure.  There's an @
mechanism to direct that as needed.

We've not been to strict with typing in the structure -
since you can use functions or masks to direct that
behaviour - and also often some fields may need
mixed typing - eg 'NONE' or '[value]', etc.

Anyway - clearly good basis to explore further.

I think he will like my VisualScript templates for
CAM - and also the XML business noun structure
for registry.

Also - he should review the SCM team work on OWL....

Cheers, DW



> ---------------------------- Original Message
---------------------------- Subject: Re: [bcm] Todays meeting [Fwd: Re:
OASIS CAM / BCM]
> From:    "Thomas Beale" <thomas at deepthought.com.au>
> Date:    Mon, April 4, 2005 8:54 pm
> To:      openehr-technical at openehr.org
> --------------------------------------------------------------------------
>
>         Carl Mattocks wrote:    David (Forslund) et Al :  FYI - We
> informally discussed your comments at the BCM TC meeting today.
> There was  general agreement that it would be good if we could
> work towards a cooperation that would result in a common
> definition of how Templates &amp; Archetypes support e-Health and other
e-business services.      I have had a quick look at the
> main CAM specification. I hope you will excuse me making my
> observations in the form of comparisons with ADL and other
> formalisms - ADL and OWL are my main thinking reference points
> these days....
>  General My first comment is that it is very good to see someone else
> doing some detailed thinking in this area - coming no doubt from a
different background to our openEHR efforts. Cross-analysing each
others' work will only lead to better work in my opinion. Now to the
details....
>
>  I think it would be far preferable not to use XML in the specification or
> document - it's very hard for humans to read, and it obscures the
formalism that is being presented. It also makes it harder to see how to
use it in non-XML formalisms. Having said that, I am glad to see that
Xpaths are being used to reference things.
>
>  A general approach is to define an abstract formalism that embodies
> exactly what you want, without being messed around by XML. See W3C OWL
for an example (or openEHR ADL for that matter). I would also prefer to
see a stronger binding to object-oriented semantics such as UML (well,
we can debate about how good that is, some other day...). XML-schema is
generally regarded only as an approximation to OO. One of the reasons to
go with "real OO" is that we can not only have a syntax (ADL -
>
http://www.openehr.org/repositories/spec-dev/latest/publishing/architecture/am/adl.pdf)
> but we can also have a direct equivalent object model of archetypes (AOM -
>
http://www.openehr.org/repositories/spec-dev/latest/publishing/architecture/am/aom.pdf),
> which is what programmers need to work with.
>
>  Having reviewed the 5 sections of a CAM document, I have come to the
> conclusion that the final section - External content mapping - does not
belong; see comments below; I think this part is overambitious in a
specification which is otherwise pretty clear.
>
>  Otherwise, there is a lot in common with our work, and I look forward to
> deeper mutual exploration of the work we are doing. Assembly Section
>   As far as I can tell, each CAM document indicates the model (assembly)
> it constrains, in the "assembly" section. openEHR ADL simply references
the model being used, in the archetyped identifier, e.g.
> openEHR-EHR-ENTRY.bp_measurement.v1, meaning "this is an archetype of
the ENTRY concept from the openEHR EHR information model".
>
>  It seems that in the assembly structure there are template-like places
> where data could be put at runtime, marked by %%, e.g.
>                  %% %% WorldCupSoccer %%         %%
>  One problem I have with this is that there is no typing on the data; how
> do you ensure "UnitPrice" is a monetary amount?
>
>  Business Rules I think this section is the equivalent of the main body of
> the archetype. It uses a functional syntax to constrain structure, e.g.
>            I suspect that the predicates of CAM might map fairly well to
> the cADL semantics in ADL. One thing I cannot see in CAM is how
> multiple repeated members are dealt with, e.g. multiple
> ELEMENTs in a CLUSTER (openEHR model). We deal with this by
> having an identification system which identifies every node in
> the archetype structure - which is more like an instance
> structure than a class structure. To see an example, see
>
http://www.openehr.org/repositories/archetype-dev/latest/adl/archetypes/openehr/ehr/entry/observation/openEHR-EHR-OBSERVATION.apgar.v1.html.
> You can see multiple ELEMENT children, identified as [at0005]
> (heart rate), [at0009] (breathing) etc, of the LIST parent,
> identified with [at0001]. In ADL we can use paths to access any
> such repeated element anywhere in the tree, enabling the
> archetype writer to make statements about each _instance_ of
> ELEMENT under its parent. I don't yet see how CAM deals with
> this requirement; although, thinking about it, Xpath allows one
> to reference the n-th child of a parent, so maybe it is done
> like that. One problem with that is it requires a certain
> ordering for the constraints to apply to the correct items. It
> may be that IDvalues are used to do this, but I can't quite see
> it.
>
>  UIDrefeences seem to be something like a 'coded term/expression' which
> refers to a value set, e.g. the possible set of terms which are names of
diseases affecting the liver, or blood types etc.
>
>  I noticed also the predicate SetValue(); I take the meaning of this to be
> setting default values. The equivalent of this in ADL is actually in the
templates - over the years of work on archetypes we have discovered that
setting default values is almost always a local, and putting it in
archetypes prevents the archetypes from being properly re-usable. Our
forthcoming template specification shows how to set default values.
>
>  Another point of similarity &amp; departure is section 4.3.1 - Xpath
> comparator functions. ADL does not currently use specialist functions,
since it just relies on the object-meta model, i.e. it can reference a
named property of any class in a UML model, and make a comparison
statement based on that. For example, you can state that the range of a
QUANTITY.magnitude is 0..150. String pattern matching is done using the
PERL style of regular expressions. Operators like count() we provide via
'cardinality'. Other arbitrary operators aren't provided, and we don't
think are likely to be needed in most cases. However, there will be a
way to make comparisons with functions defined in the given UML model,
e.g. something like "Person.age() > 40".
>
>  The ADL equivalent of the CAM mask syntax for numerics is the regular
> expression and/or the ability to constrain object properties like
precision. I can see that some people might prefer the dBase-ish mask
syntax though - it is easier to read for simpler cases; REs do give you
more power, but I admit it might be debatable as to whether you ever
need it. For date/times, ADL uses only ISO8601 format, and bases its
> constraint patterns on ISO8601. I have to say I am in favour of one
standardised way to do dates/times; the local preferences should always
be translated at the GUI...Also one of the things we handle with the ADL
date/time patterns is partial date/times which are ubiquitous in
medicine (and I would argue everyewhere else;-).
>
>  Content Referencing I think that the content referencing part looks
> interesting, e.g.
>      We have been searching for a while for proper ways to do this, and I
> suspect that there is some thinking here we could use; I do find it
annoying to have to mentally try and work out the formalism by
> reading raw XML though!  The general equivalence with ADL is the
'ontology' part of an ADL archetype.
>
>  The general problem being dealt with here is the interface between
> archetypes/templates and other knowledge resources, ontologies and
reference databases. As far as I know, no-one has developed a good way
of doing it, but there is reasearch at the University of Manchester on
it currently going on. I would suggest that rather than calling this
part of a CAM template "content referencing", it should really be called
"knowledge referencing" (although that would break the ABCDE thing;-).
Data Validation This is marked as an advanced option and it says: The
DataValidation section is thus more likely to be tied to a particular
production implementation and environment, particularly for post-content
creation checks.
>
>  Our analysis is that data validation can mostly be specified re-usably in
> archetypes, with local modifications specified in templates. Data
validation comes automatically in ADL, and is one of the primary
functions of archetypes. THe openEHR archetype-processing kernel does
two main functions: default data creation, and data validation. More
complex data validations in ADL which are the equivalent of the
following CAM:
>    are done in the invariant section, using first order predicate logic
> statements in OCL, in keeping with the UML/OCL object-oriented approach
of archetypes.
>
>  Although I can't guess the formal semantics of the functions and XML
> attributes beig used, it looks as if there would be a pretty close
mapping to OCL statements; I have to say that I would recommend OCL-like
syntax due to its generality; in the CAM approach I would suggest that
new XML attributes and functions will continually have to be invented to
take care of new kinds of conditional statements (but maybe I am missing
something here). External Content Mapping I haven't really studied this
section, but would point out that in principle, having local
> context-dependent instructions in what is otherwise a reusable template
renders the template non-reusable. If I understand what this part of a
CAM template is, it should be in local templates, not the reusable
template (what we call an archetype). Then multiple local users can have
their own templates, and all reuse the same archetype.
>
>  I also notice that in the semantics of this section, the functional
> language of Xpath is being relied on. Personally, I think that this is
likely to remain limited - just enough to make Xqueries work. I suggest
that a more general FOPL or mathematical syntax be considered.
>
>  As far as I can see at this stage, this section is ad hoc, and used to
> "provide hints in implementation contexts", so I don't have a good feel
for what it is trying to do. I would say that quite apart from it being
local content in an otherwise reusable specification, its semantics
(inferring from what I read in the document) are not likely to be that
compatible with the rest of the ABCD sections, and this is another
reason to remove this part from CAM templates. The section on merging
makes me even more sure of this!
>
>  - thomas beale


-- 
Carl Mattocks
co-Chair OASIS (ISO/TS 15000) ebXMLRegistry Semantic Content SC
co-Chair OASIS Business Centric Methodology TC
CEO CHECKMi
v/f (usa) 908 322 8715
www.CHECKMi.com
Semantically Smart Compendiums
[AOL] IM CarlCHECKMi
-
If you have any questions about using this list,
please send a message to d.lloyd at openehr.org

Reply via email to