Friday, October 2, 2009

Realtime news - a bright idea I can do without

One of the ideas on Google's 10^100 project is implementing a Real-time user-reported news service.

I am not too sure I want this service, Google sponsored or not, implemented. I can only imagine the panic and chaos it would end up creating. Rather than serving to avert accidents, ensure quick aid in case of disasters or make people more aware of whats happening locally, I am worried this will just add to confusion and misuse.

I find it hard and stressful to keep pace with information being bombarded to me today - ever changing, almost realtime, localised and moderated. I feel lost and left behind when I don't read Techcrunch or slashdot every other day or don't look up TED every week. And that for me, is more than I can digest (along with my regular emails, articles, research papers, search results, newspapers, TV shows, office gossip, conversations, novels-in-reading). I don't want anymore - definitely not at realtime.

Keeping pace with information and trying to be part of it can be extremely stress full. Read this article from NY Times.

As a race we thrive on information and our socio-economic structure is entirely oriented around information. While too little of it can dry us up, too much of it can blow up in our faces and completely disturb the crucial balance needed in life. After all, ignorance definitely is bliss at times.

Saturday, July 4, 2009

DIY: An intelligent robot powered by the Semantic Web

I see the convergence of the semantic web and robotic technology as the next big break through in human computer interaction.

Mankind's first forays into AI were not quite as successful as we would have liked it to be. But it’s highly probable that robotics would receive its IQ component, not from some super complex AI algorithmic break through, but rather from an unlikely quarter - the Semantic Web.

What we see in the development of the Semantic Web today, might well be the precursor of AI capabilities waiting to converge into the brain (read microchip) of a robot - perhaps a next generation Mindstorms NXT.

One of the key barriers to making intelligent robots is the problem of giving them human like capabilities of knowing what they see, hear or where they go. This unique ability of humans - cognition - has been a problem to bring into the robotic world in spite of complicated and expensive algorithms and years of research and development. But that might change with the onset of the Semantic Web and the range of technologies that it brings.

In this post, I will take a "theoretical" stab at building an intelligent robot using the existing semantic web technologies. We will take some liberties with our imagination and make some technical assumptions, but I promise you, none of it would be too far fetched.

I recently bought a Lego Mindstorms NXT, which ships with an RCX brick, sensors and motors, and which can let you assemble and program a basic humanoid.

Our task is to give this humanoid the ability to understand a verbal command, take basic decisions based on the command, recognise humans and places, and be location and direction aware.

Sounds like a tall order, but as you will see, its quite doable,or at least will be in the coming years.

We will begin with the problem of understanding verbal commands, and communicating with humans in a reasonably intelligent manner. Using any standard speech to text API, like spinvox, we can write an application that captures human voice and converts them into text.

Next we build an application that plugs into Opencalais API, Wordnet and Wikipedia, and uses known NLP techniques to parse this text and obtain - keywords, context and intention.

Our NLP application and the contextual information received from Wikipedia, etc. will be the speech recognition and input system for our humanoid, making it capable to decide what action to perform next.

The next problem to tackle would be the problem of eyesight, or image recognition. To keep things simple, lets just give our humanoid the ability to recognize and associate/remember human faces and places, identify its master's face and remember things it sees with specific associations.

We will use a photo recognition API such as tagcow or riya, photo tagging and storing using flickr API and Picasa, to capture images, recognize them, and store them with a specific tag, online. At any given time, our image recognition application will be able to go online into its Picasa or flickr account and retrieve image information for anything it sees, either from its previously stored images or from other images.

The third problem is of giving our robot the sense of direction, geography and distance. That’s perhaps the easiest of all the abilities that we have given it so far. Simply putting a GPS device and build an application that takes the latlong information and queries Google maps and other Geodata APIs in real-time. The robot then always 'knows' where it is and what is happening around it.

We would also want to give this robot a thinking and knowing brain. The simplest way to achieve this can be by plugging all these individual systems into the central processor of the robot, and then giving this central processor, the ability to query the web for any information, by plugging into Google, Powerset or wolfram alpha, based on a set of rules.

Now let’s take this entire code, burn it onto a microchip and place it inside an RCX brick. Let’s give this brick an ultrasound sensor, cameras, a gps, an onboard wifi, and motor arms and legs. We assemble this guy and lo! Our intelligent humanoid, powered by the Semantic Web is ready to go.

This humanoid might be able to only do such simple things as take a direct command from me and perform those actions, under very constrained scenarios. For example, if I have programmed it right, and I ask it go buy me a book (by specific name) from the store on (specific address), it should be able to parse this command as –

- Command given by master (based on my face when I speak)
- buy -> Part of Speech:verb -> action
- book -> Part of Speech:noun -> search wikipedia and get information and image of book
- store -> Part of Speech:noun -> Go to Google maps and get address/diretions

and then perform these commands sequentially with success. While this might sound a bit too over simplified or glossed over at this moment, the bottom-line is that the semantic web for the first time is bringing together an immense AI opportunity.

In the next decade, the Semantic Web will gradually turn into a living, thinking, growing sentient being. This is not going to happen overnight, and this is not going to happen in a centralized way. Thousands of different progresses in technology, lifestyle, social and economic participation, would contribute and further this advancement - either directly and indirectly.

And since this sentient web's information will be machine consumable, intelligent humanoids feeding off this web ecosystem, would become the order of the day.

Friday, June 19, 2009

What does Google's wonder wheel really mean

Around two weeks back the Google wonder wheel and timeline view first began to appear as options on my Google search page. I don't know if this was coming earlier for other folks, but to me it seemed like a new and very interesting change.

I would venture as far as to argue that this is a paradigm shift in Google's positioning of search - its flagship product. The Google search page has hardly changed in the last decade. While Google has spent billions of dollars (presumably) in fine-tuning its algorithms, crawlers and indexers and focused on getting more and more data under its wings, it has never bothered to provide an alternative or varying search experience to the end user.

The Wonder wheel and Timeline views are perhaps the first signs, that even Google has begun to acknowledge, that there's more to search than just a text box and links. That in the Web 3.0 world and ahead, search would fade into the background and intelligent and interactive user interfaces would take over.

Considering that Google has been very fastidious about any changes to its main search page, this is a big indicator of things to come. Of ubiquitous search, semantic interfaces and intelligent mashups taking over the next generation of Internet experience.

Monday, June 1, 2009

Still searching for a good search

In my daily journeys on the web, everyday I stumble across sites rich with content. News sites, content aggregators, wikis, support forums full of all the wisdom of the world. Obviously, people put in a lot of effort on content creation. But I continue to remain disappointed with the search experience on most sites.

The Google search plugin is the defacto search for most content sites. Its probably got many things on its side - ease of integration, low cost (virtually free), powerful brand, and an incomparable track record for precision (accurate results) and recall (bringing back all possible results) - the two metrics on which search engines are measured.

However, for a site whose content and readership is its bread and butter, what matters more than precision and recall is the overall search experience. Its almost passe to type in a keyword and expect a list of results. Content rich sites need to ensure users stay and read more content, increasing their advertising and subscription revenues.

And for that, its critical that search be a more enriching experience. When I search, I should get not only results based on my keyword, but also other words based on relationships with my keyword. As a reader, that would interest me, compel me to dig deeper and stay longer on the site.

A content aggregator's search doesn't need to be plain text. Why can't it be more interactive, graphical even drag and drop. Why can't I drag content or keywords/tags from two different areas, and see how they are related, when I search for something?

Another critical component missing from search on content rich sites today, is user intent analysis. When I go to a news site and type "latest news on XYZ" - the search engine should interpret the phrase "latest news" as a date related query on the entity XYZ, and not a brute force string match on the phrase latest news and XYZ.

Ultimately its in the interest of the site publisher to expose more areas of content, based on a user's interest and query intent, rather than just plain text matching. That's when his content would be used optimally and his site start showing real benefits.

Sunday, May 24, 2009

Wanted: A Web 3.0 RAD Toolkit

Web 3.0 will arrive when machines (cloud based applications and mashups) talk to each other using known ontologies over HTTP. Applications would be able to "sense" other applications if sitting next to each other in a Mashup.

Obviously this would be the age of the real semantic web. But this would also be the age of Rapid Application Development of web mashups, using an IDE at contains Semantic UI widgets, ontology plugins, search API and cloud db connections.

Think of DreamWeaver and other web development applications today, and then extrapolate them into the future. Tommorrow's websites (if they can be called that) will be created using a Web 3.0 RAD Toolkit, and will have the ability to be heavily end-user customizable. An early precursor of this is Yahoo Pipes.

This RAD Toolkit will be the disruptive technology that will really ensure Web 3.0 comes of age and attains critical mass.

Friday, May 22, 2009

The future of search

...is the next step for search. I cant imagine that for the next decade, search will be constrained to a text box where users type content and get a list of results stacked linearly.

Search will merge with UI technologies and fade into the background. Content on the web will be ubiquitously powered by search technologies. Users will interact with content, and not with a textbox/search.

Sunday, May 17, 2009

Three tools for the semantic future

jquery for the UI, to develop interaction based user interfaces

scala, or a language that can mix functional programming with OO programming effectively

hadoop for the backend to replace our current processing and database techniques and make them infinitely scalable, yet fast