- From: Brian McBride <bwm@hplb.hpl.hp.com>
- Date: Sun, 27 Apr 2003 12:17:35 +0100
- To: RDF Core <w3c-rdfcore-wg@w3.org>
DRAFT For Consideration by RDFCore especially the restriction on annotation
properties, that if correct as stated, renders some of RDFS not legal OWL Full.
-----------------------------------------
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-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 (occus 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-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">
<rdf:range>
<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>
</rdf: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).
]]
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.
RDFCore objects to such a broad restriction.
------------------------------------
#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 ealier, 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.
-----------------------------
Received on Sunday, 27 April 2003 07:17:00 UTC