最近 DynaBook Jr の文書保存のために調べものをしている。バラバラになって来たので整理してメモする。
やりたい事。
- ハイパーテキスト文書を共有サーバに保存。普通の HTML 文書のように、リンクは他の文書だったり画像だったりする。
- 文書にはタグがあり、検索を使ってメール機能を実現する。他の人へのメールも見えてしまうが今は気にしない。
- メールのスレッドを実現するためにリンクを使う。
- 過去バージョンの文書も全部保存、過去へのリンクがある。
- 複数文書を纏めたプレゼンテーションでは、子要素もリンクで表現する。
必要な技術要素
- リンクとは何か
- 保存の仕方
以下参考にする技術
NLS / Augment, Engelbart
文書はシステムが発行した ID で管理。一つの文書は構造化テキスト、章や節はシリアル番号で参照。NLS 自体のソースコードも構造化テキストな所が斬新。
- http://www.dougengelbart.org/
- The demo の紹介: http://www.dougengelbart.org/firsts/dougs-1968-demo.html
- 論文: http://www.dougengelbart.org/library/bibliography-summary.html
- 他のデモへのリンク: http://www.dougengelbart.org/library/demos.html
- 娘によるデモ: http://dougengelbart.org/demos/augment-intro-vat-ui.html
- 細かく分かれた解説つきビデオ: http://sloan.stanford.edu/MouseSite/1968Demo.html
Project Xanadu, Ted Nelson
調査中
- The Open Society and its Media: http://www.caplet.com/papers/open-media.html
- Xanadu technical summary for the ACM: http://www.xanadu.com.au/ted/XUsurvey/xuDation.html
Git
オブジェクトのハッシュキーを使って保存。追記専用ファイルシステム
- Git Book - Raw Git: http://book.git-scm.com/7_raw_git.html
- Pro Git - Git Objects: http://progit.org/book/ch9-2.html
Google Wave
一つの文書を現す Wavelet と、発言を現す Blip という二階層の構造 (NLS と同じ?)。Blip から枝分かれして新しい Webelet を作る事は出来無い。ファイル共有の方法は未調査。
HTML4 Link 要素
複数文書間の論理構造を指定する。Link types により関連の種類を指定する。逆リンクも指定出来る。
- Document relationships: the LINK element: http://www.w3.org/TR/html401/struct/links.html#edef-LINK
- Link types: http://www.w3.org/TR/html401/types.html#type-links
XLink
HTML リンクを一般化したもの。OpenDocument や SVG で使われている。resource によってリンク先を別に指定したり、逆リンクでリンク先文書に付箋を書ける機能が面白い。Link types の機能が無いみたいだけど。
RDF
URI で表現されたデータ同士の関係を記述する方法。
- RDF -- リソース表現のフレームワーク: http://www.kanzaki.com/docs/sw/rdf-model.html
- RDFa -- HTMLの属性を利用したトリプル記述: http://www.kanzaki.com/works/2009/pub/0704pcs.html