ここにコメント機能を追加しようとしてまた悩んでしまった。
「コメントって何?」
テキスト/ドキュメントの定義を”“ある程度の長さと意味を持つ文の集まり”“とするならコメントもテキストだ。日頃よく扱うテキストの種類を考えてみた。
- ブログエントリ/日記
- メモ/個人Wiki
- つぶやき/メッセンジャーの発言/チャットでの発言
- コメント
- メール
現状このシステムで扱えるのは1と2だけだ。他のテキストも扱うには特徴を調べて抽象化する必要がある。
テキストが持つデータ
- タイトル
- 本文(必須)
- 作成日時(必須)
- 更新日時(必須)
- 可視性(プライベート/パブリック)
構造化/非構造化テキスト
テキストには構造(親や子となる何か)を持つものと持たないものがあるようです。一般的なブログコメントはブログエントリを親に持つテキストということになる。
メモやブログは基本、親を持たない。
つぶやきは時に他のつぶやきを親に持つ。(返信)
メールは時に他のメールを親に持つ。(返信)
チャットはスレというテキストを親に持つ。
テキストの指向性
テキストが”“誰が誰に向かって書いたのか”“という指向性の概念を取り入れると複雑化する。なぜなら、閲覧・編集権限が変化するからだ。また”“テキストの作者”“というリソースも新たに定義する必要がある。
ここは思い切って、”“作者とは名前とプロフィールで表されるテキストである”“と定義してしまえば単純化する。(匿名はAnonymouseリテラルで表現する)
各作者が使えるメソッド
認証したものはプライベートなテキストも含めた閲覧、作成、更新、削除ができる。(通常のブログポスト)
認証してないものはパブリックなテキストの閲覧、作成(POST)ができる。(コメントやメール送信)