Hi Linas, Yes, StateLink is useless with backwards-chaining. It can only work with > forward-chaining. >
Oh yes! I understood this after several attempts. However, at least it's a closed path! A minor performance note: using push/pop might be slightly faster, by >> avoiding a copy. (you can also manually push/pop with cog-new-atomspace, >> cog-set-atomspace! and stuff like that.) >> > I hadn't seen push and pop so i was using (cog-new-atomspace). Actually, the algorithm is in python so I do Atomspace () and for the copy I extract the atoms from one and rerun them in the other (probably with decreased performance). > This is a generic problem with backwards-chaining: the algorithms are > heavy, slow, and have combinatoric explosions. This has been known since > the 1980's and has been the subject of extensive academic research, and, no > doubt, dozens of PhD thesis. > I saw it in old tests.. Anyway, my algorithm is more or less a guided forward chaining, but going up or down the tree often makes no difference. > This is why I keep yabbering about answer-set programming (ASP) and the > Univ. Potsdam ASP solver. Because ASP uses a SAT solver under the covers, > much or most or all of the combinatoric explosion can be avoided. Or > rather, the SAT solvers prune the graph in such a way that the explosion is > avoided. > > Exactly how to make use of this whiz-bang technology in the AtomSpace > remains an open research question. > I don't think I understand the application of modal logic (for lack of >> knowledge I think) >> > > Backwards chaining is a special case of modal logic. > > Very roughly, modal logic is about reasoning over beliefs (If John > believes X, then John should also believe Y" ... or rather "it is possible > that John believes X, in which case, it is necessarily true that John > believes Y") -- it is a form of reasoning over possible universes, where > certain facts end up being necessarily true. > > The backwards-chaining variant of this is "if block X is on top of block > Y, then it is necessarily the case that Y is on top of the table or that Y > is on top of Z" and backwards chaining is just "find all possible universes > where block X is on top". (replace "John believes X" with "X is on top"; > the "possible universes" are those where the block stack correctly.) > > There was some GSOC summer-school effort to map the URE to modal logic, > but it wasn't accomplished. > I've studied the theory of the SAT problem and some pseudocodes but I don't know most of ASP. When I have more time I will try to learn about it because solve the combinatorial explosions seems like a nice achievement. > But following one of the examples of the link: >> https://wiki.opencog.org/w/RelEx2Logic_representation >> >> "The book is on the table." not create the atom >> (EvaluationLink >> (PredicateNode "on@903a1a18-124d-498d-97af-447277a798e5" ) >> (ListLink >> (ConceptNode "book@12357525-7ca9-4d5e-85f8-b565228459aa") >> (ConceptNode "table@be0f51a3-a7a0-400e-80ea-9ca860928af4"))) >> >> Or rather, it creates it. But the ListLink contains only the table ... >> why? >> > > I assume it's just a bug. The R2L code does not have an active maintainer. > Open a bug report. I'll look at it. If it's real easy, I'll try to fix it. > I hope it will be easy, and not some ugly mess. > > Ok thanks a lot, first I have to understand how to do it! I've always managed to report in words but the time has come! Michele -- You received this message because you are subscribed to the Google Groups "opencog" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/55eab5ed-5df2-4253-9b36-6e4164e424ffn%40googlegroups.com.
