Hi!

Ok, if implementation experience says it is better to have separate
sections for human readable annotations and machine-targeted "program
directives" then I guess that is a good approach. Are there any tools that
support this now?

If going for an RDF-like URI based approach for "program directives" or
"implementation_directives" then those serialization formats that aim for
human readability (e.g. ADL and YAML) may want to use some kind of
URI-prefixing-mechanism to make the directives shorter and more readable.
(Similar approaches are used in XML (namespaces) and many
RDF serialization formats.)

I assume "program directives" will include both pass_through and more
purely GUI-oriented directives. Will they contain everything
annotation/directive-like that is intended to be machine processable and
human language independent? Is that a correct and shared view of the
purpose?

Are both "annotations" and "program directives" supposed to be attributes
of the class AUTHORED_RESOURCE? I don't find them in the current
http://www.openehr.org/svn/specification/TRUNK/publishing/architecture/rm/common_im.pdfbut
I guess that might be a matter of time constraints - or are they going
to be only a part of AOM/ADL itself? I just want to check what the future
thoughts are.

Is "program directives" the best name? "Annotations" is very a very generic
and useful name, but that word is already taken for the human readable
stuff. Could anything from the following list inspire somebody with a more
native feel for English to come up with alternate name suggestions?
- directives (shorter and more general than "program directives").
- instructions
- notes
- meta...something
- commands
- processing...
- triples
- links
- extensions
- ...

Best regards,
Erik Sundvall
erik.sundvall at liu.se http://www.imt.liu.se/~erisu/  Tel: +46-13-286733


On Tue, Jan 31, 2012 at 00:07, Heath Frankel <
heath.frankel at oceaninformatics.com> wrote:

> Hi Erik,
> No problem with your RDF approach but I agree with Thomas that the purpuse
> of view directives. (or more generally,  program directives) is very
> different from annotations. XML Schema separates these two concepts.
> Ocean has reused annotations in the template designer for these kind of
> directives for some time as well as the hard coded hide-on-form, and it is
> from this experience that we have proposed this separate section.
> Heath
> On 31/01/2012 8:12 AM, "Erik Sundvall" <erik.sundvall at liu.se> wrote:
>
>> Please rewind to
>> http://www.openehr.org/mailarchives/openehr-technical/msg05530.html and
>> the followup messages in that thread.
>>
>> Using an RDF like URI-based approach still seems to be an option. No
>> registering hassle or new sections in adl, just alternate use of the
>> existing annotation section.
>>
>> // Erik
>>  Den 30 jan 2012 14:31 skrev "Thomas Beale" <
>> thomas.beale at oceaninformatics.com>:
>>
>>>  On 30/01/2012 03:16, Heath Frankel wrote:
>>>
>>>  Hi Pablo,****
>>>
>>> ** **
>>>
>>> If I understand correctly, the pass_through attribute is only for data
>>> displaying on a screen (as you mention the use for data grouping or
>>> collapsing). If that's right, I don't think that should be part of the
>>> generic template structure, because templates are meant to represent other
>>> elements than data views/GUI, like messages, reports, etc.****
>>>
>>> ** **
>>>
>>> No, that is not what I are saying.  I are saying it can be used for more
>>> than display purposes such as data views, messages, reports etc.****
>>>
>>> ** **
>>>
>>> As you mention " screen layout and binding are consistent with the XML
>>> schema or class it will bind to" I feel maybe this is a little attached
>>> to Oceans implementation, e.g. in our implementaition we don't have binding
>>> with XML Schemas .****
>>>
>>> ** **
>>>
>>> Ocean doesn?t bind to XML schema either, I used this as an example of
>>> why you may want to ensure your presentation view is consistent with a data
>>> view derived from the same template artefact.****
>>>
>>> ** **
>>>
>>> The use of the annotation-like structure for view directives allows us
>>> to separate these kind of directives from true annotations and the data
>>> definition itself whilst providing flexibility for specifying a set of
>>> directives that we know of now but may improve on later such as
>>> pass_through, add to in the future, and also use in local environments.  We
>>> need to remember that templates where inteded for local use cases but are
>>> now also becoming important at jurisdictional levels for shared use.
>>>
>>>
>>> Heath,
>>>
>>> the options for passthrough today (ADL/AOM 1.5) seem to be the following:
>>>
>>>    - leave it where it is today, specified on C_COMPLEX_OBJECT
>>>    - move it to be an annotation within the new annotations section of
>>>    ADL 1.5 archetypes, with a key such as 'view_directive'
>>>    - create an entirely new section, structured the same (?) as the
>>>    annotations section, within the archetype for view / other directives
>>>
>>> The potential problems with including a new view-directives section
>>> within archetypes include:
>>>
>>>    - it makes the archetype dependent on those directives. They would
>>>    need to be limited to universal directives, because most UI/presentation,
>>>    as well as other implementation directives are locally specific, and 
>>> there
>>>    can clearly be more than one, for a given archetype.
>>>    - we don't yet know what structure such a directives section should
>>>    really take
>>>
>>> Potential benefits:
>>>
>>>    - the section can be specified within the AOM & ADL docs, i.e. no
>>>    new specs required
>>>     - making a new section in archetypes & templates means that we
>>>    don't need any new tools to process these directives - the main archetype
>>>    compiler would do it
>>>     - we could make it so that *applying more local directives was done
>>>    by defining correct inheritance rules for the implementation-directives
>>>    section* - i.e. use inheritance
>>>
>>> As I think about this, I am starting to be persuaded that continuing to
>>> use inheritance to achieve local additions and overrides is a good thing -
>>> it works for the rest of the archetype. If we commit to this path, the
>>> remaining question is: is the current annotations section structure
>>> sophisticated enough to contain implementation directives? An example of
>>> the annotations section from a current test archetype is as follows:
>>>
>>> annotations
>>>     items = <
>>>         ["en"] = <
>>>             items = <
>>>                 ["/data[at0001]/items[at0.8]"] = <
>>>                     items = <
>>>                         ["design note"] = <"this is a design note on
>>> allergic reaction">
>>>                         ["requirements note"] = <"this is a requirements
>>> note on allergic reaction">
>>>                         ["medline ref"] = <"this is a medline ref on
>>> allergic reaction">
>>>                     >
>>>                 >
>>>                 ["/data[at0001]/items[at0.10]"] = <
>>>                     items = <
>>>                         ["design note"] = <"this is a design note on
>>> intelerance">
>>>                         ["requirements note"] = <"this is a requirements
>>> note on intolerance">
>>>                         ["national data dictionary"] = <"NDD ref for
>>> intolerance">
>>>                     >
>>>                 >
>>>                 ["/data[at0001]/items[at0002]"] = <
>>>                     items = <
>>>                         ["design note"] = <"this is a SPECIALISED design
>>> note on Statement">
>>>                         ["NEW TAG"] = <"this is a SPECIALISED design
>>> note on Statement">
>>>                     >
>>>                 >
>>>             >
>>>         >
>>>     >
>>>
>>> So let's imagine that a new section could be of a similar structure. The
>>> first thing to note is that it is path-based. Is this sufficient? For now,
>>> I will assume it is. Secondly, do we need multiple languages? I would
>>> assume not, since we are now talking about computable strings rather than
>>> human-consumable strings. The tags will obviously be different. Here is a
>>> possible example.
>>>
>>> *implementation_directives*
>>>     items = <
>>>         ["*/data[at0001]/items[at0.8]*"] = <
>>>             items = <
>>>                 ["*presentation*"] = <"*pass_through*">
>>>                 ["*querying*"] = <"*something_else*">
>>>             >
>>>         >
>>>         ["*/data[at0001]/items[at0.10]*"] = <
>>>             items = <
>>>                 ["*presentation*"] = 
>>> <"*widget_type*=*smart_text_coded_selector
>>> (args...)*">
>>>             >
>>>         >
>>>     >
>>>
>>> The blue tags would have to be controlled somehow by agreement, and
>>> would define the possible 'implementation directives' that could be stated.
>>> The green values, or 'flags' could potentially also be controlled. The red
>>> part in the last one illustrates an example whereby the value is a piece of
>>> syntax (it could be a function call, or something like a Javascript
>>> expression). If the value space for a given 'flag' is controlled (e.g.
>>> 'widget_type' always = some javascript expression) then we have enabled
>>> some formal computing elements to be used, as are likely to be required for
>>> implementation.
>>>
>>> It seems clear to me at least that there would not be many of these
>>> implementation directives on international archetypes, but national and
>>> local archetypes, and particular templates would potentially have many.
>>>
>>> We would need to establish basic rules like:
>>>
>>>    - tag names come from a) a central controlled vocabulary and
>>>    additionally b) local values being allowed
>>>       - this could be done by registering the vocabularies at different
>>>       jurisdictional levels. Initially, I think we could just work off a 
>>> central
>>>       wiki page, with perhaps a few key tags defined in the AOM spec itself 
>>> (if
>>>       we can figure them out in time)
>>>    - values could also potentially be defined in this controlled
>>>    vocabulary, i.e. in the form
>>>     - tag1 = value1 | value2 | value3 etc
>>>       - or in other ways, e.g. tag1 = string; javascript syntax
>>>    - specialised archetypes and templates could override the value of
>>>    an existing tag with another legal value for that tag
>>>       - but we probably need to allow locally defined values as well
>>>       for tags with a fixed value set
>>>    - specialised archetypes and templates can add directives containing
>>>    new (locally-defined) tags and values
>>>    - there may need to be a way to 'remove' a tag setting from an
>>>    archetype
>>>
>>> This is obviously pretty 'soft' computing, and therefore open to some
>>> dangers, but if we manage it as a community in a sensible way, it could
>>> bring a lot of value. The use of specialisation to add new directives I
>>> think is the key to making it work properly with respect to localisation.
>>>
>>> thoughts?
>>>
>>> - thomas beale
>>>
>>>
>>>
>>> _______________________________________________
>>> openEHR-technical mailing list
>>> openEHR-technical at openehr.org
>>> http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical
>>>
>>>
>> _______________________________________________
>> openEHR-technical mailing list
>> openEHR-technical at openehr.org
>> http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical
>>
>>
> _______________________________________________
> openEHR-technical mailing list
> openEHR-technical at openehr.org
> http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20120131/859cea49/attachment.html>

Reply via email to