
SHRDLU - ColinWright
http://en.wikipedia.org/wiki/SHRDLU
======
zeratul
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](http://en.wikipedia.org/wiki/Non-monotonic_logic)) and that
leads to multiple inheritance problem
([http://en.wikipedia.org/wiki/Multiple_inheritance](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...](http://ijcai.org/Past%20Proceedings/IJCAI-89-VOL-2/PDF/047.pdf)).
[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/](http://www.imdb.com/title/tt0343818/)).

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

~~~
sherjilozair
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.

------
worldsayshi
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/](http://www.grammaticalframework.org/))

------
ronyeh
Related:
[http://commonsensereasoning.org/winograd.html](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](http://hci.stanford.edu/winograd/shrdlu/AITR-235.pdf)

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

------
weeber
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!

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

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

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

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

~~~
lispm
There are already SHRDLU versions in Common Lisp.

------
chippy
More information including images of graphical 3-D version:
[http://hci.stanford.edu/winograd/shrdlu/](http://hci.stanford.edu/winograd/shrdlu/)

and an online version of part of the system
[http://www.grammaticalframework.org/~peter/shrdlite/shrdlite...](http://www.grammaticalframework.org/~peter/shrdlite/shrdlite.html)

~~~
dang
Thanks—we changed the url to that first one from
[http://en.wikipedia.org/wiki/SHRDLU](http://en.wikipedia.org/wiki/SHRDLU).

~~~
ColinWright
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.

~~~
dang
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.

