| Newsgroups |
gmane.comp.ai.powerloom |
| Message-ID |
<[email protected]> |
I was trying to create an indicator variable that would reify a
particular relationship, using a PowerLoom function:
(defrelation hostile-to (?hostile-er ?hostile-ee))
(defconcept affinity)
(assert (affinity friendly))
(assert (affinity hostile))
(assert (affinity neutral))
(assert (closed affinity))
(deffunction disposition (?g1 ?g2) :-> (?a affinity))
(assert (forall (?g1 ?g2)
(<=> (hostile-to ?g1 ?g2)
(= (disposition ?g1 ?g2) hostile))))
(defconcept tribe-a (tribe)
:axioms ((has-name tribe-a "Maquinna")
(operates-in tribe-a region-r)
(hostile-to tribe-a tribe-c)))
STELLA(4): (ask (hostile-to tribe-a tribe-c))
Processing check-types agenda...
TRUE
I was a little surprised to find that the functional synonym didn't
work properly (or what I thought of as properly):
STELLA(5): (ask (= (disposition tribe-a tribe-c) hostile))
TRUE
STELLA(6): (ask (= (disposition tribe-a tribe-c) friendly))
UNKNOWN
I tried using ask...not, to see if the second case above was a case
where limited effort was being devoted to disproof, but I don't
believe so:
STELLA(7): (ask (not (= (disposition tribe-a tribe-c) friendly)))
UNKNOWN
Interestingly, I am able to find the disposition using retrieve:
STELLA(8): (retrieve ?x (= (disposition tribe-a tribe-c) ?x))
There is 1 solution so far:
#1: ?X=HOSTILE
[Note: I have found that since I am working with human social
groupings as entities, it's not at all obvious how I can use
individuals rather than concepts, since containment relations are
prominent. This means that I end up having a lot of meta-relations,
e.g., tribe-a and tribe-c are concepts, rather than individuals.
Could this be responsible for some of my problems?]
Thanks,
R
--
Robert P. Goldman
Senior Scientist
Smart Information Flow Technologies (d/b/a SIFT, LLC)
211 N. First St., Suite 300
Minneapolis, MN 55401
Voice: (612) 384-3454
Email: [email protected]