- From: Antoine Zimmermann <antoine.zimmermann@emse.fr>
- Date: Wed, 09 Nov 2016 21:42:40 +0100
- To: 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>
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. > > 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. By "end up in OWL Full" I figure you mean "end up in the part of OWL Full that is not in OWL DL" (with the abuse of language that I mentioned near the end of my previous email). Ending up in OWL Full, as you say, is not dramatic at all, in most cases. Take a very typical OWL DL tool like Protégé (OWL 2 DL ontology editor) or a reasoner like Pellet or HermiT (OWL 2 DL reasoners). Take a random ontology from the Web. Open it with Protégé. Check consistency with Pellet or HermiT. Nothing impressive happens. It works. Yet, chances are (95+ % chances) that the ontology you open is not in OWL 2 DL. Good OWL tools are good web tools: they must tolerate information that does not conform to the standards. Even W3C recommended ontologies are not in OWL 2 DL (with the notable exception of PROV-O): Org, Data Cube, DCAT, R2RML vocabulary, SPARQL 1.1 Service Description vocabulary, SKOS, etc. OWL DL reasoners are sensitive to some weird constructs but if you want to avoid that, it is easy to spot what's going to make them cry. > 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. This is the OWL 2 RDF-based semantics. This follows from the fact that owl:Class is equivalent to rdfs:Class in this interpretation of RDF graphs. This has nothing to do with punning. > If we decide to restrict ourself to only using RDFS for SOSA-core, What does "only using RDFS" mean? "RDFS" can be interpreted as either (1) "the RDFS entailment regime" (a.k.a. RDFS Semantics) or (2) "the RDFS vocabulary". In case it's (1), then this puts no restriction whatsoever on the RDF graph. If it's (2), then it means we can't use SKOS, Dublin Core, anything external to the RDF(S) terms. Either way, it does not make much sense. "only using RDFS" could also mean many other things with implicit restrictions on what terms to use (or not to use, for that matter) but these would have to be specified. It would make more sense to impose restrictions based on the expressiveness of the language. Adding owl:Class and its semantics does not change the expressiveness of RDFS. > 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. Agreed. > 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. In any case, there isn't much harm in using rdfs:Class alone, owl:Class alone, or both. Using both is the most interoperable solution. Using rdfs:Class only can lead to problems for OWL DL tools, depending on the rest of the ontology. For instance, Dublin Core does not use owl:Class and OWL DL tools do not recognise the classes as existing OWL classes (try with Protégé). In principle, using owl:Class alone can create problems in some unusual, but plausible, use cases. > 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). Almost all DBpedia classes, and GR classes, are used in axioms or data that lead to the conclusion that they are rdfs:Class. Still, typing them with rdfs:Class is most certainly harmless. --AZ > > I hope this will start a productive discussion. > > Thanks for reading, > Krzysztof > >
Received on Wednesday, 9 November 2016 20:43:16 UTC