Re: [re-send] Re: XSLT: status of owls:Documentation unclear

Jerome Euzenat wrote [Date: Sun, 26 Jan 2003 15:55:12 +0100]
>
>            after thinking a while about this owls:Documentation, here
> are my though. There are three solutions:
>

[...]

> 3) I think that a third solution is possible, mixing both: allowing
> anything within owls:Documentation to be ignored (but text which is
> interpreted as rdfs:comments and a few rdfs tags such as label,
> etc.). If one wants to add a particular treatment to some set of
> elements, she must write the xslt rules (for
> "owls:Documentation/myTag") and import them.
>
> I can implement those for Dublin core as an example.
>
> What do you think?

Basically, I think it's better to make the relations explicit
between the first class constructs in OWL RDF/XML and
XML presentation syntax.

[XML presentation syntax]    [RDF/XML]
    owls:Documentation   ==> rdf:comment
    owls:Label           ==> rdf:label
    owls:VersionInfo     ==> owl:versionInfo
    owls:PriorVersion    ==> owl:priorVersion
     ...

So, I prefer to mapping owls:Documentation to
rdf:comment in a straightforward manner.  But we can
still follow your idea, by using owls:Annotation
as a placeholder of additional metadata elements.

 1: <xsd:element name="Annotation">
 2:   <xsd:complexType>
 3:     <xsd:sequence minOccurs="0" maxOccurs="unbounded">
 4:       <xsd:choice>
 5:         <xsd:element ref="owls:Label" />
 6:         <xsd:element ref="owls:Documentation" />
 7:         <xsd:any namespace="##other" processContents="lax" />
 8:       </xsd:choice>
 9:     </xsd:sequence>
10:   </xsd:complexType>
11: </xsd:element>

The line 7 above says that owls:Annotation can take any
element as its child.  In particular, [namespace="##other"]
indicates the wildcard element can be in any namespace
other than the target namespace (i.e. 'owls').  In addition,
[processContents="lax"] allows an XML Schema processor to
validate elements for which it can find namespace
declarations and raise errors if they are invalid.
However, the processor will not report errors on the
elements for which it does not find declarations.

The above validation process does not prohibit to write XSLT
rules for the wildcard elements ("owls:Annotation/yourTag").

For example:

###OWL in XML presentation syntax
  <owls:VersionInfo>
     $Id: owl-ref-proposed.html,v 1.148 2003/01/21 22:44:39 mdean Exp $
  </owls:VersionInfo>
  <owls:Annotation>
    <owls:Documentation>An example OWL ontology</owls:Documentation>
  </owls:Annotation>
  <owls:PriorVersion owls:ontology="http://www.example.org/wine-112102.owl"
/>
  <owls:Imports owls:ontology="http://www.example.org/food.owl"/>
  <owls:Annotation>
    <dc:title>OWL Web Ontology Language</dc:title>
    <dc:creator>W3C Web Ontology (WebOnt) Working Group</dc:creator>
  </owls:Annotation>

may be transformed to (by Jerome's stylesheet)

###OWL in RDF/XML
  <owl:versionInfo>
    $Id: owl-ref-proposed.html,v 1.148 2003/01/21 22:44:39 mdean Exp $
  </owl:versionInfo>
  <rdfs:comment>An example OWL ontology</rdfs:comment>
  <owl:priorVersion rdf:resource="http://www.example.org/wine-112102.owl"/>
  <owl:imports rdf:resource="http://www.example.org/food.owl"/>
  <dc:title>OWL Web Ontology Language</dc:title>
  <dc:creator>W3C Web Ontology (WebOnt) Working Group</dc:creator>


-Masahiro

Received on Sunday, 26 January 2003 22:00:10 UTC