- From: Michael Schneider <schneid@fzi.de>
- Date: Mon, 9 Jun 2008 15:39:55 +0200
- To: "Boris Motik" <boris.motik@comlab.ox.ac.uk>
- Cc: <public-owl-wg@w3.org>
- Message-ID: <0EF30CAA69519C4CB91D01481AEA06A096B37E@judith.fzi.de>
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