Tomblooでのタグ補完に関するtips

昨日からはてなブックマークはTombloo経由でブクマするようにしました。

はてなブックマークのポストにはブックマークレットよりTomblooの方が便利

動画やエントリを見ながらウィンドウを出しておけるし、
ローマ字で入力して日本語のタグも絞り込めて凄く便利なのですが、
一点だけ困ったことがありました。
記号で始まるタグをピックアップしてくれないことがあるのです。


僕は、一部の頻出または汎用的に使うタグに関しては先頭に記号を付けて管理しています。
執筆時点では以下のものです。

  • 「*」(アスタリスク)で始まるもの
    • *あとで
    • *まとめ
    • *ネタ
    • *ランキング
    • *史
    • *政
    • *旅
    • *法
    • *被
    • *論
    • *資
    • *軍
  • 「+」(プラス)で始まるもの
    • +書
    • +見
    • +読
    • +買
  • 「-」(マイナス)で始まるもの
    • -冬
    • -夏
    • -春
    • -秋

「*」(アスタリスク)で始まるものは、よく使うもの。
「+」で始まるものは主に「*あとで」タグと一緒に使って、
あとで何をするつもりだったのかわかるようにしています。
「-」で始まるものは季節のもの。

で、Tomblooのタグ補完機能で入力してみると、
「-」で始まる場合には補完してくれるのですが、「*」と「+」はしてくれません。


はて、どうしたものか…と思っていたのですが、
色々と入力を試しているうちに解決策を発見しました。


「\*」で検索してやれば見つかる(追記:2009/03/03)

ただの正規表現じゃないの?という指摘をいただいたので、もう一回きちんと調べてみました。
その結果、これで簡単に見つかることが判明。


特殊な動作(*1)につられて見誤っていたようです。
というわけでバックスラッシュを付けて検索する、と言うのが一番簡単な解決策のようです。

…それでいいのかっていう気もするけどw



以下「*」で始まるタグをいかに検索するかとは離れてしまいますが、
一応tipsとして改訂して掲載します。



Tomblooにおけるタグ検索tips


上記以外にもTomblooでは正規表現的な検索を使用できます。

入力検索で正規表現を組み立てることは普通直感的ではないと思いますが、
それでもケーススタディ的にtipsとしていくつか覚えていると便利です。


「.」(ピリオド)は任意の1文字として認識される

つまり「*ランキング」というタグを入力したい場合、
「*」「r」どちらで始めても補完してくれませんが、「.r」と入力してやると補完してくれます。


「.」は任意の1文字として認識されます。
もし「.」を複数入力すれば、その入力数以降について絞り込みが検討されます。


検索結果が変わってきているのがわかると思います。



もし、ピリオドの後に2文字以上入力するとどうなるかというと、
今度は加えて次のルールが適用されます。

複数文字列で一致しない場合、その順で含まれるタグが表示される



例えば「tg」という文字列で絞り込みを行うとこんな結果になります。


タグ「technology」「tagging」は文字列「tg」を含んでいるわけではありませんが、
文字列「tg」をそのまま含むタグは存在しないため、
先頭が文字「t」でその後文字「g」を含むタグがピックアップされています。


これを「.」で始めると2文字目以降についてこれが解釈されます。
先ほどの「tg」を「.tg」に変えるとこんな感じになります。


つまり任意の文字列で始まって、2文字目以降に「t」→「g」の順で文字を含むタグです。
「tg」を含んでいるわけではないのがわかると思います。
(多分、政は“まつりごと”と解釈されているのだと思います)



文章で書くとなかなかわかりにくいですが、
実際に試してみると結構直感的で重宝します。

あと次善策を用意するインターフェイスって意外に便利ですね。
最初は戸惑うかもしれませんが。



特殊な動作(2009/03/03 追記)

特殊な動作とは、以下の2点です。

  1. 入力文字列の先頭に「^」が暗黙の了解的に付加されている
  2. 次に文字を入力して「^ab」に当てはまるものがないと自動的に「^a.+b」をピックアップしてくる

1に関しては確かに絞り込むのであればそれじゃないと直感的じゃないですね。
やっぱりどうしてもソートして考えがちですから。
その影響でほとんど正規表現なのに、こんなことになったりもしています。

「a$」では「a」で終わるものを絞り込めない。正解は「.+a$」。


ただそれだけだと提案する数がそれほど多くなりません。
というわけで、2が生きてきます。
つまり、こういうことですね。



技術者からするとこの動作はちょっと気持ち悪い気がするんですが、
でも使ってみると案外悪くない。結構面白いアルゴリズムだなぁと。

これってなんか名前付いてるんでしょうか?