The short answer is "no". Templates are like Java classes, and so this is akin 
to asking if you can write Java code that reads the value of a "score" member 
variable in any class.

But you can use template inheritance to achieve your goal. Templates can extend 
other templates; just put your "score" slot in a base template, and extend 
everything else that needs a "score" slot from that common base, and write your 
patterns to match the base template. Read about the use of "extends" in 
templates here:

http://www.jessrules.com/jess/docs/71/memory.html


From: owner-jess-us...@sandia.gov [mailto:owner-jess-us...@sandia.gov] On 
Behalf Of Aurelien Mazurie
Sent: Friday, July 26, 2013 4:43 PM
To: jess-users
Subject: JESS: [EXTERNAL] Matching facts based on a slot, but not the fact's 
type

Dear Jess users,
I am still learning the ropes, and cannot find an answer to the following 
question either online or in the 'Jess in action' book. Is there a way to match 
facts in a LHS based on the presence of a slot?

For example, I have two templates:

(deftemplate A (slot score))
(deftemplate B (slot score))

I would like my rule to be triggered if any fact (either from template A, B, or 
others) have a 'score' slot with a specific value. For now I can do it by 
manually adding references to A and B in the LHS, but this will not scale well. 
I'm looking for a solution that can just work on any fact, regardless of the 
template they are defined from.

Best,
Aurelien

Reply via email to