About
Plato is the code name for a research project
I started in 2008. The purpose of the project was to explore
knowledge representation and
language parsing, and I wanted to see where my imagination took me rather than exploring what others had done in this area. The idea was to create a system that would accept a natural language query or command, parse it, and then produce an answer.
A couple of months into this project, my wife Meredith returned from a business trip to Seattle where she had the chance to take a tour of Microsoft's "Home of the Future", and as she described the in-home AI named "Grace", I was inspired to develop a
voice interface for the project, calling it, likewise,
Grace.
As I began to think of use cases for the system, I focused on the kitchen, and I realized that the concept of
kitchen computing was a fascinating topic that was well suited to the project: When you're in the kitchen, you're often busy doing something or have grimy hands, and so walking elsewhere to a computer is interruptive. Instead, it's useful to be able to speak a query or command and have the answer spoken back.
During January 2009, I put some finishing touches on the software and installed it in our kitchen. Because of limited time, I needed to focus my efforts on getting a talking calendar up and running. Appointments can be added by saying something such as "I have a work meeting tomorrow at nine am", and can be queried by asking questions such as "What appointments do I have tomorrow?", "What appointments do I have next week?", "When is my next dentist appointment?", etc.
Since that time I have also added recipe and nutritional tracking capabilities to the software, so that you can say, for example, "I had an apple" or you could enter a recipe and then say "I had a serving of Peachy Chicken". You can then say "display my nutrition graph" to see a
bar graph with one bar per essential vitamin/mineral/nutrient. Each bar is scaled according to that nutrient's recommended dietary allowance to allow you to see what percentage of that nutrient you have gotten for the current day. At the end of the day, you have a snapshot of your diet and can evaluate whether you missed any major vitamins/minerals/nutrients, or whether you got too much saturated fat, sodium, etc. During the day, you can even say "recommend a food" to have the computer tell you which food maximizes your nutrition graph while minimizing unwanted factors such as saturated fat, sodium, cost, etc. By eating these optimum foods, you can arrive at a nutrition graph at the end of the day that promotes good health.
During March 2009, I added three new methods of interacting with Grace in the spirit of mobile computing:
1. | A web interface so that questions or commands can be submitted while at work, or while on the road with a smartphone. |
2. | An email interface so that questions or commands can be queued up if the computer running Grace isn't turned on. The web interface falls back to using the email interface if the service isn't up. |
3. | A command line interface that can be used from work. This interface is simply a wrapper around the web interface. |
These three additional interfaces allow Grace to be interacted with anywhere, whether it be in the kitchen, somewhere else in the house with a laptop, at work, or on the road via a smartphone.
During April 2009, I wrote a
BlackBerry app to allow queries or commands to be spoken while on the go. A second BlackBerry application is an alarm clock. The alarm clock defaults to 75 minutes prior to your first appointment, or if you don't have an appointment, 75 minutes prior to when you need to get to work. When the alarm goes off, it speaks the date, the current weather conditions and forecast, any appointments you have that day, and any birthdays of friends and family.
See also: