Hacker News new | ask | show | jobs
by zeratul 4312 days ago
Maybe it's also good idea to revisit the reason why these systems are not widely in use. They all operate under so called "closed-world" assumptions. It means that the knowledge about the world is very limited.

Once the limitation is lifted the system has to deal with non-monotonic reasoning (http://en.wikipedia.org/wiki/Non-monotonic_logic) and that leads to multiple inheritance problem (http://en.wikipedia.org/wiki/Multiple_inheritance). Unfortunately, the multiple inheritance problem has, so far, only NP-hard solutions (http://ijcai.org/Past%20Proceedings/IJCAI-89-VOL-2/PDF/047.p...). [EDIT: think of a command "eggs are in a fridge"; to find eggs in a fridge you need to know that they are inside a container; you need to know its shape and how to open it; if your software knows that and inherits this knowledge each time when asked for eggs, then it will brake when the eggs are not in the box.]

We are in need of software that deals with large networks of human knowledge. Then we can take SHRDLU to the next level. Otherwise we are stuck with Will Smith movie (http://www.imdb.com/title/tt0343818/).

[EDIT2: there are many theoretical "suggestions" but very little software or practical internet applications]

5 comments

Why are close-world assumptions bad for all cases? There might be cases limited to a domain where the computer does not need to know about the world too much. Consider, the language of geometry problems given in high school math books. Surely, to understand that, one doesn't need to have world knowledge, but only ideas about what intersect means, and so on. This way, SHRDLU can be modified to understand geometry problem statements. The same way, it could also work for other domain-limited applications. A general solution might have to go to probabilistic systems, as current research suggests.
I get that inheritance is involved in semantic reasoning, but it seems to be quite different from the OOP inheritance linked in the wiki article.
Although it's not a discussion of the specific limitations of a closed-world system, Jeff Hawkin's 2004 book "On Intelligence" touches on many of the shortcomings of such systems, especially with respect to general problem solving and understanding. Even if you don't agree with all of his ideas, I would still recommend reading it if you have an interest in computer understanding.
Why is the fact that it is NP-hard a fundamental problem for real-world systems? Sure, it is hard to solve in the mathematical sense, but in the real world it appears as though approximate algorithms for practically all well-known NP-hard problems exist (check wiki pages), and are very effective and efficient.
Why can't that problem be solved by simply creating multiple closed worlds, each with a set of initial conditions, similar to a text adventure (eg. "you are standing in a room. Some eggs are resting on the counter top" etc.)