Yes, that is correct; you will see that there as well. It contains the correct version of the (old) Expression model. It’s not quite complete yet, a bit more to do on it.
The next versions will include openehr_base_1.1.0 and openehr_expression_1.0.4.
I’ll get the AM 2.2.0 and 2.3.0 BMMs up fairly soon.
Note that none of them use RM directly; ADL/AOMs is independent of RM, AOM1.4 had a small dependence on RM types, which I think you probably don’t care about.
Note that this converter is mainly for a limited purpose - just generate something that works, not generating something that’s an optimal hand-coded BMM file. From that perspective:
Hmm, looks like the AOM implementation in Archie is not annotated with @Nullable, unlike the RM. I’ll try to see if I can do this.
From the above perspective, very low priority, but also easy, so I will check if it is.
The , … indicates it is a list, which makes the BMM much easier to convert to correct JSON/YAML and to process with existing tools. Archie can parse the other form just fine, but it will be annoying for anyone else. This is not just the BMM, but the generic ODIN generation of Archie that does this for any single element list. So not sure if I should fix this at all.
Ah, that I will look into. Can be tricky, I hope they do not appear like this in the JSON serialization as well, because then it will be more tricky to fix (will probably need a new configuration parameter to make it backwards compatible on demand, and parse both alternatives?)
if easy to fix I will add it, but otherwise the meaning of the output is exactly the same, so will not matter much.
There are more problems in the generated BMM: for example constraint is not in C_PRIMITIVE_OBJECT. Neither is assumed_value. They are in the subclasses. This is because this is actually a BMM generated from a java implementation of the AOM, where some of these things have to be different to work. That might actually help in code generation, by the way.
TEMPLATE.overlays in the spec, archie as templateOverlays (so template_overlays in BMM). Looks like a mistake on my side in 2016.
C_TEMPORAL. pattern_constraint in spec, patterned_constraint in archie (probably mistake on my side?)
in the spec, several C_PRIMITIVE_OBJECT subclasses have default_value is mandatory. I do not think it should.
in the spec, C_TERMINOLOGY_CODE.constraint is mandatory. Should it be?
the class RESOURCE_ANNOTATIONS cannot be found in the specifications
in base BMM, resource_description.details is mandatory, in the specification, it is not.
Ok, fixed some things, and generated the BMM for AOM 2.3.0. Changes:
the changes in AOM 2.3.0 (obviously ), such as rm_overlay and constraint binding strength
fixed the STRING and BOOLEAN type so it is now String and Boolean
cardinality no longer present for lists if >=0
All optional fields should no longer appear as mandatory
it now outputs type= instead of type_def= for simple properties
Issues remaining:
Archie outputs in both JSON and this BMM boolean fields in the AOM without the is_prefix.
It still contains some (but not all) classes also present in base
Both are fixable, but will take more time to properly fix, and in the first case will mean some work to ensure backwards compatibility of the JSON output is guaranteed, probably with some extra configuration.
See the specifications-ITS_REPO now; contains various fixes in both BASE and AM BMMs; also contains a AM 2.1.0 and 2.2.0 BMM. Compiling in ADL Workbench. 2.3.0 coming tomorrow.