OK Bert
On 09/27/2013 05:20 PM, Thomas Beale wrote: > > Bert, > > can you raise an issue on SPECPR > <http://www.openehr.org/issues/browse/SPECPR> - that's the issue > tracker that we use to feed specification work. If you just paste most > of this post in as the description that will be enough to get back to > this when more people can get involved (which will be fairly soon). > > thanks > > - thomas > > On 26/09/2013 11:21, Bert Verhees wrote: >> >>>> >>>> In my system it is not useful to preload archetypes, because, >>>> archetypes are only parsed once in my system. >>>> That is when they are saved in the system. They are parsed in order >>>> to create a RNG/Schematron definition. >>> >>> ok, so the downstream form of an archetype you are using is a >>> Schematron schema - so that's the thing that needs to be stored. >> >> OK, I misunderstood that part of the discussion, having a form of >> XML-schema is a representation of an archetype, which can be for >> specific purposes like validation more efficient then the >> archetype-object, depending on the technical architecture of the kernel. >> >> It seems that we agree on that. >> >>> >>>> >>>> That is used to validate the data, and if new data are entered, >>>> then they will be checked against that RNG/Schematron definition, >>>> not against the parsed archetype. >>>> The schema is loaded in microseconds and the validation takes one >>>> second. >>>> >>>> After the data are validated, they are stored in an XML-database, >>>> and they will never be validated again. They are ready for >>>> XPath-queries and XQueries, and all kind of complicated handling >>>> without even looking at an archetype. >>> >>> right - that sounds like all other archetype-based systems I know of. >>> >>>> >>>> So the refusal to specify a "archetype_id" in the specs is, in my >>>> architecture, bad for performance, because it forces extra >>>> archetype-parsing, so I have that property without the consensus >>>> with the specs, and I do not see it as a waste. I make sure that >>>> when I have to export data to an OpenEHR system, I will put the >>>> archetype_id in the archetype_node_id property. >>> >>> but the specs already specify archetype_details, which contains the >>> archetype id. And you can detect that easily in a schematron schema >>> I guess. So you can easily figure out that you are on one of those >>> nodes. Is the real problem simply that the syntax of what is in >>> archetype_node_id on one of those nodes - an archetype_id rather >>> than an at-code - causes some problem in your processing? I am not >>> clear on what though... are you trying to use the at-code texts at >>> runtime? Are they also in the Schematron schema? >> >> We are not talking about the OpenEHR reference model, but about >> archetyped data-handling. >> >> I have two arguments, the first one is most simple to explain, so I >> start with that. >> ---------------------- >> 1) >> *A golden rule in design is that attribute-names should indicate what >> they are there for.* >> >> We are not writing obfuscated code, but readable code, because the >> cold war is finished, and we do not need to confuse the Russians >> anymore, so we can safely honor this rule. >> >> This means, an attribute (in the ADL common notation) which contains >> the archetypeNodeID should be called archetype_node_id and an >> attribute containing an archetypeId should be called archetype_id and >> it is confusing to use the attribute archetype_node_id to store both, >> and even, which makes it worse, without indication about what is in it. >> ---------------------- >> 2) >> The second argument is a more technical issue and a bit difficult to >> explain, but I try with an example: >> >> Imagine you have extracted an XML-path in your datastorage which says >> ....../details[@archetype_node_id="at0001"]/items[@archetype_node_id="at0003"]/......... >> >> >> >> Say, your client software wants to build a GUI, and uses the >> ontology-information to create the GUI-control-indicators and >> help-information. I think this is possible to do that that way. It >> makes dynamic GUI-building possible. >> This example-path above is easy to find and will not cause any >> complicated handling. >> >> But in the current situation, the path can look like: >> ....../details[@archetype_node_id="at0001"]/items[@archetype_node_id="openEHR-EHR-ITEM_LIST.address.v1"]/......... >> >> >> >> First Step: Now the GUI software wants to have a container-control >> which contains the items, and it looks in the ontology of the >> containing data-set-archetype to find the archetype_node_id: >> "openEHR-EHR-ITEM_LIST.address.v1" >> >> It does not find it, because it is not there. >> >> Second Step: Now you suggest that the software should look if there >> is an archetypeDetails attribute, to see if there is another >> archetype to be used for ontology search. This is one step extra the >> software needs to do. >> >> Should it do this at every archetypeNodeId, or only if search did not >> give a result? That is a statistical question, which workaround will >> be applied more and cost more on the long term. Maybe some tricks may >> help, and we get tricky software. >> >> Third Step: Then, the archetype_node_id in that archetype to search >> for is invisible for the software, because, it is not in the path. >> So, this step is a more complicated, the software needs to know which >> archetype_node_id belongs to the root of that archetype, and then it >> can find in the ontology section what the description is. >> >> This all could be so much easier, and efficient when the extracted >> path looked like: >> ....../details[@archetype_node_id="at0001"]/items[@archetype_id="openEHR-EHR-ITEM_LIST.address.v1" >> >> @archetype_node_id="at0000"]/......... >> >> The software would know in one step what to do to build its dynamic >> GUI. It would see in one step that there is another >> archetype/ontology-section involved, and it would know in the same >> step which archetypeNodeId to look for. >> >> It seems to me that the golden rule in my first argument is there for >> good reason. It makes code not only better readable, but also more >> efficient, it forces short code-paths to solutions for >> information-handling >> ---------------------- >> >> I hope my arguments are clear now. >> >> Bert >> >> _______________________________________________ >> openEHR-technical mailing list >> openEHR-technical at lists.openehr.org >> http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org >> >> >> > > > -- > Ocean Informatics <http://www.oceaninformatics.com/> *Thomas Beale > Chief Technology Officer* > +44 7792 403 613 Specification Program, /open/EHR > <http://www.openehr.org/> > Honorary Research Fellow, UCL <http://www.chime.ucl.ac.uk/> > Chartered IT Professional Fellow, BCS <http://www.bcs.org.uk/> > Health IT blog <http://wolandscat.net/category/health-informatics/> > View Thomas Beale's profile on LinkedIn > <http://uk.linkedin.com/in/thomasbeale> > > > > > _______________________________________________ > 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/20130927/018c07b8/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: image/jpeg Size: 4085 bytes Desc: not available URL: <http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20130927/018c07b8/attachment.jpe> -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: image/png Size: 511 bytes Desc: not available URL: <http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20130927/018c07b8/attachment.png>