Send to your Kindle *** %%メジャーID、マイナーID%% [#t668609d] %%編集をすると版が変わる。それでも同じページには同じ内部名であって欲しいので、編集ごとに変わる部分と変わらない部分とに分ける。%% %%ユーザーが決められる部分…ページ名(+ディレクトリ名)→メジャーID%% %%見解名は上位の名前(ページ名)に依存、合わせないと意味を成さないし、ページ名を指定しないと見解名のリストアップもできない。版番号も上位2つを指定しないとリストアップ不可能。%% %%独立できるのはページ名だけ。→内部では分ける。メジャーID依存しているのをマイナーIDとして、2部構成に。%% %%Entry:Side:Rev → Major:Miner%% %%ファイル構成は内部名依存。Major(Entry)を指定するとMiner(Side:Rev)をリストアップ可能。3層にそれぞれ代表があるから、どれが欠けていても扱うべき内部名は得られるけど。%% %%辞書ファイルはEntryごと:編集があるたびに更新しなければならないので。EntryのメジャーIDと同じ生存期間。ページ名リストは1つじゃないと意味をなさない%% RIGHT:[[:t/内部名]] ページ名クラス。 項目名、見解ID、版番号 ファイル名として使えるように区切りは「_」 ---- #contents *** 内部名はページ名の分だけ [#i951bf30] 「外部名」があるのはページ名だけ。''ページ名にのみ内部名を用意。''他の区分はシステムが生成するIDしかないので、内部/外部の区別なし。 同名ページがあっても重複しないように。外部名が同じページでも内部名は異なる。ひとつの外部名に複数の内部名が結び付く。 *** %%メジャーID、マイナーID%% [#t668609d] %%編集をすると版が変わる。それでも同じページには同じ内部名であって欲しいので、編集ごとに変わる部分と変わらない部分とに分ける。%% %%ユーザーが決められる部分…ページ名(+ディレクトリ名)→メジャーID%% %%見解名は上位の名前(ページ名)に依存、合わせないと意味を成さないし、ページ名を指定しないと見解名のリストアップもできない。版番号も上位2つを指定しないとリストアップ不可能。%% %%独立できるのはページ名だけ。→内部では分ける。メジャーID依存しているのをマイナーIDとして、2部構成に。%% %%Entry:Side:Rev → Major:Miner%% %%ファイル構成は内部名依存。Major(Entry)を指定するとMiner(Side:Rev)をリストアップ可能。3層にそれぞれ代表があるから、どれが欠けていても扱うべき内部名は得られるけど。%% %%辞書ファイルはEntryごと:編集があるたびに更新しなければならないので。EntryのメジャーIDと同じ生存期間。ページ名リストは1つじゃないと意味をなさない%% *** 版を含まない [#o2badbf0] 内部名の版番号を分けたとしても、版番号はページ名に依存する。ページごとに存在する版番号が異なるので。 - でもページ更新でできた新しい版に同じ内部名が必要。 - 自動リンク維持のためにも内部名は引き継ぐ必要あり。 → 内部名をページ名と版に分ける。版のほうは外部名とも組み合わせられるので、内部名と呼べるのはページ名に対応する部分だけ。版は外部と共通。 本当にページ名に対応するだけの内部名。同名ページの数だけ同一内部名が存在する。内部名は裏のページ名。 *** 同名ページ内のIDが必要 [#s5140f39] ページ名に対応する内部名だけでは複数ある同名ページに対応できないので、それを区別するIDが必要。 → 結局、同名ページを区別するID(見解のID)が必要になる。自動リンクを維持するための外部名と一対一になる内部ページ名、同名ページを区別するための見解ID、版を区別するための版番号。 *** 自動リンクされる内部名はどう決まるか [#xe6f9324] 自動リンクではページ名変更に対応するため内部名を記録する。でもひとつのページに内部名は複数。複数ある中から選ぶ方法は? 結局、外部名にリンクするしかない? 外部名だと自動リンクの維持が困難。ページ名変更のたびに自動リンクを更新しないと。 %%→ 自動リンク用の「第二の外部名」必要?%% → 内部名のメジャーIDが必要。 ページ名が変わらない限り同じで、版番号を含まない。 外部名は投票を加味しないと特定のページにはならないし、ならなくていい。%%でも自動リンクを作るにはページを特定した上で、その内部名を調べなければならない。%%内部名はページ名変更しても自動リンクを維持するはずなのに、外部名を記録するのでは維持できない。 → 自動リンクは内部名(ページ名に対応して、それだけではページや版を特定できない部分)と関連付ける。 *** 結局、内部名は必要 [#x74c1f37] メジャーID(同名ページの集約に付けるID)と、マイナーID(これだけでページを特定するGUID)。 同名ページをひとつでも残して名前変更すると、メジャーIDは新しくつけないといけない。古いメジャーIDを残さなければならないうえに、それとは異なるメジャーIDが必要になるので。 *** ページ名を変更した場合2通り [#l7ab0ac9] - 同名ページすべての名前を変更 内部名は変えなくていい。 - 同名ページをひとつでも残して名前変更 こちらは内部名も新しくしないと。 -- これまでにない名前のページにする 新しいメジャーIDが必要。 -- 他のページの同名ページにする メジャーIDの付け替えになる。 いずれにしてもマイナーIDはそのまま。 版を重ねても既存のマイナーIDはGUIDとして有効なまま。 *** マイナーIDのほうがメジャーぽい [#he4878de] GUIDのほうを「メジャー」としたほうが分かりやすい。 → ページ名に対応するほうを「裏ページ名」とでもしたほうがいい? GUIDのほうは「ページID」。 このふたつはつなげたりしない。 #ref(内部名/外部名と内部名.png,100%) ※ ページ名変更に対応するため、外部名ーー内部名ーーページIDのほうがいい。 *** 変更点 [#p6c8a29a] - 見解IDと版番号(両方合わせてマイナーIDと呼んでいたもの)をGUIDにする。呼び方は%%「内部名」か%%「ページID」でいい。新しい版は全く異なるGUIDになる。 - ページ名(Entry)に対応する別名を用意して%%「裏ページ名」または%%「内部名」と呼ぶ。ページ名変更しても自動リンクを維持するため。 *** 最新版を指すURIがない [#a15ae0c9] ページではなく特定版でもなく、 同名ページの中のあるページの最新版をURIで指すには? やはり見解IDは必要? → フォークを含んだり含まなかったりするので、ここでは用意しない。 特定の%%ページID%%ページ名と「この特定版ページの直系子孫のうち最新のもの」や「この特定版ページの派生版を含む子孫のうち最新のもの」といった問い合わせで、最新版を指定。 URIにはページ内容と同じ記法を書けるので、そこで特定の%%ページID%%ページ名を最新版のものに変換する。 → [[汎用記法]] ページIDからでは投票を反映した最新版が得られないので、ページ名を指定。内部名でも可。それで最新版を指す。 *** 再々考 [#k2915244] やはり内部名をページインスタンスのIDにすべき? ページ/名前と、版ID(内部名でGUID)だけで良さそう。特定版とは版ID(ページインスタンスのID)のこと。 名前変更してもリンクを維持するためには?パーマリンクとしても使う。 → 全版共通のIDが要る。編集しても最新版に引き継がれ、ページ名変更しても変わらないID。ページ名と異なりシステムが生成する。このIDを指定するだけでページひとつの編集履歴が手に入る。フォークには引き継がれない。マージでは一方の全版共通IDだけ引き継ぐ。 - 内部名(履歴ID/履歴内全版共通ID) (同名ページが複数あるので)ページ名とは1対多になる内部名。最新版に引き継がれる。ページ名変更では変わらない。これでページ名変更時の明示的リンク維持に対応。ページ/属性。以前のメジャーID。 - 特定版ID 版ごとのID。パーマリンクにも使われる。GUID。これだけで版を特定できる。ページ/属性。以前のマイナーID。 - ページ/名前(ページ名/外部名) 利用者が付ける名前。ページ/本文の1行目。ページ本文の一部なのでページ編集と同じ権限で変更可能。明示的リンク・自動リンクの対象。 #ref(:Done/内部名を再考/image.png,100%) *** ページ名変更は編集のうち [#sea620a6] ページ名を変更しても過去版に影響しない。履歴には異なるページ名が並ぶことになる。列挙されるのは同じ内部名を持つ版。 当時のページ名を調べやすい。ページ名はページ本文のうちという考え方に合っている。 *** %%自動リンクは内部名を保持%% [#k713a495] %%ページ名変更時、自動リンクを維持する(変更に合わせて置き換える)なら自動リンクが内部名を持っていなければならない。%% 自動リンクは利用者によって異なる閲覧時展開。ページ名変更に追従する必要はない。(明示的リンクは投稿者が作る投稿時展開なので追従する)ページ名をページ本文と同じように変更できるようにするため、ページ名変更時には追従するかどうかなどを選択させない。