Re: [RDF+OWL] Way of connecting RDF and RIF lists

Jos de Bruijn wrote:
> 
> Dave Reynolds wrote:

>> Thinking out loud here ... consider the rule set[*]:
>>
>>    p(:a).
>>    q(List(?x, ?x)) :- p(?x).
>>
>> Under 1-1 semantics I believe this entails the RDF list (using Turtle
>> notation):
>>
>>    (:a :a)
>>
>> i.e.
>>
>>    [rdf:first :a; rdf:rest [rdf:first :a; rdf:nil]]
>>
>> Right?
>>
>> So creating a list, even just as an argument to a predicate, implies
>> creating an RDF list structure (with a bNode for the list root) even
>> though the rest of the predicate is invisible to the RDF view.
>>
>> So for a PR engine if they want to implement RIF-RDF combinations with
>> the 1-1 semantics then every time they cons up a list they will need to
>> assert the corresponding frame formulae into their working memory. This
>> seems like a high overhead.
> 
> Indeed. This is what makes the 1-1 semantics a lot harder.

Quite. The amount of code to implement this is probably not great so 
"implementation cost" is not quite the right term. The burden comes from 
the inefficiency (and the surprise to implementers of having to make all 
list cells visible in working memory).

>> I realize the term "RDF view" is not a defined notion in RIF, we only
>> define the semantics of RIF-RDF combinations. However, in an RDF
>> implementation I would expect to provide a means to extract an entailed
>> RDF graph from the RIF-RDF combination, that's the value of such
>> combinations for RDF processing. The fact that RIF predicates are not
>> part of the entailed graph is rather useful. Having lists which aren't
>> otherwise referenced (by non-list frames) leak out into that view is
>> problematic.
> 
> Actually, RIF-RDF compatibility defines a notion of entailed RDF graphs.
> One could call those the "RDF view".

Argh. Sorry. Of course it does. So my comments on implementers having 
some freedom over this are wrong.

>> [*] By the way, is this rule set in RIF Core? During the f2f discussion
>> on "grounded lists" in the core I found it hard to follow on the phone
>> what people were meaning by grounded lists.
> 
> No. We were talking about ground lists, and ground=no variables.

My confusion was whether we meant the resulting lists are ground i.e. 
are we just ruling out prolog lists with unbound variables in them or 
blocking all "runtime" construction of lists. You are saying the later 
which was my impression also.

In that case Lists are completely useless in Core.

Am I allowed to have a DTB builtin for constructing lists? I remember 
this being discussed at the f2f but couldn't follow the argument against it.

Dave
-- 
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England

Received on Friday, 1 May 2009 09:34:46 UTC