Re: RDFCore Comments on OWL Reference

RDFCore comments on Reference:
http://lists.w3.org/Archives/Public/public-webont-comments/2003May/0004.html

  > The RDFCore WG has reviewed the Owl Reference last call WD at
  >
  >   http://www.w3.org/TR/2003/WD-owl-ref-20030331/
  >
  > RDFCore congratulates the WEBONT WG and particularly the authors and
  > editors of the reference document for its quality and clarity.

Thanks. very much appreciated.

  >
  > For the convenience of WEBONT we have given an ID to each comment.
  > Comments not specific to RDFCore's interests will be sent separately
  > by the reviewer.
  >
  > -------------------------------------
  >
  > #owlref-rdfcore-owl-rdf-semantics
  >
  > We particularly admire the clarity of this note in 8.1 and request
  > that a similarly worded sentence be added to 1.2 para 2 and that the
  > note in 1.4 be phrased in the same or similar manner.
  >
  > [[
  > NOTE: RDF documents will generally be in OWL Full, unless they are
  > specifically constructed to be in OWL DL or Lite.
  > ]]

Changed as suggested.

  >
  > -------------------------------------
  >
  > #owlref-rdfcore-owl-class-denotation
  >
  > It has been suggested to RDFCore that owl:Class is not needed.
  > RDFCore requests the creation of test cases to clearly illustrate the
  > differences between owl:Class and rdfs:Class.

This will be handled in a separate response.

  >
  > -------------------------------------
  >
  > #owlref-rdfcore-what-is-a-class-description
  >
  >
  > [[
  > 3.1 Class descriptions
  >
  > A class description is the term used in this document (and in the
  > OWL Semantics and Abstract Syntax) for the basic building blocks of
  > class axioms (informally called class definitions in the Overview and
  > Guide documents). OWL distinguishes six types of class descriptions:
  >
  >    1. a class identifier (a URI reference)
  >    2. an exhaustive enumeration of individuals that together form
  >       the instances of a class
  >    3. a property restriction
  >    4. the intersection of two or more class descriptions
  >    5. the union of two or more class descriptions
  >    6. the complement of a class description
  > ]]
  >
  > Its not clear from the text what a class description is.  We take it
  > to be an RDF Graph (a set of triples) describing a class.  The above
  > seems to say:
  >
  >   a class identifier (a URI reference) is a type of RDF graph
  >
  > which doesn't make sense.  Similarly, the meaning of
  >
  >   the compliment of an RDF graph
  >
  > isn't clear.

We suggest to add the following sentence to the first paragraph of Sec. 3.1:

[[
A class description describes am OWL class, either by a class name or
by specifying a class extension of an unnamed anonymous class.
]]

  >
  > Whilst this is just wordsmithing, the concept of a class description
  > is of prime importance to the rest of the spec and should be clear.
  >
  > Further:
  >
  > [[
  > NOTE: If one provides an RDF identifier for class descriptions of
  > he type 2-6, this has the extra effect of providing a way of
  > referring to the class description by its name, i.e., as a class
  > description of type 1. See Section 3.2.3 for details.
  > ]]
  >
  > Does this name identify the class description, or the class
  > described by the description?  We suspect the latter, in which case:
  >
  > [[
  > NOTE: If one provides an RDF identifier for class descriptions of
  > the type 2-6, this has the extra effect of providing a way of
  > referring to the class so described by its name. See Section 3.2.3 for
  > details.
  > ]]

Well, this was confusing. The note should read:

[[
NOTE: If one provides an RDF identifier for class descriptions of
he type 2-6, this is not considered to be a class description, but a
special kind of class axiom for complete classes.
See Section 3.2.3 for details.
]]


  > There are other instances of this confusion: e.g. in 3.1.2
  >
  > [[
  > A value constraint puts constraints on the value range of the
  > property when applied to this particular class description.
  > ]]
  >
  > The constraint is on the property when applied to an instance of the
  > class described by this particular class description.
  >
  > In 3.2
  >
  > [[
  > * rdfs:subClassOf allows one to say that the class extension of a
  > class description is a subset of the class extension of another class
  > description.
  > ]]

We agree that in some place where it reads "the class description" it
should be read as "the class described by the class
description". As such a global change would make the text less
accessible and as there typically is no ambiguity, we propose to add
to Sec. 3.1. the following note:

[[
NOTE: In this document we sometimes use for readability purposes
the shorthand "class description" to refer to "the class being
described by the class description". Strictly speaking, these are
different in the case of class descriptions of type 2-6: the class is
represented by the corresponding blank node; the class description is
represented by the triple that have this blank node as their subject.
]]

  > and 3.2.1
  >
  > [[
  > A class description is by definition a subclass of itself.
  > ]]
  >
  > which seems to confuse the notion of class and class description.

Here, "class description" will be replaced by "class".

  >
  > ------------------------------------------
  >
  > #owlref-rdfcore-use-ntriples
  >
  > [[
  > "Human rdf:type owl:Class .".
  > ]]
  >
  > In the interests of inter-spec consistency we request that WEBONT
  > docs use the same abbreviated form of n-triples as the RDF docs, which
  > would make the above
  >
  > [[
  > "base:Human rdf:type owl:class ."
  > ]]
  > with some appropriate explanation of what base is.
  >

We suggest to change this to:

    "ex:Human rdf:type owl:class ." where "ex:" is the namespace of the
    ontology concerned.


  > -------------------------
  >
  >
  > #owlref-rdfcore-domain-range-value terminology
  >
  > Throught the documents various terms, such as "value range", "range
  > value", "range", "domain", "domain value" are use to talk about the
  > values of properties.  Several of these terms are undefined, they
  > often are used inconsistently and there seems to be unnecessary
  > duplication in the use of the terms.
  >
  > The term "value range" is used in the document and is not defined.
  > We suggest the meaning of this term be clearly defined if it is to be
  > used.  However, it seems to mean the same thing as the term 'range'
  > defined in RDFS, so the definition of a new term may be redundant.
  >
  > Confusingly, the term "range value" is also used in the document and
  > is not defined.  We suggest the meaning of this term be clearly
  > defined if it is to be used.  However, it seems to mean the same thing
  > as the term 'value' as used in RDFS, so the definition of a new term
  > may be redundant.
  >
  > We also note that it is used inconsistently.
  >
  > In 3.1.2
  >
  > [[
  > Property restrictions can be applied both to datatype properties
  > properties for which the range value is a data literal) and object
  > properties (properties for which the range value is an individual).
  > ]]
  >
  > it appears to be used to refer to thing denoted by the object of a
triple.
  >
  > In 3.1.2.1 it is used to state a syntactic constraint on OWL Lite
documents.
  >
  > [[
  > NOTE: In OWL Lite the range value of owl:allValuesFrom must be a
  > class identifier.
  > ]]
  >
  > Here it refers to the object of the triple, not the thing the object
  > denotes.
  >
  > And further that the term 'value' seems to suffice elsewhere, e.g.
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.
  > ]]
  >
  >
  > 4.2
  >
  > [[
  > Syntactically, owl:equivalentProperty is a property with as both
  > domain and range an instance of rdf:Property.
  > ]]
  >
  > The domain of a property is a class, as is the range.  And domain
  > and range aren't about syntax (occurs elsewhere also).  Suggest:
  >
  > [[
  > owl:equivalentProperty is a property.  Its rdfs:domain is
  > rdf:Property, as is its rdfs:range.
  > ]]
  >
  > or less formally
  >
  > [[
  > owl:equivalentProperty is a property is a property that relates two
  > properties.
  > ]]
  >
  > In owl:backwardCompatibleWith
  >
  > [[
  > The owl:backwardCompatibleWith construct is a property with an
  > instance of the class owl:Ontology as its domain and range.
  > ]]
  >
  > This is further confusion over the use of the terms domain and
  > range.  Domains and Ranges of properties are classes, not instances.
  > Nor is the construct a property!
  >
  > [[
  > owl:backwardCompatibleWith is a property.  Its domain is
  > owl:Ontology as is its range.
  > ]]
  >
  > We request:
  >
  >   o A global check throughout the document of all uses of all terms
  >     involving the words 'domain' and  'range'
  >
  >   o that wherever possible the terminology used in the RDFCore specs
  >     be adopted
  >
  >   o where RDFCore does not provide appropriate terminology, that any
  >     new terms be defined and used consistently
  >
  >   o RDFCore would be willing to help discuss appropriate terminology

Global revision of this has been done, as suggested, using only terms
like "value", "subject" and "object". See the editor's draft for
details.

  > -----------------------------
  >
  > #owlref-rdfcore-value-space
  >
  > In 3.1.2.2
  >
  > [[
  > The cardinality constraint owl:maxCardinality is a built-in OWL
  > property that links a restriction class to a data value belonging to
  > the range of the XML Schema datatype nonNegativeInteger.
  > ]]
  >
  > We believe the correct term is "the value space of the XML Schema
  > datatype nonNegativeInteger".
  >
  > Similarly in minCardinality.
  >

Changed as suggested.

  > -------------------------------
  >
  > #owlref-rdfcore-individual-identity
  >
  > 5.2 Individual Identity
  >
  > This section should include some words about URIREF comparison,
  > probably with a reference to rdf concepts where we say how URIREFS are
  > compared.
  >
  >   http://www.w3.org/TR/rdf-concepts/#section-Graph-URIref
  >

We propose to add the following note at the end of this section:

[[
NOTE: For details of comparison of URI references, see the section on
<a href="http://www.w3.org/TR/rdf-concepts/#section-Graph-URIref">
RDF URI references</a> in the RDF Concepts document.
]]

  > ---------------------------------
  > #owlref-rdfcore-datatypes-attributes-have-not
  >
  > 6.1 Datatypes
  >
  > [[
  > A typed literal needs to have an XML attribute rdf:datatype ...
  > ]]
  >
  > Its not the literal that has an XML attribute - that is the way it
is written in rdf/xml.
  >
  > Suggest:
  >
  > [[
  > In RDF/XML, the type of a literal is specified by an "rdf:datatype"
attribute.
  > ]]

Changed as suggested.

  >
  > Similarly:
  >
  > [[
  > When using datatypes, please note that even if the range of a
  > property is declared to be of a certain datatype, RDF still requires
  > a rdf:datatype attribute in a statement about this property,
  > otherwise it is treated as a plain literal.
  > ]]
  >
  > Suggest:
  >
  > [[
  > When using datatypes, please note that even if a property is defined
  > to have a range of a certain datatype, RDF/XML still requires that
  > the datatype be specified each time the property is used.
  > ]]
  >

Changed as suggested.

  > -------------------------------------
  >
  > #owlref-rdfcore-rdfs:literal-not-a-datatype
  >
  > [[
  > 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 rdfs:Literal  which is the class of literals,
  > typed and plain.
  > ]]
  >
  > rdfs:Literal is not a datatype.

We removed rdfs:Literal from this list.

We added rdfs:Literal to the list of possible data ranges at the
start of Sec. 6:

[[
OWL allows three types of data range specifications:
      * A RDF datatype specification.
      * The RDFS class rdfs:Literal.
      * An enumerated datatype, using the owl:oneOf construct.
]]

  >
  > ----------------------------------
  >
  > #owlref-rdfcore-qnames-in-rdfxml
  >
  > In 6.2 we see:
  >
  > [[
  >            <rdf:first rdf:datatype="xsd:integer">0</rdf:first>
  > ]]
  >
  > A qname is not allowed as the value of an rdf:datatype property.
  > This should be:
  >
  > [[
  >            <rdf:first rdf:datatype="&xsd;integer">0</rdf:first>
  > ]]
  >

This was a bug. Changed as suggested.

  > ---------------------------------
  >
  >
  > #owlref-rdfcore-enumerated-datatype-in-xml
  >
  > 6.2 Enumerated datatype
  >
  > We suggest the following form for writing the syntax of lists with
  > literal values, which we believe is more slightly more readable and
  > better suited to longer lists.
  >
  > [[
  > <owl:DatatypeProperty rdf:ID="tennisGameScore">
  >   <rdfs:range>
  >     <owl:DataRange>
  >       <owl:oneOf>
  >
  >         <rdf:List>
  >           <rdf:first rdf:datatype="&xsd;integer">0</rdf:first>
  >           <rdf:rest rdf:nodeID="l2"/>
  >         </rdf:List>
  >
  >         <rdf:List rdf:nodeID="l2">
  >           <rdf:first rdf:datatype="&xsd;integer">15</rdf:first>
  >           <rdf:rest rdf:nodeID="l3"/>
  >         </rdf:List>
  >
  >         <rdf:List rdf:nodeID="l3">
  >           <rdf:first rdf:datatype="&xsd;integer">30</rdf:first>
  >           <rdf:rest rdf:nodeID="l4"/>
  >         </rdf:List>
  >
  >         <rdf:List rdf:nodeID="l4">
  >           <rdf:first rdf:datatype="&xsd;integer">30</rdf:first>
  >           <rdf:rest rdf:resource="&rdf;nil"/>
  >         </rdf:List>
  >
  >       </owl:oneOf>
  >     </owl:DataRange>
  >   </rdfs:range>
  > </owl:DatatypeProperty>
  > ]]

We suggest to include this as an alternative example, with a reference
to the RDFCore concept of nodeID..

  > ---------------------------------------
  >
  > #owlref-rdfcore-annotation-restriction
  >
  > 7.1 Annotations
  >
  > [[
  >     * Annotation properties must not be used in property axioms
  > (e.g., no subproperties are allowed).
  > ]]
  >
  > We believe there may be an editorial error here, and that this
  > restriction is not intended to apply to OWL Full.
  >
  > As stated, since rdfs:domain and rdfs:range are property axioms,
  > this means that we can't define a domain and range for an annotation
  > property in Owl.  Further rdfs defines rdfs:isDefinedBy to be a
  > subproperty of rdfs:seeAlso.  That would mean that not all RDF graphs
  > are legal OWL Full, and that in fact the graph for RDF Schema is not
  > legal OWL Full.

The restriction you mention is in a list preceded by the following
text:

[[
OWL DL allows annotations on classes, properties, individuals
and ontology headers, but only under the  following conditions:
]]

So, yes, this restriction is only applicable to OWL DL.

To prevent any misunderstandings, we added the following sentence to
the start of this section:

[[
OWL Full does not put any restrictions on annotations in an ontology.
]]


  > ------------------------------------
  >
  > #owlref-rdfcore-class-ontology
  >
  > RDFCore makes this point with some trepidation, not wishing to cause
  > WEBONT to waste time and energy on a discussion with little practical
  > impact.
  >
  > In 7.2
  >
  > [[
  > An ontology header component is represented with an instance of the
  > class owl:Ontology, which typically identifies the containing document
  > with a same-document reference [section 4.2 of RFC2396], and which may
  > optionally contain, in any order, any number of import and/or
  > versioning statements.
  > ]]
  >
  > This seems to say that instances of the class owl:Ontology are
  > documents.  RDFCore suggests that the text be modified to be less
  > specific.  There are also potential difficulties with the reference to
  > RFC 2396; it would be better to refer to the RDF specs and let them
  > take the heat on any 'interpretation' of RFC 2396.
  >
  > We suggest:
  >
  > [[
  > A document describing an ontology typically contains information
  > about the ontology itself.  An ontology is a resource, so may be
  > described using properties from the OWL and other namespaces, e.g.
  >
  > <owl:Ontology rdf:about="">
  >   <owl:versionInfo> ... </owl:versionInfo>
  >   <rdfs:comment>...</rdfs:comment>
  >   <owl:imports rdf:resource='...'/>
  > </owl:Ontology>
  >
  > This is commonly called the ontology header and is typically found
  > near the beginning of the RDF/XML document.  The line
  >
  >   <owl:Ontology rdf:about="">
  >
  > states that this block describes the current ontology.  More
  > precisely, it states the current base URI identifies an instance of
  > the class owl:Ontology.  As noted earlier, it is recommended that the
  > base URI be defined using an xml:base attribute in the <rdf:RDF>
  > element at the beginning of the document.
  > ]]

This comment will be handled in a separate response.

  > ----------------------------------------
  >
  > #owlref-rdfcore-transitive-datatype-properties
  >
  > In 8.1
  >
  > [[
  > Although from the semantics point of view it is not forbidden in OWL
  > Full to declare datatype properties to be inverse, transitive, or
  > symmetric, in practice this does not make much sense. (RDF does not
  > allow data values as the subject of a statement).
  > ]]
  >
  > Consider:
  >
  > eg:lessThan rdf:type   owl:TransitiveProperty .
  > eg:lessThan rdf:type   owl:DatatypeProperty .
  > eg:size     rdf:type   owl:DatatypeProperty .
  > eg:size     rdfs:range xsd:decimal .
  >
  >
  > _:a eg:size _:sa .
  > _:b eg:size _:sb .
  > _:c eg:size _:sc .
  >
  > _:sa eg:lessThan _:sb .
  > _:sb eg:lessThan _:sc .
  >
  > entails
  >
  > _:sa eg:lessThan _:sc .
  >
  > This is potentially useful and does make sense.
  >

We suggest to delete this paragraph.


Thanks again for your comments.

At our working-group home page you can find the link to the editor's
draft with the proposed changes.

Please respond, copying public-webont-comments@w3.org, as to whether
you are satisfied with this response.

Guus Schreiber


-- 
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, 12 June 2003 07:29:32 UTC