目次 Edit

関連 Edit


検索:リンク

リンク周辺のタグ Edit

Array

リンクとは Edit


ページ同士をつなぐもの、機能。

関連名で「このページはどう扱われているか」を表現。
検索で活用。検索の有用性を決めたり、情報の集約をするための機能。

プレーンテキストをリンク化する機能 →リンク/自動リンク[?]

思い付き Edit


プレーンテキストをリンク化する機能→自動リンク

曖昧なリンクを可能にする。
  • 近いページ名リンク
  • 完全に一致するページがないときは曖昧なリンク。候補一覧を表示。
    ページを自動作成。

    (候補が1つでも表示する。そういうときは一致するよう直してもらわないといけないので表示して知らせる)
  • 候補一覧に順序入れ替え機能を。
    • リンク先を1つにできないとき、適当なリンクを上位にできる。
      専用UIではなく、更新日時が新しいものを上位にするなど、ユーザーの行動に付随する方法で。

      上位にしたリンクと自動作成されたリンクとは分けて表示。
  • ただし、間違いない場合(ディレクトリ名違いの同一ファイル名がたった1つしかないとき)は通常のリンクに。
    2つめができると候補ページが作られる。
  • ディレクトリ名違いの同一ファイル名が複数ある時はやはり候補ページを。

自動リンクには手間がかかる Edit

  • -

Wikiの自動リンクは「自動リンク」というより「半自動リンク」。何をリンクするかページを作ることで明示しなければならない。

リンク Edit


これでは「書き散らしたことが自動的にまとまる」とはいかない。

人的資源が必要。

ページ名変更に追従 Edit


:i/外部からのリンクはメタページで追従

:i/リンク要素はページ名変更に追従

一人で使うとなると手間がかかってしょうがないので、検索キーワードを自動的にページ化する機能でもないとアイデアノートにはしづらい。

とは言っても他の方法と比べると格段にWikiのほうが良いわけだけど。

自動生成ページの削除条件 Edit


検索キーワードから自動的にページを作るとなると、そうやって作ったページを自動的に削除する機能も欲しくなってくる。

削除の条件は、自動的に作られて、かつ…
  • 古いもの
  • 参照数の少ないもの
  • 検索結果の少ないもの(リンクの少ないもの)
  • リンク数(BackLink数)の少ないもの(参照数、検索結果とも関係がある)
    …といったものだろうか。

リンク数は有効そう。PageRank式でランクの高いページを残すように。

検索ワードをページ化すると、検索結果はBackLinkリストになる。(ヒット数=被リンク数になる)

BackLink検索対象になれば、あとで関係のある検索ワード(検索結果に出てきたページ名の一部)を検索したときにも被リンク数が増えてより残ることになる。

リンク数に新しいものを残す(古いものを消す)というルールを加味すれば実用的になりそう。(しきい値ではなく)古いほどPageRankを減点するような仕組みで。古さやPageRankには上限を設けて。

これで’’最近’’注目されている言葉ほど残ることになる。注目され続けていればいつまでも残る。個々のページを参照しなくても残る。あまり書かれていない言葉でも残る。

全文検索が利用されることが前提だけど、この機能はその利用頻度を下げるものなので、全文検索とこの機能でバランスが保たれるようになりそう。

さらに効果を上げるにはタグクラウドのように検索ワードページを目立たせる。

消えそうなページほど早く消えるように。浮き沈みを激しく。
  • -------

検索ワードページは全文検索メモ化検索結果のキャッシュになる?

リンク検索対象 Edit


機能と同じ扱いで。

検索式にリンクを表す特別な記号「→」があれば。

:t/リンクより Edit


自動リンクも対象に

追跡 Edit


:RenameLogを使ってページ追跡を。

参照リクエストのときに自動遷移。

編集ページのリクエストなら追跡しない。新ページを指すリンクを表示する。

あとで:t/リンクページを追加。

?付きリンク(DanglingLink)も有効に Edit

言葉?


「言葉」部分は曖昧さ回避ページ(曖昧検索の結果)へのリンク、「?」部分は新規作成へのリンク。「?」部分はなくてもいい。曖昧さ回避ページに新規作成リンクを置けばいい。

曖昧さ回避ページへつなげる。(似ているページ一覧)

リンク/ Edit


ページ作成しなくても、全ページの「言葉」を自動リンクできるようにするため。

用語集や別名・表記揺れをページ化しなくても、言葉のつながりや連想ができるようにするため。

書くときのタグ一覧と合わせればアイデアノートに効果大。

特定版リンク Edit

特定版リンクを日時指定でも Edit


日時からを割り出し。リンクが削除されることもあるので、日付を解釈するのは参照時、またはクリック時。

リンクタグを付けたい Edit


例えば…

WikiPageはテキスト1つでは実現不可能

[[なぜ?:表示用と編集を分ける]]


この関連名(なぜ?)はリンク([[表示用と編集を分ける]])の属性

2つのページがどう関連しているのかを表す。

このタグ検索可能、検索結果に表示することも可能に。

ページ同士を関係づけることができる。RDBMSのリレーション機能のように。

表示の仕方次第でアイデア創出に効果が見込める。
  • -------

例:
  • -------

リンク属性:関連名で実現。リンクにはタグは付けられないが同等の効果。

「内部リンクGoogle:Open Graph Protocolメタデータを付けるようなもの」と説明すれば分かりやすくなる?

実装 Edit

target Edit


外へのリンクを作る際、開くフレームはリンク先のパスと同じ名前にする。

リンク先URIのうち、最後の/まで。

ドメイン毎にタブをまとめる。

これは正しいかどうか不明なのでサイト設定で固定値にできるように。
http://wiki.pmint.name/wiki/?FrontPage

<a href="http://wiki.pmint.name/wiki/?FrontPage"
target="http://wiki.pmint.name/wiki/">
http://wiki.pmint.name

<a href="http://wiki.pmint.name"
target="http://wiki.pmint.name/">

URIのドメイン名+最初のディレクトリまで、もいい。

外へのリンクにrel=nofollow Edit


SPAM向け。ただしこれを付けない記法があってもいい。

URLだけのhttp://記法で付けばいい。

表示を省略 Edit


文字列展開したときにパスの中間を省略。

ただし、省略しない指定になっているのは除く。

省略はパス区切りを単位として。

最初と最後は省略しない。

リスト表示する際に要点を目立たせるための機能。

省略するのではなく、特徴を強調表示するのもいい。が、大抵末尾に特徴が現れるものなので目に留まりやすい。

→不要。

出現頻度による省略 Edit


パスの中間を省略する際、どこを省略するかを似ているページ名がどれだけあるかで判断してもいい。

パス区切りで区切って、共通部分を省略するように。

多く存在するパス名から順に省略していく。適度な長さになるまで繰り返し。

だから、「/ページ/…/UI/…/配色」のように数カ所省略することもある。

表記が動的になるので、定期的に更新しないと同じページ名でも略し方に違いが出てくる。

曖昧リンク Edit


曖昧リンクリンクを先に作るときに効果的。

リンク先のページ名が違っていても有効だから。

異字体にも対応するとか。

いとゐとかも。

リンク先が存在しなかったり一意でないBracketNameのリンク先。実装では曖昧さ回避ページへのリンクにする。

NewPage? → NewPage[?] Edit


1文字ではクリックしづらい。

クリックしやすく。

スタイルシートで。

[? NewPage ?]

にもできるように。

リンク Edit


外のサイトに読めるリンクを貼れるようにするため、サイト内リンクは日本語で。

そのために…
  • エンコーディング用のヒントを付ける
    ヒントが無ければUTF-8として扱う。
 
  • リクエストされたURLがURLエンコード済みならデコードしてから文字コードのデコードを。
  • URL→ページ名の変換法則をWiki上の設定で。
  • /の後にページ名を付ける拡張パス形式の他、?以降にpage=ページ名を付ける形式にも対応。

リンクページ内にのみ存在するオブジェクト Edit


でも通常のクラスで良い。

リンク元になるページが所有する。

リンクオブジェクトのIDはオブジェクトID(普通。特に工夫しない)

リンク元/先が同じでもリンクが複数存在することもあるので(ID以外全て同じ、ということがあるので)。

リンク記法の1つ Edit


ただ、検索式で特別な扱い…なのは他も同じ。

「→」はリンクを表す。

記法の1つ。

フィルタリングしてからリンク Edit


実装では自動リンクならフィルタリングした文字列を検索リンク

Wikiページでフィルタリングルール設定

DanglingLinkをまとめる効果がある。

RIGHT::t/設定

URIを書いたもの(http://…)もフィルタリングして。

こっちはWikiに限らないリンクの仕方と同じ。

リンク処理のタイミングはいつか Edit


レスポンスを予想しやすくするため、機能実行結果はそれ以上処理しない。機能内で自動リンク埋め込みの展開を行なう。

リンク処理後では機能のパラメーターとして扱いにくいので。

強いBackLink Edit


バックリンクは2種類。
  • -------

強いバックリンクは…
  • 強調表示
  • 他のリンクよりも先に表示
  • ページ/一覧などに「代表的な」「Wikiの構造として」表示できる
  • -------------------------------------

これを利用すると、適当な(思い付きの)ページ名ページ作成しても、ページ内容で自然にまとまるようにできる。

思い付いたことの追加位置を調べなくて良い。

外部へのリンク(http:…)も書ける Edit


ページ名を使えるところでは外部リンクも使えるように。

外部へのリンクはMIMEコード取得 Edit


埋め込むか、リンクだけにするか。埋め込むならどう埋め込むかをMIMEコード取得して決めないと。

URLの末尾だけでは判断できない。

一部重なっている自動リンク Edit


例:

リンクページ」、「自動リンク」の2ページが存在するとき「自動リンクページ」をどうリンクするか。
  1. どちらかのみ
  2. 共通部分「リンク」を曖昧なリンクに。他は通常の自動リンク
    「自動」「リンク」「ページ」の3つに分ける。
  3. 分けずに曖昧なリンクに。
    自動リンクページ」が1つの曖昧なリンクになる。

→分けずに曖昧なリンクに。

3つに分けたのでは操作しづらい。

「どちらかのみ」は次点。
  • -------

包含関係の場合は長い方に直接リンク。これはおそらく妥当なので。
  • -------

実装ではリンク候補を全て揃えてから一意のリンク曖昧リンクかを判断することになる。

完全に重複(包含している)なら長い方に通常リンク、部分重複なら曖昧リンク、重複していないなら通常のリンク

自動リンク明示的リンクも同じクラス Edit


AutoLinkもBracketNameも同じリンククラス。

作られ方(コンストラクターに渡す引数を生成する方法)が違うだけ。

設計 Edit

AutoLinkは機能名では? Edit


クラス名にするなら”BracketName”のように「存在するページ名」(…Name)といった名前にしたい。

属性 Edit

リンク先別 Edit

  1. ページ
  2. ページ
  3. ページから見た先ページとの関係

リンクはElement Edit


リンクはElement。ページに含まれる要素。

中に他のElementを含むことは無い。タグも持てない。

リンクページ属性ではない。他の記法と同じクラス。

リンクページを指し示すNotation。指し示す先特に制限なし。ページでないかも知れない。

リンク先は検索さえできれば他に機能は要らないので、見出しなどと同じ扱いでいい。

リンク検索するコードはリンククラスが持つ、という点も通常の検索の範疇。リンククラスが特別扱いされることはない。

リンク組み込み済 Edit


記法ではあるが、フレームワーク内でも有効。機能ではなく組み込み済み。

機能を実現するために必要なので、フレームワーク側に組み込み。