We seem to be playing "dueling typos." The missing question marks in
my mail were a single typo, multiplied by cut and paste. In your rule
below, you're got the &:(eq... outside the parens for the path slot --
Jess oughtn't to have parsed this, but again, I don't know if you just
made an email typo. In any case, here's a complete working example,
cut-and-pasted from an actual session this time.

(defglobal ?*foo* = 1)
(deftemplate foo (slot bar))
(defrule foo
 (foo (bar ?x&:(eq ?x ?*foo*)))
=>
) 
(deffacts foo (foo 1) (foo 2) (foo 3))     
(reset)
(watch all)
(run)

The rule foo fires once for Fact-1.

I think Willie Wheeler wrote:
> Hi Ernest,
> 
>       Thanks very much for your response.  I tried what you gave, and I
> couldn't get the match to happen.  (I noticed that the left hand argument
> to eq doesn't have a question mark--I tried it without and with.)
>       Here is what I tried:
> 
> 
> ?path-node <- (path-node (path ?path-id)&:(eq ?path-id ?*selected-path-id*))
>                          (node ?node-id)
>                          (act-classification nil))
> 
> 
> That doesn't work.  But when I do the following:
> 
> 
> ?path-node <- (path-node (path ?path-id)
>                          (node ?node-id)
>                          (act-classification nil))
> (test (eq ?path-id ?*selected-path-id*))
> 
> 
> it works just fine.  And so problem is solved, though I'd like to know
> why the first way isn't working if you see it.  (Again, I tried it without
> the ? in front of path-id as well, as your examples seemed to suggest.)
> 
>       Thanks,
>       Willie
> 
> 
> 
> On Fri, 16 Mar 2001, friedman_hill ernest j wrote:
> 
> > 
> > (get-var) was a kludge to let you refer to globals on rule LHSs at all
> > -- i.e., to allow you to even use them in expressions like
> > 
> > (foo (bar ?a&:(eq a (get-var ?*b*))))
> > 
> > Nowadays you can just write
> > 
> > (foo (bar ?a&:(eq a ?*b*)))
> > 
> > So the get-var function doesn't exist anymore. The ability to directly
> > match defglobals, something like
> > 
> > (defrule foo
> >     (global ?*b* 37)
> > 
> > is something that we have indeed talked about, but I've never
> > implemented. 
> > 
> > 
> > I think Willie Wheeler wrote:
> > > Hi all,
> > > 
> > >   I am trying to figure out how to match globals on the left-hand
> > > side.  I searched the archives and found Jess's behavior with respect to
> > > this issue characterized variously as a bug and as a idiosyncracy, and I
> > > even found a message where a "matchable" attribute for defglobal was
> > > proposed, but there is no mention of a solution.  (Well, there was one
> > > mention of a get-var function being involved, but I don't see any such
> > > function in the manual and it doesn't seem to work in the code.)
> > > 
> > >   Willie
> > > 
> > > 
> > 
> > 
> > 
> > ---------------------------------------------------------
> > Ernest Friedman-Hill  
> > Distributed Systems Research        Phone: (925) 294-2154
> > Sandia National Labs                FAX:   (925) 294-2234
> > Org. 8920, MS 9012                  [EMAIL PROTECTED]
> > PO Box 969                  http://herzberg.ca.sandia.gov
> > Livermore, CA 94550
> > 
> 
> 
> ---------------------------------------------------------------------
> 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]
> ---------------------------------------------------------------------
> 



---------------------------------------------------------
Ernest Friedman-Hill  
Distributed Systems Research        Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
Org. 8920, MS 9012                  [EMAIL PROTECTED]
PO Box 969                  http://herzberg.ca.sandia.gov
Livermore, CA 94550
---------------------------------------------------------------------
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]
---------------------------------------------------------------------

Reply via email to