Thank you , works fine! Regards Hans Jason Morris wrote: > > Yep, that works too, of course. And it is the preferred way of doing it. > My bad. > > On Nov 14, 2007 1:23 PM, Robert Kirby <[EMAIL PROTECTED]> wrote: > >> How about >> >> (defrule find_it2 >> (things (Id ?pId)(elements $? ?elementName $?)) >> (otherthing (one_Element ?elementName)) >> => >> (printout t "found it:" ?pId crlf)) >> >> which is described at the end of *6.4. Matching in Multislots* >> <http://herzberg.ca.sandia.gov/jess/docs/70/rules.html#multimatch>? >> >> Bob Kirby >> >> >> At 09:15 AM 11/14/2007, Jason Morris wrote: >> >> Hi Hans, >> >> Try this solution: >> >> (clear) >> (watch all) >> >> (deftemplate things >> (slot Id) >> (multislot elements)) >> (deftemplate otherthing >> (slot one_Element)) >> >> (deffacts init >> (things (Id 1) (elements a b c)) >> (otherthing (one_Element a))) >> >> ;Get all Ids of things >> ;Where AElement of elements equals one_Element >> >> (defrule find_it >> (things (Id ?pId)(elements $?elements)) >> (otherthing (one_Element ?foo&:(member$ ?foo ?elements))) >> => >> (printout t crlf "Found it: " ?pId crlf crlf)) >> >> ; Program >> (reset) >> (run) >> >> /** OUTPUT >> MAIN::find_it: +1+1+1+1+2+t >> ==> Focus MAIN >> ==> f-0 (MAIN::initial-fact) >> ==> f-1 (MAIN::things (Id 1) (elements a b c)) >> ==> f-2 (MAIN::otherthing (one_Element a)) >> ==> Activation: MAIN::find_it : f-1, f-2 >> FIRE 1 MAIN::find_it f-1, f-2 >> >> Found it: 1 >> >> <== Focus MAIN >> **/ >> >> Cheers, >> Jason >> >> ----------------------------------------------------------- >> Jason Morris >> Morris Technical Solutions LLC >> http://www.morris-technical-solutions.com >> >> On Nov 14, 2007 10:43 AM, sotski <[EMAIL PROTECTED]> wrote: >> >> Hey all! >> I have a newbie question. I read the Answers to the "matching in two >> multislots of two different templates" post. >> I have very similiar problem but not the same ;-) I simplify the problem >> for >> you: >> ;;Templates: >> (deftemplate things >> (slot Id) >> (multislot elements)) >> (deftemplate otherthing >> (slot one_Element)) >> >> now I want to write a rule which does the following: >> >> get all Ids of things >> where AElement of elements equals one_Element >> >> I wrote a rule: >> >> (defrule find_it >> (things (Id ?pId)(elements $?elementName)) >> (otherthing (one_Element ?foo)) >> (test (eq ($?elementName ?foo)) >> => >> (printout t "found it:" ?pId crlf)) >> >> But it doesen't fire. >> I assert facts from java and they are of type RU.SYMBOL >> >> Thx for your help >> Bye >> Hans >> -- >> View this message in context: >> http://www.nabble.com/matching-problem-tf4805951.html#a13749159 >> Sent from the Jess mailing list archive at Nabble.com. >> >> -------------------------------------------------------------------- >> 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] >> -------------------------------------------------------------------- >> >> >> >> >> > > > -- > ----------------------------------------------------------- > Jason Morris > Morris Technical Solutions LLC > http://www.morris-technical-solutions.com > >
-- View this message in context: http://www.nabble.com/matching-problem-tf4805951.html#a13767483 Sent from the Jess mailing list archive at Nabble.com. -------------------------------------------------------------------- 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] --------------------------------------------------------------------
