- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Fri, 01 May 2009 11:02:07 +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:
>>>> [*] 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.
So why the restriction to ground lists? Could we not just define safety
over List terms analogously to externals?
As far as I can see I can translate any usage of List with variables to
an equivalent using externals:
... List(?x ?y) ...
=>
And( ... ?Z ...,
?Z = func:insert-before(func:insert-before(List(), 0, ?y), 0, ?x))
The syntactic restriction to ground List elements doesn't seem to be
serving any purpose.
Dave
--
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England
Received on Friday, 1 May 2009 10:03:00 UTC