# Re: [TF-Ent] RIF Core Entailment section

From: Birte Glimm <birte.glimm@comlab.ox.ac.uk>
Date: Wed, 10 Mar 2010 11:52:58 +0000
Message-ID: <492f2b0b1003100352y7202a033q581d88d860fa9b98@mail.gmail.com>
To: Ivan Herman <ivan@w3.org>
Cc: Chimezie Ogbuji <ogbujic@ccf.org>, SPARQL Working Group WG <public-rdf-dawg@w3.org>, Axel Polleres <axel.polleres@deri.org>, Sandro Hawke <sandro@w3.org>
see below

On 10 March 2010 10:28, Ivan Herman <ivan@w3.org> wrote:
>
> On 2010-3-9 16:54 , Chimezie Ogbuji wrote:

[snip]

>> As long as sk(SG) is finite, any RIF-RDF-entailed graph would also be finite
>> (since the safety restrictions ensure the Herbrand model is finite by
>> essentially ensuring no 'new' constants are introduced).  So the finite
>> restriction would only be relevant for the infinite axiomatic triples, and
>> Birte's recent modifications to C2 address this:
>>
>> (C2) For each variable x in V(BGP), sk( \$B&L (B(x)) occurs in sk(SG) or in
>> rdfV-Minus.
>>
> This is necessary only if we use RIF-RDF-RDF and RIF-RDF-RDFS (and OWL).
> In the case of RIF-RDF-Simple the issue does not arise, does it?

Simple entailment requires: "μ is a solution for BGP from G when there
is a pattern instance mapping P such that ***P(BGP) is a subgraph of
G*** and μ is the restriction of P to the query variables in BGP."

The fact that the instantiated BGP is a sub-graph of G (SG)
corresponds to what we do with the Skolemization and otherwise also
simple entailment would not guarantee finite answers since in the
presence of blank nodes in the answer I can always create another
answer by just renaming the bnode and I get something that is still
simply entailed according to the definition of simple entailment.
Skolemisation is just better able to capture that we in fact work on
extended graphs (containing also inferred triples) in non-simple
entailment. Nevertheless, the restriction as for simple entailment
would not really work for RIF since you don't want to exclude the
entailed triples, e.g., if we have SG:
ex:a a ex:b .
rif-rdf:usesRuleset ex:rules.rif .
with ex:rules.rif:
ex:b(x) -> ex:c(x)
and query:
SELECT ?x WHERE { ?x a ex:c }
then I would expect to get (even with RIF-RDF-Simple)
?x/ex:a
although the instantiated BGP ex:a a ex:c does not occur in G/SG.
Condition C2 might allow that, but it might also need rephrasing
because it should also refer to the terms used in the (imported) rule
set too I guess, e.g.,
(C2) For each variable x in V(BGP), sk(\mu(x)) occurs in sk(SG) or in
rdfV-Minus.
should probably refer to sk(SG) \cup terms from import closure of the
referenced RIF rule sets. Otherwise I would not get an answer for the
example above because ex:c only occurs in the rule set.
This could all be a misunderstanding due to my limited RIF knowledge,
but I thought I better ask.
Birte

--
Dr. Birte Glimm, Room 306
Computing Laboratory