Christian Heller wrote:

>Hi Philippe,
>  
>
>Object hierarchies in memory, correct. But the problem is that hierarchy
>as most fundamental abstraction was not worked in to OOP. If the designers
>of Java, for example, had implemented the principle of hierarchy into
>their framework, the top-most class java.lang.Object would be a CONTAINER:
>
>--------------------
>| java.lang.Object |------
>--------------------     |
>         ^ 0..*          |
>         |               |
>         -----------------
>
>All inheriting types would be a hierarchy by default. Hundreds of
>set/get/remove methods could be saved because they'd be inherited
>from java.lang.Object. As another side-issue, the known problems
>  
>
I haven't ever tried to analyse this problem as such, but I suspect your 
proposed solution would only work in a world where programmers had 
permanent access to knowledge models, in order to provide semantic sense 
to the java instances in memory - any meaningful hierarchy needs to be a 
model of something, e.g. the hierarchy of levels of 
body/gastro-intestinal system/colon/various areas of the colon/various 
features etc etc. This is only possible with somethink like archetypes 
and Philippe's 'smart' lexicon (remember - the fils guides contain 
hierarchy building rules).

It may be in the future that we discover that we have chosen the wrong 
balance point between reference models and archetypes/terminology; maybe 
we will one day think that the openEHR reference model should be like 
your java.lang.object picture above, and that the totality of the 
semantics can be encoded in archetypes. But - we had to choose somewhere 
which works for practical purposes - and which "normal" programmers can 
handle. The criterion for the division of what is in the RM versus what 
is in the archetypes, by the way, is:

- any concept which is domain generic - i.e. absolutely permanent across 
all uses of it in space (differnt software, systems) and time - can go 
in the reference model. Now, we happen to think that concepts like 
"versions" and "audit-trails" are permanent; we also think that the 
hierarchy Composition/Section/Entry can be safely permanent. So this 
means that the archetypes don't have to define such semantics (they 
would continually redefine the same thing anyway) - they define what 
seem to be the variable semantics - different kinds of Entries for example.

>Up to now I thought OpenEHR's archetype model was developed independently
>from OO mechanisms and that OO principles would only be used in the
>reference model. Thomas' great design paper from 3 years ago made me
>assume so because it described ontologies as hierarchies of layers,
>so I thought OpenEHR would consider each model (archetype) to be a
>hierarchy. Anyway, I do.
>  
>
Each archetype is a hierarchy of nodes, that's true - if you look at the 
ADL examples on the web you will see the hierarchic nature of each 
archetype. But there is also a UML model of archetypes - see 
http://www.openehr.org/tmp/adl-1_2_draft_d.pdf - which is what allows OO 
software developers to do something with an archetype in memory.

We are working hard to improve ADL, build more tools, and connect ADL to 
OWL and other formalisms. Hopefully as more people play with the tools, 
we will get more creative input into these debates, and will make 
further progress on building knowledge resources for information systems.

- thomas


- thomas


-
If you have any questions about using this list,
please send a message to d.lloyd at openehr.org

Reply via email to