Hi Tom,
Since you’ve asked about what others think; I’ll take the liberty of sharing my thoughts.
Initially I was not happy about the dependence on existence of a computable RM just to be able to parse ADL. For me, it meant either waiting for Rong to handle it in the parser, or find a way of walking around this requirement (I am lazy).
However, the need for computable RM is not specific to adl parsing only. Unless you want to hand code a large amount of functionality, you need to deal with this at a couple of points. For example, when serialized RM data arrives over the wire (XML, JSON, YAML, Protocol Buffers, you name it), you may have to handle assignment of a concrete class instance to an abstract class typed field. (my usual example). You have to know the relationship of RM types to do that. You can hand code it, or you can use a computable model
In an archetype/template editor, you may like to introduce some smart features (such as auto complete, or suggestions) or you may simply need to disable various options based on the context. For example, a contaner node in an archetype will have a type, and only that type or its subtypes (for specialization of that node in a t-archetype) should be allowed in the tool. Again, the tool will need to process the RM type info. You can again hand code it, or use a computable model.
As an implementer discovers other use cases, he or she will see that RM must be computable. I don’t think handcoding RM related functionality is something that can be managed. AOM is one of the things that makes openEHR better than the alternatives, and having a different approach to one level of two level modelling really does not make sense; so both levels should be computable, and also use cases require it to be so.
So; if I’m going to have to process RM at more than one point, it is not such a big deal if I have to do it in the parser. I know that one way or another this functionality is going to be necessary, so why try to avoid it at one point, when you know you’ll somehow deal with it anyway?
regards
Seref
2011/12/21 Thomas Beale <thomas.beale@oceaninformatics.com>
