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


AI and search engines
July 26, 2008

One of the most sensible uses of an AI that can read information, update a data structure to reflect that information, and then answer questions about that information, is a search engine. In fact, that's exactly what a search engine is, the difference being that today the internal representation that search engines use doesn't contain much meaning.

What this brings to mind is that the Internet is an important aspect of AI: It serves as the raw knowledge base for an AI to read to learn about the world. Now, this has some serious limitations given that anyone can write whatever they want on the 'Net, but overall I think the Internet will serve as one of the primary means for AI's learning about the world.

Let's fast forward into the future and ask Google some questions that will test its understanding of the world:

Search: What is Bill Clinton's birthday?
Answer: August 19, 1946

Search: What year did World War II end?
Answer: 1945

Search: What month comes after November?
Answer: December

Search: How many feet are there in a yard?
Answer: 3

Search: What day of the week was it when man first landed on the moon?
Answer: ...


Story 6: I was born in Canada
July 17, 2008

Story: I was born in Canada.
Question: What country was I born in?
Answer: Canada

Required knowledge about the world

person has_a birth
birth is_a event
event has_a location
0.9: location has_a country
"Canada" -> Canada: noun
Canada is_a country
country is_a location
"born" -> birth: noun

Parsing the statement

{noun} was {fragment} -> $1.(($2))
I was born in Canada -> speaker.((born in Canada))

{verb} in {location} -> $1.location = $2
speaker.((born in Canada)) -> speaker.birth.location = Canada

Parsing the question

what {fragment}? -> $1
What country was I born in? -> country was I born in

{noun} was {noun} {verb} {participle} -> $2.(($3 $4 $1))
country was I born in -> speaker.((born in country))

{verb} in {location} -> $1.$2
speaker.((born in country)) -> speaker.birth.country

Comments

Of interest is the following transformations:

{verb} in {location} -> $1.location = $2
{verb} in {location} -> $1.$2

The first is used to parse a statement, the second to answer a question. What makes the second transformation more interesting is that it takes an intermediate form as its input. In this example, the fragment "born in country" wasn't a part of the original question and isn't quite valid English.

Also of interest is that we set speaker.birth.country rather than speaker.birth.location.country. Under the covers, the engine needs to search the has_a graph to determine which child of birth has a country node. The successful search path is:

birth is_a event
event has_a location
location has_a country


current_date
July 17, 2008

The introduction of the current_date entity is especially interesting. In people, this entity might be much like any other, but in designing an AI, it's tempting to wire it into the computer's clock.

It's strange to think what it would be like to know the time intuitively.

older >>