- From: Ian Horrocks <ian.horrocks@comlab.ox.ac.uk>
- Date: Tue, 27 Jan 2009 20:02:40 +0000
- To: public-owl-comments@w3.org
- Cc: Ralf Moeller <r.f.moeller@tu-harburg.de>
Ralf had some problems posting this message to the public-owl- comments list (he got the "Thank you for your comments" message, but it didn't appear in the archive) so he asked me to forward it: Begin forwarded message: > ============= > > Dear all, > > 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 Möller > > > ------------------------------------------------------- > Prof. Dr. Ralf Möller > Hamburg University of Technology > Harburger Schloßstraße 20 > 21079 Hamburg > Germany > Tel.: 040 42878 3462 > Email: r.f.moeller@tu-harburg.de > http://www.sts.tu-harburg.de/~r.f.moeller
Received on Tuesday, 27 January 2009 20:03:33 UTC