views:

213

answers:

3

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.

+3  A: 

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

luvieere
Many thanks. I was aware of Cyc but not so aware of OpenCyc. Do you know whether people have interfaced it with NLP?
peter.murray.rust
Maybe this presentation about adding a Cyc interface to the JavaNLP: http://nlp.stanford.edu/~ditka/cyc/cycPresentation.ppt
luvieere
@luvieere Looks useful - not sure how much has been implemented
peter.murray.rust
+1  A: 

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.

Kaarel
This is very close to what I was looking for and you seem to have covered the worst of the tricky problems (negation, anaphora, etc.). Has it started to be deployed?
peter.murray.rust
Yes, ACE is quite expressive when it comes to things like quantification, anaphora, negation, questions, etc. It also supports imperative sentences (like present in your example). I know that it has been used in many research projects, but I don't know how and how much it's been used elsewhere.
Kaarel
A: 

I have also just encountered Regulus (http://en.wikipedia.org/wiki/Regulus%5FGrammar%5FCompiler) which has been extensively used by NASA.

peter.murray.rust