Re: [PRD] Issues to resolve before publication (Execute)

Gary Hallmark wrote:
> 
> The semantics of Execute doesn't make sense because it does not follow 
> from the syntax.  There is no way to derive Eval(f,w) from f, the name 
> of the external function, and w, the current state.  For this to work, 
> you'd have to add syntax so users can define their own external 
> functions and then you'd have to define Eval(f,w) in terms of the syntax 
> of f.

I do not understand that: isn't an external a black box, by definition? 
If we "add syntax so users can define their own external function", they 
would not be externally specified anymore: wouldn't that beat the very 
idea of externals?

> Assuming we don't want to define an external function definition 
> language, a better option is to insist that w=Eval(f,w), i.e. that 
> Execute does not change the KB.

Which would restrict the use of externals when interchanging rule in 
RIF, without solving much of a problem, as I see it, since producer and 
consumer would still have to share the specification of f.

Btw, that problem is exactly why some PR languages heve an Update 
action. We may decide to add one,later on, but that would not change 
anything to the fact that we cannot say anything about the semantics of 
an externally specified function, whether or not it modifies the KB.

So, I do not see that we have any alternative to 'Eval', in one form or 
another...

Christian

Received on Monday, 30 June 2008 15:20:36 UTC