- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Fri, 01 May 2009 10:33:53 +0100
- To: Jos de Bruijn <debruijn@inf.unibz.it>
- CC: Sandro Hawke <sandro@w3.org>, RIF <public-rif-wg@w3.org>
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