Hacker News new | past | comments | ask | show | jobs | submit login
SHRDLU (wikipedia.org)
160 points by ColinWright on Aug 24, 2014 | hide | past | web | favorite | 19 comments



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]


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.)


1. So yes its intelligence is highly specific but it certainly seems like a program like this could be evolved to become very useful for some application. Why hasn't that happened?

2. One big problem when interacting with systems like this I suppose would be that you have to know what is supported by its grammar in order to use it. The best solution I can see to that problem would be to add some sort of smart as-you-type suggestion feature. Making it smart enough would require some research of its own though but probably well worth it.

edit: Somewhat related is a tool for working with grammar for computer applications (parsing and translating between abstract and concrete and between different concrete representations): Grammatical Framework (http://www.grammaticalframework.org/)


Related: http://commonsensereasoning.org/winograd.html

Page 290 of the dissertation [1] discusses ambiguity in words and phrases. The Winograd Schema challenge as defined by Hector Levesque poses questions like "The ball could not fit through the hole because 'it' was too big. What was too big?"

These questions are obvious to humans, but difficult for computer programs to answer, because "it" may refer to multiple objects. If SHRDLU gets confused, it may ask for clarifications from the human, or make its best guess and assume that "it" refers to the green cube rather than the blue pyramid.

[1] - http://hci.stanford.edu/winograd/shrdlu/AITR-235.pdf


Just that abbreviation brings back good memories to a CS practicum in which we needed to write a language parser and virtual world manager in Prolog. Especially building the memory functionality -- "place the blue ball on top of the red cube", "move the ball to the right" -- was fun, taking into account the vague reference to earlier objects and possible/allowed movements. Man, I need to find that code just to enjoy the memories...


It is very interesting to (re)discover software like that! IMO lot of things have been invented in the 70s and we always reinvent the wheel!


The source code is very well commented, a high quality piece of engineering.


It's seems to be in a Lisp dialect that predates common lisp unfortunately.


Fortunately it is the Lisp dialect much of Common Lisp was based on: Maclisp.


And is there a way it from my machine without installing MacLisp? is there some way to translate MacLisp into Common Lisp?


There are already SHRDLU versions in Common Lisp.


More information including images of graphical 3-D version: http://hci.stanford.edu/winograd/shrdlu/

and an online version of part of the system http://www.grammaticalframework.org/~peter/shrdlite/shrdlite...


Thanks—we changed the url to that first one from http://en.wikipedia.org/wiki/SHRDLU.


And yet the original pointed to an article that has a better overview, some details not in the one you changed it to, and more, actually contains the link that you've now set it to.

In short, you've replaced a link to an excellent overview that has a link to more material, with a less useful link. I know we have our disagreements, but this just seems out and out wrong. As I've said before, I find this immensely frustrating.


Ok, we've changed it back.

Please follow the HN guidelines and email us when you have a complaint about moderation. Procedural nitpicking in the threads makes them worse.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: