- From: Krzysztof Janowicz <janowicz@ucsb.edu>
- Date: Wed, 9 Nov 2016 12:09:54 -0800
- To: Antoine Zimmermann <antoine.zimmermann@emse.fr>, Krzysztof Janowicz <jano@geog.ucsb.edu>, Joshua Lieberman <jlieberman@tumblingwalls.com>, Simon Cox <Simon.Cox@csiro.au>, Kerry Taylor <kerry.taylor@anu.edu.au>, Armin Haller <armin.haller@anu.edu.au>
- Cc: SDW WG Public List <public-sdw-wg@w3.org>
Fantastic Antoine, thanks for taking the time to write this up! So, can we decide to follow Antoine's advise and use strategy 1 (or 3; as per the last sentence) ? Best, Krzysztof On 11/09/2016 12:00 PM, Antoine Zimmermann wrote: > Sorry to step in this discussion while I have not followed what > triggered it, but I think I may have insights about how OWL works. > > OWL is a very complicated beast. > > TL;DR: OWL DL classes can be typed with rdfs:Class without any > problem for OWL reasoners, and rdfs:Class can be typed with owl:Class > without any problem for RDFS reasoners. > > Warning: the explanations below are pretty long and detailed and brain > damaging. > > > > On 09/11/2016 00:01, Krzysztof Janowicz wrote: >> Hi, >> >> Sorry for being so picky about this during our meeting but I do not want >> us to take decisions that have consequences that we can not yet foresee. >> >> To the best of my knowledge (and please correct me if I am wrong): >> >> Under the semantics of OWL1, rdfs:class and owl:class are only >> equivalent for OWL-Full. For OWL-DL (and OWL-Lite) owl:class is a >> subclass of rdfs:class. > > The standard Web Ontology Language is now OWL 2. Let us forget about > OWL 1 (and please do not talk about OWL Lite, yuck!) > > OWL 2 is a set of standards that effectively define two logics. The > two logics are often referred to as OWL 2 DL and OWL 2 Full but this > is not exactly it. > > OWL 2 DL and OWL 2 Full only refer to two different sets of syntactic > structures. There is no semantics in the names OWL 2 DL and OWL 2 Full > per the standard. > > An OWL 2 DL ontology is an OWL 2 ontology that satisfies the > constrains that make OWL 2 DL computationally decidable. > > An OWL 2 ontology is any construction that follows the OWL 2 > structural specification [1]. More precisely, it is an instance of the > UML diagrams in [1, Section 3]. Therefore, an OWL 2 ontology is > nothing like an RDF graph at all. > > An OWL 2 Full ontology is an RDF graph, and vice versa (that is, "OWL > 2 Full ontology" is a synonym of "RDF graph", that is, it is a set of > RDF triples). > > So, OWL 2 DL ontologies are *not* OWL 2 Full ontologies. > > Strictly speaking, "owl:class is a subclass of rdfs:class" is not > something that can be decided by only considering OWL 2 DL or OWL 2 > Full because these two names refer to purely syntactic constructions. > > Since OWL 2 Full ontologies are RDF graphs, they can be interpreted > according to the RDF semantics, the RDFS semantics, the simple > semantics, D-entailment, ter Horst semantics, and the OWL 2 RDF-based > semantics (and others). It is generally the case that when someone > says OWL 2 Full, one implicitly assumes "RDF graphs with the OWL > RDF-based semantics". It is also often the case that when one says > "OWL 2 Full", they have in mind a mystical thing that is both > dangerous (because computationally undecidable) and incomprehensible > (because it is indeed very complicated). > > Now, this clarifies what is meant by "OWL 2 Full" and if I adopt the > OWL 2 RDF-based semantics [2], I can say that it is true that: > > owl:Class owl:equivalentWith rdfs:Class . > > What happens with OWL 2 DL ontologies? Is the previous statement true? > The answer is that the question does not even make sense because an > RDF triple does not belong to the language of OWL 2 DL. In OWL 2 DL, > owl:Class is not a class. It even *cannot* be a class, by definition > of the structural specification. Incidentally, it cannot be equivalent > with, nor even a subclass of anything. > > This is certainly confusing. Most of you have certainly "seen" OWL > ontologies, and they were goddam RDF files! In fact, the RDF file is > just an encoding. Just like some of you have "seen" RDF graphs, and > they were goddam XML files! That was just an encoding. RDF graphs > can exist in XML form, in JSON form, in Turtle form, etc. OWL > ontologies can exist in RDF graph form. It even has a name in the OWL > 2 specifications: they are called "OWL 2 DL ontologies in RDF graph > form" [2, Section 7]. > > OWL 2 DL ontologies in RDF graph form are a subset of OWL 2 Full > ontologies. > > Because of this, by *abuse of language*, it is perfectly legitimate to > say "all OWL 2 DL ontologies are OWL 2 Full ontologies" and I will > take this for granted, knowing the precise formal implications of the > abuse. > > > Getting back to our problem. For anything practical, what we want is > to write RDF graphs (i.e., OWL 2 full ontologies, remember?). The > question is whether we can write such a graph as an OWL 2 DL ontology > in RDF graph form. > > For the moment, we concentrate on the statements: > > (1) ex:myClass a owl:Class . > > or: > > (2) ex:myClass a rdfs:Class . > > or: > > (3) ex:myClass a rdfs:Class, owl:Class . > > The specification tells us that the first triple is compulsory for the > ontology to be in OWL 2 DL. If we want to keep total compatibility > with OWL tools, we must choose (1) or (3). > (3) is harmless to OWL tools. The OWL 2 mapping to RDF graph [3] > (which also provides the inverse mapping from OWL 2 ontologies in RDF > graph form to OWL 2 ontologies) says that it is fine as far as OWL 2 > is concerned. > If we interpret the ontology according to the OWL 2 RDF-based > semantics, it is redundant because, in this case, rdfs:Class is > equivalent to owl:Class, but it's fine and harmless nonetheless. > (3) is also harmless to RDFS reasoners. Actually, nothing from OWL can > pose any problem to an RDFS reasoner, unless the reasoner is doing > stupid things that are not in the recommendation. > > However, (1) is also ok for an RDFS reasoner, in most situations. > Granted, a pure RDFS reasoner won't be able to infer from this unique > triple that ex:myClass is a class, but that's OK. As soon as the class > is used in a triple like: > > ex:something a ex:myClass . > > the reasoner can infer that ex:myClass is a class. There are other > ways it could infer it, BTW. > > My advice would be to type the classes using both rdfs:Class and > owl:Class and to try to keep things within OWL 2 DL because in most > cases, it will be totally harmless and transparent to RDFS tools. > > > That's all for the moment. I'll get back to you in another email. > > > [1] Boris Motik, Peter F. Patel-Schneider, Bijan Parsia. OWL 2 Web > Ontology Language, Structural Specification and Functional-Style > Syntax (Second Edition). W3C Recommendation 11 December 2012. > https://www.w3.org/TR/2012/REC-owl2-syntax-20121211/ > [2] Michael Schneider. OWL 2 Web Ontology Language, RDF-Based > Semantics (Second Edition). W3C Recommendation 11 December 2012. > https://www.w3.org/TR/2012/REC-owl2-rdf-based-semantics-20121211/ > [3] Peter F. Patel-Schneider, Boris Motik. OWL 2 Web Ontology Language > Mapping to RDF Graphs (Second Edition). W3C Recommendation 11 December > 2012. https://www.w3.org/TR/2012/REC-owl2-mapping-to-rdf-20121211/ > > > > --AZ > > >> >> This means that every valid document in OWL will be a valid document in >> RDFS, however *not* every rdfs:class is an owl:class. I do not want us >> to end up in OWL-Full because of this. >> >> For OWL2, I found this: 'owl:Class rdfs:subClassOf rdfs:Class . " >> (https://www.w3.org/TR/owl2-rdf-based-semantics/). Things may be more >> complicated here due to OWL2 punning and they may well turn out to be >> equivalent, I will check this later. >> >> If we decide to restrict ourself to only using RDFS for SOSA-core, and I >> am not in favor of this, then we may have to go with rdfs:class. >> However, we have not yet taken this decision and have also not discussed >> which axioms and language to use for SSN. As Sosa-core and SSN will be >> aligned, this may have more consequences that we should consider. It >> also seems like many of us are in favor of using inverseOf, so we would >> be using OWL (and its formal semantics) anyway. Note that this does not >> do any harm to an RDFS-only tool/user as for those the inverseOf axiom >> will simply have no formal semantics. Still all other triples that use >> both relations will still be just fine. >> >> Given the subclasssing, I do not see any problems using owl:class, but >> we may accidentally end up in OWL-full or with being incompatible to the >> standards if we opt for rdfs:class. Again, I am happy to be corrected. >> At least, I do not see harm in simply using owl:class. >> >> Finally, and from very pragmatic point of view: ontologies that are >> under very heavy use such as the DBpedia ontology simply use owl:class >> and I have not yet seen any issues or complaints about that. See, for >> example, http://dbpedia.org/ontology/City "dbo:City rdf:type >> owl:Class ." The same is true for the goodrelations ontology and so >> forth (but I admit that this is due to the more complex axiomatization >> they use). >> >> I hope this will start a productive discussion. >> >> Thanks for reading, >> Krzysztof >> >> > -- Krzysztof Janowicz Geography Department, University of California, Santa Barbara 4830 Ellison Hall, Santa Barbara, CA 93106-4060 Email: jano@geog.ucsb.edu Webpage: http://geog.ucsb.edu/~jano/ Semantic Web Journal: http://www.semantic-web-journal.net
Received on Wednesday, 9 November 2016 20:10:29 UTC