I think Orchard, Bob wrote: > I guess I was thinking that this was a runtime thing and not a > compile-time decision.
The implementation I came up with is nice because many different features continue to work, but with the new semantics. In a nutshell, what happens is that for facts that can be treated this way (ooh, just realized something, more later) we don't push the facts themselves through the Rete network; instead we push (fact-id, slot, value) triples through. This way things naturally can respond to just single slots. The rule compiler adds tests to match these triples up and prevent cross-talk. What I just realized is that the engine has to treat facts differently when they're asserted, which makes the per-pattern specification of this behavior problematic. I still think it can be done, though. > > > > > I wonder if ONLY giving you the ability to make this decision on a > > pattern-by-pattern basis would be enough. I posit that it would > > indeed, and would be easy to use with the square-bracket syntax. > > > > I agree. This would be the simplest solution. With this you wouldn't > want to change any global default. This might not satisfy Alan's > concern about more than 2 possible ways to do things ... the KARMA > option. Yes, indeed. Maybe there's an equally unobstrusive but more flexible syntax. > > Patterns with just a template name like (factA) would match when any > slot was changed but patterns like [factA] would never(?) match since > there is no slot to match and it requires some slot 'in the pattern' > to change before matching can occur. I think by definition [factA] and (factA) would mean the same thing; the implementations are different, though. --------------------------------------------------------- Ernest Friedman-Hill Distributed Systems Research Phone: (925) 294-2154 Sandia National Labs FAX: (925) 294-2234 PO Box 969, MS 9012 [EMAIL PROTECTED] Livermore, CA 94550 http://herzberg.ca.sandia.gov -------------------------------------------------------------------- To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use your own address!) List problems? Notify [EMAIL PROTECTED] --------------------------------------------------------------------
