タグをタグで分類する(階層タグ)
例えば、「言語」→「英語」のような関係をつけておけば、「英語」というタグをつけるだけでその情報は同時に「言語」という意味も持つようになります。「言語」というタグで情報を検索すれば、「言語」の意味を持つ全ての情報(例えば、「英語」だけでなく、「日本語」とか「中国語」なども)を見ることができます。これが「タグの意味が継承される階層タグ」機能です。そして、たとえタグが大量に登録されても、階層によって整理することができますので収拾がつかなくなるという事態は避けることができます。
フラット(一階層)なタグとフォークソノミー
Web2.0に分類される、多くのインターネットサービスが採用するタグシステムがフラット(一階層)であることには理由があります。複数の人間によって付けられるタグの、意図しない一致による集合知やコミュニケーションの発生を目的にしているためです。いわゆるフォークソノミー(folksonomy)と呼ばれるものです。こういった場ではできるだけコストの低い分類方法が求められます。
Piggydbは、こういったWeb上のサービスとは異なり、情報の共有を個人あるいは少人数に限定することによって、人のメンタルモデルが持つ本来の複雑さをできるだけそのまま表現できるような道具立てを提供する、というのが一つのコンセプトになっています。
タグ付けの際、親子関係にあるタグと入れ替わる仕様について
仕様について気になった点がありますので、報告させていただきたいと思います。
タグA | +―タグB
わたしは概念とタグを対応させて使っており、より広い概念が親に、その概念に属するものが子になるようにタグのツリーを構成しています。
そのため、タグBが設定されているところで、タグAを設定すると(操作を誤る・気付かず、など)、タグBが削除されてしまい、狭い概念の情報が消え去ってしまうのです。
より具体的な例を示します。
タグ「乗り物」 | +―タグ「車」
上のタグ構造で、フラグメント「トヨタのリコール問題」にタグ「車」を割り当てたとします。ここで、タグが設定されていることを失念するなどして、これは乗り物に関する記事だ、ということでタグ「乗り物」を設定すると、このフラグメントから「車」というタグ情報が消えてしまうのです。
このような仕様は、より細かい概念でフラグメントを仕分けたのに、その仕分けされた情報を消去してしまう場合があることになります。
他の意図をもってこのような仕様にされているのかもしれませんが、上記のような使い方をした場合には予期しない動作となるので、仕様の変更について検討いただければと思います。
—
ご指摘の通り、現状ではタグを登録する際にすでに親子関係にあるタグがあれば、そちらと入れ替わる仕様になっています。理由としては親子関係にあるタグが重複している場合、結果的に最も下位にあるタグだけを付けているのと意味が変わらなくなり(下位は上位を兼ねる)、上位のタグが無駄になるからです。あるいは、頂いた例で言いますと、両方のタグがあると、「乗り物」という広い意味なのか、「車」という多少限定した意味なのかが曖昧になります。
「タグが設定されていることを失念するなどして、これは乗り物に関する記事だ、ということでタグ「乗り物」を設定すると、このフラグメントから「車」というタグ情報が消えてしまうのです。」というご指摘はよく理解できます。しかし逆に言いますと、明示的に、より広い範囲の「乗り物」という分類に変更したいと思った場合は、「車」タグを削除する必要が出てきます。と、ここまで書いて改めて考えてみると、実はこういうケースはほとんどないのかもしれませんねぇ。
よく分からない形で何の通知もなく入れ替わってしまっていることが問題なのか、入れ替えること自体が問題なのか。混乱を招いていることは間違いないので、検討して改善したいと思います。ご指摘有難うございます。