Re: rdfs:class versus owl:class in SOSA-Core

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