Re: On production rules and phase I&II

> There may be hidden difference difference here in semantics. Here I  
> am referring specifically to RETE rather than OPS5
> 
> A precondition in a RETE rule is closer to a Prolog-style pattern  
> match than a predication. I.e., in (using my own made on the fly  
> notation)
> 
>    when parent(x,y) and ancestor(y,z) assert ancestor(x,z)
> 
> there is no sense in which, in RETE land, parent(x,y) can be said to  
> be true. It is a pattern that should be matched by an object in the  
> set of objects managed by the RETE engine.
> 
>   Re-expressing this in a form that is closer to RETE-speak, you get
> 
>    when {parent = x, child=y} and {ancestor=y, descendant=z}
> 	assert {ancestor=x, descendant=z}
> 
> highlights this a little more clearly (I hope) The expressions  
> {parent=x,child=y} etc are patterns that are applied to the objects  
> in the pool.
> 
> I.e., the semantics of RETE is inherently operational - the RETE  
> inference rules express the kinds operations you can make on a set of  
> objects.
> 
> As we know, we *can* model such a semantics, in effect constructing a  
> denotational semantics for RETE. But, this is not the same thing as  
> mapping RETE rules into predicate logic; any mapping has to carry  
> with it the operational semantics of RETE otherwise it will not be  
> faithful to the RETE semantics.

That's quite clearly stated, thank you.  Can you give an example of a
RETE ruleset where the only actions are assert and where the end results
would be different between using the rules via RETE and using them via
the trivial mapping to depth-limited pure prolog, or FOL given to a
resolution theorem prover?

     - sandro

Received on Wednesday, 8 March 2006 18:49:59 UTC