Re: An XML ``presentation'' syntax for OWL

From: Jeff Heflin <heflin@cse.lehigh.edu>
Subject: Re: An XML ``presentation'' syntax for OWL
Date: Wed, 29 May 2002 16:04:57 -0400

> Peter,
> 
> Thanks for putting this together. This really helps us get a feel for
> what OWL is beginning to look like. Because it is easier to focus on
> concrete examples, I've commented on the schema-example.text file.
> Please see my comments below (prefaced with a "J:"):
> 
> <!--            Examples of OWL XML Syntax -->
> 
> <owl:ontology xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>               xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns"
>               xmlns:owl="http://www.owl.org/owl">
> 
> J: I'd like to see an example of include here, and the use of a QName to
> reference a concept from another ontology somewhere.

Good idea.  Go ahead!  :-)

> <!-- Syntax                                     Comments            Why -->
> <owl:EquivalentClass owl:name="Student">        <!-- Good -->
> 
> J: Is this syntax supposed to be valid RDF? If so, why do you use
> owl:name="Student" instead of rdf:ID?

Because of Topologi Schematron problems that I encountered.  I've since
switched to XSV, and fixed this.  (Look for an update soon.)

>  <owl:super owl:resource="Person" />            <!-- OK - resource
> questionable -->
>  <owl:super owl:resource="Thing" />             <!-- OK - resource
> questionable -->
>  <owl:restriction>                              <!-- Unnecessary   
> STRIPING,SCHEMA -->
>   <owl:IndividualRestriction owl:property="child" 
>                          owl:atmost="1">        <!-- Good -->
>    <owl:range>                                  <!-- range="Person" ?
> -->
>     <owl:Class owl:ID="Person" />               <!-- ""            
> SCHEMA -->
>    </owl:range>                                 <!-- "" -->
>   </owl:IndividualRestriction>                  <!-- OK -->
>  </owl:restriction>                             <!-- Unnecessary   
> STRIPING,SCHEMA -->
> 
> J: Is the above restriction a qualified number restriction? If so, your
> latest feature synopsis says these were supposed to be removed due to a
> WG decision.

No, this is not a qualified number restriction.  This is, instead, a
combination restriction, which consists of a maximum number restriction as
well as an independent range restriction.  (That is, here there can be at
most on child, and all of them have to belong to Person.)

>  <owl:description>                              <!-- Unnecessary   
> STRIPING,SCHEMA -->
>   <owl:IndividualRestriction owl:property="advisor"     
>                          owl:atleast="1">       <!-- Good -->
>    <owl:range>                                  <!-- range="Person" ?
> -->
>     <owl:Class owl:ID="Person" />               <!-- ""            
> SCHEMA -->
>    </owl:range>                                 <!-- "" -->
>    <owl:required>                                       <!-- <required
> class="Person" /> ? -->
>     <owl:Class owl:ID="Person" />               <!-- ""            
> SCHEMA -->
>    </owl:required>                              <!-- ""          -->
> 
> J: Why both range and required above? Doesn't atLeast=1 and range=Person
> mean required=Person?

Don't expect this example to make too much sense.  Again, feel free to come
up with more examples.  I believe that you will be able to verify against
the updated schema.

>   </owl:IndividualRestriction>                  <!-- OK -->
>  </owl:description>                             <!-- Unnecessary  
> STRIPING,SCHEMA -->
> 
> J: What's the difference between wrapping an IndividualRestriction in a
> description or restriction? Also see my comment in reply to the abstract
> syntax on whether you need both restriction and description here.

You are correct in that restriction could be removed here.  It is retained
for its ``frame-like'' characteristics.

[...]

> <owl:IndividualProperty owl:name="foo" owl:inverseOf="oof" 
>                                        owl:functional="true">
>  <owl:super owl:resource="bar" />
>  <owl:range>
>   <owl:Class owl:ID="Person" />
>  </owl:range>
>  <owl:domain>
>   <owl:And>
> 
> J: I assume owl:And takes the place of intersectionOf from the abstract
> syntax. I prefer "And." What about using it in the abstract syntax as
> well?

OK.  I'll given in (gladly).  :-)  Actually, it should probably be put up
for the vote.

>    <owl:class owl:resource="Person" />
>    <owl:class owl:resource="Employee" />
>   </owl:And>
>  </owl:domain>
> </owl:IndividualProperty>
> 
> <owl:IndividualProperty owl:name="trans" owl:inverseOf="snrat" 
>                                                 owl:transitive="true">
> 
> J: Why name and not ID, above?

I've used name in the top-level constructs, to make them look different
from RDF.

>  <owl:super owl:resource="p2" />
>  <owl:super owl:resource="p3" />
> </owl:IndividualProperty>
> 
> <owl:EnumeratedClass owl:name="CSProfessors">   <!-- Good -->
> 
> J: Why name and not ID, above?

Ditto.

>  <owl:member owl:resource="ProfessorFoo" />     <!-- OK - resource
> questionable -->
>  <owl:member owl:resource="ProfessorFoo" />     <!-- OK - resource
> questionable -->
> </owl:EnumeratedClass>                          <!-- OK -->
> 
> <!-- RDF-compatible XML-Schema compatible -->
> 
> <owl:Individual owl:name="John">                <!-- Good -->
> 
> J: Why name and not ID?

Ditto. ...

[...]

> J: Wow, the above individual syntax sure is ugly. I like either of the
> ones below a lot better, although I think going with the last one (RDF
> compatible) is probably best for this effort.

The problem with the RDF compatible one is that it is not XML Schema
compatible.  I'm envisioning a (possible) situation where ontologies are
presented in the XML Schema syntax and facts are written in RDF syntax (or,
maybe, in the other XML Schema syntax, but I guess that this would be too
radical).

[...]

> J: One final thing, as your comments suggest, the striping really does
> seem to get in the way of clean syntax.

The striping is really only a separate problem in the individual syntax.
In class and property axioms XML Schema has limitations that make the
syntax pretty much striped.

> Jeff

peter

Received on Thursday, 30 May 2002 16:00:30 UTC