名前空間

名前空間

[20] 古い版の SuikaWikiWikiNameの名前空間機能を実装していました。

[21] 現在の SuikaWiki は過去のデータとの互換性のために必要な程度にのみ対応しています。 新たに利用はしないでください。

名前空間の仕様 (WikiName 編)

[4] WikiName を、任意の個数のWiki名前空間名と(狭義の) WikiName を名前空間区切子で連結したものとして再定義します。 名前空間区切子には // を使います。

(n + 1) 番目の部分の名前を持った Wiki 名前空間又は WikiPage は、 n 番目の部分の名前を持った Wiki 名前空間に所属します。 但し、 1 番目の部分の名前を持った Wiki 名前空間又は WikiPage は根名前空間 (従来における唯一の名前空間に相当。) に所属します。

例:

[5] WikiName の始めの名前空間区切子, 最後の名前空間区切子はあっても無くても同じです。 また、連続した名前空間区切子は1つの名前空間区切子とみなします。

但し、 WikiName と Wiki名前空間名を混在して扱う場面 (あまりない。) では、 WikiName の最後が名前空間区切子である場合には Wiki名前空間名であるとみなすので、その有無で意味が異なってきます。

例:

[6] 一番最初の部分に限って、自己参照子, 親参照子が使えます。 自己参照子., 親参照子.. です。

両参照子が含まれる WikiName は、基底 WikiName に従って解決されます。 基底 WikiName は、普通参照がある WikiPage (リンク元 WikiPage。) になります。

自己参照子は基底 WikiName を名前とする Wiki名前空間, 親参照子は基底 WikiName の所属する Wiki名前空間に置き換えられます。

例:

[7] (狭義の) WikiName 及び Wiki名前空間名には、名前空間区切子, 自己参照子, 親参照子, 文字 0 は使えません。 また、 Wiki名前空間名は斜線で終わることは出来ません。

例:

メモ

[1] やっとですが、 WikiName の名前空間に対応しました。 (わかば 2003-03-27 16:48)

[2] 2日間の実装・実験期間を経て CVS HEAD に merge しました。 (もっと実験する予定だったけど、待ちくたびれなくて(w) (わかば)

[3] 名前空間を使ってみるテストには SandBox//NameSpace をご利用下さい。 (わかば [sage])

[8] 斜線で終わる WikiName は今のところ禁止されていませんが、その名前を名前空間とする下位頁を考えると推奨できません。 (わかば 2003-03-27 17:36)

[9] ところで、 comment を分割して comment//MessageHeadercomment//SGML にしてみたんですが・・・なんかぴんときません。

その理由はおそらく、これが本来「メッセージ・ヘッダーの comment」や「SGML の comment 要素」のような名前になるべきだからでしょう。

SuikaWiki の、というか SuikaWiki の内容の現在の編集方針では、(もともと名前空間がなかったことも原因ではありますが) 特定の技術の何かという分類より、何かの特に特定技術について、という分類の仕方がされてます。名前が同じからには共通点や類似性や共有する歴史とかがあるはずで、そういう技術間の横のつながりに焦点を当てたいってのがあります。だから言語的な順番と内容的な順序が入れ替わってて、しっくりこないんでしょうね。

で、このことを決定的に問題付けているのは、リンクの始点アンカーの文字列が終点アンカーの WikiName に固定されていることのように思えます。始点アンカーの文字列は普通その属する文章の一部であって、名前空間名つきの WikiName では齟齬が生じるのですね。当然といえば当然です。

この解決として、世間の Wiki では狭義の WikiName を始点アンカーにする方策が採られていることが多いような気がしますが、前述の通り SuikaWiki でこれをやると、 comment を参照したいのに始点アンカーが MessageHeader になっちゃって、話にならん。多分リンク元文書も message についての話題なんでしょうから、文書中「message」という始点アンカーだらけになりかねません。

解決策はもう、始点アンカーを自由に設定できるようにするしかなさそうです。 今まで SuikaWiki でこの機能を採用してこなかったのは、

なので、別に導入してもいいような気がします。

(わかば)

[10] でも日本の祝日祝日//日本になるのはなんだかなあ。かといって、逆転させて後ろを大分類にするのも何か違う気がする。 (わかば 2003-03-27 17:54)

[11] WikiName はファイル名化してしまうという選択子もあるね。どうかとは思うけど。つまり、リンク先 WikiPage に題名情報を持たせて、それを既定の始点アンカー文字列にしてしまう。

SuikaWiki の画像埋め込み (#embed:IMG:) は既にそうなっているわけで。 (始点アンカー = img 要素 alt 属性は画像のある WikiPage の image-alt 属性の値になる。) (わかば 2003-03-27 17:59)

[12] >>11 のように思ったのは、例えば従来の RFC1234RFC//1234 にしてしまって、始点アンカー文字列は (題名として記録してある) RFC 1234 を使うのはどうだろ、と思って。

始点アンカーを Tunneling IPX Traffic through IP Networks とか任意の文字列にしたいなら、参照側でそう上書きすればいいわけで。 (わかば)

[13] ところで話は変わりますけど、 HashedWiki みたいなことやってみたいと思ってます。 モジュール書いて。文書 = 名前空間, 段落 = WikiPage にしてみるわけです。

上手く利用者界面を実装すれば結構使い物になるんじゃないかと思うんですが、どうでしょう? (わかば 2003-03-27 18:05)

[14] >>13 の問題は、段落 (WikiPage) の名前をどうするかということです。段落に一々名前付けるの? めんどくさ〜い。かといって段落1みたいな匿名段落もちょっとなぁ。 (わかば)

[15] しかしまあ、同じようなことはもう考えている人がいるわけで。 IW:HashedWiki:ParagraphOrientedWiki (わかば)

[16] >>14 名前を付けたい時は付けれて、つける必要のないときはつけなくてもいいスタイルでやってけばいいのかなあ。昔の HTMLnextid みたいな感じで。

()

[17] 2年経ったわけだけど結局名前空間が有効に機能したのは Wiki 以下の階層に管理用のものを押し込めただけ。 やっぱり名前空間は失敗だったかも (と2年前からずっと思ってたわけですが。。。。) (名無しさん 2005-07-21 04:47:42 +00:00)

[18] 一応うまく行った例にはあと BugTrackCalendar もあった。

でも >>17-18 の3つのどれも WikiName を title でなくファイル名として扱っているところがあるわけで。

[19]

冬様もすなる☆日記というもの (2008年11月) (わかば 著, 版) http://suika.fam.cx/~wakaba/d/d200811#d10-1