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

Dave Reynolds wrote:
> 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.

Yes, you can use the builtins. Because of this the lists are not useless
and, also, your system is not guaranteed to terminate.


Jos

> 
> Dave

-- 
+43 1 58801 18470        debruijn@inf.unibz.it

Jos de Bruijn,        http://www.debruijn.net/
----------------------------------------------
Many would be cowards if they had courage
enough.
  - Thomas Fuller

Received on Friday, 1 May 2009 09:48:43 UTC