Re: RDFCore Comments on OWL Reference

Brian - thank you and your group for the detailed comments.  We will 
be getting back to you with our responses.





At 17:48 +0100 5/2/03, Brian McBride wrote:
><x-flowed>
>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.
>
>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.
>]]
>
>-------------------------------------
>
>#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.
>
>-------------------------------------
>
>#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.
>
>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 the 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.
>]]
>
>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.
>]]
>
>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.
>
>------------------------------------------
>
>#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.
>
>-------------------------
>
>
>#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
>
>-----------------------------
>
>#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.
>
>-------------------------------
>
>#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
>
>---------------------------------
>#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.
>]]
>
>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.
>]]
>
>-------------------------------------
>
>#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.
>
>----------------------------------
>
>#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>
>]]
>
>---------------------------------
>
>
>#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>
>]]
>
>---------------------------------------
>
>#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.
>
>------------------------------------
>
>#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.
>]]
>----------------------------------------
>
>#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.
>
>-----------------------------
>
></x-flowed>

-- 
Professor James Hendler				  hendler@cs.umd.edu
Director, Semantic Web and Agent Technologies	  301-405-2696
Maryland Information and Network Dynamics Lab.	  301-405-6707 (Fax)
Univ of Maryland, College Park, MD 20742	  240-731-3822 (Cell)
http://www.cs.umd.edu/users/hendler

Received on Monday, 5 May 2003 09:56:55 UTC