Project title: Application & Integration of Prolog
Area of research
AI and either robotics or symbolic manipulation (see below), as well as cross-paradigm language interaction.
Short project description
I need to do a bit more research to figure out if this is fully feasible, but I hope to integrate the Prolog language with a robotics visualization suite. The end goal of this is to allow for usage of logic-based programming in simple robotic decision making.
Why is all this of any value? Because Prolog’s resolution engine offers very finely-tuned depth-first-search and backtracking systems, and Prolog itself benefits from a rich history of AI application.
If it works, I should be able to create a simple robotic simulation which is using a Prolog component to perform some simple decision-making tasks.
There is a possibility that the above may pose technical limitations beyond the scope of this project. Should my efforts in the short term to access the Prolog interpreter from robotic control code fail, I will instead switch gears and focus on implementing an automated equation solver in Prolog– something which has actually been done before. As I am very interested in tapping into Prolog from other languages, I will write a Python wrapper to access and display the functionality of the equation solver.
Prior knowledge
I previously studied Prolog in the Computability program here at Evergreen. The main projects I have written so far include a lexer and parser for a subset of C, an implementation of the Bellman-Ford shortest path algorithm, and some constraint-based logic puzzle solvers.
Resources needed to accomplish the project (textbooks, manuals)
In order to successfully integrate Prolog with robotics simulation software, I will need the software itself. Microsoft Robotics Developer Studio is free, but API calls to the simulator seem to require C#. I have found a simulation package called Webots which has a free 30-day trial and supports C, which I am much more confident that I can interface Prolog with.
On the Prolog end, I will be using the SwiPL implementation which offers some good built-in API functionality for calling it from outside sources.
Other students you know of (if any) interested in related topics
Unknown. I know that Richard has a strong interest in robotics.
Short Bibliography
I intend to use the two following textbooks to reinforce my Prolog knowledge:
“The Art of Prolog”, Sterling and Shapiro.
“Prolog Programming for Artificial Intelligence”, Ivan Bratko.