topics:  main-page   everything   99things   things-to-do   software   space   future   exercise & health   faith  
  thought   web   movies+TV   music   mymusic   food   curiosity   tidbits   I remember   wishlist   misc   links


Implementation thoughts
July 26, 2008

I'd like to use C#
I'd like to have a web interface so that other can play with it
The basic web UI would simply allow statements and questions to be posed
A more advanced UI would allow the user to edit the AI's internal data structures
The input to the program will consist of the following:
A file that will represent the AI's knowledge of the world, consisting of entities, relationships, values, rules, etc.
A file that will represent the AI's mapping of words to entities
A file that will contain the linguistic transformations
A set of stories. Each story will consist of one or more statements, followed by one or more questions, each question having an expected answer.
For now, the data files will be parsed and read into memory at the start of the program's execution. Perhaps in the future they would be stored in a database.
I'll use NUnit to execute each of the stories to make sure that as new stories are added, old ones aren't broken.
I may implement a UI to make it easier to represent what the engine is doing. A big part of a successful implementation would be developing debugging tools... however, I don't know how much of that I want to get into at this point. I will likely create them as needed.

As for what to name the C# project, I'll go with Plato for now.

To make the implementation manageable, I'll break it down into "Exercises" that will iteratively get me closer to my goal.


Design VS Implementation
July 26, 2008

Something that's tempting for programmers is to, well, program. And so when we're in a research and design mode, there becomes a tension between not wanting to slow down the research by writing code, but also not wanting to let theoretical ideas get too far down the road before they're implemented and tested.

If anything, I think that the temptation is to implement algorithms before necessary and so slow down research. Something that I've really enjoyed designing a new programming language is to let my imagination have free reign and not concern myself with the implementation, and I think that that can be a very good strategy for encouraging creativity and innovation.

That being said, I'm interested in implementing the AI research that I've completed thus far. This won't necessarily serve as a solid platform to keep building on, but it should provide a lot of insight into things that I've perhaps overlooked.


Powerset.com
July 26, 2008

A website that came to my attention a couple of months ago is www.powerset.com. This search engine has tried to make advances like I've just described. For example, when I search for "What year did World War II end?", it comes back with:

World War II: End date
September 2, 1945 (62 years ago)


Not bad. That's definitely an advance. What makes this especially impressive is that the search engine didn't suggest an article, but gave me the answer to my question directly as a value.

While this search engine is impressive, their implementation isn't very exhaustive. Other simple questions such as "How many feet are there in a yard?" don't return a specific value. As search engines continue to advance in the coming years, more and more of these questions will result in specific answers, and to push the boundaries, these search engines will need better language parsing and better internal representations of the world.

Here's a list of queries that Powerset was able to answer:

Ok: Bill Clinton's birthday
Fails: What is Bill Clinton's birthday?
Ok: What year was Bill Clinton born?
Ok: Bill Clinton's daughter
Ok: Who is Bill Clinton's daughter?
Fails: What is the name of Bill Clinton's daughter?
Ok: Who is Bill Clinton's wife?
Fails: Who was the first president of the United States?
Fails: First president of the United States
Fails: What year did man first go to the moon?
Ok: What is the capital city of Florida?
Ok: What is the capital city of Belgium?
Partial: Who invented the telephone?
Ok: What is the population of Mexico?
Fails: How many states are there in the United States?


older >>