- From: Christian de Sainte Marie <csma@ilog.fr>
- Date: Mon, 30 Jun 2008 17:19:51 +0200
- To: Gary Hallmark <gary.hallmark@oracle.com>
- CC: RIF WG <public-rif-wg@w3.org>
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