Trying to understand the openEHR Information Model

2013-04-23 Thread Bert Verhees


Verstuurd vanaf mijn iPad

Op 22 apr. 2013 om 23:19 heeft Thomas Beale thomas.beale at 
oceaninformatics.com het volgende geschreven:

 which rules is it breaking? As far as I know, openEHR XML documents validate 
 normally against the schemas.

yes, I said it wrong, later in the message I said it better and I forgot to 
remove this statement.

So let me correct myself:

You cannot represent all Archetype constraints in XML schema, you can of course 
validate against the master scheme, but that is not very interesting. To 
validate you need to validate against the constraints. That is the important 
point of multi level modeling.

I discovered some important problems, besides the restriction/extension 
structure, which is quite disturbing. You are not allowed to restrict and 
extend an derived element at the same time. Just for clarity, A restriction in 
deriving in XML Schema is not the same as constraining in ADL. 
Read the Priscilla Walmsley book on this, she explains it very well.

There are ways around this, but it is not very elegant.

Another very important restriction for using XML Schema, in my opinion, is that 
you cannot have two or more elements with the same name but a different data 
type. This data type must be in detail the same. XML Schema regards an Element 
with a Dv_Text as a different datatype from an Element with a Dv_CodedText.

Both elements will be called items in an XML schema representing an OpenEhr 
data structure, and thus is not allowed having them different details in data 
types. This brought Tim Cook to using the GUIDs in the element-names, which is 
unworkable in my opinion, and above all, probably unnecessary, because in 
RelaxNG this restriction does not exist.

Other tricks are also possible, for example augmenting element-names during 
validation-time, but also that is cumbersome code, and that just for avoiding 
the problems of an ivory tower stupid W3C standard?

So this is indeed an important restriction, which makes the clean use of XML 
Schema impossible in OpenEhr-rm, or any other ADL based multi level modeling 
system. Dirty use, tricks, ignoring validation errors, etc of course remain 
possible.

There are more restrictions, but less important. For example it is not possible 
to support the Dv_Time constraint/pattern hh:??:??, same for Dv_DateTime. In 
the Dv_Date is also a problem, but can be worked around by the alternative 
rule, but on another way then it is meant to use.

Anyway, after a few weeks I will probably define the OpenEhr RM and all 
possible constraints in RelaxNG.

Bert




Trying to understand the openEHR Information Model

2013-04-23 Thread Bert Verhees


Verstuurd vanaf mijn iPad

Op 22 apr. 2013 om 23:19 heeft Thomas Beale thomas.beale at 
oceaninformatics.com het volgende geschreven:

 well, we already had that debate. It's not what we use it for - we don't do 
 any 'modelling' in XSD, it's just an interoperability schema.

Sorry I explained it again, Maybe someone reading had missed it.

:)

 I think we agree largely on this.

Bert


Trying to understand the openEHR Information Model

2013-04-23 Thread Thomas Beale
On 22/04/2013 23:26, Bert Verhees wrote:

 Verstuurd vanaf mijn iPad

 Op 22 apr. 2013 om 23:19 heeft Thomas Beale thomas.beale at 
 oceaninformatics.com het volgende geschreven:

 which rules is it breaking? As far as I know, openEHR XML documents validate 
 normally against the schemas.
 yes, I said it wrong, later in the message I said it better and I forgot to 
 remove this statement.

 So let me correct myself:

 You cannot represent all Archetype constraints in XML schema, you can of 
 course validate against the master scheme, but that is not very interesting. 
 To validate you need to validate against the constraints. That is the 
 important point of multi level modeling.

that's true if you try to use XSD in its native form. I have been saying 
the same thing for years. But you can represent archetypes in XML in 
another way - as a straight object serialisation of an AOM structure. 
Have a look at the XML output of the current ADL workbench. I didn't 
create an XSD for that, but it would certainly be possible.

The XML format used by the Archetype Editor is of the latter form.


 I discovered some important problems, besides the restriction/extension 
 structure, which is quite disturbing. You are not allowed to restrict and 
 extend an derived element at the same time. Just for clarity, A restriction 
 in deriving in XML Schema is not the same as constraining in ADL.
 Read the Priscilla Walmsley book on this, she explains it very well.

yes, and she is correct, it's a mess. See my comments to Tim earlier ;-) 
But there is no danger of openEHR doing this, I think, since we know it 
won't work effectively. That's why all the

 There are ways around this, but it is not very elegant.

 Another very important restriction for using XML Schema, in my opinion, is 
 that you cannot have two or more elements with the same name but a different 
 data type. This data type must be in detail the same. XML Schema regards an 
 Element with a Dv_Text as a different datatype from an Element with a 
 Dv_CodedText.

 Both elements will be called items in an XML schema representing an OpenEhr 
 data structure, and thus is not allowed having them different details in data 
 types. This brought Tim Cook to using the GUIDs in the element-names, which 
 is unworkable in my opinion, and above all, probably unnecessary, because in 
 RelaxNG this restriction does not exist.

 Other tricks are also possible, for example augmenting element-names during 
 validation-time, but also that is cumbersome code, and that just for avoiding 
 the problems of an ivory tower stupid W3C standard?

 So this is indeed an important restriction, which makes the clean use of XML 
 Schema impossible in OpenEhr-rm, or any other ADL based multi level modeling 
 system. Dirty use, tricks, ignoring validation errors, etc of course remain 
 possible.

 There are more restrictions, but less important. For example it is not 
 possible to support the Dv_Time constraint/pattern hh:??:??, same for 
 Dv_DateTime. In the Dv_Date is also a problem, but can be worked around by 
 the alternative rule, but on another way then it is meant to use.

 Anyway, after a few weeks I will probably define the OpenEhr RM and all 
 possible constraints in RelaxNG.


I agree with most of this, but I don't understand the issue - we don't 
do any of the above anyway. That's why we have ADL, AOM, and object 
transforms of the AOM... am I missing something?

- thomas




Trying to understand the openEHR Information Model

2013-04-23 Thread Bert Verhees
 have ADL, AOM, and object transforms

What is missing is that xml offers validation and query out of the box,
which means it has been developed and optimized for years by many companies
and communities, and mostly is good quality software.
Op 23 apr. 2013 09:14 schreef Thomas Beale 
thomas.beale at oceaninformatics.com het volgende:

 On 22/04/2013 23:26, Bert Verhees wrote:


 Verstuurd vanaf mijn iPad

 Op 22 apr. 2013 om 23:19 heeft Thomas Beale thomas.beale@**
 oceaninformatics.com thomas.beale at oceaninformatics.com het volgende
 geschreven:

  which rules is it breaking? As far as I know, openEHR XML documents
 validate normally against the schemas.

 yes, I said it wrong, later in the message I said it better and I forgot
 to remove this statement.

 So let me correct myself:

 You cannot represent all Archetype constraints in XML schema, you can of
 course validate against the master scheme, but that is not very
 interesting. To validate you need to validate against the constraints. That
 is the important point of multi level modeling.


 that's true if you try to use XSD in its native form. I have been saying
 the same thing for years. But you can represent archetypes in XML in
 another way - as a straight object serialisation of an AOM structure. Have
 a look at the XML output of the current ADL workbench. I didn't create an
 XSD for that, but it would certainly be possible.

 The XML format used by the Archetype Editor is of the latter form.


 I discovered some important problems, besides the restriction/extension
 structure, which is quite disturbing. You are not allowed to restrict and
 extend an derived element at the same time. Just for clarity, A restriction
 in deriving in XML Schema is not the same as constraining in ADL.
 Read the Priscilla Walmsley book on this, she explains it very well.


 yes, and she is correct, it's a mess. See my comments to Tim earlier ;-)
 But there is no danger of openEHR doing this, I think, since we know it
 won't work effectively. That's why all the

  There are ways around this, but it is not very elegant.

 Another very important restriction for using XML Schema, in my opinion,
 is that you cannot have two or more elements with the same name but a
 different data type. This data type must be in detail the same. XML Schema
 regards an Element with a Dv_Text as a different datatype from an Element
 with a Dv_CodedText.

 Both elements will be called items in an XML schema representing an
 OpenEhr data structure, and thus is not allowed having them different
 details in data types. This brought Tim Cook to using the GUIDs in the
 element-names, which is unworkable in my opinion, and above all, probably
 unnecessary, because in RelaxNG this restriction does not exist.

 Other tricks are also possible, for example augmenting element-names
 during validation-time, but also that is cumbersome code, and that just for
 avoiding the problems of an ivory tower stupid W3C standard?

 So this is indeed an important restriction, which makes the clean use of
 XML Schema impossible in OpenEhr-rm, or any other ADL based multi level
 modeling system. Dirty use, tricks, ignoring validation errors, etc of
 course remain possible.

 There are more restrictions, but less important. For example it is not
 possible to support the Dv_Time constraint/pattern hh:??:??, same for
 Dv_DateTime. In the Dv_Date is also a problem, but can be worked around by
 the alternative rule, but on another way then it is meant to use.

 Anyway, after a few weeks I will probably define the OpenEhr RM and all
 possible constraints in RelaxNG.


 I agree with most of this, but I don't understand the issue - we don't do
 any of the above anyway. That's why we have ADL, AOM, and object transforms
 of the AOM... am I missing something?

 - thomas


 __**_
 openEHR-technical mailing list
 openEHR-technical at lists.**openehr.orgopenEHR-technical at 
 lists.openehr.org
 http://lists.openehr.org/**mailman/listinfo/openehr-**
 technical_lists.openehr.orghttp://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org

-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20130423/5b96915e/attachment.html


Trying to understand the openEHR Information Model

2013-04-23 Thread Thomas Beale
On 23/04/2013 10:37, Bert Verhees wrote:

  have ADL, AOM, and object transforms

 What is missing is that xml offers validation and query out of the 
 box, which means it has been developed and optimized for years by many 
 companies and communities, and mostly is good quality software.


ok but we just agreed that XSD doesn't do the kind of validation that is 
needed by archetypes, so I think what you are really proposing is XML 
based on Relax NG as a sufficiently powerful approach that would a) 
implement the required constraint semantics of archetypes and b) create 
data that can be queried by Xpath/Xquery out of the box?

Is that your suggestion?

If so, my reaction would be: let's investigate as a community. I don't 
think anyone has sufficiently investigated Relax NG or Schematron for 
openEHR purposes, and in hindsight we probably should have. It would be 
very interesting indeed to see how much better it would work than XSD.

I think if you make any progress in your work on these questions, let's 
turn them into specs / guidelines / whatever for general use in openEHR.

- thomas



Trying to understand the openEHR Information Model

2013-04-23 Thread Diego Boscá
Well, we have explored the use of Schematron and how it can be
automatically generated from archetypes (the idea was to rewrite CDA
implementation guides as CDA archetypes and generate schematron
automatically from them). I won't go into much detail, but we were
able to generate assert and report instructions easily. The only thing
unexplored was the use of phases. I would say we are in the 80 of the
80/20 rule :)

2013/4/23 Thomas Beale thomas.beale at oceaninformatics.com:
 On 23/04/2013 10:37, Bert Verhees wrote:


  have ADL, AOM, and object transforms

 What is missing is that xml offers validation and query out of the box,
 which means it has been developed and optimized for years by many companies
 and communities, and mostly is good quality software.


 ok but we just agreed that XSD doesn't do the kind of validation that is
 needed by archetypes, so I think what you are really proposing is XML based
 on Relax NG as a sufficiently powerful approach that would a) implement the
 required constraint semantics of archetypes and b) create data that can be
 queried by Xpath/Xquery out of the box?

 Is that your suggestion?

 If so, my reaction would be: let's investigate as a community. I don't think
 anyone has sufficiently investigated Relax NG or Schematron for openEHR
 purposes, and in hindsight we probably should have. It would be very
 interesting indeed to see how much better it would work than XSD.

 I think if you make any progress in your work on these questions, let's turn
 them into specs / guidelines / whatever for general use in openEHR.


 - thomas

 ___
 openEHR-technical mailing list
 openEHR-technical at lists.openehr.org
 http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org



Trying to understand the openEHR Information Model

2013-04-23 Thread Grahame Grieve
hi Tom

you kind of need to set the ground rules for this. It's not really
practical to use schematron to do detailed terminology validation.
Must serious attempts end up creating some kind of web service terminology
server that can be invoked from the schematron rules.

Once you've done that, you've got a relief valve for things that are too
difficult to express in xpath - because xpath is really good for some
things, and really not so good for others.

But also, once you've done that, you're not really using schematron
anymore...

Grahame



On Tue, Apr 23, 2013 at 8:39 PM, Thomas Beale 
thomas.beale at oceaninformatics.com wrote:

 On 23/04/2013 10:37, Bert Verhees wrote:


  have ADL, AOM, and object transforms

 What is missing is that xml offers validation and query out of the box,
 which means it has been developed and optimized for years by many companies
 and communities, and mostly is good quality software.


 ok but we just agreed that XSD doesn't do the kind of validation that is
 needed by archetypes, so I think what you are really proposing is XML based
 on Relax NG as a sufficiently powerful approach that would a) implement the
 required constraint semantics of archetypes and b) create data that can be
 queried by Xpath/Xquery out of the box?

 Is that your suggestion?

 If so, my reaction would be: let's investigate as a community. I don't
 think anyone has sufficiently investigated Relax NG or Schematron for
 openEHR purposes, and in hindsight we probably should have. It would be
 very interesting indeed to see how much better it would work than XSD.

 I think if you make any progress in your work on these questions, let's
 turn them into specs / guidelines / whatever for general use in openEHR.


 - thomas

 __**_
 openEHR-technical mailing list
 openEHR-technical at lists.**openehr.orgopenEHR-technical at 
 lists.openehr.org
 http://lists.openehr.org/**mailman/listinfo/openehr-**
 technical_lists.openehr.orghttp://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org




-- 
-
http://www.healthintersections.com.au /
grahame at healthintersections.com.au/ +61 411 867 065
-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20130423/1def1e5c/attachment.html


Trying to understand the openEHR Information Model

2013-04-23 Thread Timothy W. Cook
On Mon, Apr 22, 2013 at 7:26 PM, Bert Verhees bert.verhees at rosa.nl wrote:



 Another very important restriction for using XML Schema, in my opinion, is
 that you cannot have two or more elements with the same name but a
 different data type. This data type must be in detail the same. XML Schema
 regards an Element with a Dv_Text as a different datatype from an Element
 with a Dv_CodedText.

 Both elements will be called items in an XML schema representing an
 OpenEhr data structure, and thus is not allowed having them different
 details in data types. This brought Tim Cook to using the GUIDs in the
 element-names, which is unworkable in my opinion, and above all, probably
 unnecessary, because in RelaxNG this restriction does not exist.


There are many reasons and benefits to using Type4 UUIDs.  I cannot
imagine that RelaxNG has any magic to allow global elements to be the same
name and have different types or two elements at the same level
have different types.  Certainly no programming language allows that.
 There are other approaches that can be used and not use UUIDs.  You can
nest all of your complexTypes and create VERY wide artifacts. You can use
intricate namespacing if you want.


 Other tricks are also possible, for example augmenting element-names
 during validation-time, but also that is cumbersome code, and that just for
 avoiding the problems of an ivory tower stupid W3C standard?


Interesting here that you call it a stupid standard and then in a later
email you praise it for its industry acceptance.

But, the things you continue to call tricks are not tricks, they are
features of the standard that are implemented because one or
more people presented sufficient use cases.  Just because Priscilla
Walmsley doesn't
bless their use doesn't mean that they are any less valid.


 So this is indeed an important restriction, which makes the clean use of
 XML Schema impossible in OpenEhr-rm, or any other ADL based multi level
 modeling system. Dirty use, tricks, ignoring validation errors, etc of
 course remain possible.


Yes, be specific.  You probably can't model an ADL based RM in Haskell or
Erlang either.  But that doesn't mean they are not useful in
multi-level modeling with a functional design.  If you goal is to stay with
ADL then you have to live with those requirements.  I chose not to in MLHIM
for all the other benefits that come with adopting XML technologies.


There are more restrictions, but less important. For example it is not
 possible to support the Dv_Time constraint/pattern hh:??:??, same for
 Dv_DateTime. In the Dv_Date is also a problem, but can be worked around by
 the alternative rule, but on another way then it is meant to use.


There are very clean and efficient ways to allow for partial dates in XML
Schema.


 Anyway, after a few weeks I will probably define the OpenEhr RM and all
 possible constraints in RelaxNG.


I'm not sure why you think RelaxNG will work any better than XML Schema 1.1
This is a three part intro that was published in Jan. 2009:
http://www.ibm.com/developerworks/xml/library/x-xml11pt1/index.html

--Tim
-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20130423/e147157a/attachment.html


Trying to understand the openEHR Information Model

2013-04-23 Thread Bert Verhees
 name, but a 
different content/datatype. This is just what is needed to handle the 
ADL constructs which have the similar characteristics.

Why are you angry? If you are satisfied about your solution, if you feel 
strong about it, what is then your problem?

You know the Chinese saying: Let thousand flowers bloom.
What makes you angry about my effort to let flowers bloom?

Bert
-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20130423/f3806e9e/attachment-0001.html


Trying to understand the openEHR Information Model

2013-04-23 Thread Timothy W. Cook
On Tue, Apr 23, 2013 at 3:00 PM, Bert Verhees bert.verhees at rosa.nl wrote:



 Why are you angry? If you are satisfied about your solution, if you feel
 strong about it, what is then your problem?

 You know the Chinese saying: Let thousand flowers bloom.
 What makes you angry about my effort to let flowers bloom?


I am not the slightest bit angry.  I was just correcting your incorrect
assertions about why I made design choices.
If you want to build your openEHR processor in COBOL, I couldn't care less.
But when you mention my name or my project specifically and make incorrect
assertions I will correct them.

Cheers,
Tim
-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20130423/b65387a9/attachment.html


Trying to understand the openEHR Information Model

2013-04-23 Thread Bert Verhees
On 04/23/2013 12:39 PM, Thomas Beale wrote:
 On 23/04/2013 10:37, Bert Verhees wrote:

  have ADL, AOM, and object transforms

 What is missing is that xml offers validation and query out of the 
 box, which means it has been developed and optimized for years by 
 many companies and communities, and mostly is good quality software.


 ok but we just agreed that XSD doesn't do the kind of validation that 
 is needed by archetypes, so I think what you are really proposing is 
 XML based on Relax NG as a sufficiently powerful approach that would 
 a) implement the required constraint semantics of archetypes and b) 
 create data that can be queried by Xpath/Xquery out of the box?

 Is that your suggestion?

Exactly, that is my idea. I already did that for XML-schema, walking 
throug AOM-objects, and defining the structure-constraints and leaf-node 
constraints in XML-schema, but I don't like that very much because of 
the tricks I need to use. My hope is that Relax NG does not require 
these kind of tricks.
But I am not completely ready studying it, but I found that some 
important restrictions (concerning the restrictions in structure) of XML 
Schema do not apply to Relax NG, and I also checked the 
leaf-node-simple-datatypes, where it seems to allow to define all 
possible ADL-constraints.

So, I can build the structure of an archetype, keeping the paths in 
original names, keeping the constraints on the structure, and I can 
apply all leaf-node constraints.

But at this moment I am very busy doing something else, and there is 
(quite) some time-pressure on that, working in the evening, that kind of 
thing.


 If so, my reaction would be: let's investigate as a community. I don't 
 think anyone has sufficiently investigated Relax NG or Schematron for 
 openEHR purposes, and in hindsight we probably should have. It would 
 be very interesting indeed to see how much better it would work than XSD.

I will write a paper on it, how the structures and leaf-nodes are to be 
defined in Relax NG and publish that.
Maybe there is still something left to ask or discuss, that is always 
good. It will take a few weeks before I have time for that.

And what do I have then

ADL - Relax NG conversion - automatic validation based on good quality 
of code
XML-datasets - XQuery - full featured query language.

Optional is AQL - XQuery syntax transformation, some people find that 
important, I think it is possible.

In fact, the complete OpenEHR ecosystem ready to work with XML, and 
almost everything running on matured code. That is the goal.

Bert



Trying to understand the openEHR Information Model

2013-04-23 Thread Bert Verhees
On 04/23/2013 08:13 PM, Timothy W. Cook wrote:
 But when you mention my name or my project specifically and make 
 incorrect assertions I will correct them.

That is acceptable, but I thought you were criticizing me, and that is 
not needed to correct incorrect assertions. That gave me the impression 
that there was some anger.

But I am glad this is not the case.

Regards
Bert



Trying to understand the openEHR Information Model

2013-04-23 Thread Timothy W. Cook
On Tue, Apr 23, 2013 at 3:57 PM, Thomas Beale 
thomas.beale at oceaninformatics.com wrote:


 out of interest Tim, did you look at Releax NG or Schematron?


Yes and 1.1 implements everything that RelaxNG and Schematron had to be
implemented for in the first place.  I wasn't involved but it looks like
they took lessons learned from the community quite well.  So my position
is; why introduce the extra complexity of multiple languages?



 The lack of support for hh:??:?? is actually the fault of the ISO8601
 standard, and I suspect it's because the writers never actually implemented
 a parser, and had the simple realisation that a partial date or time (e.g.
 1995, 12) is impossible to distinguish syntactically from an integer in
 a mixed data stream - some other help is always needed.


Yes, the non-implementable 8601 is an entirely different issue.



 XML Schema solves it with the data types gMonthDay, gYear etc. Ugly, but
 not really their fault.


The 'g' prefix is non-intuitive.  But as you say, they had to implement
multiple datatypes to cover the use cases.



 A slightly better designed 8601 standard would have saved a lot of
 problems, and the ultimate fault in my view lies at the door of ISO: a
 completely wrong model of doing standards.


The ISO issue is simply one of an organization not adapting to the changing
times.  It was probably a good model in the early days.  But that is common
in organizations. People protect their turf in many ways.

--Tim
-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20130423/9d833a73/attachment.html


Trying to understand the openEHR Information Model

2013-04-23 Thread Timothy W. Cook
Hi Bert,

On Tue, Apr 23, 2013 at 3:00 PM, Bert Verhees bert.verhees at rosa.nl wrote:


 I said already, study it, don't following your intuition. I already gave
 you a simple example how RelaxNG could have prevented your
 GUID-element-names, a few weeks ago.
 Anyway, I will come back to this, in the mean time, take a look at the
 mail archive, you should find the example there.

 Ah, I found it

 * RelaxNG allows complex elements with different types in the same group ** 
 with the same name and checks at run/validation time how to validate ** an 
 element. Suppose you want this: addressBook**   card** 
 givenNameJohn/givenName** familyNameSmith/familyName** 
 emailjs at example.com 
 http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org/email**
/card**   card** nameFred Bloggs/name** emailfb at 
 example.net 
 http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org/email**
  notebla bla bla/note**   /card** /addressBook Two kind 
 of complextype of card, one containing name, email and the ** other 
 containing firstName, familyName, email.** In XML-schema this is not 
 possible. In RelaxNG the schema looks like this: element 
 addressBook {**   element card {** (element name { text }**  | 
 (element givenName { text },** element familyName { text })),**
  element email { text },** element note { text }?**   }*** } It 
 has a card-definition with two elements for both: email and note, ** the 
 element note is optional.** And it validates the first group as: it must be 
 a name OR it must be ** firstName and lastName.*

 * *

 So, it is able to validate two elements with the same name, but a
 different content/datatype. This is just what is needed to handle the ADL
 constructs which have the similar characteristics.


I think that you will find that this is not the same requirement that you
are going to face when you create constraint models against a reference
model.  At least I cannot see where your analogy holds up.

What you are using for an example is a one level model of a document with
optional elements as simple types.   What you have been describing though
(I assume) is the use of RelaxNGs 'combine' attribute (set to choice or
interleave). But in your example I do not see that you are using 'define'
to create your complexType definition so I cannot comment further on this.


I am interested in your results and how your paths end up being negotiated
if you develop complex types with multiple possible element names as leaf
nodes.

Cheers,
Tim
-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20130423/9359da8e/attachment.html


Trying to understand the openEHR Information Model

2013-04-23 Thread Bert Verhees
On 04/23/2013 09:49 PM, Timothy W. Cook wrote:

 Hi Bert,

 On Tue, Apr 23, 2013 at 3:00 PM, Bert Verhees bert.verhees at rosa.nl 
 mailto:bert.verhees at rosa.nl wrote:

 I said already, study it, don't following your intuition. I
 already gave you a simple example how RelaxNG could have prevented
 your GUID-element-names, a few weeks ago.
 Anyway, I will come back to this, in the mean time, take a look at
 the mail archive, you should find the example there.

 Ah, I found it

 /  RelaxNG allows complex elements with different types in the same 
 group
 //  with the same name and checks at run/validation time how to validate
 //  an element.
 //
 //  Suppose you want this:
 //
 //  addressBook
 //card
 //  givenNameJohn/givenName
 //  familyNameSmith/familyName
 //  emailjs at example.com  
 http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org/email
 ///card
 //card
 //  nameFred Bloggs/name
 //  emailfb at example.net  
 http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org/email
 //  notebla bla bla/note
 ///card
 //  /addressBook
 //
 //  Two kind of complextype of card, one containing name, email and 
 the
 //  other containing firstName, familyName, email.
 //  In XML-schema this is not possible.
 //
 //  In RelaxNG the schema looks like this:
 //
 //  element addressBook {
 //element card {
 //  (element name { text }
 //   | (element givenName { text },
 //  element familyName { text })),
 //  element email { text },
 //  element note { text }?
 //}*
 //  }
 //
 //  It has a card-definition with two elements for both: email and note,
 //  the element note is optional.
 //  And it validates the first group as: it must be a name OR it must be
 //  firstName and lastName./
 //

 So, it is able to validate two elements with the same name, but a
 different content/datatype. This is just what is needed to handle
 the ADL constructs which have the similar characteristics.

 I think that you will find that this is not the same requirement that 
 you are going to face when you create constraint models against a 
 reference model.  At least I cannot see where your analogy holds up.

 What you are using for an example is a one level model of a document 
 with optional elements as simple types.   What you have been 
 describing though (I assume) is the use of RelaxNGs 'combine' 
 attribute (set to choice or interleave). But in your example I do not 
 see that you are using 'define' to create your complexType definition 
 so I cannot comment further on this.

The define is in the second part of the example, that is (called) the 
compact notation although there is also another notation for Relax NG 
which is more easier to understand for people used to XML-Schema.

The other notation is like . (partially)

element name=addressBook
element name=card
choice
group
etc ..
/group
group
etc ..
/group
/choice
/element
/element

I can recommend the book of Eric van der Vlist, it is also free for 
download or read online
http://books.xmlschemata.org/relaxng/


 I am interested in your results and how your paths end up being 
 negotiated if you develop complex types with multiple possible element 
 names as leaf nodes.

Just as in the example?
This is one of the advantages of RelaxNG.

You wonder why RelaxNG still exists, 10 years after the definition of 
XML-Schema 1.1?
Here you have an answer.

Bert
-- next part --
An HTML attachment was scrubbed...
URL: 
http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20130423/56b263db/attachment-0001.html