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.