- From: Jos de Bruijn <debruijn@inf.unibz.it>
- Date: Fri, 01 May 2009 11:47:57 +0200
- To: Dave Reynolds <der@hplb.hpl.hp.com>
- CC: Sandro Hawke <sandro@w3.org>, RIF <public-rif-wg@w3.org>
- Message-ID: <49FAC54D.6010701@inf.unibz.it>
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