W3C home > Mailing lists > Public > public-owl-wg@w3.org > June 2008

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

From: Boris Motik <boris.motik@comlab.ox.ac.uk>
Date: Sun, 8 Jun 2008 09:16:37 +0100
To: <public-owl-wg@w3.org>
Message-ID: <001501c8c93f$f92edde0$0200a8c0@wolf>

Hello,

Thanks Michael for this list.

The very fact that this list seems, as you say it, buggy and complicated in OWL 1 DL seems to show us that we should simplify
matters in OWL 2 DL. I don't see any particular value in allowing, for example, OWL DL statements of the form 

   :w rdf:type rdf:Statement .

The idea of the built-in vocabulary in general is that it has a built-in semantics and is therefore akin to logical operators, and
not elements from the signature. In first-order logic, the usage of operators as part of a language does not make much sense. Since
OWL 2 DL is a first-order fragment of OWL 2 Full, it makes therefore sense to prohibit the usage of the built-in vocabulary
everywhere.

It might be that the actual implementation of this issue in OWL 1 DL was different; however, this has clearly been the intent.
Therefore, even if changing such details in OWL 2 DL might introduce some form of backwards incompatibility, I would rather declare
this to be a bug in OWL 1 DL and fix it in OWL 2 DL, than to put up with all the unnecessary complexity.


In general, I strongly support putting all of built-in vocabulary "off limits" in OWL 2, without any exceptions. I believe that this
leads to simplicity and clarity: the built-in vocabulary is something that is used to enable the inner workings of the logic, and
therefore should not be tampered with. My ISWC 2005 paper shows that it is quite easy to get these things wrong and get an
undecidable language. In future revisions of OWL, we might extend the built-in vocabulary, and we want to make sure that this does
not introduce problems. Therefore, the simplest way is to declare all of the vocabulary to be off limits.

Regards,

	Boris

> -----Original Message-----
> From: public-owl-wg-request@w3.org [mailto:public-owl-wg-request@w3.org] On Behalf Of Michael
> Schneider
> Sent: 07 June 2008 15:51
> To: public-owl-wg@w3.org
> Cc: Boris Motik
> Subject: 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 Sunday, 8 June 2008 08:18:11 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Sunday, 8 June 2008 08:18:12 GMT