-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Requiring XQuery as a generic query language is not required by use cases #5
Comments
The idea of a short list of parameterized queries was discussed in committee. Your points are well taken, and were raised during the original discussion. There is, presently, support to move CSD forward to public comment using XQuery. You have correctly pointed out that an implementer, at their option, can strictly support only the mandatory queries and, at their option, simply parse out what they want from the inbound XQuery as parameterized tokens. The presently proposed approach would seem to be, therefore, "no hardship" for an implementer who does NOT want to support additional functionality. |
OK; could we state the reasons the committee stated is support to move with XQuery so this group can understand the forces CSD is under? To paraphrase:
There is hardship to the CSD authors/editors (e.g. yourself) and some to implementers as even in a small domain of tokenized queries there are many degrees of freedom and semantically equivalent queries that may not be processed or interpreted equivalently, for example:
not equal to
not equal to
then if you support all of XQuery, supporting the full gamut of declarative queries is one thing; and supporting full FLWOR expressions is yet another other can of worms. It is a pity we didn't get in time to expose the logic behind not exposing XQuery as the query language. CSD could support the same exchanges without XQuery, and could optionally be complemented by another XQuery-dedicated profile. I think this discussion is also helpful in the OHIE community to illustrate the risks inherent to embedding sub-language profiles into larger specs. |
The role of the CSD profile is to support secure, standards-based querying of related information across Organizations, Facilities, Services and Providers -- and optionally a freeBusy service. Presently these data are not all in one place, so we need to be able to express the interrelationships so that we can do a query against a JOIN of the content. Is this easy to do? |
Expressing the interrelationships in secure and standards-based ways is easy to do, if the services owning each piece of information follow good practices on exposing resources in addressable ways with appropriately specified interlinking fields (REST service interfaces is a good way to achieve this). Some of these best practices are already standards based and rapidly becoming industry standards of their own. Aggregators can then decide to do queries with traversals, eager loading, and whatever filtering they decide, while respecting the boundaries and autonomy of the underlying services. A challenge with CSD as it stands today is it adds forces against service orientation; adding incentives to glom everything up into one database/store just to make the query processing simpler. A caching aggregator could do the job, but LMICs benefit from deployments that have less moving parts. Maybe future versions of CSD will approach this differently and I'm sure we'll learn a lot from this version. On Jun 4, 2013, at 9:19 AM, djritz [email protected] wrote:
|
This message (see below) was just posted to the IHE ITI tech committee I cut/paste the GitHub email reply address into Outlook… Hope this works… Derek. From: [email protected] [mailto:[email protected]] On Behalf Hi all. Based on feedback from 3 implementer stakeholders, a change in the CSD The gist of the change is to support Consumer actors using XQuery to query The Manager maintains a replica XML document. This replica is kept up to This modified approach means Directory actors will not have to natively Comments are welcome, Derek. ~~ej edited 6/6; formatting newlines to make more Derek's post more readable. Unsuccessfully. Thanks Outlook. |
The PPT Derek mentions can now be seen here: |
Still quite a few misgivings, though it is better than before. The idea of aggregating/caching the data from different directories is I've had a brief play with xquerying on orgunits from Nigeria (around 40000 I think the way I would approach the front end interfaces would indeed be I have chatted a bit offline with Carl and Derek and they know that there Bob On 7 June 2013 00:12, edjez [email protected] wrote:
|
+11 on Bob's recommendation:
Agree, more prototyping would inform the spec a lot. |
My point was not that caching is a bad strategy (in some contexts it could be good), but when an interop/exchange spec has to get deep into functional descriptions of components and mandate behaviors to meet non-specified crosscutting requirements there is a 'smell' and CSD could benefit from us from analyzing that a bit. Maybe some of this is profile implementation guidelines or "implementers' notes", not profile specification. Exchange profiles with good longevity, reuse, and adoption tend to boil down to "Over such pipe I send you this and you return that". It's part of the encapsulation principle - an exchange profile needs to help all parties know less about what's on other side while maximizing freedom to do whatever may be needed on their own. |
I think the problem (or at least a problem) CSD is trying to solve is how xquery is certainly that. And there are various ways people have figured I think if you are going to provide an xquery engine (and expose it and Otherwise it pretty much conforms to Ed's adage for good exchange profiles, The problem is that even though it need not be stated, the mere requirement The questions we need answered are (ii) if they really do need the max degrees of freedom xquery could give (iii) how much xquery would the poor buggers need to learn. I can foresee But it comes down to (i). If they really need a flexible query language, On 7 June 2013 16:56, edjez [email protected] wrote:
|
This whole thread and the fact that we're trying to support things like Maybe this complexity is needed but I feel we're getting a bit away from Thanks, Matt On Fri, Jun 7, 2013 at 7:45 PM, bobjolliffe [email protected]:
|
Matt, sorry for the confusion. You can see a relatively recent version here: On Jun 7, 2013, at 9:54 AM, Matt Berg [email protected] wrote:
|
ah ok sorry about that :) On Fri, Jun 7, 2013 at 8:02 PM, edjez [email protected] wrote:
|
Just a question.. If CSD is seen as a document why not piggyback on the existing ITI specs for document exchange and query? (Similar to how XDS-I specializes XDS for imaging content). IMO this would be more consistent with existing XD* infrastructure. Consumers could simply use already existing XD* operations to maintain a CSD free/busy document related to a particular facility / provider / org. Additionally organizations could just provide a CSD export of facilities, providers and orgs in their affinity domain. Apologies if this is off topic, just my first reaction when flipping through the ppt. |
Hi Justin. No, the CSD profile is not thinking about a document in the same Hope that helps, Derek. PS: Ed, I will send you a link to the latest CSD profile draft when it is On Fri, Jun 7, 2013 at 1:14 PM, justin-fyfe1 [email protected]:
Derek RitzThis email may contain confidential information intended only for the |
@mberg I do hope that, in order to facilitate support the HPD and CSD profiles, the FRED API will explicitly support an XML format per: |
Summary
Currently the IHE CSD profile notes using XQuery as a generic language in which to send in queries. Because XQuery has such a large surface area, CSD then goes on to say:
If all CSD use cases can be met with a set of parametrized queries, it could just specify those and end up leaner and more focused.
Issues
Having an open query language as a request format has the following issues:
Recommendation
The text was updated successfully, but these errors were encountered: