opennars / Narjure

A Clojure implementation of the Non-Axiomatic Reasoning System proposed by Pei Wang.
GNU General Public License v2.0
44 stars 11 forks source link

Deriver Variable Handling Issue #36

Closed patham9 closed 8 years ago

patham9 commented 8 years ago
<(&&,<$1 --> flyer>,<$1 --> [chirping]>) ==> <$1 --> bird>>.
<<$1 --> [withWings]> ==> <$1 --> flyer>>.

Rules shouldn't only match if it is called $1 in both the first and second premise. Why is this the case that these have to be equal altough they are just variable names? Any idea, Roman?

patham9 commented 8 years ago

Ah because it uses the "equal" of the Lisp expression. Hm variable normalization will at least to soe extent resolve the issue, but probably we find a better way.

patham9 commented 8 years ago

we have now a strict equality plus the ability to apply unification. In 1.7.0 we had: strict equality (only used for conceptual grouping), equality under variable renaming (used for rule matching), and unification

patham9 commented 8 years ago

As expected variable normalization is sufficient for 99% of the relevant cases, however this one I will resolve completely when there is time (after AGI-16).

patham9 commented 8 years ago

closed as a design decision that is now done differently. using unification instead of structure keying for all rules would be too expensive.