Hi there,
In AOM2 spec, in package rules
and ARCHETYPE_SLOT
. both have classes from beom
package page(not found - I guess a typo and means BEL). Then I read somewhere that beom
it was superseded by BMM
and EL
. but AM2 is still relying on BEL
.
My question is , is AM2 planning on adopting the new Expression language or sticking to BEL and have two seperate expression language. If that is the case, is there any approximate date or version that will adopt BMM expressions?
And for the purposes of creating a demo, I assume that Assertion
from BEL can be substituted by BMM_ASSERTION
. But What class in BMM would be the susbtitution of EXPR_LEAF
(which EXPR_CONSTRAINT
inherits from)
@rong.chen might be able to give a bit more guidance but my understanding is that for now the new EL is still very much experimental and in-development, whereas AOM2 is ready to go for implementation, so I donât expect the new EL to be used any time soon, even if that is the future direction. For the openEHR community, we are talking years not months IMO.
I would follow Ianâs recommendation regarding EL
We did a lot of work on BMM some 4 years ago (see the link at the bottom). Searching for EXPR_CONSTRAINT
made me realize that EL classes in the 5. The Rules Package have no official BMM files.
@borut.jures Thank you for your reply and your great work on BMM.
If I may ask about BMM and UML, which one of them is supposed to the source of truth for the other, meaning which of them must abide by the structure of the other?
Because I noticed that sometimes there are differences in structure between the two. Like for example in base.foundation_types
BMM schema, thereâs no terminology package, and its classes are put under primitves
, I donât know if this is intentional, but if parsed to a system that creates BMM_CLASS
instances it will set property is_primitive
to true ( even though they are not ). making conflict between instances created computationally(in whatever programming lang implementd it) and the BMM schemas used in OpenEHR tooling.
Similarly in beom
, LANG component has BMM schema file about beom
, but under the UML it is marked as no longer accessible in Lang
and has core
under it while types
is under obsolete-elom
. Plus, there was no mention of BEL in openEHR - Generic Languages (LANG) Component - 1.0.0, but mentioned in developement.
UMLs published as part of the specifications are the source of truth. The BMMs are created out of these UMLs.
âŚbut for my work, BMMs are the source of truth since they are are sole input into my generators
One of the generators takes BMMs and produces the UML diagrams published on my site.
Both approaches work â UML to BMM and BMM to UML.
Good catch about the primitves
package. It shows how detailed your work is
You are correct â some of the types should be moved to more appropriate package. I handle these inconsistencies in my generators.
There are two specifications for an âexpression languageâ. One is BEL (Basic Expression Language), the other is EL (Expression Language).
BEL was created in order to have a spec for the expression language for archetype rules, as they are today, and also to cover the semantics of the Nedap implementation, which introduced some useful additions. You may think of BEL as being more or less reverse-engineered from existing implementation.
EL is a work in progress, and is an effort to find create a more advanced expression language that would (one day) address the needs of the 4 current places in openEHR where expression languages are needed:
- archetypes / ADL2/AOM2
- AQL
- GDL2
- Task Planning
So for any practical purposes, you should use BEL, which has its own meta-model (BEOM) in the spec.