On 07/12/2012 21:50, Bert Verhees wrote: > On 12/07/2012 06:01 PM, Thomas Beale wrote: >> The openEHR.org repository is not dictating anything to anyone, it's >> just providing a set of self-consistent archetypes that should be >> useful. Most of those archetypes will be from national programmes >> over time. Anyone can take part in the modelling. It seems to me to >> be a pretty free ecosystem. > > Hi Thomas, my problem is that archetypeID-clashes will occur if > archetypes with the same ID's but different from content exist. This > is because the Locatable is connected with an archetypeID according to > the specs, and which is easy to lose its uniqueness, because it has > obvious terms. > > The problem is in my opinion, and recognized by others, that this is > restrictive. > This problem is easy to resolve by giving them unique ID's.
which is what we expect to do with namespacing, based on reverse internet domains. Using reverse internet domain names means we don't have to invent a system for assigning the namespace ids, all we need to do is solve the technical problem of including namespace ids in the overall id. In the future, we should have 'identifying properties' that make up the multiaxial id, i.e. instead of the string openEHR-EHR-OBSERVATION.bp_measurement.v1 being a single property in the AOM ARCHETYPE class, it would be broken into pieces, and then this kind of id can be generated functionally. Other variants, including with the full version id can also be generated e.g. openEHR-EHR-OBSERVATION.bp_measurement.v1.3.16 (and in the future both of these will have namespaces). The only true 'id' field in that case will be the UID field. I think in the ADL representation of an archetype we would still use the multi-axial id at the top, because it is very convenient, but in XML and dADL, JSON, etc it would appear in pieces. And of course in AOM. Then it is just a question of tools using the different kind of ids - either the generated form, or the UID - to manage the archetypes. For example, CKM should use UIDs to track archetypes so that even the RM class could be changed (maybe someone decided it should be an ACTION instead of an OBSERVATION). And so on. We are not there yet, but those are the proposals I would have, and I have based most of the thinking on what others have said about improving the way the ids work (for example, the UPV guys have been asking for a long time to make the multi-part ids generated, and they are right, we are just slow in making it happen ;-) But I will get out a new version of the ADL 1.5 draft that includes these changes. Anyone is welcome to come up with a better idea in terms of namespacing of course - we just want something that works well. The only thing I see as really difficult to justify is getting embroiled in Oids. If we think Oids that are managed by other orgs need to be attached to openEHR artefacts, no problem, but we don't want to make it so that tools like CKM (or any equivalent) rely on Oids to work - that will just paralyse them. > > If the same archetypeID's are easy possible, than this will be > restrictive, because if an archetype is inside the eco-system, it is > difficult to write another archetype on the same concept. > It even can happen in a large eco-system (like a regional > health-eco-system which is in the Netherlands very common) that > someone writes an archetype, with an already existing ID. So the > current situation is restrictive and worse, it can easily come to > erroneous situations. assuming we have namespacing, I don't think it is restrictive, it is just a problem that the assignment of new ids, and the ability to search existing ids is not yet an online service. I would propose that it is a simple separate service that just performs those functions, and needs to exist for each domain (i.e. archetype namespace, e.g. nl.nictiz or whatever). > > It is also very hard to extend an ecosystem because, there can be more > archetypes active in the extension-area, which have the same ID. > So this is restrictive too. I believe this is a similar situation as > Koray Atalag experienced. > > The concept and other content-parameters can be properties of an > archetype, it is not necessary to put them in the archetypeID. > Compare with the WWW, every URL (ID) is unique, but title, keywords, > other parameters are properties of the document, which have nothing to > do with the URL (ID) of the document. This URL (ID) is nowadays more > and more a meaningless database-entity, sometimes even build from > different parts, all also with meaningless URL's (ID's). > So on the WWW it is possible to have more documents with the same > concept, and still clashes are not possible. As long as you know the > URL (ID) you can find your document. > Google, the largest database in the world, works this way. yep, see above > > Some time ago, I had a thread on this list, (or the technical list) > about the filename which is the same as the archetypeID. You said, > that this is not necessary, the filename can be anything. The ID is > what is inside the archetype. that's correct - I don't know of any tool that makes any assumptions about file names or directories for some years now. The AWB for example fast-parses the archetypes no matter where they are or what they are called and figures out the ids and inheritance structure. I don't believe any other tools make any assumptions about filename or directory. > This is already an improvement (although I don't know one > archetype-editor which supports another filename then the ID). I think you will find that although the editor tools by default save the archetype in a file that is the same as its multi-axial id, this is not needed. You should be able to create a file called 'blue_cheese.adl' and the AE will read and save to that. > The next improvement should be that a Locatable should be able to > point to an unique ID, and that ID, cannot be according to the specs > of the archetypeID, which says that the concept and other things > should be part of the ID and causes obvious terms to be used. some of this is already in the last two proposal docs here <http://www.openehr.org/svn/specification/TRUNK/publishing/roadmap.html> (note these are not all up to date, so ignore the bits that are obviously wrong). But I don't think meaningful multi-axial ids are a problem- like I said before, an id is just a string of characters. If it is made into a mnemonic, it is 100x more useful to software developers. It is only in perfect systems that the underlying nature of ids doesn't matter. > > Regarding to interoperability, I think querying will never be possible > in a same way. That is an utopia. (The better is the enemy of the good > (is a Dutch saying)) > Having content fixed to the archetypeID, because of interoperability > is about the same as forcing products to have the same > database-structure. Then you can exchange SQL (instead of AQL). > I don't think that is wise to aim that goal, because it will never > happen. actually it's already happening in production in at least 3 countries. We don't make any assumption at all about the physical structure of the DB, about SQL converted form of AQL, or even that the converted form of AQL will include SQL at all - in some modern databases, SQL is gone. Physical database structures are way of strangling interoperability actually, because you need total freedom to choose what you want and also change it, to manage local requirements of scalability and performance. Delinking this from AQL is absolutely fundamental to success, and particular, of enabling a decision support industry to flourish. As i say, this is already routine today, so if you are having problems with AQL, we should discuss it - they have already been solved in other implementations. > > And on the other hand, if you have all archetypes with a unique ID, > you can safely inter-operate, because, then you are sure, it is the > same archetype to which the Locatable points. Ithink this is a different problem. I would expect to support the use of both UIDs and/or multi-axial ids in data, depending on the scope of sharing and so on. Converting between multi-axial and UID form will be easy in the future. In some systems, it might be the case that only UIDs are used, but that implies that noone ever needs to look at the data itself, or at EHR Extracts, or to visualise data at some debugging level. I have never seen any system like that ever. So in summary, I believe that what is needed is a service for helpinng to assign, check, compare ids etc, as well as namespacing, and UIDs, and interconvertability between these. - thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.openehr.org/pipermail/openehr-clinical_lists.openehr.org/attachments/20121208/6a7008d1/attachment.html>