top recent

ParagraphOrientedWiki

関連ページ

Wiki

目次

  1. パラグラフ指向ウィキ...
  2. テキストをページごとではなくパラグラフごとに扱うWiki...
  3. お絵かき機能...
  4. パラグラフのサブクラス化...
  5. 誰でも考えることは...
  6. 誰か作りませんかね...
  7. それほど難しくない、とおっしゃいますが...
  8. ParagraphOrientedWikiの簡単な作り方...
  9. 別の発想で、ファイルとディレクトリをうまく使えないでしょうか。...
  10. http://isweb43.infoseek.co.jp/computer/coffeepo/...
  11. トリッキーな手を考えてみました...
  12. 排他(のための特別な仕組)が必要なのはCGIだけ...
  13. 今更誰も欲しくないだろうが、順不同(浮動)Paragraphとか...
  14. 逆の発想で、Wikiの各ページをひとつのページに編むのはできないのかなあ。...
  15. できるはずです‥‥‥...
  16. ParagraphOrientedWikiでメール管理...
  17. Coffee、現る。...
  18. よりシンプルな方向性...

パラグラフ指向ウィキ

ウィキをページ単位でなくパラグラフ単位で追加、編集、削除、移動できるようにしよう、
というコンセプトをあらわす言葉。

-ParagraphWiki:多機能パラグラフ
-ParagraphWiki:パラグラフの順序制御
-カードとカードの関連づけ
-パラグラフの入れ子

-WikiWikiWeb

[[id:61]] 2002-05-24 09:24:52


テキストをページごとではなくパラグラフごとに扱うWiki

・ 登録タイムスタンプ
・ 更新タイムスタンプ
・ 本文
・ 署名

くらいのデータをひとかたまりとして、ページ内の相対位置で管理する。パラグラフを移動したり再編集したり挿入したり削除したりできる。

また、そうした変更の履歴を自由にトラッキングできる。

他人の書いたパラグラフに手を加えられるかどうかはサイト管理者のポリシーで決められる。

‥‥‥というイメージ。

signature: Cake

[[id:119]] 2002-02-02 20:32:46


お絵かき機能

編集画面にお絵かきアプレットをつけて
1パラグラフについて1個、挿し絵をつけられるようにする

っていうか[[お絵かき掲示板]]がHashedWiki化すればいいのか。
signature: Cake

[[id:135]] 2002-02-03 15:14:02


パラグラフのサブクラス化

- 平文
- ソースコード片(PREテキスト)
- テーブル
- 図
- ‥‥‥

なんでもパラグラフとしてぶら下げられるとまた良い感じかも。

参考:
- ese-nikkiのフォーマット指示子
- Tikiのプラグイン構想
- 掲示板+Wikiのフィルター機構

これ、最近温め中. Zope 的な感じにはならないようにできないかな。 --ksr

ParagraphWiki:多機能パラグラフ

signature: Cake

[[id:158]] 2002-02-04 16:35:50


誰でも考えることは

同じですね。=)

Zope的にするっていうのは、しようと思ってもあそこまでやるのは
なかなかできないっすよ。実際。(^^;

でもまあKISSの法則は大事ってことですね。

signature: Cake

[[id:191]] 2002-02-05 11:24:42


誰か作りませんかね

1.Perlで書かれていて
2.テキストファイルにデータを保存
3.あまりモジュールに依存していない

どこにでも設置できるParagraphWikiを‥‥‥。

---
既存のWikiからPWiki(これじゃPerlWikiか)への変更はそれほど難しくないと思うので、PerlのWiki作者さんにお願いしたら実装してくれる?
あるいは、Wiki自体凝ったことをしなければ実装は難しくないので自分で作ってしまうというのもありますね。

でも、ParaWiki(...スキーか?)はこれから面白くなると思うのであまりリソースがばらけて欲しくないなぁと思ったり。

[[id:265]] 2002-02-09 09:31:17


それほど難しくない、とおっしゃいますが

データ構造を考えるだけて気が遠くなってしまうのですが‥‥‥。(+_+;

[[id:676]] 2002-06-10 12:55:30


ParagraphOrientedWikiの簡単な作り方

適当ですが

・1ページにつき1ファイル
・1パラグラフにつき1ファイル
・mtimeとか、ctimeはファイル自体のものを使用する

1.表示
Wikinameを受け取る
・WikinameからページのFilenameへ変換する関数
どの程度Wikinameを正規化するか検討する余地有り。
(大文字、小文字の同一視、かな、漢字の同一視など)
アルファベットしか扱えないOSを考慮する。
 パラグラフのファイル名と重ならないように考慮する。
 該当するファイルが無い場合、新しく作成する。
・ページのFileを読む
ページのファイルから、読み取るべきパラグラフのリストを取得する。
ヘッダを表示する。
それぞれのパラグラフについて{
・ParagraphName(あるいはID)からパラグラフのFilenameへ変換する関数
  Wikinameから変換するものと同じ。
・パラグラフのファイルからテキストを取得する。
・取得したテキストを適当に処理する。
 ・処理した結果を表示する。
}
フッタを表示する。

2.修正/追記
修正するWikinameとパラグラフIDを取得する。
パラグラフIDが無い場合は
{
新規挿入としてパラグラフIDを作成する。
新しくファイルを用意する。
 Wikinameより取得したページファイルにあたらしいIDを記入する。
}
パラグラフIDより取得したファイルに修正内容を書き込む

3.移動
移動元、移動先のWikiName、パラグラフIDを取得する。
移動もとのWikiNameよりファイル名を取得し、記載されている内容からパラグラフIDを削除する。
もし、移動もとのファイルにパラグラフがなくなったら移動もとのファイルを削除する。
移動先のWikiNameよりファイル名を取得し、パラグラフIDを書き込む。

で、良さそうな気がします。

突っ込み希望。

----
- ページファイルとパラグラフファイルはディレクトリを分けた方がすっきりしますね。
- パラグラフのIDとかファイル名とか、ユニークで短く間違えにくいものを生成するにはどういう実装がいいんでしょうね。--SHIMADA (HashedWiki友の会)

[[id:678]] 2002-06-10 21:46:59


別の発想で、ファイルとディレクトリをうまく使えないでしょうか。

データ構造
- パラグラフは、タイムスタンプや連番などをファイル名としたテキストファイル。
- ページは、ページ名をエンコードした名前のディレクトリ。
- パラグラフファイルを納めるディレクトリと、ページを表すディレクトリ群を納めるディレクトリは分けておく。
- ページを表すディレクトリ内に、そのページに含まれるパラグラフファイルへのハードリンクを張る。
- ハードリンクの名前はパラグラフ順の数字。

操作
- パラグラフの作成/更新はテキストファイルの作成/更新
- パラグラフのページ間移動は、ハードリンクの名前を(ディレクトリをまたがって)名前変更する。
- パラグラフのページ内移動は、ディレクトリ内の各ハードリンクの名前を一斉に変更(重そう…ディレクトリ単位での排他制御が必要?)

----
戯も同じような事を考えました。ただ、
ハードリンクは使えないosが有る(ちなむと [[cygwin]] ではsymlinkのみサポート)とか、
単にWikiNameなディレクトリにParagraphなファイルを入れるだけじゃ駄目かな?とか、思いました。

Paragraphファイルは、xxx_yyy(xxxは頁内順番、yyyはid)というファイル名でいいや、と思った俺。
どうせ排他制御はどうやっても必須だし。

#ファイルのsymlinkだけを頁dirに格納し、順序変更のときは「新しいdirを作って」剌しかえてしまう、という手を使えば、変更結果の本体への反映はatomicに行なえるぞ、という説もあるが…
----
たしかに、ディレクトリをつかうと、検索でglobを使えたりして楽かも。
あと、Namazuなんかも結構自然に使えますね。(当初のどこでも簡単に設置できるから外れますが...)

でも、順序とかは別ファイルに記載(.infoとか)した方が効率が良いんじゃないかなと思うのですが...
どうせ、eachかなにかで回すだけですし。

[[id:679]] 2002-06-11 08:23:46


http://isweb43.infoseek.co.jp/computer/coffeepo/


CoffeeはCafeWikiでページとフォルダを''広い意味でのページ''と仮定して実装してみました。ですから、パラグラフも、パラグラフを結合するページも、''広い意味でのページ''として実装するというParagraphOrientedWikiの簡単な作り方 (#8)さんの意見に賛成です。

パラグラフ表示が指定されたページが、どのページ(ページorディレクトリorパラグラフ)を内包しているかの情報を(例えば[P[ParagraphData/〜id〜]P]のように)に特殊フォルダ内に持っていて、表示する時に情報を(たとえそれがネストしていても)かき集めるってことですよね?

それで、データベース書き込み時にパラグラフ指定用の書式(手入力、掲示板パラグラフからの入力、問わず)があれば、それをパラグラフとして [ [ParagraphData/〜id〜] ]に登録し、元の場所には参照情報だけを置く…というようなのを考えています。

これですと、パラグラフの順番等の置き換えは、参照情報の置き換えになるので処理は単純になりそうですし、
まるきり掲示板のような外見や操作感に違和感を持つWikiユーザにも、おすすめできるかと。

#でも、これじゃ単なるテンプレート機能みたいかな?

[[id:689]] 2002-06-11 21:56:36


トリッキーな手を考えてみました

別の発想で、ファイルとディレクトリをうまく使えないでしょうか。 (#9) の延長ですが、ディレクトリ中のファイル名を
-自パラグラフID + 区切り子 + 後続パラグラフのID
として、リンクリストにしちゃうというもの。

仮にパラグラフIDを [A-Z] とし、区切り子を "." とすると、自パラグラフIDが X で後続パラグラフの ID が Y の場合のファイルの名前は "X.Y" となります。

このとき A-F-H-R-O-K-Q というパラグラフの並びは

A.F
F.H
H.R
R.O
O.K
K.Q
Q.

と表現されます。(末尾は後続がnull)
でもこれだけだと先頭を調べるのに時間がかかるので、先頭をポイントするためのプレースホルダとして、

.A

というダミーファイルを作っておきます。
(ここにページ固有のデータを入れてもいいけど)
ここで K というパラグラフを先頭から2番目に移動したいとすると、

mv O.K O.Q
mv K.Q K.F
mv A.F A.K

という3回の操作で済みます。(パラグラフ数が増えても同じ)

[[id:685]] 2002-06-11 13:36:12


排他(のための特別な仕組)が必要なのはCGIだけ

だよね。面倒だな。( 別の発想で、ファイルとディレクトリをうまく使えないでしょうか。 (#9) に「排他」という単語が出たのを受けて)

まぁそういう仕組をライブラリ化しても良いかもだけど、
どういう排他をやりたいか?によって、適切な実装方法が色々変化しそうだ…

これがServletとかみたいな常駐型鯖なら、WebApplicationインスタンス内でグローバルな「変数」を持てば済む話。
CPUパワーとかの無駄のことも思うと、常駐型じゃないCGIっていう形態はいろいろ勿体ない話だと思う。
----
グローバル変数がデータとその管理を司るオブジェクトで、read/write をシリアライズするから大丈夫なんだ、という話であれば、排他制御のための特別な仕組みが既に用意されていた、ということでライブラリとあまりレベルは変わらないような。

[[id:682]] 2002-07-10 23:53:13


今更誰も欲しくないだろうが、順不同(浮動)Paragraphとか

だとどうかな。実装は相当楽そうなんだけど。

諸兄(俺も)の書きこみを見てると、Paragraphの「順序」に依存した文を
どうしても書いちゃうんだよね。
それって短期的には快適だけど長期的にはどうかなと微妙に心配してみたりする俺。

なら、いっそ順序は無保証という環境だったらどうかな?と、ちょっと思いまして。 -戯

[[id:681]] 2002-06-11 01:17:03


逆の発想で、Wikiの各ページをひとつのページに編むのはできないのかなあ。


signature: hyuki

[[id:492]] 2002-03-22 17:06:50


できるはずです‥‥‥

テキストデータをどのような器におさめて整理するかだけですので、ページを名前空間やカテゴリでまとめるという話と、ページをパラグラフに分割するという話は、本質的に同じものです。

ただパラグラフ単位にグローバルユニークな名前をつけることを強制するのは命名するという作業が煩雑になると思います。
- ローカルな名前でよいとした時は、テキストを別の名前空間に移動しようとするときに衝突の可能性が出てくるのが難点です。

ページ同士をくっつけてひとつのページにする試みの例: StickyWiki
signature: SHIMADA

[[id:493]] 2002-03-22 18:46:10


ParagraphOrientedWikiでメール管理

するのは結構しんどいですね。

できれば、ひとつのデータベースにまとめたいのだけど...。
やっぱり、専用クライアントが必要かな。

- 「しんどいですね」ってことはもしかしてやってみました?メール1通−1パラグラフとして、1スレッド−1WikiNameみたいに振り分けしとくとよさそうな気がしますが、複数のMLがからんでくるともう1レベル必要になってきますね〜。

そんな感じです。あと、コメントツリーを階層化しているくらいでしょうか。
あたらしくRubyでデータベースまわりを書くのが面倒でした。やっぱり、単純に作っておくべきだったなぁと。

問題点は
- 操作性が極めて悪い(ショートカットキーを使えない)
- 長いメールに対する対応ができていない
- 未読管理ができていない
ところですね。

[[id:530]] 2002-04-16 08:19:38


Coffee、現る。


一通りパラグラフ指向を調べてみたです…。調べすぎて脳が沸騰しているのです…。(*_*)

でも、Coffeeは一等暇だから頑張るのです。でも新しいWikiなんか作る勤勉さはないのです。Coffeeは面倒が嫌いなのです。稼動中のCafeWikiにパラグラフ指向を機能追加するのです。始めから#はページ名に使えない文字として予約してあるのです。きっと上手くいくのです。(゚ <゚)b

さぁて………ぬぎぬぎ(猫の皮を脱いでいる)………今日あたりから真面目にパラグラフ指向の設計でも考えるとしますか………。

[[id:687]] 2002-06-11 16:32:12


よりシンプルな方向性

臨時日記:20020920-3 より

1ページ1ファイルの普通のWikiに、/^----$/ などの区切りを単位にした「パラグラフを別ページに飛ばす」という機能を加える、というアプローチ。

ブラウザベースでどのようなインターフェースにするか、という点をクリアできればとてもシンプルでよいものになりそうな気がします。--SHIMADA

これだと、ここのサイトのParagraphに比べて使い方が限定されてしまうと思います。
日記のような使い方は出来ないし。
ただ、ハイパーリンクを促進する、という元々の目的を考えるとその縛りはいいかなぁ、と思ってます--有野
----
はなはだ僭越ではございますがプロトタイプを作ってみました。
- http://cake.dyndns.org/cgi-bin/arinon/index.cgi
- http://cake.dyndns.org/arinon.tgz
どんな具合かちょっと試してみたくて。--SHIMADA
----
名前があまりにもアレだったので、正式名称を "[[Choki]]" にしました。
- http://cake.dyndns.org/cgi-bin/choki/index.cgi

[[id:1305]] 2002-09-28 21:32:01


top recent

HashedWiki version 3 beta
SHIMADA Keiki