W3C home > Mailing lists > Public > public-openannotation@w3.org > March 2013

Re: Best Practices - Semantic Tagging

From: Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>
Date: Tue, 5 Mar 2013 11:17:53 +0000
Message-ID: <CAPRnXtm9dmYno+8YouokQeiW_x7QWyBWxjKzGpGbUcRd5_+sAw@mail.gmail.com>
To: "Timothy W. Cook" <timothywayne.cook@gmail.com>
Cc: public-openannotation <public-openannotation@w3.org>
My gut feeling is that this should be presented in
xs:annotation/xs:appinfo, as that is exactly what that structure in
XSD is intended for.

But I would not put semi-RDF/XML in there, either go all the way or
use something else (dcterms?). Thus using rdfs:seeAlso as an attribute
I would say is inappropriate as it seems to be hinting on being RDF
when it is not at all.

Perhaps something like (syntax not checked!):

  <xs:complexType name="ct-f6c5ea6e-6458-4799-874d-7f3d365d260d"
            <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
                <oa:Annotation xmlns:oa="http://www.w3.org/ns/oa#">
rdf:resource="http://www.w3.org/ns/oa#tagging" />
rdf:target="#ct-f6c5ea6e-6458-4799-874d-7f3d365d260d" />

rdf:about="http://purl.bioontology.org/ontology/SNOMEDCT/365761000" />
    <!-- ... -->

Here I use the xml:id on the complex type to make it easy to refer to
it by #anchor and reduce the verbosity a bit. Of course RDF/XML does
work against us a bit in its verbose form.

But unless you want to do something more about the annotation, like
referring to it (give it an rdf:about), adding provenance, or build
some kind of relations between these complex types, then I would think
it would be easier to just do (again syntax not checked):

  <xs:complexType name="ct-f6c5ea6e-6458-4799-874d-7f3d365d260d">

This should comply with the schema at
http://www.dublincore.org/schemas/xmls/qdc/dcterms.xsd which you can
add if you want.

I'm not sure about dcterms:source vs dcterms:identifier  (or
motivation oa:tagging or also adding oa:identifying) - that depends on
the nature of your complex types.

Also xs:appinfo takes a source attribute.. so the simplest might just be:

<xs:appinfo source="http://purl.bioontology.org/ontology/SNOMEDCT/365761000" />

On Sat, Mar 2, 2013 at 2:23 PM, Timothy W. Cook
<timothywayne.cook@gmail.com> wrote:
> HI All,
> Though I have read virtually everything I can find related to this
> subject; including:
> http://lists.w3.org/Archives/Public/public-openannotation/2013Feb/0051.html
> I really don't see the answer to my question.
> First of all this is a "green field" area.  I do not have to be
> concerned with existing documents and how it has been done in the
> past.
> I just want to get this right, the first time. Given all the
> experience from people here.
> Scenario:
> I have XML Schemas that define data instance structures (as usual).
> These schemas use a lot of complexTypes that are restrictions from a
> base schema.  Since each base schema complexType can be represented in
> a schema multiple times with different restrictions, I use a UUID
> based name. For example:
>   <xs:complexType name="ct-f6c5ea6e-6458-4799-874d-7f3d365d260d">
>         <xs:complexContent>
>             <xs:restriction base="mlhim2:DvQuantityType">
>                 <xs:sequence>
> ...
> These complexTypes are almost always definable via a controlled
> vocabulary, ex. SNOMED-CT
> In order to add semantics to the complexType definition my current
> thought is to use:
>   <xs:complexType name="ct-f6c5ea6e-6458-4799-874d-7f3d365d260d">
>     <xs:annotation>
>       <xs:appinfo>
>         <rdfs:isDefinedBy
> rdfs:resource="http://purl.bioontology.org/ontology/SNOMEDCT/365761000"/>
>       </xs:appinfo>
>     </xs:annotation>
>         <xs:complexContent>
>             <xs:restriction base="mlhim2:DvQuantityType">
>                 <xs:sequence>
> ...
> Which will identify this complexType as a Sodium level finding
> according to SNOMED-CT.
> My first question is:
> 1) is it correct to make the assumption that the annotation applies to
> the enclosing complexType without using an rdf:about (or similar)
> definition?
> 2) is rdfs:isDefinedBy the "tag" to use, or is something like
> oa:SemanticTag a better choice?
> Realizing that these annotations will not be reproduced in the
> instance data.  The eco-system around this says that to determine the
> full semantics you must have the schema associated with any instance
> data.
> Thoughts?
> Cheers,
> Tim
> --
> ============================================
> Timothy Cook, MSc           +55 21 94711995
> MLHIM http://www.mlhim.org
> Like Us on FB: https://www.facebook.com/mlhim2
> Circle us on G+: http://goo.gl/44EV5
> Google Scholar: http://goo.gl/MMZ1o
> LinkedIn Profile:http://www.linkedin.com/in/timothywaynecook

Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester
Received on Tuesday, 5 March 2013 11:18:42 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:22:03 UTC