From: ······@gmail.com
Subject: matching for metaclasses
Date: 
Message-ID: <6af4eba1-37b0-440d-9c95-db075c6395fa@k37g2000hsf.googlegroups.com>
I have a huge ontology represented in clips (it was built with
protege). It is a hierarchical structure made of COOL objects. I want
to filter out references to instances.

So the problem would look like I have a pattern to match where I only
know the slot type, but not the slot name.

A little example of what I'm thinking of:

(defclass A
	(slot one (type INSTANCE))
	(slot two (type SYMBOL))
)

(defclass B
	(slot three (type INSTANCE))
)

(defclass C
	(slot four (type SYMBOL))
)

(make-instance c1 of C
	(four sym1)
)

(make-instance c2 of C
	(four sym2)
)
(make-instace a1 of A
	(one c1)
)
(make-instance b1 of B
	(three c2)
)


I need a rule which would give back c1 and c2, because it is
referenced by other classes. I have of course a lot more classes (with
a lot of differently named slots) , and I don't want to write a rule
for each.