Is there a good natural language processing library
I think whether or not you choose to use NLP might depend on the specific requirements for your system. Is it a requirement that free-form english should be accepted, or will only a certain set of instructions be accepted? It might be easier to build a domain specific language that supports what your users need to convey than to do full-on semantic analysis of free-form text.
In the Java space, Groovy has some support for building DSLs.
For other JVM languages see
- Scala: Scala NLP - Breeze and Epic (related spark-project.org )
- Clojure: clojure-opennlp
LingPipe is very nice and well documented. You can also take a look at:
- OpenNLP
- Stanford NLP
- Apache UIMA
- GATE
- CogComp-NLP
- FrameNet
The last one specifically might be of interest to you, although I don't know whether there are any readily available Java implementations (and maybe that's too big of a gun for your problem anyway :-)
Paul's idea of using a DSL is probably easier and faster to implement, and more reliable to use for your customers. I, too, would recommend looking into that first.