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

Hi Boris!

Personally, I agree with disallowing custom use of every URI which plays a 
role within the syntax of OWL itself. And I believe that most people would 
believe that a triple such as

  rdf:value rdf:type owl:imports

is simply a syntax error, although it is actually allowed in OWL 1 DL, 
according to the list below. So in these cases, I would agree to simply regard 
this as an EDITORIAL bug in OWL 1 DL.

However, the situation is different for RDF Reification and collections (BagS 
and friends):

  * This vocabulary has not been used as syntax vocabulary in the RDF syntax 
of OWL 1 DL.

  * For reification, it is explicitly mentioned in sec. 4.2 / AS&S that it may 
be used.

If people have created OWL 1 DL ontologies in the past, which use reification, 
then they probably won't be happy to learn that their ontologies are not valid 
OWL 2 DL ontologies anymore. So this might be a real backwards compatibility 
issue.

Michael

>-----Original Message-----
>From: public-owl-wg-request@w3.org [mailto:public-owl-wg-request@w3.org]
>On Behalf Of Boris Motik
>Sent: Sunday, June 08, 2008 10:17 AM
>To: public-owl-wg@w3.org
>Subject: RE: ISSUE-104: The non-disallowed vocabulary in OWL 1 DL
>
>
>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 Monday, 9 June 2008 13:40:38 UTC