Re: Potential design space of LET/assignment

On Wed, Nov 11, 2009 at 10:34 AM, Andy Seaborne <andy.seaborne@talis.com> wrote:
<snip/>
>>> It would also be helpful if you describe what OpenAnzo does. (ditto
>>> other impls). I hope that Steve will provide the concrete example of
>>> what he thinks Holger is asking for and any examples that concern him.
>>
>> Open Anzo attaches LETs at the group level (a la FILTERs) and applies
>> them to the solution set that results from evaluating the group. It
>> applies them in the lexical order that they're found. It (conceptually)
>> evaluates each assignment to get a new one row, one column solution set,
>> and joins that solution set with the the group's solution set. Rinse and
>> repeat for the rest of the assignments attached to the group.
>
> Thanks.
>
> Because it's a conceptual join, per row, you allow solutions where the same
> value is already bound to the named variable?
>
> (PS But what happens about errors in evaluation?)

<snip/>

> The first condition is not needed if there is a syntactic restriction
> requiring new names but then you loose the relationship to BGP matching and
> FILTERs, which OpenAnzo has.
>
> Paul - what do you do?

Pretty much the same thing that Lee describes for OpenAnzo. It uses
almost identical code to FILTER, only instead of reducing a result set
to fewer rows, it widens the set by one variable.

Due to the simple nature of my implementation, I've simply disallowed
assignment to existing variables. I guess it wouldn't be too hard to
change that, but I was going for minimal effort.  :-)

Errors result in an unbound variable.

Regards,
Paul Gearon

Received on Wednesday, 11 November 2009 21:15:32 UTC