Proposed response to: Comments on Owl REF document

Brian McBride wrote:
http://lists.w3.org/Archives/Public/public-webont-comments/2003May/0054.html

 > In reviewing the Owl Reference last call WD at
 >
 >    http://www.w3.org/TR/2003/WD-owl-ref-20030331/
 >
 > for RDFCore, I noticed the following comments that were not directly
 > related to RDFCore's interests.
 >
 > Brian

Brian,

Thanks very much for these helpful comments. Unless indicated
otherwise below we have made the changes you suggested.

You can check the changes in the editor's draft of this document [1].

Guus Schreiber


 > -----------------------
 >
 > 3. Classes
 > [[
 > When in this document we use wording such as "a class of individuals 
..",
 > this should be read as the "a class with a class extension containing
 > individuals ...".
 > ]]
 >
 > typo: "should be read as the ...
 >                         ^^^^^^^
 > -----------------------
 >
 > [[
 > OWL Full allows the freedom of RDF Schema: a class may act as an 
instance
 > of another (meta)class (the same holds for properties).
 > ]]
 >
 > The phrase "the same holds for properties" is unclear.  Does it mean
 >
 >    properties may act as an instance of class
 >
 > or
 >
 >    properties may act as an instance of another (meta) property
 >
 > I think the former is the only one that makes sense.  This confused 
me and
 > doesn't seem to add much so I suggest dropping the phrase in brackets.
 >
 > ---------------------------
 >
 > 3.1
 >
 > [[
 > The other five forms of class descriptions are represented as anonymous
 > instances of owl:Class (a blank node with the rdf:type owl:Class).
 > ]]
 >
 > Two things wrong with this.  If my understanding is correct then the 
class
 > descriptions are represented by sets of triples, not by a single 
node.  The
 > single node represents the class, not its description.
 >
 > Secondly, nodes don't have types; nodes can be the subject of a
 > triple.  Perhaps:
 >
 > [[
 > The other five forms of class descriptions consist of a set of RDF 
triples
 > in which a blank node represents the class being described.  That blank
 > node has an rdf:type property whose value is owl:Class.
 > ]]
 >
 > -----------------------------
 > [[
 > The class extension of owl:Thing is the set of all individuals in the
 > domain of discourse.
 > ]]
 >
 > First use of the term "domain of discourse".  Is this part of the
 > vocabulary you expect your readers (users of the owl language) to have?
 >
 > I suggest you just say its the set of all individuals, define the 
term or
 > import a definition of the term.
 >
 > -----------------------------
 >
 > [[
 > NOTE: owl:Nothing is not included in OWL Lite.
 > ]]
 >
 > I'm not sure what that means.  Does this mean it is not predefined or 
does
 > it mean that any reference to it will render a document not in OWL
 > Lite?  If the latter:
 >
 > [[
 > NOTE: An OWL Lite document may not refer to owl:Nothing.
 > ]]
 >

Following a LC comment the WG has decided to include owl:Nothing in
OWL Lite, so this note has been removed in the editor's draft.

 > -------------------------------
 >
 > 3.1.1
 >
 > Is there a restriction that there may be only one enumeration for a 
class
 > description?
 >
 > What happens with:
 >
 > <owl:Class rdf:ID="c">
 >    <owl:oneOf rdf:parseType="Collection">
 >      <owl:Thing rdf:about="#a1"/>
 >      <owl:Thing rdf:about="#a2"/>
 >    </...
 > </...
 > <owl:Class rdf:about="#c">
 >    <owl:oneOf rdf:parseType="Collection">
 >      <owl:Thing rdf:about="#b1"/>
 >      <owl:Thing rdf:about="#b2"/>
 >      <owl:Thing rdf:about="#b3"/>
 >    </...
 > </...

 > Suggest a little clarification.

In section 3.1 we discuss the class description "enumeration", which do
not include a class name. The class-axiom format you mention is
discussed in Sec. 3.2.3,

[[
<owl:Class rdf:ID="DaPonteOperaOfMozart">
   <owl:oneOf rdf:parseType="Collection">
     <owl:Thing rdf:about="#Nozze_di_Figaro"/>
     <owl:Thing rdf:about="#Don_Giovanni"/>
     <owl:Thing rdf:about="#Cosi_fan_tutte"/>
   </owl:oneOf>
</owl:Class>

This class axiom should be interpreted as follows: the class extension
of the class DaPonteOperaOfMozart is exactly defined by the
enumeration.

This class axiom is semantically equivalent to the first example in
the previous section, which included an additional owl:equivalentClass
statement.
]]

In Sec. 3.2 on owl:equivalentClass the document states:

[[
It is possible to have multiple equivalentClass axioms about the same
class. However, this requires care. Both axioms must lead to the same
outcome, i.e. exactly the same class extension.
]]

which we suggest answers your question: in your example the two
class axioms for class "c" must lead to he same class extension. This
would, for example be the case if:

a1 sameAs b1
a2 sameAs b2
b2 sameAs b3

This issue of individual identity in relation to enumerations is
discussed in a note after an example about an intersection of
enumerations in Sec. 3.1.3.1:

[[
NOTE: This assumes that the three individuals are all different. In
fact, this is not by definition true in OWL. Different URI references
may refer to the same individuals, because OWL does not have a "unique
names" assumption. In Sec. 6 "Individuals" one can find OWL language
constructs for making constraints about equality and difference of
individual
]]

We propose to leave the text as it is.

 > ----------------------------
 >
 > owlref-bwm-inconsistency
 >
 > There is no discussion of inconsistency.  This is an omission from the
 > document that should be fixed.
 >

Consistency is discussed in detail in the S&AS document. We suggest
to add a sentence at the end of the 3rd paragraph of Sec. 1.1, making
this clear:

[[
Notions such as consistency of OWL ontologies
are discussed in that document. </p>
]]

and also suggest to add a parenthetical remark in the 4th paragraph
of the same section that the test document contains consistency tests:

[[
Test cases for OWL tools (<em>e.g.</em>, entailment tests,
consistency tests) ....
]]

 > ----------------------------
 >
 > 3.1.2.1
 >
 > [[
 > To see why this is so, observe that the owl:allValuesFrom constraint
 > demands that all values of P belong to class P, and if no such values
 > exist, the constraint is trivially true.
 > ]]
 >
 > Typo - I don't think you mean "belongs to class P".
 >
 > -----------------------------------
 >
 > 3.1.2.2
 >
 > [[
 > Note that an owl:minCardinality of one or more means that a value for 
the
 > property is required of any instance of the class.
 > ]]
 >
 > I find the language confusing - whether to interpret 'any' as an
 > existential or a universal quantifier.  Clearer would be:
 >
 > [[
 > Note that an owl:minCardinality of one or more means that all 
instances of
 > the class must have a value for the property.
 > ]]
 >
 > -------------------------------------
 >
 > 3.1.3
 >
 > [[
 > owl:complementOf is analogous to logical negation, but restricted to
 > individuals only.
 > ]]
 >
 > The language here is not clear.  How do you logically negate an 
individual?
 >
 > <aside>it occurs to me that is a question that often may occur to WG's
 > processing last call comments</aside>
 >
 > The document might be trying to say that you can only take the 
compliment
 > of a class (or class description I'm not sure which) that contains only
 > individuals.  Or it might be saying that the compliment will only 
contain
 > individuals not in the complimented class, but will not contain 
things that
 > are not individuals.
 >
 > I now think it means the latter, but on first read thought it meant the
 > former.  Needs clarifying, or possibly removing.

Changed to:

[[
<code>owl:complementOf</code> is
analogous to logical negation: the class extension consists of those
individuals that are NOT members of the class extension of the
complement class. </p>
]]

 > ---------------------------------------
 >
 > [[
 > 4. Properties
 >
 > OWL distinguishes between two types of properties.
 > ]]
 >
 > There are frequent references it he document to built-in properties.  Is
 > this a third type of property with specific characteristics?
 >

With properties we mean here the properties defined with the help of
OWL, not the built-in ones. Suggest the following revised text:

[[
OWL distinguishes between two main categories of properties that an
ontology builder may want to define:

     * Object properties link individuals to individuals.
     * Datatype properties link individuals to data values.

NOTE: OWL also has the notion of annotation properties
(owl:AnnotationProperty) and ontology properties
(owl:OntologyProperty). These are needed in OWL DL for semantic
reasons. See Sec. 7 and the OWL Semantics and Abstract Syntax document
[OWL S&AS].
]]


 > ----------------------------------
 >
 > 4.1
 >
 > [[
 > For a property one can define (multiple) rdfs:domain axiom.
 > ]]
 >
 > typo:                                                ^^^^^^
 >
 > ----------------------------------
 >
 > 4.3
 >
 > [["functional" >For ...]]
 >
 > Typo.
 >
 > ----------------------------------
 >
 > 4.3 owlInverseFunctionalProperty
 >
 > [[
 > If a property is declared to be inverse-functional, the a range value
 > ]]
 >
 > Typo: "the a range"
 >
 > ---------------------------------
 >
 > [[
 > Symmetric properties should have identical domains and ranges to make 
sense.
 > ]]
 >
 > Language?  Suggest:
 >
 > [[The domain and range of a symmetric property are the same.]]
 >
 > ----------------------------------
 >
 > owl:AllDifferent
 >
 > Please clarify the relationship between owl:AllDifferent and owl:oneOf,
 > i.e. does owl:oneOf imply that members of the list are distinct?
 >

See the suggested change to oneOf earlier.
 >
 > 6.1 Datatypes
 >
 > [[
 > A typed literal needs to have an XML attribute rdf:datatype of which the
 > value is recommended to be one of the following:
 > ...
 >
 > * The RDF datatype rdf:XMLLiteral.
 > ]]
 >
 > The RDF datatype is not the value of the attribute, its the string
 >
 >        http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral
 >
 > Suggest:
 >
 > [[
 > A typed literal needs to have an XML attribute rdf:datatype of which the
 > value is recommended to be one of the following:
 > ...
 >
 > * The URIREF for the datatype rdf:XMLLiteral
 > ]]
 >
 > ----------------------------------------
 >
 > [[
 > * The primitive datatype  xsd:string, plus the following datatypes 
derived
 > from xsd:strong:
 > ]]
 >
 > Typo: "derived from xsd:strong"
 >
 > ---------------------------------------
 >
 > 7.1 Annotations
 >
 > Should any of the following also be annotation properties, as they 
seem to
 > have no effect on the semantics:
 >
 >    o priorVersion
 >    o backwardCompatibleWith
 >    o incompatibileWith

These three are defined as instances owl:OntologyProperty. This
construct is similar to owl:AnnotationProperty, but all have
owl:ontology as their domain and range. In the editor's draft [1] added a
number of notes about ontologies to explain this in a better
way,e.g. at the start of Sec. 7:

[[
NOTE: The ontology-import construct owl:imports and the
ontology-versioning constructs owl:priorVersion,
owl:backwardCompatibleWith and owl:inCompatibleWith are defined in the
OWL vocabulary as instances of the OWL built-in class
owl:OntologyProperty. Instances of owl:ontologyproperty must have the
class owl:ontology as their domain and range. It is permitted to
define other instances of owl:OntologyProperty.
]]

 >    o deprecatedClass
 >    o deprecatedProperty
 >
 > Suggest the description of what makes something an annotation 
property and
 > what the effect of being an annotation property should be clearer.

owl:DeprecatedClass and owl:DeprecatedProperty are classes, e.g. see
Appendix B of Reference

[[
<rdfs:Class rdf:ID="DeprecatedClass">
   <rdfs:label>DeprecatedClass</rdfs:label>
   <rdfs:subClassOf rdf:resource="&rdfs;Class"/>
</rdfs:Class>

<rdfs:Class rdf:ID="DeprecatedProperty">
   <rdfs:label>DeprecatedProperty</rdfs:label>
   <rdfs:subClassOf rdf:resource="&rdf;Property"/>
</rdfs:Class>
]]



 > ------------------------------------------
 >
 > owl:hasValue is described as taking either an individual or a data 
value as
 > its value.  There is a note OWL Lite does not support hasValue.
 >
 > Given that OWL DL requires a separation between object properties and 
data
 > valued properties, please confirm that OWL DL supports owl:hasValue.  I
 > suggest that since this caused me to pause, that the note be extended to
 > specifically state that OWL DL does support it, perhaps because, as a 
built
 > in property, it is exempt from the restriction.
 >

In Sec. 1.2 of the document it says:

[[
OWL Full and OWL DL support the same set of OWL language
constructs. Their difference lies in restrictions on the use of some
of those features and on the use of RDF features.
]]

Therefore, all notes about DL in the document are about these
restrictions, and never include statements like "this language
construct is in DL". We suggest to leave it as it is.


 > ------------------------------
 >
 > In 3.1.2.2
 >
 > [[
 > A restriction containing an owl:minCardinality constraint describes a 
class
 > of all individuals that have at least N distinct range values 
(individuals
 > or data values) for the property concerned, where N is the range 
value of
 > the cardinality constraint.
 > ]]
 >
 > I presume that this means "semantically distinct" as mentioned 
elsewhere,
 > but since it is specifically called out elsewhere, the omission here
 > suggests that syntactic distinction is what is meant here.
 >
 > -------------------------------
 >
 > In 3.2
 >
 > [[
 > For example, the following class axiom declares the URI reference 
Human to
 > be an OWL class:
 > ]]
 >
 > Two things wrong with this.  'Human' isn't the URI reference, its
 > '#Human'.  But more importantly, '#Human' isn't an owl:Class; it 
names the
 > class.
 >
 > -------------------------------
 >
 > in 3.2.2
 >
 > [[
 > This denotes indeed the same set of individuals as the previous axiom.
 > ]]
 >
 > The term denotes is confusing here and its not clear what 'this' refers
 > to.  The text is liable to confuse the notion of class and its
 > extension.  Suggest:
 >
 > [[
 > This axiom defines a class with exactly the same instances as the 
previous
 > axiom.
 > ]]
 >
 > --------------------------------
 >
 > 4.1
 >
 > [[
 > The rdfs:domain restrictions are global, meaning that they cannot be 
used
 > for an individual for which the class is not explicitly included in the
 > domain restriction.
 > ]]
 >
 > Unparsable.  I have no idea what this means so can't suggest an 
alternative.

Removed.

 > ------------------------------------
 >
 > 4.2 owl:inverseOf
 >
 > [[
 > Syntactically, owl:inverseOf is a property that takes instances of
 > owl:ObjectProperty as domain and range values. An axiom of the form P1
 > owl:inverseOf P2 asserts that for every pair (x,y) in the property
 > extension of P1, there is a pair (y,x) in the class extension of P2, and
 > vice versa.
 > ]]
 >
 > Typo: I think you mean:
 >
 > [[
 > for every pair (x,y) in the property extension of P1, there is a pair 
(y,x)
 > in the *property* extension of P2,
 > ]]
 >

[1] http://www.daml.org/2002/06/webont/owl-ref-proposed

-- 
Free University Amsterdam, Computer Science
De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands
Tel: +31 20 444 7739/7718
E-mail: schreiber@cs.vu.nl
Home page: http://www.cs.vu.nl/~guus/

Received on Thursday, 19 June 2003 10:13:41 UTC