Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Natural language command language

I'm interested in developing a natural language command language for a domain with existing rules. I was very impressed when Terry Winograd's SHRDLU showed the way (the conversation below is 40 years old! Astonishing). Can we do better now and if so where can I get examples?

Person: Pick up a big red block.
Computer: OK.
Person: Grasp the pyramid.
Computer: I don't understand which pyramid you mean.
Person (changing their mind): Find a block which is taller than the one you are holding and put it into the box.
Computer: By "it", I assume you mean the block which is taller than the one I am holding.
Computer: OK.
Person: What does the box contain?
Computer: The blue pyramid and the blue block.
Person: What is the pyramid supported by?
Computer: The box.
Person: How many blocks are not in the box?
Computer: Four of them.
Person: Is at least one of them narrower than the one which I told you to pick up?
Computer: Yes, the red cube.

I have an ontology for the domain so can reason over common problems.

like image 232
peter.murray.rust Avatar asked Oct 22 '09 07:10

peter.murray.rust


2 Answers

Take a look at the controlled English (ACE) that has been developed in the Attempto project. It seems to have the required expressivity and flexibility. The ACE parser parses ACE sentences into a first order logic formula (a variant called DRS) which can then be used for further processing, e.g. automatic reasoning. The parser is available under LGPL, see the demo here.

like image 20
Kaarel Avatar answered Sep 22 '22 16:09

Kaarel


Take a look at OpenCyc, a general knowledge base and commonsense reasoning engine.

like image 166
luvieere Avatar answered Sep 21 '22 16:09

luvieere