W3C home > Mailing lists > Public > public-webont-comments@w3.org > January 2003

Comments on Owl Reference Ed's draft

From: Brian McBride <bwm@hplb.hpl.hp.com>
Date: Mon, 06 Jan 2003 17:21:19 +0000
Message-Id: <>
To: public-webont-comments@w3.org

I've been reading through the editor's version of the owl guide at:



  $Id: owl-ref-proposed.html,v 1.112 2003/01/03 04:35:38 mdean Exp $

The editors may find the following comments useful.  These comments are 
from me alone in my capacity as an interested individual.  I have marked 
those I feel deserve a response, though they are largely editorial in 

I realise that I am not referring to a published WD and am commenting on 
work in progress.  However, I hope the editors may find these useful in the 
final stages of polishing this document.

Some of these comments are duplicates of ones I have made before


but are not listed in the editor's list of comments being addressed, so 
perhaps bear repeating, lest they were missed.



The abstract refers to the RDF/XML syntax doc.  The concepts doc may be 
more appropriate.


[[    * OWL Lite is detailed in the Feature Synopsis for OWL Lite and OWL 
[OWL Features].]]

"Detail" is not a verb.  What does this sentence mean?


[[An OWL knowledge base is a collection of RDF triples as defined in the 
RDF/XML Syntax Specification (Revised) [RDF/XML Syntax].]]

Again I would have expected the concepts doc to be the appropriate 
reference here.


[[This document specifies which collections of RDF triples constitute the 
OWL vocabulary and what the prescribed meaning of such triples is.]]

The owl vocabulary is a collection of triples?  That seems like a type 
mismatch.  I'd expect a vocabulary to be a collection of names, in this 
case RDF URIREF's.


[[OWL only provides a semantic interpretation for those parts of an RDF 
graph that instantiate the schema defined in http://www.w3.org/2002/07/owl.]]

What does it mean for "part of an RDF graph" to "instantiate" a schema?  Is 
the term "instantiate" defined anywhere?  RDFS has no such notion.

I'm finding it a bit bizarre that RDF Schema is being used to define the 
syntax of a language.



What does this actually mean?


   o1  owl:backwardCompatibleWith o2 .

does that entail

   o1#foo owl:sameAs o2#foo .

for all foo defined in o2.   Does that include foo's that are in the o2 
'namespace' but are not actually defined in the ontology which can be 
retrieved from o2?  What is a sufficient condition to allow stating that 
one ontology is backward compatible with another.  How are imports affected 
by owl:backwardCompatibleWith?  If an ontology drops an import can it still 
be backward compatible with its previous version.  If it changes an import 
to one that is backward compatible, is it still backward compatible?

I think the meaning of this needs spelling out more clearly.


[[OWL divides the universe into two disjoint parts. One part consists of 
the values that belong to XML Schema datatypes. This part is called the 
datatype domain.]]

RDF allows for datatypes that are not XML Schema datatypes, but conform to 
the XML Schema datatype model.  The text here rules out such datatypes.  Is 
that intended?

Later the doc states:

[[OWL also allows the use of XML Schema datatypes to describe (or define) 
part of the datatype domain.]]

I think this is contradicting the previous statement, but the language 
isn't very clear to me.  Is this a syntactic statement - that xml schema 
datatype declarations are allowed as part of an owl ontology?


[[RDFS and OWL allow cycles of subclass relationships as a means to assert 
equality between classes.]]

Can we be clearer about what is meant by equality here?  I think you mean 
that a cycle of subclass relationships states that the classes in the cycle 
have the same membership, but not that they are identical.


[[ Each owl:sameClassAs element asserts that C is equivalent to the 
class-expression in the element (ie. C and all the class-expression must 
have the same instances);]]

Is there a first class notion of class equivalence here?  If so it may 
deserve more weight than a parenthetical comment.

Given the semantics, the name 'sameClassAs' is misleading.


I note that owl:sameClassAs is not defined as a subproperty of 
owl:sameAs.  Should it be?

I'm coming back to this comment after reading further on.  It maybe that it 
should not be, but its not really clear to me.  I'm wondering what exactly 
the semantics of owl:sameAs are.  In owl full, given X to be a class, a 
property and an individual would:

   X owl:sameAs Y .


   X owl:sameClassAs      Y .
   X owl:samePropertyAs   Y .
   X owl:sameIndividualAs Y .

If that is the semantics then owl:sameClassAs should not be a subproperty 
of owl:sameAs, since that would prohibit one saying that two classes have 
the same members, but are not the same individuals.

But, thinking about it, that can't be the semantics can it, because if it 
were, then one would not be able to use owl:sameAs in place of 
owl:sameClassAs as suggested in the doc, as they don't mean the same thing 
in full owl.  I'm confused.

It would be useful to have the definition of the meaning of owl:sameAs all 
in one place.


[[#  The class C must be equivalent to the class defined by each of the 
boolean class expression,
and ..]]

I assume that the equivalent here is the one defined in parenthesis 
above.  An internal link would be useful where such first class notions are 


[[    * a boolean combination of class expressions, enclosed in 
<rdfs:Class>...</rdfs:Class>  tags

Was <owl:Class>...</owl:Class> meant here?  If not, some comment on why not 
might be appropriate.


[[Each class expression either refers to a named class, namely the class 
that is identified by the URI, or implicitly defines an anonymous class, 
respectively the class that contains exactly the enumerated elements, ...]]

Should that be "...respectively a class that contains exactly...".  The 
current text suggests that there is only one such class.  A similar comment 
applies to each of the following clauses.


[[Two class names are already predefined, namely the classes owl:Thing and 
owl:Nothing. Every object is a member of owl:Thing, and no object is a 
member of owl:Nothing. Consequently, every class is a subclass of owl:Thing 
and owl:Nothing is a subclass of every class.]]

I take these are the definitions of owl:Thing and owl:Nothing.  The 
defining text

   [[Every object is a member of owl:Thing]]

does not rule out things other than objects being members of owl:Thing and 
it should.  Similarly for owl:Nothing.


[[A property restriction is a special kind of class expression. It 
implicitly defines an anonymous class, namely the class of all objects that 
satisfy the restriction. ]]

Similar to above, is it "the class of all objects..." or "a class ..."


[[An owl:Restriction element contains an owl:onProperty element, which 
refers to a property name (a URI) ...]

should that be "(an RDF URI Reference)" with a link to the appropriate 
definition or are OWL property names restricted to being URI's?


[[ An owl:allValuesFrom element defines the class of all objects for whom 
the values of property P...]]

Similar to above, should that be "a class of ..."

18. typo?

[[an owl:someValuesFrom  element (which contains a class expression  or a 
datatype references).]]

Should that be "datatype reference)."?

19. typo?

[[observe that the owl:allValuesFrom  restriction demands that all values 
of P belong to class P]]

Did you mean class *P*.


[[an owl:intersectionOf element, containing a list of class expressions.
This defines the class that consists of exactly all the objects that are 
common to all class expressions from the list. ]]

As above should it be "a class"?  Similarly for owl:unionOf and 


[[An rdf:Property element refers to a property name (a URI) (to which we 
will refer as P)]]

Should that be an RDF URI Reference rather than a URI?  Is it the URI(REF) 
that is referred to as P or the property element.  None of these I think, 
as the doc later discusses subproperties of P, which makes P a property.

There is a similar issue with the earlier wording:

[[A class element, owl:Class, contains (part of) the definition of an 
object class. A class element refers to a class name (a URI) (we will refer 
to this class as C) and contains...]]

What class?


It seems a bit strange to be defining the semantics of rdfs:subPropertyOf, 
rdfs:domain and rdfs:range here with no reference to the RDF schema 


[[zero or more owl:samePropertyAs elements (each containing a property name).
Each owl:samePropertyAs element asserts that P is equivalent to the named 
property (i.e. they must have the same instances),]]

If this is a first class notion of property equivalence, then it deserves 
greater status than a parenthetical comment.

I also suggest that it, like owl:sameClassAs, is misnamed since I assume 
(it not being clear from this document so far) that properties are defined 
intensionally.  owl:equivalentTo perhaps.


Should owl:samePropertyAs be defined as a subproperty of owl:sameAs?

Similar comment to 10.


We have part of the definition of owl:sameAs here.  But if we follow the 
link to to the definition of owl:sameAs


we find ourselves in the section on Class elements, which clearly does not 
contain a complete definition of owl:sameAs. That doesn't seem like a good 
thing.  I wonder if there is any more to owl:sameAs we haven't heard of 
yet, e.g. can it be applied to an individual?  Checking


it has no range constraint so presumably it can be.  But where is its 
meaning defined?  But we also notice ...




we find:

[[<Property rdf:ID="sameAs"> <!-- equals? equiv? renames? -->
     for sameAs(X, Y), read X is an equivalent term to Y.

I'm confused by the comment.  I'm not sure what a 'term' is here.  Is it 
needed?  Does not "read X is equivalent to Y" do just as well.  Or is there 
some meaning to "term".


[[ Each owl:inverseOf element asserts that P is the inverse relation of the 
named property.]]

Similar to the "the class" comments above, should that be "that P is an 
inverse of the named property"?


[[To state that objects are the same, an owl:sameIndividualAs element is 
used. (Note that owl:sameAs can be also used here, but owl:sameIndividualAs 
is preferred.)]]

More of the definition of owl:sameAs.   Should be collected into one place.


[[See issue #I5.18-Unique-Names-Assumption-Support-in-OWL. The situation is 
different for datatype values, where XML Schema Datatype identity is used. ]]

You need to be clear exactly what identity is meant here.  There are issues 
with schema datatypes where the same value from the value space of 
different datatypes is not considered by xml schema datatypes to be equal.


[[By deprecating a term, it means that the term should not be used in new 
documents that commit to the ontology.]]

I'm not sure what is meant by term here.  Does it mean the name, or the 
thing denoted by the name.  Given:

   C rdf:type owl:deprecatedClass .

does that mean that the name 'C' is deprecated or the class C.  Test case, 

   C rdf:type              owl:deprecatedClass .
   D owl:sameIndividualAs  C .


   D rdf:type              owl:deprecatedClass .

I'm assuming the answer must be yes, but in which case the reference to 
"term" isn't appropriate.

Done for now.  I hope that this is helpful.

Received on Monday, 6 January 2003 12:20:02 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:09:28 UTC