片づけを進める水曜日

9:00

おはようございます。本日は荷物運びなどを進めましょう。

Textbox:

タグの階層構造をちょっと考えてみます。

「日記」と「アニメ日記」というタグがあり、「日記」で絞り込んだら、「アニメ日記」も含まれる、という形。この場合、純粋な「日記」だけを抽出できませんが、とりあえずこれでどうなるかを考えます。

* * *

が、その前に、これはEvernoteであれば、ノートブックスタックで実現されるべきものでしょう。

「日記総合」というノートブックスタックがあり、その中に「純粋日記」「アニメ日記」「読書日記」などが入ってくる形。

「日記」というノートブックに、「純粋日記」「アニメ日記」「読書日記」というタグを付けても同じことができる。つまり、一階層の高さしかないならば、この二つに区別はない。

一応Evernoteでは、ノートブックスタックに含まれる全ノートと表示することと、単一のノートブックを表示することはできるものの、二つ以上の任意のノートブックを併せて表示させることはできないので、そこが違いと言える?それとも検索を駆使すれば、それも可能か?

* * *

話を戻す。「日記」の上位概念としては、「日々の記録」がある。

だから実際は、「日々の記録」で抽出したら、さまざまな日記が含まれる、という形がカテゴリ的には「正しい」動作になるだろう。もちろん、そういう機能を作ることもできる。

新しくタグを定義したときに、それがどの上位概念に属するのかを決めるということだ。

わかりやすいのは各種リストだろう。「タスクリスト」を定義して、「各種リスト」の下位に置く。これは、スーパークラスからサブクラスを継承したのと似たようなものと言えるだろう。

問題は、上記の手続きがひどく面倒なことだ。それように機能を作り込む必要がある。

そこで、名前を使う。

「日記」と「読書日記」はそれぞれ同じ階層としてタグ付けしながらも、「日記という文字列を含むものを抽出」というやり方をすると、疑似的に親子関係のようなものを作れる。つまり、「日記」で抽出したら、「読書日記」「アニメ日記」「映画日記」なるものがすべて抽出できる。

ただし先ほども検討したように、「日記」だけを抽出ができない。それをするためには、「日記」を「純粋日記」と名づける必要があり、そうなると、「日記」というタグを持つカードが消えてしまう。

Textboxでは、カードが持っているタグを抽出してボタンにしているので、わざわざ「日記」という上位概念のボタンをスクリプトで追加する必要がある。これはあまり好ましい動作ではない(面倒だ)。

スーパークラスの定義のように、実際は使わないけれども、定義のためだけに書くカードというのを作るのはどうか。

日記の雛形というタイトルのカードを作り、日記というタグをつけておく。こうすれば、純粋日記を作りつつ、日記というタグを作ることもできる。

ややハック気味だが、全体の構造をいじらなくてもよいメリットは大きい。

一つ問題があるとすれば、「日記」と「純粋日記」があったときに、どちらのボタンがクリックされやすいか、ということ。

* * *

現状のタグを分割してつける方式の場合、タグ付けが面倒という問題が少しある。

その代わり、「映画」のようなタグを日記以外の用途でも使えるようになる。

たとえば「映画+日記」と「気になっている+映画」など。で、「気になっている」は「本」と併せて使うこともできる。

しかしその場合、「気になっている本」だけを抽出するのは難しくなる。つまり、タグによる絞り込みの方も、複数のタグを選択できる必要があるわけだ。

もちろん、その機能も実装可能だが、かなりややこしくなる。

そもそもそういう細分化にどんな意味があるだろうか。

* * *

もとの構成に戻しましょう。「日記」「アニメ」を「アニメ日記」にします。

で、「日記」という文字列が含まれているものをすべて抽出というスタイルに。配列をそのまま判定に使うのではなく、文字列に統合してから判定します。

toString().includes()

* * *

現状、リスト周りはすべて「各種リスト」としてそこに保存しています。実際は、そこにはさまざまなリストが含まれていて、「チェックリスト」とか「やることリスト」などのサブクラスが想定できるでしょう。

が、現状はそういう区別をせずに一緒くたに表示しています。これも数が増えてきたら分けたくなる可能性が。

各種リスト→〜〜リスト

というスーパーとサブの関係があるならば、

各種日記→〜〜日記

という関係も作れるでしょう。

つまり、リストを今の日記の管理の方法に寄せることもできれば、日記をリスト風にはじめから一緒くたにする方法もありえます。

* * *

一番最初に表示されるボタンが、

「各種リスト」「各種日記」「各種ログ」「各種ノート」

だったとして、それをクリックしたら、さらに細分化のためのボタンが表示される、という形が一応完成形なのかもしれません。

現状は、ボトムアップで自由にタグを作っていけるようになっている分、トップを想定した分類ができなくなっていて、それを変えたらよりスムーズに使えるようになるかわりに、ボトムアップ的自由さが一部失われてしまうでしょう。

あと、Cosenseのように「ページを書く」以外のことを極力為ないようにするというのも一つの目標で、現状はカードにタグ付けをしていけば、それが上部のボタンになるので、このやり方は気に入っています。

* * *

タグを二つつけておいて、ボタンとしては一つとして表示する?

たとえば、「日記」と「映画」というタグがカードについていたとしましょう。そのカードを描写するとき、そのテキストをくっつけたボタンを生成する。で、そのボタンを押すと、二つのタグを持つカードが抽出される。

なかなかよさそうですが、三つ目のタグが出てくると厄介ですね。組み合わせを網羅する必要があります。

あと、「日記」と「映画」だったら「映画日記」となる必要があり「日記映画」ではいけないので、どちらがより深い概念なのかをあらかじめ定義する必要がありそうです。だったら同じこと。

* * *

五大要素(フィフスエレメント)のように、基本的に私がこれから残していくものは、スーパークラスは大きな変更がないと思います。

だから、それにあわせてボタンなどを設定してみるのはそう悪いことではないでしょう。

* * *

各種リスト、日記総合、インプットノート、アイデアカード。この4つの項目でタグは統合できそうな気がします。

14:00

Workflowy:

上記の想定を織り込んで、多少項目をいじっておきます。

Image from Gyazo

だいたいこんな感じで、Book listは、たぶんDatabaseに移動させることになると思います。

メルマガ:

二つの原稿を書きましょう。

* * *

書きました。3700文字。

15:00

note:

アナログノートについて書きましょう。

* * *

書きました。

publish:NOLTYノートで読書ノート|倉下忠憲

あとで読む:「知のメタボ」を整理する|江草 令