OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office-metadata message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [office-metadata] Adding xml:id's to content.xml


Hi John,

John F. Madden, MD, PhD wrote:
> Hi guys,
>
> While I'm working on getting this example, up another quick question.
>
> If I am
>     - using the external metadata files approach;
>     - need to add some xml:id's to pieces of content.xml in order to 
> provide targets for my external RDF to point to;
You reminded me that we should make it more explicitly in our draft, 
that the metadata manifest should be the only RDF/XML in the package 
that will point to the xml:id.
All other RDF/XML files should use the IRI that have been bound by the 
meta manifest. (I gave an example in the end).
The idea behind is that there exist only one RDF/XML file containing the 
binding between IRIs and xml:id plus path.

>
> there are two possible approaches.
>
> (a) add xml:id's to existing elements in content.xml that wrap the 
> content of interest
> (b) insert new <text:meta-field> elements to wrap what I want and 
> provide a hook for an xml:id.
>
As you have added later yourself (c) using bookmarks that are already 
part of our specifications.
We might want to mention m:about/m:property (a2) used to mark strings 
from the content as RDF literals, without duplication.
>
> Do you guys have any "Best Practice" in mind?
>
> I think (b) is probably the Best Practice, since it doesn't run the 
> risk of interfering with any application-assigned uses of xml:id's on 
> other elements.
>
> Would you guys agree?
>
My view of using the four possibilities:

a)
Attaches metadata to an ODF element that can bear an xml:id attribute. 
The common use case.

a2)
Uses m:about and m:property to mark the string within the element as RDF 
object. Eliminating the need of duplication of this string for the 
metadata. The next common use case.

b)
The text:meta-field should be used, when the content is under direct 
control (being generated) from a plug-in.
For example, in the citation example the user can exchange the content 
from all citation fields of the document by changing the configuration 
of the citation fields from a short to a long citation. The plug-in 
would adapt the content upon it's user configuration.

One plug-in takes responsibility of the content, owns the field.
Therefore we might even want to make this more explicit in the meta 
manifest by adding once an RDF property like "odf:owns" instead of 
"odf:references". This would resolve any ambiguity.

c)
The bookmarks are a fall-back in case the user wants to bundle text that 
goes beyond paragraphs, e.g. marking arbitrary text portions of the 
document.

Therefore I would use in your scenario a) and a2)

I have adapted a part of your example. It contains the name of the 
Doctor, which exist as string only in the content.xml (therefore have to 
use m:about/m:property) and the medical note, which is represented by a 
paragraph. Finally the whole document is referred to by using the 
rdf:about from the odf:Package of the meta manifest.

Meta manifest:
===========
<odf:Package  rdf:about="urn:uuid:224ab023-77b8-4396-a75a-8cecd85b81e3"
    xmlns:odf="http://docs.oasis-open.org/opendocument/meta/package#";
    <odf:hasPart>
        <odf:ContentFile 
rdf:about="urn:uuid:321fc314-69d3-4019-859d-29a5dc2721a0" 
odf:path="content.xml">
            <odf:hasPart>
                 <odf:Element 
rdf:about="urn:uuid:2e248b4a-99e0-487b-85e2-caecf1d2f96b" 
odf:idref="id-Plan-1"/>
            </odf:hasPart>
        </odf:ContentFile>
    </odf:hasPart>
    <!-- ... -->
</odf:Package>

RDF/XML
=========
 <!-- earlier http://www.odf.org/this#id-Whole-Document -->
<amdo:ClinicalEncounterNote 
rdf:about="urn:uuid:224ab023-77b8-4396-a75a-8cecd85b81e3">
    <dc:creator>
          <aemv:Doctor rdf:about="http://some-hospital-employee#id12345"/>
    </dc:creator>
    <dcterms:hasPart>
          <amdo:ClinicalMedicationNote 
rdf:about="urn:uuid:2e248b4a-99e0-487b-85e2-caecf1d2f96b"/>
    </dcterms:hasPart>
    <!-- ... -->
</amdo:ClinicalEncounterNote>


Content.xml
==========
<text:p text:style-name="P3" xml:id="id-Plan-1">Hyperlipidemia - He will 
stay on lovastatin 20 mg daily. <text:meta 
m:about="http://some-hospital-employee#id12345"; 
m:property="http://http://xmlns.com/foaf/0.1/name";>Sam Jones</text:meta> 
thinks he would like to see his LDL cholesterol below 100.</text:p>

PS: Perhaps we can even use m:data-type and m:data-value when describing 
the drug amount?

Hope that helps.
Svante


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]