# modelling question on AOM

**URL:** <https://discourse.openehr.org/t/modelling-question-on-aom/16097>\
**Category:** Implementers (archive)\
**Created:** [13 October 2008 15:34 UTC](https://discourse.openehr.org/t/modelling-question-on-aom/16097 "2008-10-13T15:34:28Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![thomas.beale](https://discourse.openehr.org/user_avatar/discourse.openehr.org/thomas.beale/32/35_2.png) [@thomas.beale](https://discourse.openehr.org/u/thomas.beale)\
**Post date:** [13 October 2008 15:34 UTC](https://discourse.openehr.org/t/modelling-question-on-aom/16097/1 "2008-10-13T15:34:28Z")

</div>

this a question for those who have implemented the AOM. I am currently  
finalising the draft model of AOM for ADL 1.5, to accommodate the  
various things need to support specialisation and templates properly.  
One of the harder parts of the model is to cleanly support attributes  
'at a path', which happens when a redefinition is somewhere deep inside  
the structure. You will have seen how in the current .oet template XML  
format, all 'rules' (which are overrides) are keyed by path.

There are various options for modelling this, which I am exploring by  
means of the Eiffel implementation. One would be to have a subtype of  
C\_ATTRIBUTE that encapsulates the behaviour related to redefined  
attributes that occur at a path. Now, as it happens, in our Eiffel  
archetype compiler, we have never implemented the two subtypes  
C\_SINGLE\_ATTRBUTE, and C\_MULTIPLE\_ATTRIBUTE, mainly because they are  
substantially the same (this is because even single-valued attributes in  
an archetype can have more than one object constraint - i.e. a  
C\_SINGLE\_ATTRBUTE can have multiple children, just like a  
C\_MULTIPLE\_ATTRIBUTE). However, I suspect that these subtypes have been  
implemented by others, and that subtyping to represent specialised  
redefinition would not be possible in those models.

Can AOM implementers indicate what they have done?

thanks

- thomas beale

---

<div class="post-metadata">

**Author:** ![system](https://discourse.openehr.org/uploads/default/original/2X/f/f0a1dedb20c42747bddcafd6c7df9db5f34f003c.svg) [@system](https://discourse.openehr.org/u/system)\
**Post date:** [14 October 2008 19:18 UTC](https://discourse.openehr.org/t/modelling-question-on-aom/16097/2 "2008-10-14T19:18:17Z")

</div>

Hi Thomas,

In the Java implementation, the two subtypes C\_SINGLE\_ATTRBUTE, and C\_MULTIPLE\_ATTRIBUTE are implemented according to the AOM specification. If cardinality can be move up to the super type C\_ATTRIBUTE, it will be able to handle attribute constraints of both container-valued and single-valued type. A function to indicate if the C\_ATTRIBUTE is constraining a container type or not would be very useful, something like constrain\_container\_value() = true if cardinality is not void.

Cheers,  
Rong
