IPA


開発成果一覧へ

 



2005年度下期 未踏ソフトウェア創造事業  採択案件評価書

 


1.担当PM

   原田 康徳 (NTTコミュニケーション科学基礎研究所 主任研究員)


2.採択者氏名

開発代表者

 安斎 利洋  (フリー)

共同開発者

 中村 理恵子 (フリー)


3.プロジェクト管理組織


  NTT出版株式会社


4.委託金支払額


  5,996,041


5.テーマ名


  絵の協創的な組織化を可能にする汎用カンブリアン環境の開発

 


6.関連Webサイト


  http://cambrian.jp/


7.テーマ概要


 『汎用カンブリアン環境』は、ビジュアルな表現単位であるリーフを、自分あるいは他者の手によるリーフとの関係性を定義していくことによって、構造化、配置していく汎用のツールです。これまで私達が行ってきた、『カンブリアン・ゲーム』というコラボレーションの実験、また『遺伝的ペイントシステム』による絵画要素の交配、これらは『汎用カンブリアン環境』のひとつのアプリケーションとしてユーザーが記述可能になります。また、未知の協創的なセッションが、この汎用環境の上で構成可能になります。
 その検証として「アドベンチャーゲームを協創的に作るカンブリアンゲーム」を、このシステム上で構成することを、ゴールに設定します。これはいわば、他人の絵の中の一部に自分の絵を描いていき、無数の入れ子をもった物語を作っていくコラボレーションです。その作画、投稿、サーバー、ブラウズ環境が、『汎用カンブリアン環境』の中の記述で構成できることを、目標にします。


8.採択理由


 前回の開発テーマの継続というより,それを包含するさらに大きな枠組みのシステムの提案.
 開発者らが行ってきた様々な形態のカンブリアンゲームの結果を踏まえ,それらを一般化して,いわば誰でもカンブリアンゲームを自分用にアレンジして実現できるシステムが得られる.システムの開発は結果が見えにくいものであるが,このテーマでは3つのアプリケーションを想定しそれをゴールとしている.
  カンブリアンブログ
  絵の中に絵をはめ込んでゆくカンブリアンゲーム
  遺伝的ペイントシステムによるコラボレーション


 これらは,それぞれ単独で評価しても興味深いが,共通したシステムの上に構築するために,これらが同時に出来上がる.直交した機能の組み合わせによるシステムの常であるが,このアプリケーション以外にも,いま思いつかないアプリケーションを生み出す可能性を秘めている.

 また,前回の開発でも実証されているように,このシステムから生まれる美しいグラフィックスはきわめて高水準のものとなるであろう.

 





9.開発目標


開発者たちはこれまで、カンブリアン・ゲームのコンセプトのもとに、さまざまなコラボレーションの実験を行ってきました。その成果は、http://cambrian.jp に詳しくあります。

私たちは、これら個別のプロジェクトを実施するたびに、個別のプログラム開発や拡張を繰り返してきました。これを通して、カンブリアンと名づけた、情報の爆発的な相互作用を引き起こすために必要な一般的な方法や、汎用性の高いソフトウェア部品が蓄積してきました。

今回の開発は、これらの多様な要求にこたえる汎用的な解を求めることによって、いままで実現できなかった実験を今後可能にし、また新しいタイプの知識表現、知識編集の実用的な道具として世に問うことを目的としました。

 


10.進捗概要


「汎用カンブリアン環境」(以下カンブリアン)は、画像とテキストを扱うツールですが、以下のような特徴をもっています。

 

・縮小表示から拡大表示までなめらかに連続し、虚像やシンボルを扱わない。カンブリアンでは、これをアイコンではなくイグジスタンスと呼ぶ。

 

・画像とテキストはリーフと呼ばれ、一元的に扱われる。ユーザーは、なんの準備もなく画像とテキストのあるフォルダをカンブリアンを通して見ると、それらは浮遊するイグジスタンスとしてあらわれる。

 

・リーフの構造的なグラフ化が可能である。リンクは、手動でつながれるほか、XMLのメタ情報をもとにして自動的にリンクが生成されるための、スクリプト言語が用意されている。

 

・リーフのレイアウトを自動的に調整する物理シミュレーションをリアルタイムに働かせることができる。

 

・リーフ間の埋め込みレイアウトを定義し、レンダリングすることができる。

 

・ペイント機能をもち、画素数の制限のない、無限に稠密にできるラスターCGが作れる。

 

・リーフと呼ばれる基本単位は作者の責任のもとに作られるが、複数のリーフ群からなる文書であるシェールは、複数の作者による協調空間である。カンブリアンは、多様な協調空間を柔軟に設計できるように、スクリプト言語をもっている。

 


11.成果


4.1 

今回の開発は、内部的に以下の4つの機能モジュールとしてまとめました。

 

・カンブリアン・レンダラー(ブラウザ)

 リーフをシェールに動的にレイアウトし、リーフのグラフ構造を編集する機能。

 

・カンブリアン・ページプロデューサーの開発

「カンブリアン文書」のXML表現にもとづき、Webページ群を生成する機能。

 

・カンブリアン・ルーターの開発

HTTPでリーフを転送するためのCGI

 

・カンブリアン・エディターの開発

リーフを作成編集するペインター

 

また、これらを縦断する機能として、以下の新しい機能を新たに作成しました。

 

・テキストリーフ生成。テキスト表示をリアルタイムのフォント生成でなく、あらかじめ精細な画像化する方法をとった。

 

・XMLによる内部情報の一元化。

 

・スクリプト。機能単位を小さくし、それらを内部的にもスクリプトで制御した。またスクリプトは、外部から定義可能にした。

 

以下、スクリプト言語の説明を軸に、これらがどう実現されているかをまとめてみます。

 

4.2 

カンブリアン・スクリプトは、それぞれのリーフが行動主体になったコマンドの羅列で、単体では複雑なことはできません。しかし、スクリプトをほかのリーフに渡していくことによって、より高次の機能を実現します。

 

命令は主に、行為の対象を順次限定していくコマンド群と、それらの対象に対する手続き群があります。たとえば以下のスクリプトは、自分にリンクしようとしているリーフを見つけ、それにリンクの矢印を繋ぎます。最後に、リンクしたリーフに対してこのスクリプトそのものを委譲するので、木全体を再帰的に描くことになります。

 

        SetAll;

        SelLinkToMe("pxmkeys/linkfrom");

        LetLink;

        live;

        ChainScript(0);

                                リンク情報をもとに木を作るスクリプトを実行

 

スクリプトの主な命令には、以下のものがあります。

 

●対象リーフをセットするコマンド

 

SetAll                全リーフを選択する

SetSelf               自身だけを選択

 

●対象リーフをフィルタしていくコマンド

 

Select(XPath)         自身のXML中にあるXPathの指し示すリーフ群を通す

SelExceptSelf         自身だけを外す

SelKeyMatched(XPath,key)  対象のメタ情報にあるXpathkeyなら通す

SelLinkToMe(XPath)    対象のメタ情報にあるXpathが自分のIDなら通す

SelContainText        自身のテキストが、相手のテキストに含まれるなら通す

SelRandom(n)          ランダムにn個、通す

SelMyBranch           リンクの矢印が自身より下流の枝にあるリーフだけ通す

SelMarked             マークされたリーフだけ通す

SelUnmarked           マークされていないリーフだけ通す

SelFree               リンクのないリーフだけ通す

 

 

●対象のソート

 

SortById              リーフのID(ファイル名)でソート

SortByKey(XPath)      XPathのキーで、ソート

 

●対象リーフに対する手続き

 

Mark                  マークする

Unmark                マークを外す

 

DoLink                対象から矢印が出てくる形でリンク

LetLink               対象へ矢印が向く形でリンク

UnLink                自分のかかわるリンクを外す

Serialize             対象リーフが数珠になるようにリンク

 

doEmbedding(XPath)    自身のXPathにある埋め込み情報をもとに、埋め込み実施

LetEmbedding(XPath)   相手方のXPathに自身への埋め込みがあるものを、実施

 

●自身に対する手続き

 

MarkMe                自身をマーク

UnmarkMe              自身のマークを外す

 

duplicate             リーフの複製を生成する

EditText              テキスト情報を編集し、再レンダリングする

EditXML               メタ情報を編集する

NewText               近傍に新しいテキストリーフを作る

 

●環境に対する手続き

 

UnLinkAll             環境の全リンクを消す

Live                  動的レイアウトを開始する

Pause                 動的レイアウトを終了する

 

●スクリプトを転移させるコマンド

 

ChainScript(t)         選択されているリーフに、時限予約(t単位時間後)でスクリプトを渡す

魚という内容をもつテキストファイルについて、SelContainTextを実行し、魚を含む他のテキストをリンクするスクリプトを実行

 


12.プロジェクト評価


カンブリアンは、当初の目的を超えて、以下のようなことが可能になります。

 

・新しいプレゼンテーションツールになる。

 

・PDFよりも読みやすい読書ツールになる。

 

・どうしてもカードや付箋に頼っていた作業を、PC上で行うことができる。

 

・表組みで表現できない知識を、構造的に扱うことができる。

 

・発想の組み換えを支援する。

 

・新しいタイプのBBSやSNSの基礎になる。

 

・デジタル写真の整理に役立つ。

 

高度なプログラミング技術を駆使して,非常に柔軟性の高いシステムが構築された。スクリプト言語によりさらに可能性が向上した。

 


13.今後の課題


また、スクリプトによって絵に絵を埋め込むセッションや、言葉の連想で勝手にリンクがつながるコラボレーションなど、2006年中にいくつか具体的なコラボレーションの計画があり、それらを通してスクリプト言語の可能性を具現した「カンブリアン」下のアプリケーションを蓄積していく予定です。

 




  ページトップへ   

 

 

 


  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004