Thank you; the template inheritance mechanism was the answer.
Aurélien

On Jul 30, 2013, at 8:11 AM, "Friedman-Hill, Ernest" <ejfr...@sandia.gov> wrote:

> 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