コンピュータを操作する時にはコマンドを打ちますよね。しかしよく考えるとコマンドを覚えて、それをコンピュータに対して入力するというのはまるで使われているかのようです。そうではなくコンピュータが私たちを理解すべきではないでしょうか。 その一環とも言えるのがSiriに代表される音声認識技術です。しかしあそこまで高度ではなくとも使えそうなのがBetty、会話のようなコマンドを入力できるライブラリです。

Bettyの使い方

Bettyを使ったコマンドの一例です。

$ betty how many words are in this directory
Betty: Running find . -type f -exec wc -w {} \; | awk '{total += $1} END {print total}'
9371

Betty、ディレクトリ内にあるワードの数は幾つだい?なんて質問を投げかけると計算した上で答えを出してくれます(そもそもそんな質問を日常会話の中で行うかは別として)。

さらにこんなコマンドも。

$ betty whats my username
Betty: Running whoami
nakatsugawa

Betty、私のユーザ名はなんだい?…まぁこれも日常会話ではないでしょうが、コンピュータ内であれば考えられないこともないですね。

こんな感じで複数の答えを持っている場合もあります。

$ betty whats my name
Betty: Okay, I have multiple ways to respond.
Betty: Enter the number of the command you want me to run, or N (no) if you don't want me to run any.
[1] whoami
    Gets your system username.
[2] finger `whoami` | awk -F: '{ print $3 }' | head -n1 | sed 's/^ //'
    Gets your full name.
2
Betty: Running finger `whoami` | awk -F: '{ print $3 }' | head -n1 | sed 's/^ //'
中津川 篤司

回答が数字なのが惜しいですね。ここが会話風になっていると、より人間的面白さがあったと思います。Bettyを使ってiTunesを操作したり、マップを開いたりすることもできるようです。テキストベースのSiriといった感じですね。

BettyはRuby製、Apache License 2.0のオープンソース・ソフトウェアです。

pickhardt/betty