Hi. I'm new to this list, so I don't know if pseudo time tags for negated
patterns have already been discussed - if so, I apologize.

I never quite understood why CLIPS rule activation associates "pseudo time
tags" to negated patters (I understand that Jess has the same mechanism).
Probably pseudo time tags are useful with by some conflict resolution
strategies (like LEX and MEA) in order to be sensitive also to negated
conditions.

However, it seems to me that the use of pseudo time tags has at least a
major drawback. Let me give an example.

Suppose we have a goal, (goal A), which can be achieved by two alternative
actions, (action A 1) and (action A 2). In turn, (action A 1) has
precondition B, and (action A 2) has precondition C. I want to implement
the following "Prolog-like" backtracking search starting from (goal A):

(goal A)
    try (action A 1)
        subgoal (goal B)
            ...
        fail: retract (goal B)
    fail: retract (action A 1)
    try (action A 2)
        subgoal (goal C)
            ...

With an OPS5-like language, I would define the following rules:

(defrule r1
  (goal A)
  (not (action A ?))  ; negative condition used to "inhibit" parallel search
 =>
  (assert (action A 1) (goal B))

(defrule r2
  (goal A)
  (not (action A ?))  ; negative condition used to "inhibit" parallel search
 =>
  (assert (action A 2) (goal C))

(defrule ...          ; more rules including those dealing with failure

This very simple programming style relies on the fact that refractoriness
is NOT sensitive to negated conditions: in this way, rule r1 cannot be
activated again after the failure of (action A 1). With CLIPS-style pseudo
tags, on the contrary, after the failure of (action A 1) the interpreter
will try the SAME action over and over again. Too bad.

Is there an easy way to remove pseudo time tags from Jess? Or maybe to
implement an optional "weak refractoriness" mechanism which is not
sensitive to pseudo time tags?

Sorry for the long message.






Marco Colombetti
Associate Professor of Knowledge Engineering and Expert Systems

Artificial Intelligence and Robotics Project
Dipartimento di Elettronica e Informazione
Politecnico di Milano
Piazza Leonardo da Vinci, 32
20133 Milano, Italy

Email: [EMAIL PROTECTED]  or  [EMAIL PROTECTED]
URL:   http://www.elet.polimi.it/people/colombet/
Voice: (+39) 02 2399 3686  (*)
Fax:   (+39) 02 2399 3411  (*)

(*)  WARNING:  After the country code (+39), use the full area
     code (02), including the zero!



---------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the
list. List problems? Notify [EMAIL PROTECTED]
---------------------------------------------------------------------

Reply via email to