Great! Thanks for the info. -- Kind regards, Eng. Pablo Pazos Guti?rrez http://cabolabs.com
Date: Wed, 17 Dec 2014 21:50:22 +0000 Subject: Re: Does anyone implemented a transformation between AQL and XML? From: [email protected] To: openehr-technical at lists.openehr.org Ok, I think I see what you mean now. AQL is not part of the official specification and there is not much other than the grammar for the implementers so you're right about not having a lot to work with. On the other hand, if you're going to do AQL, you're going to have to have a parser. Marand has kindly provided an ANTLR grammar here: https://openehr.atlassian.net/wiki/display/spec/AQL-+Archetype+Query+Language To use this grammar, you're going to have to invest into learning ANLTR and inevitably into parser generators. Not an easy topic if you're not familiar with it but I personally think it is worth it. due to way ANTLR works, Marand's grammar should get you really close to what you're asking without much effort. You'll probably have more of a challenge when trying to map the output of the parser to your query mechanism. So the obvious pointer is the ANTLR grammar, the rest depends on your efforts :) All the best Seref On Wed, Dec 17, 2014 at 8:31 PM, pablo pazos <pazospablo at hotmail.com> wrote: Hi Seref, what I asked here was if anyone did implemented that, so I don't have to :) As I said, my experience tells me it requires more hours-man to work with a syntax, a model and a parser than having XML and parse parts of it when required (so I can have 1. many ad-hoc parsers, 2. no model just ad-hoc data structures, 3. no API, 4. no parser e.g. it requires a lot of time to find a problem update the jj, generate the parser and test). Hope that clarifies my vision. Of course, I didn't started yet to do anything about AQL support, just trying to make the community aware that I'll do so and maybe generate some collaboration momentum. Maybe the syntax definition is very stable and there are a lot of good parsers for Java, but the syntax definition I found seems to be old (https://openehr.atlassian.net/wiki/display/spec/Archetype+Query+Language+Grammar & https://openehr.atlassian.net/wiki/display/spec/AQL-+Archetype+Query+Language) and I don't know about AQL parsers for Java (just found this old discussion, no response about the parser: http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/2009-March/004400.html). I'm sure I need to do more research, but I doubt I can find the basic building blocks, even to start working with AQL directly. Please if you know where I can find stuff to help me, any pointers will be very welcome! -- Kind regards, Eng. Pablo Pazos Guti?rrez http://cabolabs.com Date: Wed, 17 Dec 2014 19:03:28 +0000 Subject: Re: Does anyone implemented a transformation between AQL and XML? From: [email protected] To: openehr-technical at lists.openehr.org Hi Pablo, Sorry but I still don't get it :) How are you going to do the following without an AQL parser?: AQL (syntax) <=(transformation)=> XML (syntax) If you have an xml form of AQL and use only that, you'd have to force your users write queries in the xml form of AQL which would defeat the whole purpose of the AQL. So I'm still not seeing how you're gaining anything with an XML form of AQL. Best regards Seref On Wed, Dec 17, 2014 at 4:17 PM, pablo pazos <pazospablo at hotmail.com> wrote: Hi Seref, Yes! Just need the transformation to have an AQL in XML syntax. What I was thinking is trying to add support to AQL in the EHRServer, doing something like this: AQL (syntax) <=(transformation)=> XML (syntax) <=(mapping)=> EHRServer Query Model (OO) <=(ORM)=> Query Storage I already have the part for Evaluating/Executing queries that are represented in the EHRServer Query Model. Having this I can import and export AQL, and I don't need to actualy "execute" AQL. This is in fact one way of implementing "The point of AQL is sending the same query to multiple implementations". Why not dealing with AQL directly? In my experience in implementing software with ADLs and OPTs, managing OPTs in XML is way simpler: I can write my own parsers for specific tasks without the need of parsing the whole structure and then deal with an object instance in memory (sometimes buggy, difficult to access specific data, APIs not so well defined, non implemented methods, etc). So it is a matter of risk management and cost reduction (since I'm the only one working on the EHRServer I need to search for the shortest path to do each task will a certain level of quality). So I have the same idea with AQL: not deal with AQL parsers or object instances, just the XML. The idea of this request is that I don't want to develop an XML syntax for XML: it would be great if someone else already have that done so I can reuse. This way I don't need to "have to deal with an AQL parser" :) Hope that helps! -- Kind regards, Eng. Pablo Pazos Guti?rrez http://cabolabs.com Date: Tue, 16 Dec 2014 17:42:51 +0000 Subject: Re: Does anyone implemented a transformation between AQL and XML? From: [email protected] To: openehr-technical at lists.openehr.org Hi Pablo, I'm a bit confused. What are you asking for? AQL does not have an object model that has been published, it has a grammar, so an XML representation of AQL would at best be AQL in XML syntax. If that is what you're after, I can't see how that could help? The point of AQL is sending the same query to multiple implementations, so its use means that you'd have to deal with an AQL parser. If you want to develop an XML syntax for AQL, you'd still have to use an AQL parser to import AQL as you've described in your OP. It sounds like you're trying to develop a mapping from AQL to your internal query execution, which is fine, but the XML syntax for AQL sounds redundant in that scenario. Care to explain a bit more? Regards Seref On Tue, Dec 16, 2014 at 5:34 PM, pablo pazos <pazospablo at hotmail.com> wrote: Hi Bert, I don't have any XML :D My question is about ADL, not it's interpretation/execution, that is already handled by the current querying component of the EHRServer. What I'm curious about is if someone has a transformation between AQL syntax and XML, in other words, a XML expression of an AQL query. An AQL query can be instantiated and executed over any database, while XQuery is already an instance of a query (because it uses XPaths not ADL paths) and can be executed only in XML databases (and relational that support XML columns). The EHRServer database is relational, without any XML columns. Also, what I need is a bidirectional transformation AQL <-> XML. I guess it would be difficult to generate AQL from an XQuery expression. -- Kind regards, Eng. Pablo Pazos Guti?rrez http://cabolabs.com Date: Tue, 16 Dec 2014 07:34:13 +0100 Subject: Re: Does anyone implemented a transformation between AQL and XML? From: [email protected] To: openehr-technical at lists.openehr.org Depending on how your XML is constructed, it is very easy to convert AQL to XQuery, or ADL-path to XPath. Bert Op dinsdag 16 december 2014 heeft pablo pazos <pazospablo at hotmail.com> het volgende geschreven: Just curious :) I'm adding version control features to EHRServer (https://github.com/ppazos/cabolabs-ehrserver) and I want to add some kind of AQL support in the future. Right now we have an internal querying model that abstracts from the physical database and allows the creation of queries for openEHR data from a UI.My idea is to have some kind of transformation between the EHRServer query model and AQL, and instead of struggle with AQL parsers I would like to do some XML transformations to import and export AQL (I do not need to actually execute AQL, the execution of the internal query model is working ok). Comments and ideas are very welcome! -- Kind regards, Eng. Pablo Pazos Guti?rrez http://cabolabs.com -- This e-mail message is intended exclusively for the addressee(s). Please inform us immediately if you are not the addressee. _______________________________________________ openEHR-technical mailing list openEHR-technical at lists.openehr.org http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org _______________________________________________ openEHR-technical mailing list openEHR-technical at lists.openehr.org http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org _______________________________________________ openEHR-technical mailing list openEHR-technical at lists.openehr.org http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org _______________________________________________ openEHR-technical mailing list openEHR-technical at lists.openehr.org http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org _______________________________________________ openEHR-technical mailing list openEHR-technical at lists.openehr.org http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org _______________________________________________ openEHR-technical mailing list openEHR-technical at lists.openehr.org http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org _______________________________________________ openEHR-technical mailing list openEHR-technical at lists.openehr.org http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20141217/463ecd6d/attachment.html>

