Dear all, I'm currently writing an application to check the design of a process control system. In one simple rule I'm putting together at the moment, I need to check if two connected components share the same operating system (it could be any other shared attribute). The current rule reads: (defrule operating_sytem (Cable (ObjectFrom ?of) (ObjectTo ?ot)) (Computer (ObjectID ?of) (OperatingSystem ?osf)) (Printer (ObjectID ?ot) (OperatingSystem ?ost&:(<> 0 (str-compare ?ost ?osf)))) => ;; do something Computer and Printer are two of the many different items that could be connected together and I need to replace them with a generic object name or just remove the reference all together. I've tried looking at inheriting from a generic object fact but this will not work as I will have to create too many extra facts to cover all the possible shared attributes. Has anyone run into this problem before and is it possible to examine facts without referring to them by name? Yours, Pete Frederick Mr Peter Frederick, Research Scientist, British Maritime Technology, Orlando House, 1, Waldegrave Rd, Teddington, TW11 8LZ Tel: 0044 (0) 208 943 5544 extn 217 Email: [EMAIL PROTECTED] --------------------------------------------------------------------- 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] ---------------------------------------------------------------------