LC Responses/RM1b

From OWL
Jump to: navigation, search

Dear Ralf,

Thank you for your comments

<http://lists.w3.org/Archives/Public/public-owl-comments/2009Jan/0059.html>

on the OWL 2 Web Ontology Language last call drafts.

Your mail actually contains three distinct comments. This response exclusively covers your first comment. There will be additional responses to your other two comments.

In your first comment, you state:

""" I strongly recommend to change the OWL2 specification in such a way that data properties are always functional. """

The working group acknowledges that by applying the approach you mention in your comment it would indeed be sufficient if all data properties would be functional.

However, the working group is aware of the fact that the original OWL language did not restrict data properties to be functional. Therefore, restricting data properties to be functional in OWL 2 would break backwards compatibility with OWL.

For this reason, the working group has decided not to make the requested change to OWL 2.

Please acknowledge receipt of this email to <mailto:public-owl-comments@w3.org> (replying to this email should suffice). In your acknowledgment please let us know whether or not you are satisfied with the working group's response to your comment.

Regards, Michael Schneider on behalf of the W3C OWL Working Group


PeterPatel-Schneider PeterPatelSchneider 20:59, 11 March 2009 (UTC)

[Draft Response for LC Comment 51:] RM1

Dear Ralf,

Thank you for your message <http://lists.w3.org/Archives/Public/public-owl-comments/2009Jan/0059.html> on the OWL 2 Web Ontology Language last call drafts. This response addresses the second and third parts of your message.


OWL does not address the RDF/XML syntax. As far as OWL is concerned RDF documents are a source of RDF graphs (i.e., sets of triples). The only place where RDF/XML is used is as a syntax for RDF graphs, and as far as OWL is concerned it is the RDF graph that is important, not the RDF/XML surface syntax.

The example that you have in your message appears to correspond fairly closely to the functional syntax

 DatatypeRestriction(xsd:nonNegativeInteger owl2:minExclusive "65"^^xsd:int)

which translates into the following triples

 _:x rdf:type owl:DataRange
 _:x owl:onDataType xsd:nonNegativeInteger
 _:x owl:withRestrictions _:l1
 _:l1 rdf:first _:y1
 _:l1 rdf:next rdf:nil
 _:y1 owl:minExclusive "65"^^xsd:int

which can be written in RDF/XML (modulo various XML stuff) as

 <owl:DataRange>
   <owl:onDataType rdf:resource="&xsd;nonNegativeInteger" />
   <owl:withRestrictions  rdf:parseType="Collection">
      <rdf:Description>
         <owl2:minExclusive rdf:datatype="&xsd;int">65</owl2:minExclusive>
      </rdf:Description>
   </owl:withRestrictions>
 </owl:DataRange>

This does not appear to be any better or worse than many other ways of expressing the syntax, and does not require an extra vocabulary element just to take the place of the rdf:Description, whose presence here appears to be benign.


Thank you very much for bringing it to our attention that we forgot to complete our work on naming datatypes. The Working Group has decided to allow the naming of datatypes in OWL 2 ontologies. In OWL 2 DL ontologies, this naming is restricted so that each datatype not in the datatype map names a single expression and does not involve a loop.

There will be changes to several WG documents to effect this change. Working versions of all these documents can be reached from the WG Wiki at http://www.w3.org/2007/OWL/wiki/OWL_Working_Group


Please acknowledge receipt of this email to <mailto:public-owl-comments@w3.org> (replying to this email should suffice). In your acknowledgment please let us know whether or not you are satisfied with the working group's response to your comment.

Regards, Peter F. Patel-Schneider on behalf of the W3C OWL Working Group




We have implemented most the syntax for OWL2 in the RacerPro OWL

reasoner (version 1.9.3), and we plan to eventually support the SROIQ language fragment (up to now SHIQ+Aboxes is supported). I would like to make a few comments about the OWL2 language.

1. I think it is a severe problem not to restrict data properties to functional properties by definition. Many problems with implicit cardinality restrictions occur if the range of data properties is restricted (e.g. via range specs such as xsd:int or xsd:integer with arbitrary conjunctions of datarange specifications inclusing facets with minInclusive and maxInclusive). Implicit cardinality restrictions emerge, and this makes the implementation very difficult, and IMHO the semantics is hard to understand. Further, some facets such as owl:length imply number restrictions for strings. I have no idea, how to deal with the owl:pattern facet (decidability problems?).

Arbitrary data properties are not needed: If, for instance, one might want to use multi-value data properties for multiple names of a Person, say, one can always introduce domain objects of class PersonName with a single-value data property namestring. PersonNames can be set into relation to Person as usual via a role hasName, say. It is easy to restriction the number of names, etc. With this kind of represenation we can associate additional information with person names such as, for instance, whether a name is a nickname or not.

If we say (at-least 2 hasName) then it is not guaranteed that the (two or more) PersonName instances have different namestrings. If hasName was a data property, this would be implied, leading to very tricky constraints, which would make a sound and complete implementation very difficult in the context of Aboxes and additional at-most restrictions for the hasName data property.

I strongly recommend to change the OWL2 specification in such a way that data properties are always functional.

2. It is my opinion that in the RDF/XML syntax there is a small problem. Look at the following fragment:

<owl:DataRange rdf:about="#GreaterThan65">
   <owl2:onDataRange rdf:resource="&xsd;nonNegativeInteger"/>
   <owl2:withRestrictions rdf:parseType="Collection">
         <rdf:Description><owl2:minExclusive  

rdf:datatype="&xsd;int">65</owl2:minExclusive></rdf:Description>

   </owl2:withRestrictions>
</owl:DataRange>

Since owl2:minExclusive is a tag in the position of a property, we need the additional description node (see the description of the mapping to RDF graphs).

In my view it would make sense to add owl2:Facet such that we write

<owl:DataRange rdf:about="#GreaterThan65">
   <owl2:onDataRange rdf:resource="&xsd;nonNegativeInteger"/>
   <owl2:withRestrictions rdf:parseType="Collection">
         <owl2:Facet><owl2:minExclusive  

rdf:datatype="&xsd;int">65</owl2:minExclusive></owl2:Facet>

   </owl2:withRestrictions>
</owl:DataRange>

Thus, we have a sequence of Facet instances rather than a sequence of abstract nodes. Certainly, RacerPro can handle the version with rdf:Description, and RDF/XML is not for humans anyway but, in an OWL file I would like to avoid rdf:Description.

3. I wonder whether naming dataranges is possible at all. Can we declare

<owl:DataRange rdf:ID="GreaterThan65">
   <owl2:onDataRange rdf:resource="&xsd;nonNegativeInteger"/>
   <owl2:withRestrictions rdf:parseType="Collection">
         <rdf:Description><owl2:minExclusive  

rdf:datatype="&xsd;int">65</owl2:minExclusive></rdf:Description>

   </owl2:withRestrictions>
</owl:DataRange>

on toplevel and use

<owl:DataRange rdf:about="#GreaterThan65">

later on? Maybe it should be <rdfs:Datatype rdf:ID="GreaterThan65"/ > these days? (but the naming querstion remains).

RacerPro 1.9.3 also supports the OWLlink protocol as well as the OWLAPI (with new OWL2 features above SHIQ in the near future). I hope OWL2 will be successful.

Best regards, also on behalf of the RacerPro team,

Ralf Moeller