Truth maintenance system issue?
Srini Ram <[email protected]> Fri, 12 Sep 2008 08:55:42 -0700 (PDT)
| Newsgroups | gmane.comp.ai.powerloom |
|---|---|
| Message-ID | <[email protected]> |
I came across this issue the other day: Given the code: (defconcept person (?x)) (defrelation alive (?x)) (defconcept live-person (?x person) :<=> (alive ?x) ) And the data: (assert (alive jack)) I can ask : STELLA> (ask (live-person jack)) TRUE ;; ok STELLA> (retract (alive jack)) |P?|(ALIVE JACK) ;; dont know if jack is live now STELLA> (ask (live-person jack)) UNKNOWN ;; ok STELLA> (assert (not (alive jack))) |P|(NOT (ALIVE JACK)) ;; jack is not alive STELLA> (ask (live-person jack)) FALSE ;; ok STELLA> (ask (alive jack)) FALSE ;; ok STELLA> (assert (alive jack)) NULL ;; jack lives again STELLA> (ask (alive jack)) UNKNOWN ;; error: i just asserted this. hope I dont need to retract the (not (alive jack) before asserting the opposite? STELLA> (ask (live-person jack)) UNKNOWN ;; error; same as above On a separate sequence (with different code) I got this log: .... STELLA> (ask (live-person jack)) UNKNOWN STELLA> (assert (not (alive jack))) |P#|(ALIVE JACK) STELLA> (assert (alive jack)) |P#|(ALIVE JACK) Shouldnt the system warn me of inconsistency when I assert a fact and its opposite? This is a simple case, but when we have derived facts, this may be important... STELLA> (ask (live-person jack)) UNKNOWN ;; why unknown. at least inconsistency should be flagged at query time, if not the time when inconsistent facts were asserted Thanks Srini _______________________________________________ powerloom-forum mailing list [email protected] http://mailman.isi.edu/mailman/listinfo/powerloom-forum