• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/名前]]

断りなく「ページ名」と書いてある場合は外部名のentry部分だけを指している。順不同パスはentry部分だけのこと。
内部名は「内部名」と表記。

#contents

**内部名と外部名 [#ra4a7a11]
利用者はページ名を自由に変更可能。でもシステム側でページ名を変更するのは不適切。
そこで変更できる名前と変更できない名前を両方使用する。いずれか一方でページを参照できる。
***内部名 [#ie12e211]
利用者に見せないほうのページ/名前。
***内部名/外部名 [#uc99ddd3]
変更されるような名前は内部名にふさわしくない。が編集は版の追加。変更はされない。とはいえ外部名を内部名に使ってしまうと外部名変更で内部名と合わなくなる…ので元から別物、共通点なしとする。
→内部名と外部名は同じ永続化キーの一部。それぞれ別物だけど連結して同じキーにする。変更は容易。†[[永続化システム]]
変更されるような名前は内部名にふさわしくない。が編集は版の追加。変更はされないので内部名に外部名を含められる。とはいえ外部名変更をすると内部名と合わなくなる…ので元から別物、共通点なしとする。

→内部名と外部名は同じ永続化キーの一部。それぞれ別物だけど連結して同じキーにする。変更は容易。
†[[:i/永続化でのキー変更も追加で]]
***内部名/外部名のどちらでも可 [#ucb6a85a]
内部名/(完全な)外部名のどちらでもページを特定できる。
十分な情報が無ければ検索が必要。

それでも両方必要。
外部名は利用者が変更可能。外部名を変更してもページ/履歴をつなげるために内部名が必要。
利用者は内部名を扱えない。利用者にとっての一意な名前として外部名が必要。


**外部名4区分 [#w17b840f]
外部名は4区分。space, entry, view(side), revision
(viewが紛らわしいのでsideにする?)

内部名は1区分。ページのインスタンスID + クラス名(Page)
***space [#e8da4414]
サブドメイン。またはページ名の前に付く部分。
利用者が選べる。変更されることも。

spaceは複数あるがそれらをまとめるものは無い。必要なら"Universe"?
***entry [#s1f7d855]
"/"から始まるページ名。"/"はルートページ。
ページ名を消してもページは残る。
†[[ページ/削除]]

[[順不同パス]]はentryのこと。区切り文字で切って集合(set)として扱う。

利用者が自由に付けられる。変更される。
***view(side) [#dec006cf]
viewまたはside.
見解。
システムが付ける。利用者は気にしない。変更不可能。

***revision [#e966b1e2]
版。
数値でいい。
システムが付ける。利用者は気にしない。代わりに日時を見てもらう。
「特定版」とはrevisionを明示すること。

**外部名4区分とそれぞれのデフォルト [#y6f7a6ed]
「代表」と表記してあるのは見解のデフォルトのこと。

***spaceのデフォルトは管理用? [#u85e14ca]
あるいは無名space. spaceのデフォルトは無名で省略。
spaceがサブドメインならサブドメインなし。
→無名で。

***entryのデフォルトはルートページ [#qf4b07a7]
entry=ページ名を指定しないときのページ。
ページ/編集時に1行目を空行にすればルートページ化。「ルートに移動させた」とも言える。→[[ページ/名前/衝突]]

***viewのデフォルトは視点 [#g7456fb8]
見解(view)のデフォルトは利用者ごと、かつ時期によって違うもの。「視点」とも言える。
取得するにはentry、利用者、日時が必要。

この際の利用者のデフォルトはゲスト。日時のデフォルトは現在。

***revisionのデフォルトは最新版 [#vbf01674]
特に指定しなければ最新版。版を指定すれば特定版を指すことになる。


***entryの検索は適合率で [#p403f59d]
entryに含まれる語が少ないほど適合率は高くなりやすい。
少ない語に適合したほうが高スコア。
重複も含む。日付などでは12/12/12もあるが重複数が重要なので。

***見解の代表を得るためには利用者と日時が必要 [#zfbd8c44]
利用者×日時→当時の見解


**ページ名(entry)変更/ページ移動 [#bb0611f1]
***ページ名変更はページ移動でもある [#j625a414]
ページ名の中に位置(ディレクトリ)があるので。

***ページ移動処理でやること [#l9b393f9]
ページ移動は永続化キーの外部名部分を置き換えたエントリー作成。
外部名(のentry部分)はページ/内容の1行目。つまり普通にページ編集するのと同じ処理。

※古い外部名で検索すると、それらがどれも最新版ではないと分かること。

※外部名(のentry部分)が変わっても同じ内部名でアクセスできること。履歴がつながること。

***ページ名が変わっても同じインスタンス [#kff5e4b9]
同じインスタンスにアクセスするために内部名が要る。
履歴をたどれるので、ページ名変更の取り消しはページ/編集の取り消し(リバート)と同じ。操作も処理も同じ。


**順序 [#d7e8c6e6]
***順序は決めるもの [#f9a37712]
実装時にはページ名間に順序を。同一ディレクトリ内では辞書順。ディレクトリは深さ優先。''浅い階層の違いは大きく、深い階層の違いは小さく評価''。%%つまりフルパスを辞書順にするのと一緒。%%

%%複数のページを処理するときはこの順序で処理できるように。%%

%%特定のディレクトリと深さを指定して、この順序でページ名を取り出せるように。%%
%%→ディレクトリ構造に順序がなくなったので。%%
***[[:i/同階層の表示順序は単方向リストで記録]] [#lc8abd7e]

***[[:i/ディレクトリ名だけでなくページ名まで順不同に]] [#f73da65a]


*あとでなおす(改訂前) [#wf1d003c]

ページを表すIDで、利用者に見せる名前。
利用者に見せない名前は[[ページ/内部名]]。
**ページ名を扱いやすく [#k931dfad]
> [[http://wikienginex.com/wiki/%E3%81%93%E3%81%AE%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6]]

などとURLにページ名が入るのは良い案。変えない。UTF-8で。

検索欄を用意。
検索だと1ステップ手順が多くなるので、結果が明確なら一覧を出さずに1位のページへリダイレクト。
Googleの[[†:I'm Feeling Lucky]]のように。
([[有力な見解]]の仕組みを使って)
**%%正規表現%% [#v4f24393]
%%ページ名の指定はどれも正規表現で受け付けるようにしたい。%%
%%→使い方が難しい。ページを指定するならシステム側で曖昧に解釈。%%


**ページ名は読むためのもの、IDになるのは内部名 [#see30c75]
重複無し。重複があれば、どちらかを扱う。どちらでもいい。
ページの中に[[見解]]があるので、同じページ名で違う表示ということはある。
**「/」 [#sa23f2fb]
ページ名の階層区切りはサイト設定。変更、他のwikiからのインポートを容易にするために複数設定できるように。(旧設定と新設定を両方有効にできるように)


**「/」より「の」 [#m7c4ba8d]
「ページの名前」というページを作るくらいなら「ページ/名前」を作ったほうがいい。
なら「の」を「/」の代わりにすればなおいい。

%%***親ページも作る [#ud68512b]%%
%%さらに、「プロジェクトの名前」というページを作ると%%
%%-プロジェクト%%
%%-プロジェクト/名前%%
%%という2つのページが一度にできるように。%%
→この場合、「プロジェクト」はタグのようなディレクトリ名になる。→[[ディレクトリ名に順序なし>ページ/名前#ee9f56fc]]

自動リンクを発生させるためにページは多くしたい。全文検索の他に言葉を選択する探し方も欲しいので。
が、検索結果では邪魔になる。
Wikiの設定にディレクトリ名にあたる部分もページ化するオプションがあってもいい。
作られるページは既定のページ。
**名前変更は2つ以上同時受け付け [#w49222bf]
%%同時に2つ以上のページ名を変更できるように。%%
%%ページ名の入れ替えを1ステップで可能にする。%%
→ページ名はページ編集と同義。1行目がページ名になる。ページ名が重複したときどうするか?
-見解の1つにする
ページが隠れてしまう。探しにくくなるのでよくない。
-別の名前に強制変更
ページ名に(2)などを付けて。

正規表現を受け入れるなら管理者専用に?
複数のページ内容を一括置換するツール。


**変更するときは関連ページも一緒に [#o1866d4f]
下位ページがあるときなど、ページ名がディレクトリ名になっていることがある。
ディレクトリ名が変更されたらそれ以下のページ名も変わることになる。ファイルシステムと一緒。


**変更しても同じページ [#l6df2a46]
名前を変更しても内部名は変わらないので、履歴は引き継がれる。
1つの履歴リストに複数のページ名が表示されることになる。

→一般ユーザーでも名前変更が可能になる。

**Wiki内リンクも更新 [#id7a2ce7]
リンク要素のリンク先も更新。
ということはWikitextを更新するので、利用者に承諾を得る必要がある。

自動リンクもこうすると、自動リンクを作っては変えの繰り返しでサイト内をまとめて編集可能になる。
**名前変更でリダイレクト [#sef60446]
ページの名前変更をしたら旧名はリダイレクトページになる。
もう一手間かけてリダイレクトページを消してもいいし、旧名をまた使うまで残しておくのも良い。

他サイトからのリンクを切らないための措置。

RIGHT:[[:t/連携]]

リダイレクトページを自動生成するなら、新名称が既存の場合のページ名変更は上書きに。ページ内容をコピペするのと同じ処理。履歴は普通に残る。
上書きをするならプレビューを可能に。


**記法などでは3層一括指定 [#oc38ac45]
記法など、分けて書けない場合…
  項目名(ページ名):見解名:版番号
…といったように区切り文字でつないで。


**表示時の省略 [#dfeaf8c9]
区切りごとに中間から省略、少なくともルートページの1つ下と(最後は)表示。それでも長いなら最初だけの表示。

 WikiSite/ToDo/上位ページが削除されると、編集不可でも削除するか/第一部
 ↓
 ... /ToDo/ ... /第一部

----

1つの区切りが長い時は単語単位で省略。CJKVの場合は文字種区切りにでもしておく。これも中間から必要なだけ省略して少なくともルートページの1つ下と(最後は)残す。それでも長いなら最初だけ。
記号の前では(日本語の場合はひらがなと句読点の前では)区切らないのもいい。

 WikiSite/ToDo/上位ページが削除されると、編集不可でも削除するか
 ↓
 ... /ToDo/上位ページが削除されると、編集不可でも削除するか
 ↓
 ... /ToDo/上位ページが ... 編集不可でも削除するか
 ↓
 ... /ToDo/上位ページが ... 削除するか
 ↓
 ... /ToDo/上位ページが ...

必要なだけ省略。
単語が短いと省略記号(...)のほうが長くなるかも知れないが、省略。


**%%書き方二通り%% [#y59f572d]
-%%ページ名だけ書く%%
%%…ページへのリンク%%
-%%上位ページ+ページ名を書く%%
%%…上位ページへのリンク+注目ページの見出しへページ内ジャンプ。%%
%%URL#アンカー名。%%

%%これで前後関係の分かるリンクを作れる。%%

→もっと多様にした。→[[自動リンク]]
**既定値は最初の見出しか1行目 [#qabe4b7f]
※UIでもAPIでも一貫して。

細かい章は段落と同様に頻繁に使う。
章をページとして実装するとなると、章にいちいち名前を付けるのは煩わしい。
最初の章の見出しかページの1行目全体を名前にする。章の場合、一行目は見出しの記法になっているはず。章がない場合に1行目を使用。
%%重複対策でランダム文字列を数文字付けてもいい。あとで変更出来ればいい。%%
%%→ページ名は長くなりやすい。%%
PostEverのように日付でもいい。がそうするなら予め日付を入れておく。入力時にないデータを付け足したりしない。

これは既定値。入力する機会はあっていい。%%入力したらページ内容の一行目を変更。(一行目=ページ名は常に成立するようにしたい)%%
ページ作成時の名前欄は既存のWikiEngineに似せるためのもの。
必要という訳ではない。

ページ作成時の既定値は''ページ名として有効な部分の一行目''。
→最初の見出し(それも章…サブページになる見出し)を使用。
問題があればtitle:のようなページ名専用の記法でもいい。ページ名がページ内容に含まれていればいい。見出しと重複してもいいので自動付与。
こうすると一行目=ページ名を成立させにくい。

----------------------------------------

ページ作成では名前が先?内容と同時受付?
[[:t/?]]


**ページ名もコンテンツ [#gec28748]
ページ名もページ内容と同等に。
検索、自動リンクなどの対象に。
%%→ページ内容からページ名を作ればいい。(条件に当てはまる)1行目をページ名にする。''常に''(作成時だけでなく)。%%
ページの一行目=ページ名は成り立たないこともあるので、ページ名をページ内容に連結してから検索対象にする。


**同一視する文字 [#h6ac0f96]
ページ名では…
大文字小文字の同一視(PageとPAGEとPaGeは同じ単語でいい)、スペースとハイフン(New PageとNew-Pageは同じ単語)。
カタカナひらがなは区別。全角半角は統一(全角空白→半角に、半角カナ→全角に)
これは利用者が再利用するときの利便のため。
→探索用のページ名では統一、表示時は入力されたまま。ページ名自体がユーザーの眼に触れるものなので、入力されたとおりに表示されなければならない。

ページの内容では統一はしない。そのまま保存。統一の必要がない。
検索用のデータでは統一していい。

----------

→同一視は自動リンクや検索で。
同一視後同じページ名が複数できるので、検索中は同じページ名が複数現れることになる。


**相対パス/絶対パス [#y9f9f905]
ページ名は相対パスとしても自動リンクされる。
絶対パスとしても。
→[[ページ/リンク]]

%%そのページの1階層下に適合すれば相対パスとしてリンク。「オブジェクト」というページで「リスト/インデックス」と書けば「オブジェクト/リスト/インデックス」として解釈。ルートからの「リスト/インデックス」や他のページ下にあるページにはリンクしない。%%
%%ただし、相対パスとしてリンクできない場合(リンクできるページが無い以外の理由も含む)は絶対パス(ルートページからの完全なページ名)として解釈。自動リンク。絶対パスを指定したいなら(ルートページ名/ページ名)に。%%
→[[ページ/リンク]]



**見出しに区切り文字が入ると、順序が変わるかも [#i227a756]

→変わっていいことにする。

ルール
-閲覧ビューでは投稿した通りにはならない。リンク元次第。
-編集ビューでは投稿した通り。


**パスの表現方法 [#d4b16d70]

全てタグ化。
区切りは「/」でいい。区別したり、タグであることを強調する必要はない。
「/」区切りの最後がページ名。それ以外がタグ。

あるページに書かれたリンクは上位か下位か?
|~位置関係|~[[リンクに含まれるタグ]]|
|上位ページ|自身のタグのサブセット''だけ''を持つページ|
|同階層にあるページ|自身と全く同じタグ集合なら|
|下位ページ|自身のタグを全て含み、さらに自身と同じタグまで付いていれば|
|別階層&br;(無関係、上下関係なし)|部分的に一致するだけなら&br;関連度は一致するタグの数と、それぞれの重要度から|
**タグON/OFFでナビゲーション生成 [#da656852]
ディレクトリ上下階層への移動を支援。
閲覧中ページのタグを個別にON/OFF、ONになっているタグを含むページを動的にリストアップ。
これで書かれていないページ間リンクを動的生成。

生成するだけでもいい。リストから1つ選択するとそばにリンク生成。ページに追加。それをクリックして利用。
利用者全員で共有する履歴が自動生成されるようなもの。
複数選択できるようにするのもいいかも。


**ON/OFFでページ名変更 [#md475017]
ページ名の単語をボタン化、ON/OFF可能にする。決定ボタンで決定。
順不同ディレクトリ名なので順序を入力しなくていい。ON/OFFだけのボタンで十分。

初期ページ名(デフォルト)は自動で。デフォルト値とボタンで命名。あるいは初期ページ名は完全に自動で作った後にボタンで変更。

ページ名横に変更ボタン。(編集者ビューの場合)

RIGHT:[[:t/編集者]] [[:t/ビュー]]

**名前が重複したら追加 [#r2708157]
ページ作成は編集と異なり、データを消さない。「作成」で消してはいけない。消すような状況では追加。

見解を追加。


**%%ページ名を使うということは、ディレクトリ名も使うということ。%% [#bc56761b]
%%→ページ名とディレクトリ名は同一オブジェクト。%%

%%日時は範囲%%
%%→更新日時も?%%
%%→更新日時…24時間以内のものはまとめて。範囲にする。%%


**: [#i2b281ff]
ページ名先頭にある特定記号(接頭辞、prefix)はページ名と分けて、ページの属性を示すものとする。
→[[ページ/属性]]の接頭辞


**ページ名(キーワード)とタグは同等の機能を持つ [#w4783658]
タグ集め、ページ名(キーワード)集め。
閲覧、編集で追加したタグやキーワードを一覧化、
考えの経緯が分かるように。

RIGHT:&tag(タグ,ページ,名前);

自分が関わったタグ・キーワードだけでタグクラウド作成。
これを任意の期間だけに絞り込んで表示、集計、表示。

----------------------------------------

発想の入り口、経緯が自分で確認出来るように。次の発想が出来るように。



**名前/ [#q5126efc]
#ls()
**[[tag:名前]] [#x4a575e2]
#lsx(tag=名前,new=true)