ISSUE-104: The non-disallowed vocabulary in OWL 1 DL

Dear all!

With this mail, I am trying to bring our discussion on ISSUE-104 (disallowed
vocabulary) a step forward.

I wrote on 2008-06-03
in <http://lists.w3.org/Archives/Public/public-owl-wg/2008Jun/0023.html>:

>>   (A) Backwards Compatibility:
>>       The set of disallowed vocabulary covers URIs,
>>       which were allowed to be used in OWL 1 DL.
>>       Hence, we have a backwards-compatibility issue.

Boris Motik answered on Wednesday, June 04
in <http://lists.w3.org/Archives/Public/public-owl-wg/2008Jun/0028.html>:

>I accept that (A) might be an issue. Before we decide on the way
>forward, however, I would appreciate it is you could provide us
>with a list of vocabulary that actually causes problems.

And this is what I am doing hereby (even without having an official ACTION
:-)).

But before I come up with the list, I first want to state what my
understanding of the situation is. 

The disallowed vocabulary in OWL 1 DL is specified as an explicit list of
URIs in

  <http://www.w3.org/TR/owl-semantics/mapping.html#4.2>

All the URIs in this section's first "Definition" are completely disallowed
to be used in a custom way. So they may only occur as syntax elements. For
example, it is disallowed in OWL 1 DL to state

  rdf:type rdf:type rdf:type

since the URI 'rdf:type' does not only occur as a syntax element (middle
position), but also as an individual (LHS) and as a class (RHS).

There is a second "Definition" which itemizes a set of URIs which may at
least be applied as classes or properties, respectively. So these URIs are
only /restricted/ in their use within OWL DL ontologies, not completely
disallowed. According to this, it is actually allowed to have, for example,
the following statements in an OWL 1 DL ontology in RDF graph form:

  :w rdf:type rdf:Statement .
  :u rdf:_42 "Hello World!"^^xsd:string .

AFAIU, every URI, which is not listed in this section, is actually allowed
to be used in a completely unrestricted way.

Below is a list of all existing URIs within the RDF, RDFS and OWL 1
namespace.

According to the list, I may use the property 'rdf:value' in every way,
which looks strange. Even more strange: Use of 'rdfs:Literal', 'owl:Thing'
and 'owl:Nothing' is completely unrestricted, while use of 'rdfs:Datatype'
and 'rdfs:Resource' is completely disallowed. Even 'owl:imports' may be used
in an arbitrary way. 

I wonder whether this list has been properly reviewed by the old OWL WG. It
seems pretty buggy to me. One can see that allowing the use of the
reification vocabulary and parts of the container vocabulary was deliberate,
since it is explicitly mentioned. But for many of the non-mentioned URIs it
is at least unclear to me, why it should be allowed to use it in an
unrestricted way.

I think, one of the participants of the old OWL-WG should comment on this,
so that we are able to proceed.

Cheers,
Michael

== List of RDF(S) and OWL 1 vocabulary (ordered lexicographically) ==

Here is what the annotations mean:

* "[ ]" custom use is disallowed (i.e. listed in first "Definition")
* "[c]" may be used as a class (according to second "Definition")
* "[p]" may be used as a property (according to second "Definition")
* "[*]" unrestricted use allowed (URI not listed in section 4.2)

=== RDF vocabulary ===

* [p] rdf:_n      // for n >= 1
* [c] rdf:Alt
* [c] rdf:Bag
* [ ] rdf:first
* [ ] rdf:List
* [ ] rdf:nil
* [p] rdf:object
* [p] rdf:predicate
* [ ] rdf:Property
* [ ] rdf:rest
* [c] rdf:Seq
* [c] rdf:Statement
* [p] rdf:subject
* [ ] rdf:type
* [*] rdf:value
* [*] rdf:XMLLiteral

=== RDFS vocabulary ===

* [ ] rdfs:Class
* [*] rdfs:comment
* [ ] rdfs:Container
* [ ] rdfs:ContainerMembershipProperty
* [ ] rdfs:Datatype
* [ ] rdfs:domain
* [*] rdfs:isDefinedBy
* [*] rdfs:label
* [*] rdfs:Literal
* [ ] rdfs:member
* [ ] rdfs:range
* [ ] rdfs:Resource
* [*] rdfs:seeAlso
* [ ] rdfs:subClassOf
* [ ] rdfs:subPropertyOf

=== OWL vocabulary ===

* [ ] owl:AllDifferent
* [ ] owl:allValuesFrom
* [ ] owl:AnnotationProperty
* [*] owl:backwardCompatibleWith
* [ ] owl:cardinality
* [ ] owl:Class
* [ ] owl:complementOf
* [ ] owl:DataRange
* [ ] owl:DatatypeProperty
* [ ] owl:DeprecatedClass
* [ ] owl:DeprecatedProperty
* [ ] owl:differentFrom
* [ ] owl:disjointWith
* [ ] owl:distinctMembers
* [ ] owl:equivalentClass
* [ ] owl:equivalentProperty
* [ ] owl:FunctionalProperty
* [ ] owl:hasValue
* [*] owl:imports
* [*] owl:incompatibleWith
* [ ] owl:intersectionOf
* [ ] owl:InverseFunctionalProperty
* [ ] owl:inverseOf
* [ ] owl:maxCardinality
* [ ] owl:minCardinality
* [*] owl:Nothing
* [ ] owl:ObjectProperty
* [ ] owl:oneOf
* [ ] owl:onProperty
* [ ] owl:Ontology
* [ ] owl:OntologyProperty
* [*] owl:priorVersion
* [ ] owl:Restriction
* [ ] owl:sameAs
* [ ] owl:someValuesFrom
* [ ] owl:SymmetricProperty
* [*] owl:Thing
* [ ] owl:TransitiveProperty
* [ ] owl:unionOf
* [*] owl:versionInfo

Received on Saturday, 7 June 2008 14:51:51 UTC