- rants.org - http://www.rants.org -

Help spread the “search://” meme!

How often do you find yourself writing an email in which you tell someone to do an Internet search? If you do it often enough, you’re probably familiar with the following cycle, the one that starts with you saying:

Just Google for “there will also be corn served”.

Then you realize it’s unclear whether or not you meant a phrase search — that is, whether the double quotes are part of the search string, or just there to separate the search words from the rest of your email. So you add:

Make sure to include the double quotes!

Then you remember that your friend works at Yahoo and always gets annoyed when people equate searching on the Internet with Google, as though there were no other search engines in the world. With a sigh, you go back and edit the text to be service-neutral, turning it into one sentence while you’re at it:

Type “there will also be corn served” into your favorite search engine, and make sure to include the double quotes.

Gosh, what a lot of work just to tell someone to search for a six-word phrase. And the recipient still has to manually cut and paste the phrase into a search engine, aiming the mouse carefully so as to catch the double quotes. There’s got to be an easier way!

Introducing search://

Most people, if they saw the following in an email, would know what to do:

search://"there will also be corn served"/

It means “Go to your preferred Internet search engine and enter the string of text between the second and third forward slash, exactly as written here.” It works for non-phrase searches too:

search://thumbnail image dimensions standard/

And for combinations of word- and phrase-searches

search://tommy's tequila "san francisco"/

Note that it’s not actually a URI [1], so it need not obey the URI syntax rules (which involve, among other things, special sequences to represent spaces and double quotes). You can just write the search string exactly as it would be entered in the search engine’s text box. The search:// syntax takes advantage of two convenient facts:

This syntax is both human-readable and machine-parseable. The former property is crucial, because you want people to know what you’re telling them to search for before they do the search. The latter property is also crucial, because it means software can automatically recognize a search description and Do The Right Thing when you click on it (namely, take you to whatever search engine you’ve configured as your preference, enter the search string into the input box, and submit the form). “Software” means web browsers, of course, but also mailreaders and all other text-reading environments.

I’ve already starting using this syntax in email messages, and in one case even on a poster. So far everyone seems to understand it right away; that is, no one has asked me what it means, and several people seem to have done the suggested searches. Once this syntax is widespread, I expect software support to emerge organically, as happened with email addresses, with http:// syntax, and many others. When something useful is machine-parseable, software is usually quickly adjusted to recognize it.

Confidential to J. Random Hacker:

You’re probably thinking “But this isn’t even compatible with URI generic syntax as defined in RFC 3986 [2].” That is correct. It’s not a URI. In addition to the tolerance of double quotes (which can never appear unencoded in a URI), the spaces need to remain unencoded anyway, because the string has to be comprehensible to humans. It may seem counterintuitive to use a syntax so similar to URI syntax, but there are good reasons for doing so. Nothing else would have the immediate comprehensibility of search://, because many people are now accustomed to the general format foo://bar/, and will intuitively grok what this new syntax means. I spent a fair amount of time trying come up with something better, and couldn’t. If you can, let me know… But it’s probably already too late: I’ve set the meme loose, and no one can control it now. Mu-wa-ha-ha-ha-haaaaah.