In Search of the Philosopher's Keyboard

This post is part of a collection on Code and Computers.

What if your keyboard had access to your memories? What if it could complete your thoughts, not based on what you'd previously typed or learning generic responses or dumb rules, but based on a personal database of places, books, web pages, and notes of all kinds?

A keyboard should help you go places.

To give an idea of what this would look like, when you type in Japanese, what you type on the keyboard isn't exactly what shows up on the screen. Instead you can type a romanized version of the text you want a few words at a time. After each span you lock it in, and if you need conversion you choose one of a few alternatives from a drop-down list. In some input systems, short definitions may be shown next to the current selection.

An example of me using Google's Japanese IME.

Autocomplete in Japanese is based on a dictionary supplied with your operating system, plus a user dictionary. If you frequently have to type something not in the dictionary you can register it in a personal dictionary to have it come out just like any other word. You can also get creative and register things that aren't normal words, like converting "home" to "123 Mt. Pleasant Drive".

This mediated input opened up potential for cleverness in software keyboards, acronymically known as Input Method Engines (IMEs). Introducing emoji was just a matter of adding them to a font and the dictionary - you didn't have to tell people how to use them, as they'd just be another completion option when you typed "beer" 🍻 or "love" 😍 or what have you.

Now we all have smartphones, and we all have mediated input, and emoji are everywhere. Hooray. 🎊

But what if mediated input were smarter? What if it were more personal?

What if you could type "Here's that gyoza place I went to last week" and autocomplete a map link?

A mockup of a philosopher's keyboard search interface.

"Here's that book I mentioned at lunch." "This is that game with indirect controls." "This is the page for that meetup you should go to." "This is where you can get tickets for that museum show."

Of course you can already share this information thanks to the universal power of links, but what if it didn't need a context switch? What if taking notes on things made it easier for you to share them with people? (This is, of course, part of the dream of the Memex.)

Six years ago when I started work on Deltos for personal note taking, one of my goals was to use the notes in Deltos as fodder for a philosopher's keyboard, but that ended up falling by the wayside. It turns out working with IMEs is difficult - every operating system has a completely different way of handling them, and they often aren't well documented.

In particular, IMEs often work on the principle that for any given input, the potential outputs are clearly defined. In a dictionary file these are just short bits of text. But if you can search through all your notes, then inputs and outputs aren't well defined, and just updating the dictionary isn't enough - you need search functionality.

One idea is to avoid using the IME interface directly. A small application, just a search box where a selection is copied to the clipboard, would be enough to realize the main goal of the philosopher's keyboard, while still minimizing context switching. It would also make it easier to create a cross-platform app. Maybe that's good enough.

The other problem is that most people don't have an explicit personal database, just a bunch of personal data locked up in silos. Fixing that is another and honestly bigger step, but it can be handled one person at a time.

I don't think this keyboard exists yet. But I hope it will soon. Ψ