ADL 1.5 definitions

Hello everyone

Are there any resources that define the structure of ADL 1.5? As always,
BNF would be great but other files that could help in deriving BNF would
also be useful.

Also, can i please ask if there are any plans to update the archetype
query language with the rest of the operations that could be carried out
over openEHR? At the moment, AQL supports data manipulation only and
specifically querying. What about other operations such as update /
insert / delete?)

Looking forward to hearing from you
Athanasios Anastasiou

I've put up a new page on this here <http://www.openehr.org/wiki/display/spec/ADL+1.5+parser+resources&gt;\. Please note that there are a few legacy rules that you don't need to care about if you are doing pure 1.5. We'll make a pure version of these parser grammars at some point. The ones at this link are straight from the software, so they are always the 'latest' , and also implemented, so you can trust they work in at least one place.

Re: AQL, our current approach is to do writes/updates via APIs, including things like SMART-flavoured APIs that are specific to the content, e.g. allergies list, medications list and so on. I think this approach is easier for app writers to deal with, and seems to be the way the world is going these days (think SMART/FHIR).

- thomas

Hello Thomas

Thank you for the quick response. I guess i am going to have to go
through the yacc style files and get the definitions...it's been
sometime since i last used that family of tools. I am primarily
interested in ADL 1.5, for the new way of handling slots and for
bringing in the "template" level of modelling.

All the best
Athanasios Anastasiou

Athanasios,

if you want to wait a couple of days, I'll clean the ADL 1.5 parser up to be pure, as I already had the idea to relegate the current mixed parser to 'ADL 1.5 transitional'.

- thomas

Hello Thomas

Thanks for letting me know.

There's no problem in waiting for a couple of days for you to clean up
the ADL 1.5 definitions. In any case, this is not going to be a
'walk-in-the-park' :slight_smile:

I did however try to take a different approach in the hope that it might
produce results more quickly. You can read all about it here:
https://github.com/aanastasiou/adl_ebnf

In essence, i remembered that Tim Cook's Python reference implementation
included the definition of a parser for ADL 1.4 through the (incredibly
useful but slightly slow) pyparsing package.

Pyparsing allows the definition of parsers using a very nice object
oriented interface and its definition reads almost like natural
language. So, going from that to an EBNF form is much easier than
reverse engineering the yacc-like files (to my eyes at least :slight_smile: ).

So, in a nutshell, the plan would be to arrive at a valid definition of
ADL 1.4 and then augment it with those key parts that are different in
ADL 1.5.

The current set of EBNF definitions is not that big, so if anyone wants
to pitch in either by reviewing the current definitions or contributing
additional ones, please do so.

I hope that we can arrive at a good definition of ADL 1.5 in EBNF, it's
a great resource to have and it can be used for a number of things.

All the best
Athanasios Anastasiou