Tommy’s Blog

Discovering and learning

A little structure goes a long way

22nd February 2006

Natural language processing is one of the holy grails of computer science. Why should people have to learn special, strange languages for interacting with the computer? Very few people can construct a workable query using SQL, for example. Why can’t we just ask the computer questions the same way we would ask another person using natural language?

We’ve found out in the decades since Arthur C. Clarke wrote about HAL that it’s very hard to write software that can understand natural language. And humans, bless our hearts, are remarkably skilled at adapting. So even as difficult as structured languages may be, it’s still easier for people to learn to speak “computer.”

Omar Shahine shows how to create a little “Magic Word” for SlickRun to search for flights using Mobissimo. He got the idea from Aditya Bansod who points out that natural language — something better than formal, structured languages — doesn’t have to be strictly natural.

So the Web — specifically, search engines — are showing us another possibility. They’ve trained us to put phrases in quotation marks and use + to note words that are important and - to indicate those we don’t want to see. They’ve even taught us that we don’t need to write complete sentences: just enter some terms that make sense. Map sites like Windows Live Local and Google Maps, the structured input format for addresses (one field for street address, one for city, one for state, one for zip — you know the stuff you fill out every time you buy something online) has been banished in favor of a single field. Enter an address like 100 Main St, Some City, Washington and the system can parse it. It’s amazing how much nicer the experience is.

Maybe we don’t need true natural language processing. Maybe we don’t even want it. What I’ve seen so far of semi-natural language queries seems very good indeed.

P.S. I’ve got thoughts about how this relates to tagging vs. formal hierarchies, and how tagging – especially collaborative tagging – complements these semi-structured language approaches.

Tags: , , , , ,
del.icio.us tags: , , , , ,

One Response to “A little structure goes a long way”

  1. Tommy’s Blog » Changes in attitude with no changes in latitude Says:

    [...] Every piece of software that you use, from your Web browser to your favorite game to your operating system, starts out as source code: a set of instructions that tells the computer what to do. We’re all familiar with the idea that computers only understand binary code – a bunch of 1s and 0s. But it’s terribly hard for humans to write a meaningful program in binary. So we have programming languages: C++, Java, C#, PHP, Smalltalk, Python, Ruby, Scheme, and many more. These let programmers write things like printf(”hello world”); rather than a long string of ones and zeroes. In order for the computer to understand printf(”hello world”); the source code needs to be translated for the computer. That translation from source code to something that the computer can understand is called compiling. [...]

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>