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

Boris Motik wrote:
> Hello,
> 
> I can see your point, Ivan. So what would be the process for doing this? Should we just send an e-mail to owl-dev?
> 

Yes, that is a possibility. I would also send a mail to the SWIG list.

Ivan

> Boris
> 
>> -----Original Message-----
>> From: public-owl-wg-request@w3.org [mailto:public-owl-wg-request@w3.org] On Behalf Of Ivan Herman
>> Sent: 09 June 2008 09:38
>> To: Boris Motik
>> Cc: public-owl-wg@w3.org
>> Subject: Re: ISSUE-104: The non-disallowed vocabulary in OWL 1 DL
>>
>> Hi Boris,
>>
>> while I essentially agree with you, and I have personally never seen an
>> OWL 1 DL Ontology making use of these features, it might be good to
>> look/ask around whether we would create a backward compatibility
>> problem. I actually do not believe we do, but due diligence would
>> require to look around/ask/inquire...
>>
>> Ivan
>>
>> Boris Motik wrote:
>>> 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
>>>>
>>>
>>>
>> --
>>
>> Ivan Herman, W3C Semantic Web Activity Lead
>> Home: http://www.w3.org/People/Ivan/
>> PGP Key: http://www.ivan-herman.net/pgpkey.html
>> FOAF: http://www.ivan-herman.net/foaf.rdf
> 

-- 

Ivan Herman, W3C Semantic Web Activity Lead
Home: http://www.w3.org/People/Ivan/
PGP Key: http://www.ivan-herman.net/pgpkey.html
FOAF: http://www.ivan-herman.net/foaf.rdf

Received on Monday, 9 June 2008 09:34:22 UTC