on entailments and triple terms

TL;DR:  The RDF-RDFS-SPARQL triad is useful but flawed in theory and in 
practice.  Probably the best that can be done with triple terms is mirror this 
flawed triad with base facilities in simple entailment, extended triple term 
entailment in RDFS, and query patterns in SPARQL that implement most of this 
extended entailment.

What should make rdf:type and rdfs:subclassOf so powerful together?  It should 
be their semantics.  Because :dog rdfs:subclasOf :mammal and :fido rdf:type 
:dog together RDFS-entail :fido rdf:type :mammal we can say that in theory 
RDFS is a very simple ontology language.

What does make rdf:type and rdfs:subclassOf so powerful together?  It's the 
fact that many users of SPARQL write queries using rdf:type/rdfs:subclassOf*. 
Because of this it is not too wrong to say that SPARQL supports very simple 
ontologies.  But it would be far better if instead of requiring users to write 
more-complex queries SPARQL engines just normally worked in the RDFS 
entailment regime so that users could just use rdf:type to access 
RDFS-entailed type information.

So based on the coerced efforts of users it is possible to consider simple 
entailment an ontology language and SPARQL a query language for ontologies. 
But this is at least in part an illusion that falls apart when users do not 
construct their queries to take into account the RDFS semantics of RDF graphs. 
  For example, many queries do not take into account rdfs:subpropertyOf when 
querying non-ontology facts.  This has probably led to underuse of 
rdfs:subpropertyOf.  Even worse, SPARQL is incapable of uniformly querying 
ontologies that have subproperties of rdfs:subclassOf.  So, for example, 
SPARQL cannot uniformly query for class instances in Wikidata, as Wikidata has 
properties that are subproperties of its version of rdfs:subclassOf.

What does this mean for triple terms?  Ideally there would be an explosion in 
the number of SPARQL implementations that can handle RDFS+++ entailments 
related to triple terms as easily as they can handle simple entailment.  Then 
it would not matter how the meaning of triple terms is split up between simple 
entailment, RDF, RDFS, RDFS++, and RDFS+++.

In the absence of this the best that can be done is to provide base facilities 
in simple entailment, add vocabulary and define extended entailment in RDFS, 
and hope that users can and will write SPARQL queries that implement much of 
the extended entailment on top of simple entailment.


peter

Received on Saturday, 17 August 2024 17:46:33 UTC