Re: bNodes as local constants

<snip/>

>>
>> I do acknowledge that this translation can be used for certain
>> purposes.  If one wants to do entailment checking, one can always
>> Skolemize existential quantifiers on the left-hand side of the
>> entailment symbol.
> 
> Okay, yes, we're agreed.
> 

<snip/>

> 
> Here, I think it depends what "local name" means.   Do you have some
> definition in mind, here?
> 
>> The local names in RIF are meant to be rigid identifiers, and not
>> existentially quantified variables.
> 
> Yes, it sounds like you do.  So what is a local name, then?  How is it
> different from both a global name (IRI, relative or not) and an
> existentially quantified variable.  My intuition for local names is that
> they are the same as existentially quantified variables.  If they can't
> be used in communication (that is, if they are local), then I don't see
> how they can be considered rigid, etc.
> 
>> There are actually very good
>> reasons for that, since allowing existentially quantified variables in
>> rules makes reasoning a lot harder, and often undecidable, and there are
>> no know effective algorithms (as far as I am aware of).
>>
>> That said, one might allow existentially quantified variables in facts
>> only (selecting RDF).  In that case, as mentioned by Michael, reasoning
>> can be done by Skolemizing all existentials on the left-hand side of the
>> entailment symbol, and treating the right-hand side as a query, so that
>> entailment might be checked through variable substitution.
>> Note that, in this case, entailment checking does become more
>> complicated [simple entailment in RDF; i.e. not taking into account any
>> of the RDF semantics, except for blank nodes, is NP-complete in the size
>> of the graphs].
> 
> Thanks for walking through this.
> 
> Maybe the local names issue is an aside.  

I do think that it is important to have a common definition for local
names.  I was already afraid that at one point some people might think
that local names are the same as bNodes :-)

I was not one of the big proponents of local names in the RIF, but I
believe that the proponents (MichaelK, Hassan) share my definition, i.e.
local names are not existentially quantified variables, but rigid constants.

> 
> My suggestion for RIF, I think, is that we say that RDF b-nodes should
> be Skolemized for interoperation with RIF Core.  Other RIF dialects, if
> they support general existential quantification, should not require
> Skolemization.   Do you think that's good enough?

(1) This would be a possible way to go, yes.
(2) Another possibility would be to allow existentially quantified
variables in facts which come from RDF triples, and show that
skolemization can be used for reasoning.
(3) Finally, we could combine the two in a more modular way.  We could
define the combination of an RDF graph S with a set of rif rules P as a
tuple (S,P), and define a notion of combined interpretations, similar to
what is done in DL-log [1].

I think I would prefer the second option.   Compared to the first
option, it has the advantage that the embedding is closer to the actual
semantics of RDF.  Compared to the third option, it has the advantage
that (I think) it will be easier to understand, and you can more easily
be reused in extensions with nonmonotonicity and extensions towards
production rules.


Best, Jos

[1] Riccardo Rosati. DL+log: Tight integration of description logics and
disjunctive datalog. In KR2006, 2006.

> 
>      -- Sandro 
> 
> 

Received on Thursday, 26 April 2007 07:25:06 UTC