I have an on going project and wonder if ChatScript could work for me. First some background then a question.
Background:
A mobile robot carries a suite of sensors including a camera. The robot moves autonomously within the environment and snaps photos. It attempts to recognize common objects in the photos and then places details of the object in a database. There is a natural language interface that can be used to query the database about objects and command the robot to do simple tasks such as driving to the place where an object was detected.
I had originally thought to base the natural language interface on the Python NLTK library and to use Prolog as the database. I like Prolog for its ability to “reason” by backward chaining. For example I would be able to ask in effect “List all electronic devices in the living room.” and it use rules such as “TV is electronics, iPad is electronics,.” and another rules defining the boundaries of the living room.
Question:
I just discovered ChatScript and very quickly scanned through the PDF documents. It seems that ChatScript can maintain a database of facts and (maybe) perform Prolog-like reasoning with them. Can it do this? Is it as efficient as modern Prolog implementations? Is there a “back door” where an object classifier could stuff facts into the database?
I like the idea of doing all the work myself because of control and flexibility but I like the idea of using Chatscript because it has already integrated many functions that I need. It would save a LOT of time.
I had planed on using AIML as the natural language interface. And I would use a VERY structured command language like “Robot, query cellphone” a rule match would translate to a Prolog statement. But them I discover Chatscript which can do about the same thing (I think)
But is it powerful enough. For example. Let’s say my platform photographed the same object 3 times and the classifier each time sends back the “top five” guesses about what the object is. When I query the database I want the object classification that appears in all three top five lists and as near the top of each last as possible. I want to program the mobile platform to re-photograph objects that have “poor” classification. The robot might have a background task that tries to improve the quality of the database. So I likely want some background process to have access to the store of facts. I foubd a JSON interface.
SO the basic question is “is chat script going to work for me”