(57)【要約】【課題】コンテンツを提供する側の当該コンテンツの利用に対する制限の範囲内で、コンテンツを利用する側の条件を満足するコンテンツの利用が容易に行える文書編集装置を提供する。【解決手段】利用する際の制約条件を示した利用制御条件が予め設定されているコンテンツを含む文書データを記憶するための記憶手段を備え、コンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを受け取り、当該領域に挿入する文書データのコンテンツが指定されたとき、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定し、この判定結果に基づき、当該領域にコンテンツを挿入する。【選択図】      図１
2006072551.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを入力するための手段と、
利用する際の制約条件を示した利用制御条件が予め設定されているコンテンツを含む文書データを記憶するための記憶手段と、
前記領域に挿入する前記文書データのコンテンツが指定されたとき、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定する第１の判定手段と、
前記第１の判定手段の判定結果に基づき、前記領域にコンテンツを挿入する手段と、
を具備したことを特徴とする文書編集装置。
【請求項２】
前記領域には、当該領域へ挿入されたコンテンツに対する操作を制約するための操作許容条件が予め設定され、
前記領域に挿入された前記文書データのコンテンツに対する任意の操作が指示されたとき、当該領域の操作許容条件及び当該領域内の当該コンテンツの利用制御条件に基づき、当該領域内の当該コンテンツに対し指示された操作の可否を判定する第２の判定手段と、
前記第２の判定手段の判定結果に基づき、前記領域に挿入された前記文書データのコンテンツに対する任意の操作を実行する手段と、
をさらに具備したことを特徴とする請求項１記載の文書編集装置。
【請求項３】
前記領域に設定された前記受理条件は、当該領域に挿入可能なコンテンツのタイプ、個数及び当該領域へのコンテンツの挿入操作を行うユーザを含む利用環境のうちの少なくとも１つが指定されていることを特徴とする請求項１記載の文書編集装置。
【請求項４】
前記コンテンツに設定された前記利用制御条件は、当該コンテンツに対する操作の種別、当該コンテンツを利用するユーザを含む利用環境、当該コンテンツの有効期間及び当該コンテンツが利用可能な場所のうちの少なくとも１つが指定されていることを特徴とする請求項１記載の文書編集装置。
【請求項５】
前記領域に設定された前記許容操作条件は、当該領域に挿入されたコンテンツに対する操作の種別、当該コンテンツを利用するユーザを含む利用環境、当該コンテンツの有効期間及び当該コンテンツが利用可能な場所のうちの少なくとも１つが指定されていることを特徴とする請求項２記載の文書編集装置。
【請求項６】
コンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを提供し、
前記領域にコンテンツの挿入されたスクラップブックデータを受け取ると、当該スクラップブックデータの前記領域に挿入されたコンテンツを用いて前記プログラムを実行する情報処理装置と、
前記情報処理装置から提供された前記スクラップブックデータを編集し、前記領域にコンテンツの挿入されたスクラップブックデータを前記情報処理装置へ返す文書編集装置とを備え、
前記文書編集装置は、
前記情報処理装置から提供される前記スクラップブックデータを入力するための手段と、
利用する際の制約条件を示した利用制御条件が予め設定されているコンテンツを含む文書データを記憶するための記憶手段と、
前記領域に挿入する前記文書データのコンテンツが指定されたとき、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定する第１の判定手段と、
前記第１の判定手段の判定結果に基づき、前記領域にコンテンツを挿入する手段と、
を具備したことを特徴とする情報処理システム。
【請求項７】
前記領域には、当該領域へ挿入されたコンテンツに対する操作を制約するための操作許容条件が予め設定され、
前記文書編集装置は、
前記領域に挿入された前記文書データのコンテンツに対する任意の操作が指示されたとき、当該領域の操作許容条件及び当該領域内の当該コンテンツの利用制御条件に基づき、当該領域内の当該コンテンツに対し指示された操作の可否を判定する第２の判定手段と、
前記第２の判定手段の判定結果に基づき、前記領域に挿入された前記文書データのコンテンツに対する任意の操作を実行する手段と、
をさらに具備したことを特徴とする請求項６記載の情報処理システム。
【請求項８】
プログラムの実行に必要な引数を得るために、当該引数として用いるコンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを、当該スクラップブックデータを編集する文書編集装置へ提供する手段と、
前記領域にコンテンツの挿入されたスクラップブックデータを前記文書編集装置から受け取り、当該スクラップブックデータの前記領域に挿入されたコンテンツを用いて前記プログラムを実行する手段と、
を備えた情報処理装置。
【請求項９】
コンピュータを、
コンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを入力するための手段と、
利用する際の制約条件を示した利用制御条件が予め設定されているコンテンツを含む文書データを記憶するための記憶手段と、
前記領域に挿入する前記文書データのコンテンツが指定されたとき、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定する第１の判定手段と、
前記第１の判定手段の判定結果に基づき、前記領域にコンテンツを挿入する手段と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＸＭＬ文書、ＨＴＭＬ文書などの構造化文書の編集装置に関する。
【背景技術】
【０００２】
Ｗｅｂシステム・情報デバイスなどでのアプリケーションでは、情報入力のユーザインターフェースとして、インプットボックスやセレクタなどのＧＵＩ部品を組み合わせたフォームを提供することが多い。この入力作業においては、ユーザは、フォームの各項目をすべてゼロから埋めなければならず、過去・あるいは他人の入力データを再利用することはできない、という問題があった。
【０００３】
それに対し、ＯＳなどは単純なコピーペースト機能を提供しており、文字列レベルでコピーすることは可能であるが、たとえば住所欄の情報を名前欄へ貼り付けてしまうなど、内容的に不適正な引用を禁止することができない。また引用作業が、ある程度まとまってではなく、プリミティブな項目ごとでしか行うことができないのでは、作業効率が悪い。
【０００４】
そこで、特許文献１では、タイプつきの構造的なスクラップブックを用いることで、アプリケーションの新たな情報入力方法として、再利用に適した単位で適正な「引用」を可能とする情報入力方法を提供する、という解決方法を示している。
【０００５】
具体的には、構造的なスクラップブックは、「コンテンツ」を受け入れるための欄が複数存在し、かつ各欄には受け入れることのできる「コンテンツ」のタイプを限定することができる。これにより、各欄では、指定されたタイプのコンテンツ以外は入力されないことが保証される。なお、「コンテンツ」とは、再利用するのに適切なサイズに設定された、複数の項目を含んだ構造的データのことである。ここで、「コンテンツ」としてバイナリデータを扱いたい場合は、該バイナリデータへのＵＲＬ等参照ＩＤを項目に含めることで表現可能である。
【０００６】
この構造化スクラップブックをアプリケーションの入力インターフェースとして用いる場合、スクラップブックの各欄は、アプリケーション処理に必要な情報項目、いわば処理引数が対応する。したがって、スクラップブックのタイプ検査によって、アプリケーションへ入力される情報セットは健全であることが保証されることになる。
【０００７】
上述のように、引用の適正さを保証するため、特許文献１ではタイプ検査による受理判定を行っている。しかしそれだけでは不十分なケースもある。そこで、（１）受理判定における検査の強化、（２）相手の信頼性を確保する仕組み、（３）情報公開・利用の範囲の制御、（４）状態変化に応じた公開・利用の範囲の制御、といった補強が必要である。
【０００８】
（１）受理判定における検査の強化
スクラップブックの各欄（コンテナ）は、アプリケーション処理に必要な引数を示している。特許文献１では、各欄に収納できる個数に関する条件を設定できず、コンテンツを挿入できる数に制限はないが、アプリケーション処理によっては個数指定が必要な場合も多い。また５００円以下の商品に関する商品カタログのみ受理するなど、コンテンツに含まれる情報に応じて受理するかどうかの判定をしたい場合もあるが、上記特許文献１ではコンテンツに含まれる情報（例えば値）を用いた受理判定もサポートしていない。
【０００９】
（２）及び（３）は、いずれもクロスサイトにかかる問題である。特許文献１のスクラップブックを入力インターフェースとして用いたアプリケーションシステムの場合、ユーザは、任意のシステム間での引用が可能であるという仕組み上、スクラップブックを提供するアプリケーションシステムと、引用されるコンテンツを提供するシステムとが、同一であるとは限らない。
【００１０】
（２）相手の信頼性を確保する仕組み
スクラップブックを提供するアプリケーションシステム側としては、アプリケーションシステムの動作保証のため、信頼できないコンテンツの挿入は拒絶したい。そのため、コンテンツの提供元のシステムをあらかじめ信頼しているシステム、あるいは信頼できるシステムに限定するなどの仕組みがほしい場合がある。逆に、コンテンツを提供する側としても、信頼できないアプリケーションシステムにコンテンツが利用されるのを防ぐための仕組みがほしい場合がある。このようにコンテンツ提供者は、信頼の観点から、提供する情報の公開範囲・利用方法について制御したい。
【００１１】
（３）情報公開・利用の範囲の制御
またコンテンツ提供者は、信頼の観点からだけでなく、活用の観点からも、公開範囲・利用方法について制御したいことがある。例えば、自社アプリケーションシステム向けに用意したコンテンツは、他社では整合しないことが分かっているので、不具合を防止するため、公開・利用範囲を自社サイトに限定したり、ユーザ・実行マシン・ＬＡＮなど、利用状況に応じて、コンテンツのアクセスレベルを変更したり、コピー・移動・複製など利用できる機能を変更制御する、などが挙げられる。
【００１２】
（４）状態変化に応じた公開・利用の範囲の制御
上記（３）の他に、コンテンツの状態に応じて利用方法の制御を行いたい場合もある。コンテンツ内の値は、オブジェクトの状態と捉えることもできる。該システムではコンテンツは流通性を持っているので、たとえばワークフローなどの利用を考えたとき、承認フラグなどをコンテンツ内に持たせ、このフラグの値に応じて利用できる機能やアクセスレベルを制御できることが望まれる。
【特許文献１】特開２００４−０４６３５７公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
以上説明したように、従来は、コンテンツを提供する側の当該コンテンツの利用に対する制限の範囲内で、コンテンツを利用する側の条件を満足するコンテンツの利用が容易に行えないという問題点があった。
【００１４】
そこで、本発明は上記問題点に鑑み、コンテンツを提供する側の当該コンテンツの利用に対する制限の範囲内で、コンテンツを利用する側の条件を満足するコンテンツの利用が容易に行える文書編集装置を提供することを目的とする。
【００１５】
また、プログラムを実行して予め定められた情報処理を行う情報処理装置へ、上記文書編集装置を用いて、コンテンツを提供する側の当該コンテンツの利用に対する制限の範囲内で、当該情報処理装置により要求される条件を満足するコンテンツを入力データとして入力することが容易に行える情報処理システム及び上記情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明に一実施形態に係る文書編集装置は、コンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを提供し、当該領域にコンテンツの挿入されたスクラップブックデータを受け取ると、当該スクラップブックデータの当該領域に挿入されたコンテンツを用いて当該プログラムを実行する情報処理装置から提供されたスクラップブックデータを編集し、当該領域にコンテンツの挿入されたスクラップブックデータを当該情報処理装置へ返す文書編集装置であって、利用する際の制約条件を示した利用制御条件が予め設定されているコンテンツを含む文書データを記憶するための記憶手段を備え、情報処理装置から提供されるスクラップブックデータが入力され、当該領域に挿入する文書データのコンテンツが指定されると、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定し、この判定結果に基づき、当該領域にコンテンツを挿入する。
【００１７】
また、当該領域には、当該領域へ挿入されたコンテンツに対する操作を制約するための操作許容条件が予め設定され、当該領域に挿入された文書データのコンテンツに対する任意の操作が指示されたときには、当該領域の操作許容条件及び当該領域内の当該コンテンツの利用制御条件に基づき、当該領域内の当該コンテンツに対し指示された操作の可否を判定し、この判定結果に基づき、当該領域に挿入された当該文書データのコンテンツに対する任意の操作を実行する。
【発明の効果】
【００１８】
本発明によれば、コンテンツを提供する側の当該コンテンツの利用に対する制限の範囲内で、コンテンツを利用する側の条件を満足するコンテンツの利用が容易に行える。
【００１９】
また、プログラムを実行して予め定められた情報処理を行う情報処理装置に対し、情報処理に必要な信頼性の高いデータ入力が容易に行える。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態について図面を参照して説明する。
【００２１】
（システムの概要）
まず、本実施形態に係るシステムの概要を説明する。
【００２２】
本実施形態に係るシステムは、１または複数のコンテンツを挿入するための１つ又は複数の領域（コンテナに相当する）を含むスクラップブックをユーザインターフェースとして用いるアプリケーションシステムである。
【００２３】
以下の説明において、「受理判定機構」とは、引用する側であるアプリケーションシステム側の都合を守るため、アプリケーションシステム側の都合である「受理条件」を満たすよう入力検査する機構であり、また「利用制御機構」とは、引用される側であるコンテンツ提供者の都合を守るため、提供者側の都合である「利用制御条件」を満たすよう操作を検査する機構である。エンドユーザは、これらのオンライン検査によって、両者の都合が守られる範囲内で自由に引用作業を行うことができる。
【００２４】
（１）受理判定機構
受理条件は、
ａ０．  タイプ
ａ１．  値
ａ２．  個数
ａ３．  履歴（あるいは証明書など）
ａ４．  上記ａ０〜ａ３を組み合わせた論理式（タイプ・値・数・履歴）
などがあり、上記のａ１、ａ２、ａ４は「受理判定における検査の強化」にあたり、ａ３は「相手の信頼性を確保する仕組み」にあたる。
【００２５】
（２）利用制御機構
利用制御機構は、コンテンツに付与される「利用制御条件」を基に、コンテンツごとに「操作」可否・「アクセス」可否・「配布範囲」制御を行うことができる。利用制御条件は、状況を示す「条件」（ｉｆ）と許可する「アクション」（ｔｈｅｎ）の順序付リストで構成される（ｉｆ  ｔｈｅｎ  ｅｌｓｅ構造）。「ｉｆ＋ｔｈｅｎ」を利用定義と呼ぶ。「ｉｆ」として次のファクタを使用できるようにする。
【００２６】
ｂ１．  値
ｂ２．  ユーザ・ＩＰアドレス・ＬＡＮなどのコンテンツの利用環境
ｂ３．  相手の履歴（あるいは証明書など）
ｂ４．  上記ｂ１〜ｂ３を組み合わせた論理式（タイプ・値・数・履歴）
上記ｂ１は「状態変化に応じた公開・利用の範囲の制御」にあたり、ｂ３は「相手の信頼性を確保する仕組み」にあたり、ｂ２、ｂ４は「情報公開・利用の範囲の制御」にあたる。
【００２７】
コンテンツに対するユーザ操作が加わった際、利用制御条件内のｉｆ文をスキャンして現状に見合う利用定義を見つけ出し、このユーザ操作が許可できるものかどうかを判断する。同様に表示などデータアクセス（Ｒ／Ｗ）の際、現状に見合う利用定義を見つけ出し、許可されているノードのみアクセス許可する。
【００２８】
本実施形態に係るアプリケーションシステムによれば、
ｃ１．データを入力するためのユーザインターフェースとしてスクラップブックが提供され、エンドユーザは「引用」によるデータ入力が可能となる。
【００２９】
ｃ２．スクラップブックに挿入され得るコンテンツの提供元として、アクセス可能な任意の素材提供装置を利用することができる。
【００３０】
ｃ３．ユーザによってスクラップブックに挿入されたコンテンツは、アプリケーションシステムによる処理実行に用いられる。
【００３１】
ｃ４．スクラップブックへのコンテンツ挿入・編集操作において、アプリケーションシステム側が指定する「受理条件」や「操作許容条件」、コンテンツ提供者側が指定する「利用制御条件」を満たすよう検査が行われ、これら条件を満たさない操作はできないようになっている。
【００３２】
（システム構成）
図１は、システム全体の構成例を示したもので、大きく分けて、アプリ処理装置３００、スクラップブック編集装置３１０、素材提供装置３２０からなる。
【００３３】
アプリ処理装置３００は、複数処理ステップからなる所定の機能を実現するためのアプリケーションプログラム群（以下、簡単にアプリケーションとも呼ぶ）を実行するための例えばコンピュータである。当該アプリケーションの各処理ステップの実行に必要なデータをユーザが入力するためのスクラップブックを生成して、ユーザに提供し、スクラップブックを介してデータを受け取り、当該各処理ステップを実行するようになっている。
【００３４】
スクラップブック編集装置３１０は、ユーザインターフェースを持ち、ユーザに対して、アプリ処理装置３００から送られてくるスクラップブックに、素材提供装置３２０から提供される素材、すなわち、コンテンツの埋め込み（挿入）、修正・更新などの操作を行うためのものである。スクラップブック編集装置３１０については後述する。
【００３５】
素材提供装置３２０は上記スクラップブックに適用可能な、コンテンツ群を提供する装置である。コンテンツ群は、１または複数のコンテンツを含む文書（例えば、インターネットを介して提供可能なＷｅｂページであってもよい）として、あるいは各コンテンツが別々に（スクラップブック編集装置３１０に対し）提供されてもよい。
【００３６】
以下、本システムがＷｅｂシステムに含まれる場合を例にとり説明する。
【００３７】
（システムの動作）
図２は、図１のアプリ処理装置３００の処理動作を説明するためのフローチャートである。ユーザが、アプリ処理装置３００の有するネットワークを介したクライアント装置からのシグナルを受信する装置であるキーボード、マウス、あるいはボタンなどの入力装置を用いて、起動部３０１を起動するための指示を行うことにより起動部３０１が起動される（ステップＳ５００）。たとえば、アプリ処理装置３００が、Ｗｅｂサーバシステムに含まれている場合には、Ｗｅｂブラウザが当該アプリ処理装置３００に対応するページを開いたとき、あるいはアプリ処理装置３００がカーナビゲーションシステム（以下、簡単にカーナビと呼ぶ）に適用され、アプリ処理装置３００が、カーナビの機能を実現するためのアプリケーションを実行する場合には、起動部３０１を起動させるための図示しないボタンがユーザにより押されたときに起動部３０１が起動する。
【００３８】
起動部３０１は、上記アプリケーションプログラム群の実行順序や各プログラムを実行する際に必要なスクラップブックに関する情報などを示す複数のレコードからなる手順データが予め記憶されているメモリを有し、起動部３０１が起動されると、起動部３０１は、当該メモリ内に予め格納されている手順データを制御部３０２にセットする（ステップＳ５０１）。
【００３９】
図３は、起動部３０１のメモリに予め記憶されている手順データの一例を示したものである。図３に示すように、手順データは、アプリケーションプログラム群の各プログラムの実行順序（例えば、ここでは、「ステップ１」〜「ステップ５」）別の複数のレコードからなり、各レコードには、各ステップで実行すべきプログラムあるいはプログラムの識別子（例えば、ここでは「プログラム１」〜「プログラム５」）、当該プログラムで用いる引数に関する情報の記述された引数リスト、当該プログラムで用いるスクラップブックあるいはスクラップブックの識別子（例えば、ここでは「スクラップブック１」〜「スクラップブック５」）、当該引数リストに挙げられている各引数が挿入されるべき当該スクラップブック中のコンテナの位置情報などを含む引数・コンテナ対応付け情報などの情報が含まれている。
【００４０】
なお、本システムがＷｅｂサーバシステムであるならば、プログラムの識別子はＣＧＩプログラムへのＵＲＬ、スクラップブックの識別子はスクラップブックへのＵＲＬであってもよい。
【００４１】
制御部３０２は、起動部３０１から受け取った手順データを基に、各手順データのレコードに対応する処理を実行し終わるまでの間、アプリケーションの実行制御を司るようになっている。
【００４２】
制御部３０２は、手順データの各レコードを順番に取り出し、全てのレコードを取り出すまで、以下のステップＳ５０３〜ステップＳ５０６を繰り返す（ステップＳ５０２）。
【００４３】
制御部３０２は、レコードを１つ取り出すと（現在処理中のレコードをカレントレコードと呼ぶ）、これをスクラップブック生成部３０３に渡し、スクラップブック生成部３０３は、当該カレントレコードからスクラップブックの識別子を取り出し、当該識別子に対応するスクラップブックを生成する。スクラップブック生成部３０３は、例えば、複数の識別子のそれぞれに対応するスクラップブックの複数のフォーマットが予め記憶された記憶手段を有し、当該カレントレコードに含まれるスクラップブックの識別子に対応するフォーマットを当該記憶手段から読み出し、このフォーマットと、当該カレントレコードに含まれる引数リストや、引数・コンテンツ対応付け情報などを用いて、スクラップブックを生成する。引数リストには、各引数名と、当該引数に予め定められた受理条件や操作許容条件、具体的にはタイプ名・個数・値などや、これらを組み合わせたものが記述されている。この情報を用いて、各引数に対してコンテナ１つが対応するようなスクラップブックを生成する。
【００４４】
あるいは、スクラップブック生成部３０３は、例えば、複数の識別子のそれぞれに対応する複数のスクラップブックそのものが予め記憶された記憶手段を有し、当該カレントレコードに含まれるスクラップブックの識別子に対応するスクラップブックを当該記憶手段から読み出すようにしてもよい。
【００４５】
スクラップブック生成部３０３は、このようにして生成された（読み出された）スクラップブックをスクラップブック編集装置３１０へ送信する（ステップＳ５０３）。
【００４６】
続いて、スクラップブック編集装置３１０によって、当該スクラップブックの各コンテナへのコンテンツの挿入や、各コンテンツに対する編集が行われる。スクラップブック編集装置３１０でのスクラップブックの編集作業においては、ユーザは、さまざまな素材提供装置３２０から得られたコンテンツを引用することで、スクラップブックを編集することができる。スクラップブック編集装置３１０の処理動作の詳細は、後述する。スクラップブック編集装置３１０によって編集された（コンテンツが埋められた）当該スクラップブックは、アプリ処理装置３００へ送信される（ステップＳ５０４）。
【００４７】
アプリ処理装置３００のスクラップブック受信部３０４は、スクラップブック編集装置３１０から送信されたスクラップブックを受け取ると、カレントレコードに含まれる引数・コンテナ対応付け情報を参照して、当該スクラップブックの各コンテナから、当該コンテナに対応付けられた引数名に対応するコンテンツを取り出し、この取り出したコンテンツを当該引数名とともに処理ステップ実行部３０５に渡す（ステップＳ５０５）。
【００４８】
処理ステップ実行部３０５は、カレントレコードに含まれるプログラム識別子に対応するプログラムを所定の記憶手段から読み出し、当該スクラップブックから取り出されたコンテンツを引数として用いて当該読み出したプログラムを実行する（ステップＳ５０６）。その後、ステップＳ５０２へ戻る。
【００４９】
（具体例）
次に、図１に示したシステムを、病院での電子カルテ・処方箋システムに適用した場合を例にとり、当該システムの動作の概要を、図４を参照して説明する。このシステムでは、１ステップからなるアプリケーションプログラムが実行される。すなわち、手順データの唯一のレコードに対応するステップ１により、アプリ処理装置３００では、患者データ・検査データ・処方薬を引数として受け取り、患者への販売処理を行うためのプログラムが実行される。
【００５０】
手順データのステップ１のレコードの引数リストには、例えば、以下に示すような情報が含まれている。
【００５１】
(“param_patient”, “type(Patient) and max(1) and url(/)”),
(“param_study”, “type(Study) and test(/study[@year >= 2004]) and url(/)”),
(“param_medicine”, “type(Medicine)”)
「ｐａｒａｍ＿ｐａｔｉｅｎｔ」は患者データに対応する引数名であり、当該引数に対し、「Ｐａｔｉｅｎｔ」という型のコンテンツであり、かつ個数は１つまでであり、かつ自サイトから提供されるコンテンツであるといった、受理条件が指定されている。なお「ｕｒｌ」のカッコ内には受け入れ範囲となるサイトを自サイトからの相対ＵＲＬで指定するようになっている。ここでは「／」と指定されているが、これは自サイトのルートディレクトリを示すため、自サイトならばどこからでも受け取る、という意味となる。
【００５２】
「ｐａｒａｍ＿ｓｔｕｄｙ」は検査データに対応する引数名であり、当該引数に対し、「Ｓｔｕｄｙ」という型のコンテンツであり、かつ当該コンテンツ内の「ｙｅａｒ」という属性の値が「２００４」以上であり、かつ自サイトから提供されるコンテンツであるとい受理条件が指定されている。
【００５３】
「ｐａｒａｍ＿ｍｅｄｉｃｉｎｅ」は処方箋に対応する引数名であり、当該引数に対し、「Ｍｅｄｉｃｉｎｅ」という型のコンテンツが指定されている。
【００５４】
なお各コンテンツはＸＭＬで記述され、Ｐａｔｉｅｎｔ型のコンテンツには、患者名、患者ＩＤ、入院日、服用中の薬名群の情報が含まれている。Ｓｔｕｄｙ型のコンテンツには、検査年・月・日、検査データ、Ｘ線写真データへのＵＲＬが含まれている。Ｍｅｄｉｃｉｎｅ型のコンテンツには、薬名と薬ＩＤの情報が含まれている。
【００５５】
手順データのステップ１のレコードで指定されているスクラップブック（スクラップブック生成部３０３で生成されるスクラップブックあるいは、当該レコードに含まれるスクラップブック）の一例を以下に示す。
【００５６】
<?xml version=”1.0”?>
<karte style=”karte.xsl”>
<accept type=”Patient” if=”max(1) and url(/)”/>
<accept type=”Study” if=”test(/study[@year >= 2004]) and url(/)”/>
<accept type=”Medicine”/>
</karte>
上記スクラップブックの各コンテナ（ａｃｃｅｐｔ要素）には、手順データのステップ１のレコードに含まれる引数リストにより各引数に対し指定された条件（ここでは、例えば受理条件のみ）が記述されている。
【００５７】
手順データのステップ１のレコードに含まれる引数・コンテナ対応付け情報の一例を以下に示す。
【００５８】
(“param_patient”, “/karte/accept[1]”),
(“param_study”, “/karte/accept[2]”),
(“param_medicine”, “/karte/accept[3]”),
引数・コンテナ対応付け情報の各データは、引数と、スクラップブック内での構造位置を示す情報とを１組とするデータであり、スクラップブック内での構造位置は、Ｗ３Ｃで標準化されているＸＰａｔｈ (XML Path Language)で記述されている。上記引数・コンテナ対応付け情報によれば、引数「ｐａｒａｍ＿ｐａｔｉｅｎｔ」が上記スクラップブック中の１つ目のコンテナ（ａｃｃｅｐｔ要素）に対応し、引数「ｐａｒａｍ＿ｓｔｕｄｙ」が上記スクラップブック中の２つ目のコンテナ（ａｃｃｅｐｔ要素）に対応し、引数「ｐａｒａｍ＿ｍｅｄｉｃｉｎｅ」上記スクラップブック中の３つ目のコンテナ（ａｃｃｅｐｔ要素）に対応することを示している。
【００５９】
手順データのステップ１のレコードに含まれる、あるいは、識別子により指定されているプログラムは、例えば、次のような内容の処理を行うプログラムである。
【００６０】
１．第１引数の患者データ内に含まれる服用中の薬群を取り出す（薬Ａ・薬Ｂ）。
【００６１】
２．第３引数の処方薬群を取り出す（薬Ｃ・薬Ｄ・薬Ｅ）。
【００６２】
３．第３引数の処方薬群のなかに、服用中の薬群と組み合わせてはならないものがないかチェックする。
【００６３】
４．あればエラーを返して処理はストップ、なければ薬Ｃ・Ｄ・Ｅについて、在庫をチェックする。
【００６４】
５．在庫がなければエラーを返して処理ストップ、あれば患者への販売処理をする。
【００６５】
プログラムを記述する言語としては、たとえばＰｅｒｌ言語やＣ言語などが挙げられる。
【００６６】
このようなシステムに対し、ユーザである薬剤師あるいは医者が所定の操作を行うことにより起動部３０１を起動すると（ステップＳ５００）、図２に示したようにして、上記手順データ（ステップ１のレコード）が読み出され、スクラップブック生成部３０３で、当該レコードから得た上記スクラップブックがスクラップブック編集装置３１０へ渡される（ステップＳ５０１〜ステップＳ５０３）。
【００６７】
ユーザはこのスクラップブックに対して、各コンテナに設定された受理条件を満たす限り、任意のコンテンツを当該コンテナへ挿入することができる。
【００６８】
ここでの例では、上記スクラップブックに、自病院内の患者データベース（図１の素材提供装置３２０に相当）から読み出された患者データ一覧表に含まれる対象患者の患者データ（コンテンツ）を挿入するとともに、自病院内の検査機器（図１の素材提供装置３２０に相当）が出力する検査データ一覧に含まれる投薬の根拠となる検査データを２，３個挿入し、さらに、処方する薬を、薬品会社の薬データベース（図１の素材提供装置３２０に相当）からピックアップして挿入する。また、当該ユーザのパーソナルコンピュータ（図１の素材提供装置３２０に相当）内に設けられたローカルデータベースに格納されている薬のリストなどからピックアップして挿入するようにしてもよい。このようなコンテンツを挿入する際に、上記スクラップブックの各コンテナに設定された受理条件を満たさない場合には、当該コンテンツは拒絶される。すなわち、当該コンテナへ挿入することはできない。
【００６９】
たとえば上述のように、<accept type=”Patient” if=”max(1) and url(/)”/> で示されるコンテナが受理するコンテンツは、型はPatient型であり、かつ総数は1でかつ同じＷｅｂサイトでなければならない、と制限されている。したがって、このコンテナに対してＭｅｄｉｃｉｎｅ型のコンテンツを挿入しようとしても拒絶される。あるいはすでにｐａｔｉｅｎｔ型のコンテンツが1つ挿入済みである状態である場合に、さらに患者型のコンテンツを挿入しようとしても拒絶される。
【００７０】
このようにして、スクラップブック編集装置３１０を用いたユーザによるスクラップブックの編集作業が終了すると、例えば、当該スクラップブックの表示画面上に設けられた申請ボタンを押すことで、当該スクラップブックの内容がそのままアプリ処理装置３００へ送信される（ステップＳ５０３）。
【００７１】
スクラップブック編集装置３１０で編集され、アプリ処理装置３００へ送信されたスクラップブックの一例を以下に示す。スクラップブックは、ここでは、ＸＭＬ（Extensible markup language）で記述された構造化文書である。
【００７２】
<?xml version=”1.0”?>
<karte style=”karte.xsl”>
<accept type=”Patient” if=”max(1) and url(/)”>
<patient component=”yes” type=”Patient” name=”Hamada Shin” id=”aa221”>
<medicine id=”1133” name=”A”/>
<medicine id=”4113” name=”B”/>
</patient>
</accept>
<accept type=”Study” if=”test(/study[@year >= 2004]) and url(/)”>
<study component=”yes” type=”Study” year=”2004” date=”2” day=”2” xray=”xray0001.jpg”>
<weight>65</weight>
<height>167</height>
</study>
</accept>
<accept type=”Medicine”>
<medicine component=”yes” type=”Medicine” id=”1133” name=”C”/>
<medicine component=”yes” type=”Medicine” id=”1013” name=”D”/>
<medicine component=”yes” type=”Medicine” id=”3438” name=”E”/>
</accept>
</karte>
アプリ処理装置３００は、上記スクラップブックを受け取ると、スクラップブック受信部３０４において、上記手順データのステップ１のレコードに含まれる、引数・コンテナ対応付け情報を用いて、各引数に対応するコンテナから当該コンテナに挿入されたコンテンツが取り出され（ステップＳ５０５）、処理ステップ実行部３０５において、上記手順データのステップ１のレコードにて指定されているプログラムを起動し、スクラップブック受信部３０４から渡された各引数に対応するコンテンツ（ここでは、ＸＭＬで記述されたＸＭＬデータ）を用いて、上記のようなプログラムが実行される。
【００７３】
（システム構成のバリエーション）
図１に示したシステムにおいて、アプリ処理装置３００と、スクラップブック編集装置３１０は、別個のコンピュータ（例えばパーソナルコンピュータ）により実現され、ネットワークを介して通信しあう、Ｃ／Ｓ（クライアント・サーバ）システムであってもよい。
【００７４】
また、アプリ処理装置３００の機能とスクラップブック編集装置３１０の機能とが、同一のデバイス内で実現されていてもよい。このような形態のものを情報デバイスと呼ぶ。
【００７５】
素材提供装置３２０は、Ｗｅｂサーバであってもよい。この場合、スクラップブック編集装置３１０と素材提供装置３２０とはクライアントとサーバの関係となり、ネットワークで通信して、素材提供装置３２０からスクラップブック編集装置３１０へコンテンツ群がＷｅｂページとして提供される。この場合に、素材提供装置３２０とアプリ処理装置３００が同一であってもよい。
【００７６】
素材提供装置がＣＤ−ＲＯＭや携帯型メモリカードなどの携帯可能な記録媒体であってもよい。この場合は、クライアントＰＣあるいは情報デバイスなどのスクラップブック編集装置３１０により上記記録媒体からコンテンツやコンテンツを含む文書を読み出すことにより、コンテンツ群が提供される。あるいは、スクラップブック編集装置として機能するクライアントＰＣ上に構築された個人データベース（アルバムソフトなど）であってもよい。個人データベースは、ユーザが有用と思われるコンテンツ群をユーザのＰＣ上に取っておくための仕組みである。これにより、後から見たくなったときには、インターネット上のサイトに検索し直さなくてもいつでも見ることができる。もちろん、この個人データベースも素材提供装置として動作する。
【００７７】
典型的な利用形態としては、Ｗｅｂサイトから横断的にコンテンツを収集する利用形態が考えられるが、それに限らず様々な利用形態が考えられる。たとえば、アプリ処理装置３００、スクラップブック編集装置３１０、素材提供装置３２０の各機能を全て備えた情報デバイス同士が互いに接続して、コンテンツを交換しあうような利用形態であってもよい。
【００７８】
次に、スクラップブック編集装置３１０について説明する。
【００７９】
（スクラップブック編集装置）
（用語の説明）
まず、以下の説明で用いる用語の説明を行う。
【００８０】
Ｗｅｂ文書（Ｗｅｂページ）とは、インターネットを介して閲覧可能な、ＨＴＭＬやＸＭＬなどで記述された、複数の要素から構成された文書構造を有する構造化文書である。なお、以下の説明では、Ｗｅｂ文書を例にとり説明するが、この場合に限らない。インターネットを介して閲覧されることを目的として作成され、インターネットを介して取得した構造化文書でなくとも、任意のエディタで任意の目的で作成され、任意の手段で取得した、ＨＴＭＬ文書やＸＭＬ文書などの一般的な構造化文書であっても、本実施形態は適用可能である。
【００８１】
コンテンツは、表示されたＷｅｂページ中の内容的にまとまりのある、例えば、それぞれが内容的に独立性の高い表示データであって、どのようにコンテンツを区切るかは、Ｗｅｂページの作者の意図するところである。コンテンツは、Ｗｅｂページの作者によって、全く異なる観点から様々に区切ることのできるＷｅｂページ中の部分文書であって、１つのＷｅｂページ（Ｗｅｂ文書）中のユーザが独立的に取り扱いたい部分文書とも言える。例えば、ポータルサイトの多くは、トップページにおいて、ポートレットと呼ばれる部分的なページエリアに、株価情報・気象情報・ニュース記事など、異なるジャンルの情報を、組み合わせて記載している。例えば、ジャンル別の情報、すなわち、例えば、ニュース記事や気象情報のそれぞれがコンテンツ（部分文書）であってもよいし、ニュース記事中の１つ１つのニュースがコンテンツ（部分文書）であってもよい。コンテンツの内容、区切り方は特に限定するものではない。なお、１つのＷｅｂページ全体が１つのコンテンツとしてもよいし、１つのコンテンツが複数のコンテンツを包含してもよい。
【００８２】
素材提供装置から提供される文書は、Ｗｅｂ文書やＨＴＭＬ文書やＸＭＬ文書などのコンテンツを含む文書である。
【００８３】
コンテナは、コンテンツを格納する領域のことである。コンテンツはコンテナを内部に複数持つことができるようになっており、コンテナは同じあるいは異なる複数のコンテンツを格納することができる。従ってコンテンツ〜コンテナが反復的に再帰するツリー構造が構成され得る。本システムでは、ページ（文書）全体もコンテンツとしてみなし、これを説明のためルートコンテンツと呼ぶ。スクラップブックは、ルートコンテンツが１つあり、そのルートコンテンツの中に複数のコンテナが存在するものといえる。
【００８４】
アプリ処理装置３００から提供されるスクラップブックは、上記コンテナやコンテンツを含む、Ｗｅｂ文書やＨＴＭＬ文書やＸＭＬ文書などの文書である。また、素材提供装置３２０から提供される文書にも上記コンテナを含む場合もある。
【００８５】
本実施形態に係るスクラップブック編集装置３１０は、上記コンテナを含む、Ｗｅｂ文書やＨＴＭＬ文書やＸＭＬ文書などの文書（スクラップブックや素材提供装置から提供される文書を含む）を処理対象として、当該処理対象の文書に含まれるコンテナにコンテンツを挿入（格納）したり、当該コンテンツに対する操作を行うようになっている。
【００８６】
利用制御条件とは、コンテンツに与えられる付加情報(メタ情報)の１つであり、（スクラップブック編集装置３１０の）ユーザによる当該コンテンツの利用に関して、ケースごとに許可する操作およびアクセス方法などを規定するものである。コンテンツの提供者の意図が反映されている。すなわち、コンテンツに設定された利用制御条件は、当該コンテンツに対する操作の種別、当該コンテンツを利用する装置やユーザの識別子やＩＰアドレス、ＬＡＮなどの利用環境、当該コンテンツの有効期間及び当該コンテンツが利用可能な場所のうちの少なくとも１つが指定されている。
【００８７】
また、受理条件・操作許容条件とは、コンテナに与えられる付加情報(メタ情報)の１つである。このうち受理条件とは、コンテナにコンテンツを挿入（格納）する際の条件を定めたものである。すなわち、コンテナに設定された受理条件には、当該コンテナに挿入可能なコンテンツのタイプ、個数及び当該コンテナへのコンテンツの挿入する装置・システムやユーザの識別子やＩＰアドレス、ＬＡＮなどの利用環境のうちの少なくとも１つが指定されている。
【００８８】
操作許容条件とは、コンテナに格納されたコンテンツに対する、（スクラップブック編集装置３１０の）ユーザによる利用に関して、ケースごとに許可する操作およびアクセス方法などを規定するものである。コンテンツに付与可能な利用制御条件と内容は同様であり、コンテナに設定された利操許容条件は、当該コンテナ内のコンテンツに対する操作の種別、当該コンテンツを利用する装置・システムやユーザの識別子、ＩＰアドレス、ＬＡＮなどの利用環境、当該コンテンツの有効期間及び当該コンテンツが利用可能な場所のうちの少なくとも１つが指定されている。ただし、コンテンツに付与される利用制御条件は、当該コンテンツの提供者の意図が反映されたものであって、コンテナに付与される受理条件・操作許容条件は、コンテナを含む文書（アプリ処理装置３００から提供されるスクラップブックや、素材提供装置３２０から提供される文書を含む）の提供者の意図が反映されている。ただし、コンテンツ提供者とコンテナ提供者が同一であってもよい。
【００８９】
本実施形態に係るスクラップブック編集装置３００では、その処理対象となっているスクラップブックの任意のコンテナに任意の素材提供装置３２０から提供された文書に含まれるコンテンツを挿入し、当該挿入されたコンテンツに含まれるコンテナにさらに、任意の素材提供装置３２０から提供された文書に含まれるコンテンツを挿入するといった操作を行う場合もある。また、任意の素材提供装置３２０から提供された文書中の任意のコンテンツ内容を更新した後に、当該更新されたコンテンツをスクラップブックの任意のコンテナに挿入する場合もあれば、逆に、任意の素材提供装置３２０から提供された文書中の任意のコンテンツをスクラップブックの任意のコンテナに挿入した後、当該コンテナに挿入されたコンテンツの内容を更新する場合もある。以下に説明するスクラップブック編集装置３００では、以下に説明するように、上記いずれの場合も可能である。
【００９０】
（スクラップブック編集装置の構成）
スクラップブック編集装置３１０では、アプリ処理装置３００から提供されるスクラップブックや素材提供装置３２０から提供される文書をブラウザを用いて表示し、ブラウザ上でのドラッグドロップなどのＧＵＩ操作で、コンテンツを自由に組み合わせる機能を有する。
【００９１】
具体的には、あるブラウザから別のブラウザへ、ドラッグドロップなどのＧＵＩ操作でコンテンツを受け渡したり、コンテナを含む文書を表示するブラウザを開き、さまざまな文書から取り込みたいコンテンツをドラッグドロップなどのＧＵＩ操作でそのブラウザへ受け渡す。
【００９２】
スクラップブック編集装置３１０のブラウザは、インターネットあるいはファイルシステムなどにあるＷｅｂ文書を読み込むと、従来のブラウザと同様Ｗｅｂ文書を表示するが、これに加えて、コンテンツをユーザが便利に取り扱うための多くの操作機能を有する。
【００９３】
（自由な再配置機能）  Ｗｅｂ文書の表示画面上において、ユーザがドラッグドロップなどのＧＵＩ操作を用いて、任意のコンテンツを別の位置へ動かす。
【００９４】
（ページ間受け渡し機能）  異なる文書間で、一方の文書のコンテナへ他方の文書のコンテンツを受け渡す。なお、ページ間受け渡しの際に、受け渡し先の文書のコンテナにはコンテンツ単位の受理条件が付与されている。
【００９５】
（形式（タイプ）の調整機能）  異なる文書間で、一方の文書のコンテナへ他方の文書のコンテンツを受け渡す際に、当該コンテンツのタイプと当該コンテナで受理可能なタイプとのミスマッチを解消する。コンテンツのタイプがそれを受ける側のコンテナに指定されたタイプに合わないと判定されると、適切な変換ルールを探し出し、この探し出したルールを当該コンテンツに適用して、当該コンテンツのタイプを受け側のコンテナで受理可能なタイプに変換してから当該コンテナへ挿入する。
【００９６】
（デザイン切替）  コンテンツに対してデザイン（表示形式）を切り替える。この機能は、Ｗｅｂ文書がＸＭＬ文書などのようにデータとスタイルシート（表示方法）が分離して記述されている場合にのみ利用可能である。
【００９７】
（挿入機能）  コンテンツを他のコンテンツ内に挿入する。この機能は再帰的であり、コンテンツが持つコンテナの中にコンテンツを入れ、また内部のコンテンツが持つコンテナの中に別のコンテンツを入れる処理を行うことができる。
【００９８】
（受け入れ判定機能）  ドラッグドロップなどのＧＵＩ操作で、あるコンテンツをあるコンテナへ挿入する際、受け入れる側となるコンテナに、コンテンツを挿入する際の条件（受理条件）が設定され、挿入されるコンテンツに当該コンテンツを利用する際の条件（利用制御条件）が設定されていたときに、これら条件を満たさない場合は、挿入操作をキャンセルする。受理条件には、主にアプリケーション提供者の意図が反映されている。また、利用制御条件には、主に素材提供者の意図が反映されている）。
【００９９】
なお、挿入対象のコンテンツのタイプが受け入れ側のコンテナに設定されているタイプに関する受理条件に合致していない場合、上記形式の調整機能を用いて、当該コンテナが受け入れ可能なタイプに変換できるかどうかを試みる。受け入れ可能なタイプへの変換ルールが見つかった場合には、当該コンテンツは挿入可能と判定される。見つからなければ、挿入操作はキャンセルされる。
【０１００】
（コンテンツ編集機能）  この機能を起動すると編集モードとなり、ユーザは、ブラウザ上で、現在選択しているコンテンツを編集することができる。
【０１０１】
（保存機能）  ユーザが上記各機能を用いて編集した文書を保存する。保存の形式としては、所定のデータ構造を有するコンテンツ（コンテナを有するコンテンツを含む）毎のページ部品単位で保存する。
【０１０２】
（ページ部品）
コンテンツは他のコンテンツに包含される（親のコンテンツをもつ）こともあれば、他のコンテンツを包含する（子のコンテンツをもつ）こともある。これをコンテンツ（部分文書）間の包含関係あるいは親子関係と呼ぶ。
【０１０３】
前述したように、文書全体も１つのコンテンツとみなす。コンテンツは１または複数のコンテナを含む場合もあれば、コンテナを含まない場合もある。そして各コンテナは１または複数のコンテンツを含む場合もあれば、コンテンツを含まない場合もある。このように、文書（素材提供装置３２０から提供される文書やスクラップブック）は、図５に示すように、ある１つのコンテンツ（例えば、文書）をルートとする階層構造（ツリー構造）を有している。
【０１０４】
アプリ処理装置３００から提供されるスクラップブックは、空の状態のコンテナを少なくとも１つ有するものである。
【０１０５】
図５に示す文書（ルートコンテンツ（０））は、４つのコンテナ（コンテナ（１１）、コンテナ（１２）、コンテナ（１３）、コンテナ（６））を有し、コンテナ（１１）はコンテンツ（１）を含み、コンテナ（１２）はコンテンツ（２）を含み、コンテナ（１３）はコンテンツ（３）を含み、コンテナ（６）は空の状態である。また、コンテンツ（３）はコンテナ（４）を有し、コンテナ（４）はコンテンツ（５）を有する。図５に示すように、ルートコンテンツや、それ以外のコンテンツがコンテンツを保持する場合には、必ずコンテナを介して（コンテナ（ａｃｃｅｐｔ要素）内に）保持するようになっている。
【０１０６】
図５に示した文書が、スクラップブックの場合には、スクラップブック編集装置３１０により編集されることにより、各コンテナにコンテンツが挿入されて、例えば、図６に示すような構造を有する文書が生成される。図６では、図５の各コンテナに、コンテンツが挿入された場合を示している。コンテナ（６）に挿入されたコンテンツ（８）がコンテナ（９）を含み、さらに、当該コンテナ（９）にコンテンツ（１０）が挿入されている。また、コンテナ（６）のように、１つのコンテナには複数の（ここでは２つ）のコンテンツが挿入されている。図６に示すように、コンテナにコンテンツを挿入することにより、当該コンテンツは、挿入先のコンテナの子ノードとして表すことができ、親子関係にあると云える。
【０１０７】
スクラップブック処理装置３１０では、コンテンツ（コンテナを含む場合もある）を処理単位としている。従って、文書中で、どこがコンテンツに当たるのか（すなわち、コンテンツ間（部分文書間）の包含関係）に関する情報が必要となる。これをここでは、ブロック構造情報と呼ぶ。ここでは、文書中で１つのページ部品に対応するコンテンツに対応するルートエレメントに「ｃｏｍｐｏｎｅｎｔ」属性を与え、コンテナが存在する位置にａｃｃｅｐｔエレメントを与え、これらをブロック構造情報として用いている。
【０１０８】
また、１つの文書を当該文書中に含まれているブロック構造情報を基に、スクラップブック処理装置３１０の処理単位であるコンテンツ単位のページ部品に分解することをブロック化とも云う。
【０１０９】
また、現在広く用いられているＨＴＭＬ文書やＸＭＬ文書などのＷｅｂ文書には、もちろんブロック構造情報（すなわち、「ｃｏｍｐｏｎｅｎｔ」属性）は含まれていない。
【０１１０】
スクラップブック編集装置３１０では、コンテンツ、コンテナを含むコンテンツ、１つまたは複数のコンテナを含み、各コンテナにはさらにコンテンツが含まれているような文書、１つまたは複数のコンテナを含み、そのうちの少なくとも１つは空の状態であるような文書（例えばスクラップブック）を図７に示すようなデータ構造を有するページ部品として管理・処理している。
【０１１１】
ページ部品とは、コンテンツ（および直下のコンテナ群の集合）に１対１に対応し、ページ部品には、上記親子関係を示す参照情報や、当該コンテンツの内容や、その利用制御条件などを含み、コンテナを含む場合には当該コンテナに定められている受理条件・操作許容条件、コンテナに挿入されているコンテンツがある場合には当該コンテンツへの参照情報などが含まれている。
【０１１２】
文書全体を１つのコンテンツとする場合もあり、この場合には、当該文書に含まれる各コンテンツに対応するページ部品が、文書全体に対応するページ部品と図５に示すような親子関係（階層構造）を有することとなる。
【０１１３】
図７に示したページ部品Ｄ１は、２つのコンテナを有するコンテンツに対応するページ部品であり、特に、当該２つのコンテナに２つのコンテンツがそれぞれ挿入されている場合の（すなわち、２つのページ部品（コンテンツ）を含み、これら２つのコンテンツを子ノードとしてもつ）ページ部品のデータ構造の一例を示している。ページ部品には、複数のオブジェクトデータＤ１１〜Ｄ１７が含まれている。
【０１１４】
コンテンツＤ１２が当該ページ部品Ｄ１に対応するコンテンツの実体データである。
【０１１５】
２つのコンテナ情報Ｄ１４のそれぞれは、コンテテンツＤ１２内の当該コンテナが挿入されている場所を示す情報Ｄ１４１、当該コンテナに挿入可能なコンテンツのタイプを示す受理タイプＤ１４２、さらに、受理タイプ以外の受理条件１４３や、操作許容条件１４４が含まれている。当該２つのコンテナに挿入されたコンテンツに対応するページ部品に関する情報は、図７のページ部品Ｄ１では、子ページ部品管理情報Ｄ１６である。
【０１１６】
各子ページ部品管理情報Ｄ１６は、当該子ページ部品の挿入場所を示す情報Ｄ１６１、当該子ページ部品への参照情報Ｄ１６２を含む。
【０１１７】
ページ部品Ｄ１には、タイプ名Ｄ１１とコンテンツＤ１２とスタイルシートＤ１３とコンテナ情報Ｄ１４と親ページ部品への参照Ｄ１５と子ページ部品管理情報Ｄ１６という情報が含まれているが、これらの情報は、コンテンツＤ１２の文書中で当該ページ部品に対応する要素内に予め定められたタグ名の要素や属性として記述されていたり、当該コンテンツＤ１２に対応する要素（トップノード）の属性として記述されている。
【０１１８】
タイプ名Ｄ１１は、コンテンツＤ１２のタイプ名である。タイプとは、当該コンテンツのデータ形式（形式的な違い）や、当該コンテンツの内容に関するカテゴリ・ジャンルの違い（意味的な違い）に応じて各コンテンツを区別するためのもので、このようなコンテンツの意味的、形式的な違いに応じた各タイプを区別するための識別情報がタイプ名である。タイプ名Ｄ１１には、当該コンテンツＤ１２に対応する部分文書のトップノードであるエレメント（要素）に付される「ｔｙｐｅ」属性で記述されている。
【０１１９】
スタイルシートＤ１３は、コンテンツＤ１２を表示するための表示データに変換するための当該コンテンツＤ１２に適用可能な変換規則（スタイルシート）である。当該コンテンツＤ１２に複数の表示形式が適用可能であれば、各表示形式に対応する複数のスタイルシートＤ１３がページ部品Ｄ１に含まれていることになる。スタイルシートは、コンテンツＤ１２に対応する部分文書のトップノードであるエレメント（要素）に記述される「ｓｔｙｌｅ」属性で記述されている。
【０１２０】
コンテナ情報Ｄ１４に含まれる受理タイプＤ１４２は、コンテンツＤ１２に含まれる当該コンテナが受け入れ可能な（当該コンテナに挿入可能な）コンテンツのタイプ名（のリスト）であり、挿入場所Ｄ１４１は、コンテンツＤ１２内の当該コンテナの挿入位置を示している。
【０１２１】
コンテンツ内では、ここでは、各コンテナは「ａｃｃｅｐｔ」要素として記述されている。受理タイプＤ１４２は、コンテンツＤ１２中の「ａｃｃｅｐｔ」要素の属性として記述されており、挿入場所Ｄ１４１は、この「ａｃｃｅｐｔ」要素のページ部品Ｄ１に対応するコンテンツ内の文書構造上の配置位置を示している。
【０１２２】
１つのコンテンツには複数の「ａｃｃｅｐｔ」要素、すなわち、コンテナが含まれている場合もあり、この場合には、コンテンツ情報Ｄ１４もコンテナの数だけ存在する。コンテンツ内では、受理条件はｉｆ属性に、操作許容条件はａｃｃｅｐｔエレメント直下の「ｕｓａｇｅ」要素に記述されている。
【０１２３】
親ページ部品への参照Ｄ１５は、コンテンツＤ１２が他のコンテンツに包含されている場合（即ち、コンテンツＤ１２が他のコンテンツ内のコンテナに挿入されている場合）、当該ページ部品Ｄ１の親である他のコンテンツに対応するページ部品とを関連付けるための情報である。スクラップブックや、文書のように、親であるコンテンツは存在しない場合には、当該ページ部品には、親ページ部品への参照Ｄ１５は含まれない。
【０１２４】
子ページ部品管理情報Ｄ１６は、コンテンツＤ１２が他のコンテンツを包含している場合（即ち、コンテンツＤ１２のコンテナにコンテンツが挿入されている場合）、当該ページ部品Ｄ１と子供である他のコンテンツに対応するページ部品とを関連付けるための情報であり、コンテンツＤ１２の文書構造上の当該他のコンテンツの挿入場所Ｄ１６１と、当該他のコンテンツが存在する場所を示す位置情報である子ページ部品への参照Ｄ１６２を含む。挿入場所Ｄ１６１は、当該コンテンツＤ１２中の、当該コンテンツを挿入することを指示する要素（例えば、後述する「ａｃｃｅｐｔ」エレメントなど）の配置位置を示しており、この要素の例えば属性として、挿入するコンテンツの位置情報としての子ページ部品への参照Ｄ１６２が記述されている。
【０１２５】
また、利用制御条件Ｄ１７は、コンテンツＤ１２のルートエレメント直下の「ｕｓａｇｅ」要素以下が対応する。
【０１２６】
ここで、図５に示したような構造を有する文書を例にとり、当該文書から得られるページ部品について説明する。図５においては、ルートコンテンツ（０）、コンテンツ（１）、コンテンツ（２）、コンテンツ（３）及びコンテンツ（５）が、それぞれ１つのページ部品に相当し、ルートコンテンツ（０）に対応するぺージ部品には、ルートコンテンツ（０）の実体データであるコンテンツＤ１２、コンテナ（１１）、コンテナ（１２）、コンテナ（１３）、コンテナ（６）にそれぞれ対応するコンテナ情報Ｄ１４、コンテナ（１３）が保持する（コンテナ（１３）に挿入されている）コンテンツ（３）に対応するページ部品に関する情報（子ページ部品管理情報）Ｄ１６などが含まれている。
【０１２７】
また、上記コンテンツ（３）に対応するページ部品には、コンテナ（３）の実体データであるコンテンツＤ１２、コンテナ（４）に対応するコンテナ情報Ｄ１４、当該コンテンツ（３）の挿入先の親ページ部品であるルートコンテンツ（０）に対応するページ部品に関する情報（親ページ部品への参照）Ｄ１５、コンテナ（４）が保持する（コンテナ（１４）に挿入されている）コンテンツ（５）に対応するページ部品に関する情報（子ページ部品管理情報）Ｄ１６などが含まれている。  スクラップブック編集装置３１０は、複数のコンテンツを含む文書や、複数のコンテンツやコンテナを含むスクラップブックもページ部品として処理・管理する。
【０１２８】
図８は、スクラップブックに対応するページ部品の一例を示したものであり、ここでは、４つのコンテナを含み、各コンテナは空の状態であるスクラップブックの場合を示している。図８に示すように、当該スクラップブックの実体データであるコンテンツＤ１２や、当該コンテンツＤ１２に対する利用制御条件があれば、この利用制御条件Ｄ１７、コンテンツＤ１２のタイプ名Ｄ１１、当該スクラップブックを表示する際にＨＴＭＬ文書の表示データに変換するためのスタイルシートＤ１３、４つのコンテナのそれぞれに対応するコンテナ情報Ｄ１４が含まれている。
【０１２９】
スクラップブック編集装置３１０により図８に示したページ部品に対応するスクラップブックを編集した結果、このスクラップブックの各コンテナにコンテンツが挿入されると、図９に示すようなページ部品が得られる。図９に示すページ部品において、図８に示したページ部品と異なる部分は、４つのコンテナのそれぞれに挿入された４つのコンテンツのそれぞれに対応する子ページ部品管理情報Ｄ１６が追加されている。
【０１３０】
（構成）
図１０は、スクラップブック編集装置３１０の構成例を示したものである。
【０１３１】
図１０に示すように、スクラップブック編集装置３１０は、ホストモジュールＭ１と、文書処理モジュールＭ２を含む。
【０１３２】
ホストモジュールＭ１の基本的な機能は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上にウィンドウフレームを構築し、文書処理モジュールＭ２が機能するためのウィンドウ領域を確保すること、またユーザが操作するためのメニューやツールボタンなどを提供し、入力されたコマンドを文書処理モジュールＭ２に伝えることである。
【０１３３】
ホストモジュールＭ１としては、具体的には、Ｗｅｂブラウザである。ホストモジュールＭ１に、文書処理モジュールＭ２に関して必要な登録処理を行うことにより、文書処理モジュールＭ２がホストモジュールＭ１から呼び出されて起動可能となる。
【０１３４】
文書処理モジュールＭ２は、ホストモジュールＭ１からＷｅｂ文書（アプリ処理装置３００から提供されたスクラップブックや素材提供装置３２０から提供された文書）の数だけ実体化され呼び出される。すなわちＷｅｂページ１つに対して、文書処理モジュールが１つメモリ上に生成される。
【０１３５】
文書処理モジュールＭ２は、大きく分けて文書読込モジュールＭ２１とページ部品処理モジュールＭ２２という２つのサブモジュールを含む。
【０１３６】
文書読込モジュールＭ２１は、ホストモジュールＭ１から与えられた、ブロック構造情報を含む文書（このような文書をここでは、ブロックＷｅｂ文書と呼ぶ）を読み込み、ページ部品処理モジュールＭ２２へ渡す。なお、ページ部品処理モジュールＭ２２で処理対象とする文書は、文書読込モジュールＭ２１で読み込まれたブロックＷｅｂ文書であり、従って、ページ部品処理モジュールＭ２２の説明で、「Ｗｅｂ文書」あるいは「Ｗｅｂページ」とあるのは、全て、上記ブロックｗｅｂ文書のことである。
【０１３７】
ページ部品処理モジュールＭ２２は、ページ部品管理モジュールＭ２２１、レンダリング処理モジュールＭ２２２、ＧＵＩ処理モジュールＭ２２３、形式調整モジュールＭ２２４、条件判定モジュールＭ２２５という５つのサブモジュールを含む。
【０１３８】
ページ部品管理モジュールＭ２２１は、文書読込モジュールＭ２１で読み込まれた文書からページ部品群を生成するとともに、得られたページ部品群をページ部品データベースＭ２２１ｂ（後述）に格納し、このページ部品データベースＭ２２１ｂにアクセスして、ページ部品単位の挿入、移動、削除、更新などによる操作に応じて、各ページ部品を更新する。
【０１３９】
条件判定モジュールＭ２２５は、Ｗｅｂ文書間でページ部品の受け渡し操作が行われたとき（すなわち、一方のＷｅｂ文書（例えばスクラップブック）のコンテナへの他方のＷｅｂ文書のコンテンツの挿入操作の際）に、ページ部品の受け渡しが許可された場合に、すなわち、当該挿入操作がコンテナの受理条件を満たすか否かを判定する。
【０１４０】
ページ部品管理モジュールＭ２２１は、条件判定モジュールＭ２２５で挿入操作が受理条件を満たす場合には、受け側のＷｅｂ文書あるいは当該Ｗｅｂ文書に含まれるコンテンツのページ部品を更新する。
【０１４１】
レンダリング処理モジュールＭ２２２は、ページ部品管理モジュールＭ２２１で管理されている（ページ部品データベースＭ２２１ｂに記憶されている）、各Ｗｅｂページに対応するページ部品群を例えばＨＴＭＬ文書等の表示データに変換して、表示装置に表示する。
【０１４２】
ＧＵＩ処理モジュールＭ２２３は、レンダリング処理モジュールＭ２２２で表示されたＷｅｂ文書上で、ドラッグドロップやコンテクストメニューなどコンテンツやコンテナを操作するためのＧＵＩ機能を提供する。ＧＵＩ操作が行われたら、ページ部品管理モジュールＭ２２１に対して、当該操作に対応するデータ処理機能を呼び出した上で、レンダリング処理モジュールＭ２２２を用いて、表示画面を書き換える。
【０１４３】
形式調整モジュールＭ２２４は、文書処理モジュールＭ２内あるいは文書処理モジュールＭ２間でページ部品の受け渡しを行う際に（例えば、一方のＷｅｂ文書（例えばスクラップブック）のコンテナへの他方のＷｅｂ文書のコンテンツの挿入操作の際に）、挿入されるページ部品（コンテンツ）のタイプ（データ形式）などの調整を行うモジュールである。形式調整ジュールＭ２２４は、条件判定モジュールＭ２２５によってそのページ部品の挿入が許可された場合に、ページ部品管理モジュールＭ２２１が、ページ部品の挿入操作を行う際に呼び出される。
【０１４４】
具体的には挿入操作を行う際に、コンテナに挿入するコンテンツのページ部品のタイプ名Ｄ１１が、挿入先のコンテナのコンテナ情報Ｄ１４に含まれる受理タイプＤ１４２を満たさない場合に、形式調整モジュールＭ２２４は、変換ルールデータベースＭ２２４ｂ（図２４参照）から適切な変換ルールの組み合わせを探し出し、当該コンテンツを当該コンテナが受け入れ可能なタイプのコンテンツに変換して、ページ部品管理モジュールＭ２２１に返す。もし解決できる変換ルールの組み合わせが見つからなかった場合、その旨をページ部品管理モジュールＭ２２１に通知し、ページ部品管理モジュールは挿入操作をキャンセルする。
【０１４５】
条件判定モジュールＭ２２５は、文書読込モジュールＭ２１が読み込んだＷｅｂ文書から得られたコンテンツのページ部品に含まれているタイプ名や利用制御条件と、文書読込モジュールＭ２１が読み込んだＷｅｂ文書から得られたコンテナを含むコンテンツのページ部品に含まれている当該コンテナに対応するコンテナ情報内の受理タイプやそれ以外の受理条件を用いて、当該コンテナへ当該コンテンツを挿入可能か否か判定する。
【０１４６】
また、文書読込モジュールＭ２１が読み込んだＷｅｂ文書から得られたコンテンツのページ部品に含まれている利用制御条件と、文書読込モジュールＭ２１が読み込んだＷｅｂ文書から得られたコンテナを含むコンテンツのページ部品に含まれている当該コンテナに対応するコンテナ情報内の操作許容条件を用いて、当該コンテナへ挿入された当該コンテンツに対する編集操作が可能か否かを判定する。
【０１４７】
例えば、文書処理モジュールＭ２内あるいは文書処理モジュールＭ２間でページ部品の受け渡しを行う際に（例えば、一方のＷｅｂ文書（例えばスクラップブック）のコンテナへの他方のＷｅｂ文書のコンテンツの挿入操作の際に）、操作を行っているユーザやその機器（例えば、スクラップ編集装置３１０として機能しているコンピュータ）が受理条件で指定されている条件を満たしているか否か（挿入を実行する権限を持っているか否か）、そのコンテンツのタイプ（ページ部品に含まれるタイプ名）などが、受理条件で指定されている条件を満たしているか否かをチェックする。
【０１４８】
また、コンテナに受理された当該コンテナ内のコンテンツに対して編集や削除、複製等の操作を行う際にも、当該コンテナの操作許容条件と当該コンテンツの利用制御条件を用いて、操作を行っているユーザやその機器（例えば、スクラップ編集装置３１０として機能しているコンピュータ）が操作許容条件や利用制御条件で指定されている条件を満たしているか否か、当該コンテンツに対する操作が操作許容条件や利用制御条件で指定されている条件を満たしているか否かをチェックし、操作許容条件や利用制御条件を満たす範囲内での編集やその他の操作を実行可能にする。
【０１４９】
図１１は、図１０に示したスクラップブック編集装置３１０を例えばコンピュータ（計算機）上で実現する場合の構成例を示したものである。
【０１５０】
図１１において、スクラップブック編集装置３１０は、プロセッサ（ＣＰＵ）２０、メモリ２２、ディスプレイやプリンタなどの出力装置２４、マウスやキーボードなどの入力装置２３、記憶装置２１から構成されている。
【０１５１】
これらのうち、記憶装置２１は、システムの制御の中枢を担うプログラム等の格納やデータ等の一時保持などに利用されるものであって、ホストプログラム３１、文書処理プログラム３２などを格納している。また、メモリ２２は、上記各プログラム実行の際に利用可能な共有メモリやプログラム実行の際のワーキングエリアなどに利用されるものである。また、プロセッサ２０は記憶装置２１内のプログラムを実行することにより、入出力制御や各種処理を含め、必要な各種制御処理を実施するものである。
【０１５２】
プロセッサ２０は、主に、記憶装置２１内のホストプログラム３１を実行することにより、図１１に示したコンピュータ上で、図１０に示したスクラップブック編集装置のホストモジュールＭ１に対応する機能を実現するようになっている。
【０１５３】
プロセッサ２０は、主に、記憶装置２１内の文書処理プログラム３２を実行することにより、図１１に示したコンピュータ上で、図１０に示したスクラップブック編集装置の文書処理モジュールＭ２に対応する機能を実現するようになっている。
【０１５４】
さらに、プロセッサ２０は、主に、記憶装置２１内の各種アプリケーションプログラム３４を実行することにより、図１１に示したコンピュータ上で、これら各アプリケーション対応の機能を実現するようになっている。
【０１５５】
以下、図１０に示した、文書処理モジュールについて詳細に説明する。
【０１５６】
（文書処理モジュール）
文書処理モジュールＭ２に含まれる各サブモジュールの詳細説明をする前に、当該モジュールＭ２が取り扱うブロックＷｅｂ文書について説明する。
【０１５７】
以下に、ブロックＷｅｂ文書の一例を示す。
【０１５８】
<?xml version=“1.0”?>
<root style=“root.xsl”>
<accept type=“type-a;type-b”>
<a component=“yes” type=“type-a” style=“a1.xsl;a2.xsl;a3.xsl”>
<a>aaaaa</a>
<a>aaaaaaa</a>
</a>
<b component=“yes” type=“type-b” style=“b1.xsl;b2.xsl;b3.xsl”>
<b>bbbbb</b>
</b>
</accept>
</root>
上記ブロックＷｅｂ文書は、「ｒｏｏｔ（ルート）」エレメント以下に、「ａｃｃｅｐｔ」タグで囲まれた１つのコンテナを有し、当該コンテナに２つの独立的に取り扱うことのできるコンテンツ「ａ」、「ｂ」が含まれている。これら２つのコンテンツは、「ｃｏｍｐｏｎｅｎｔ」属性を有し、それぞれ１つのページ部品として表される。すなわち、ページ部品のコンテンツＤ１２に対応するコンテンツの実体データは、「ｃｏｍｐｏｎｅｎｔ」属性が与えられているエレメントの子エレメントである、上記＜ａ＞タグや＜ｂ＞タグで囲まれた要素である。
【０１５９】
コンテンツ「ａ」で表示される表示データは、「ａａａａａ」や「ａａａａａａａ」であり、コンテンツ「ｂ」で表示される表示データは、「ｂｂｂｂｂ」である。
【０１６０】
ｒｏｏｔエレメントから始まる上記ブロックＷｅｂ文書には、「ａｃｃｅｐｔ」タグで示される位置に、「ｔｙｐｅ−ａ」タイプあるいは「ｔｙｐｅ−ｂ」タイプのコンテンツを挿入できることが示されている。
【０１６１】
なお、上記Ｗｅｂ文書から明らかなように、当該文書中の１つのページ部品に対応するコンテンツに対応する部分文書は、当該部分文書中のトップノード（あるいはルートノートである場合もある）に記述されている「ｃｏｍｐｏｎｅｎｔ」属性の値が「ｙｅｓ」であることにより判別することができる。言い換えれば、「ｃｏｍｐｏｎｅｎｔ」属性の値が「ｙｅｓ」であるエレメントが挿入、編集等の操作対象のコンテンツであり、１つのページ部品である。
【０１６２】
また、ＨＴＴＰ(Hypertext Transfer Protocol)を介して渡される場合は、ＭＩＭＥ（Ｍｕｌｔｉｐｕｒｐｏｓｅ  Ｉｎｔｅｒｎｅｔ  Ｍａｉｌ  Ｅｘｔｅｎｓｉｏｎｓ）タイプを示すＨＴＴＰヘッダであるＣｏｎｔｅｎｔ−Ｔｙｐｅ項目の値は、「ｔｅｘｔ／ｃｍｐ」と指定されているか、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などその他のネットワークプロトコルやファイルシステムからの入力であれば、拡張子が「ｃｍｐ」でなければならないというようにルールを決めている。これは入力文書がブロックＷｅｂ文書であるかどうかを、スクラップブック編集装置が判定するために用意するルールである。
【０１６３】
（文書読込モジュール）
図１２は、文書読込モジュールＭ２１の構成例を示したものであり、矢印はデータの流れを示している。
【０１６４】
文書読込モジュールＭ２１では、主にブロックＷｅｂ文書の読み込みを行う。文書処理モジュールＭ２への文書の入力を管理しており、与えられた文書がブロックＷｅｂ文書である場合にのみ、その文書を読み込んでページ部品処理モジュールＭ２２に渡すが、それ以外のＷｅｂ文書（たとえばＨＴＭＬ文書やＸＭＬ文書など）であれば、読み込み処理を中断してホストモジュールＭ１に制御を戻す。以下具体的な手順を示す。
【０１６５】
文書読込モジュールＭ２１は文書タイプ判定モジュールＭ２１１、文書読込実行モジュールＭ２１２から構成される。
【０１６６】
まず外部から、文書タイプ判定モジュールＭ２１１にＵＲＬが渡される。ＵＲＬの種類としては、ＨＴＴＰプロトコルを持つＵＲＬ、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコルを持つＵＲＬ、Ｆｉｌｅ  ＵＲＬ（ｆｉｌｅ：から始まるローカルファイルを示すＵＲＬ）などである可能性がある。
【０１６７】
文書タイプ判定モジュールＭ２１１は、図１３に示す手順で、入力文書がブロックＷｅｂ文書かどうかを判定するようになっている。すなわち、入力文書がＨＴＴＰを介して渡される場合は、「Ｃｏｎｔｅｎｔ−Ｔｙｐｅ」が、「ｔｅｘｔ／ｃｍｐ」であれば、当該入力文書はブロックＷｅｂ文書であり（ステップＳ１〜ステップＳ３）、ＦＴＰなどその他のネットワークプロトコルやファイルシステムからの入力であれば、拡張子が「ｃｍｐ」であれば、当該入力文書はブロックＷｅｂ文書であると判定する（ステップＳ１）。
【０１６８】
図１２に戻り、文書タイプ判定モジュールＭ２１１により、ブロックＷｅｂ文書であると判断されれば、続いて、文書読み込み実行モジュールＭ２１２にそのＵＲＬが渡される。文書読み込み実行モジュールＭ２１２は、与えられたＵＲＬを基に、必要に応じて通信処理をするなどし、対応する文書をモジュール内のバッファに取り込む。ただし具体的な読み込み処理については、周知の技術を用いればよく、ここでの具体的な説明は省略する。そして、バッファ内の内容は文書読込みモジュールＭ２１の最終出力として、ページ部品処理モジュールＭ２２に渡される。  逆に文書判定モジュールＭ２１１により、ブロックＷｅｂ文書でないと判断された場合は、文書読込みモジュールＭ２１の読み込み処理は失敗であるため、処理を中断し、ホストモジュールＭ１に制御を戻す。
【０１６９】
なお、上記のブロックＷｅｂ文書から明らかなように、文書中のコンテンツに対応する部分文書は、当該部分文書中のトップノード（あるいはルートノードである場合もある）に記述されている「ｃｏｍｐｏｎｅｎｔ」属性にて、その値が「ｙｅｓ」であることにより判別することができる。ここでは、「ｃｏｍｐｏｎｅｎｔ」属性を有するノードをトップノードとする部分文書が１つのコンテンツに対応すると判別し、１つのページ部品として記憶・管理される。
【０１７０】
以下、ページ部品処理モジュールＭ２２に渡されるブロックＷｅｂ文書（スクラップブックを含む）を簡単に、Ｗｅｂ文書あるいは文書と呼ぶ。
【０１７１】
（ページ部品処理モジュール）
ページ部品処理モジュールＭ２２は、文書読込モジュールＭ２１によって入力された文書を管理し、ユーザに当該文書を表示し、かつコンテンツのための便利なＧＵＩ操作を提供する、スクラップブック編集装置３１０の核となるモジュールである。なお、ここでは、１つのページ部品処理モジュールＭ２２が管理する文書は１文書である。複数文書を管理する場合には、ページ数だけページ部品処理モジュールＭ２２が生成される。
【０１７２】
ページ部品処理モジュールＭ２２は、複数のサブモジュールから構成されており、これらが互いに協調動作する。以下に各モジュールについて詳細に説明する。
【０１７３】
ページ部品管理モジュールＭ２２１は、各文書のページ部品群を管理し、構成変更のためのＡＰＩ（application programming interface）を提供する他のモジュール向けのベースサービスモジュールである。
【０１７４】
図１４に示すように、ページ部品管理モジュールＭ２２１は、ページ部品読込モジュールＭ２２１ａ、ページ部品データベース（ＤＢ）Ｍ２２１ｂ、ページ部品挿入モジュールＭ２２１ｃ、ページ部品削除モジュールＭ２２１ｄ、ページ部品保存モジュールＭ２２１ｅ、ページ部品編集モジュールＭ２２１ｆという６つのサブモジュールから構成されている。
【０１７５】
ページ部品読込モジュールＭ２２１ａは、入力された文書を解析し、当該文書中に含まれているコンテンツについてのページ部品を生成し、最終的に出来上がったページ部品群をページ部品ＤＢＭ２２１ｂに登録する。
【０１７６】
ページ部品が生成されるコンテンツとは、当該文書中の「ｃｏｍｐｏｎｅｎｔ」属性の値が「ｙｅｓ」であるエレメント（要素）をトップノードとする部分文書である。  ページ部品読込モジュールＭ２２１ａは、まず入力された文書から、「ｃｏｍｐｏｎｅｎｔ」属性の付与されている部分文書を抽出する。ただし、コンテンツの実体データは、「ｃｏｍｐｏｎｅｎｔ」属性が与えられているエレメントの子エレメントに含まれている。
【０１７７】
そして、文書から抽出された各コンテンツについて、「ｃｏｍｐｏｎｅｎｔ」属性が付与されているエレメントをトップノードとする部分文書を基に、図７に示したようなページ部品を生成する。なお、コンテンツとして文書全体についてのページ部品が生成されるが、その生成も上記同様である。
【０１７８】
ページ部品中のコンテンツＤ１２は、例えば、「ｃｏｍｐｏｎｅｎｔ」属性が付与されているエレメントをトップノードとする部分文書内のコンテンツの実体データである。
【０１７９】
各ページ部品を生成する際には、元の文書の文書構造として表されているエレメント間の親子関係（ＸＭＬ文書中のエレメント間の親子関係と同様）から、各ページ部品間の親子関係が得られるので、親子関係の存在するページ部品については、それに従い、親のページ部品へ当該ページ部品を関連付けるためのポインタやリンクなどの情報（すなわち、ここでは、親ページ部品への参照Ｄ１５）や、子供のページ部品を当該ページに関連付けるための情報（すなわち、ここでは子ページ部品管理情報Ｄ１６）として、子ページ部品を当該ページ部品に関連付けるためのポインタやリンクなどの情報（子ページ部品への参照Ｄ１６２）や、当該ページ部品中の当該子ページ部品を挿入する場所（位置）Ｄ１６１を書き込む。
【０１８０】
「ｃｏｍｐｏｎｅｎｔ」属性を有する部分文書について、その属性として、「ｔｙｐｅ」属性が記述されていれば、この「ｔｙｐｅ」属性の値を、ページ部品のタイプ名Ｄ１１として書き込み、「ｓｔｙｌｅ」属性が記述されていれば（この「ｓｔｙｌｅ」属性の値がセミコロンで複数の文字列（各文字列は、例えばスタイルシートの識別子に対応する）に分割されていれば、その各文字列を）スタイルシートＤ１３としてそれぞれ書き込む。
【０１８１】
「ｃｏｍｐｏｎｅｎｔ」属性を有する部分文書について、例えば、当該部分文書中の子エレメントとして、「ａｃｃｅｐｔ」エレメントが存在すれば、それは、当該部分文書に対応するコンテンツには、コンテナがあることを示すので、コンテナ情報Ｄ１４を生成する。当該「ａｃｃｅｐｔ」エレメントには、このエレメント内のコンテナに挿入可能なコンテンツのタイプ名や、それ以外の受理条件、操作許容条件などが属性として示されているので、これらを、生成されたコンテナ情報Ｄ１４に書き込む。
【０１８２】
すなわち、「ａｃｃｅｐｔ」エレメントに「ｔｙｐｅ」属性があれば（その値がセミコロンで複数の文字列（各文字列は、例えば受け入れ可能なコンテンツのタイプ（受理タイプ）の識別子に対応する）に分割されていれば、その各文字列を）受理タイプＤ１４２としてそれぞれ書き込む。また、当該文書中の文書構造上の「ａｃｃｅｐｔ」エレメントの配置されている位置（挿入場所Ｄ１４１）をコンテナ情報Ｄ１４に書き込む。「ａｃｃｅｐｔ」エレメントは複数存在する場合があり、その場合にはその数だけコンテナ情報Ｄ１４を生成し、上記同様に各データを書き込む。
【０１８３】
ページ部品読込モジュールＭ２２１ａは、入力された文書から、コンテナに対し設定されている受理条件や操作許容条件、コンテンツに対し設定されている利用制御条件を抽出する。
【０１８４】
受理条件とは、複製操作や移動操作など、コンテナへのコンテンツを挿入するための操作を実行する際に用いられる条件であり、操作許容条件・利用制御条件は、コンテナへのコンテンツを挿入するための操作を含めあらゆる操作の実行の際に用いられる条件である。
【０１８５】
コンテンツ（ページ部品）をコンテナへ挿入する際に用いられる条件は、コンテンツに紐付けされている利用制御条件とコンテナに紐付けされている受理条件であり、挿入された後、当該コンテナ内で当該コンテンツに対して操作する際に用いられる条件は、コンテンツに紐付けされている利用制御条件とコンテナに紐付けされている操作許容条件である。このように、両者の条件双方が検査されることにより、コンテンツ側の都合とコンテナ側の都合の双方がケアされる。
【０１８６】
ページ部品読込モジュールＭ２２１ａに入力された文書の一例を以下に示す。
【０１８７】
<?xml version=“1.0”?>
<root style=“root.xsl”>
<accept type=“type-a;type-b”>
<a component=“yes” type=“type-a”>
<usage if=“host(133.196.13.2) and username(hamada)”>
<operation name=“edit”>false<operation>
<access mode=“readonly”/>
<access mode=“full” node=“/a/a[1]”/>
</usage>
<usage if=”true”>
<operation name=”edit”>false</operation>
<operation name=”copy”>false</operation>
<access mode=“readonly”/>
</usage>
<a>aaaaa</a>
<a>aaaaaaa</a>
</a>
<b component=“yes” type=“type-b” style=“b1.xsl;b2.xsl;b3.xsl”>
<b>bbbbb</b>
</b>
</accept>
</root>
上記文書は、１つのコンテナと当該コンテナに挿入された「ａ」「ｂ」という２つのコンテンツを有している。コンテナや各コンテンツには、これらに対する操作に関して、ユーザや機器等の実行環境条件、コンテンツのタイプや状態に関する条件が論理演算子「ＡＮＤ」などを用いて表現されている。
【０１８８】
なお、<accept type=“type-a;type-b”>から</accept>までが１つのコンテナ、当該コンテナ中の<a component=“yes” type=“type-a”>から</a>までの部分文書がコンテンツ「ａ」、<b component=“yes” type=“type-b” style=“b1.xsl;b2.xsl;b3.xsl”>から</b>までの部分文書がコンテンツ「ｂ」、<usage if=“host(133.196.13.2) and username(hamada)”>から<access mode=“readonly”/></usage>までがコンテンツ「ａ」の利用制御条件である。
【０１８９】
上記文書に含まれるコンテンツに対する利用制御条件の意味するところを説明する。上記文書に含まれる、独立的に取り扱うことのできる１つのページ部品に対応する部分文書「ａ」（ｃｏｍｐｏｎｅｎｔ属性が「ｙｅｓ」を有する「ａ」エレメントに対応する部分文書）には、その直下に「ｕｓａｇｅ」タグが与えられている。この「ｕｓａｇｅ」タグは、利用制御条件を記述するために特別に予約されたシステム用のタグである。したがって部分文書「a」は、「a」タグで囲まれているコンテンツ（の実体）を持っている一方、「ｕｓａｇｅ」エレメントにて利用制御条件が指定されている。具体的には、１つ目の「uｓａｇｅ」エレメント、すなわち、「<usage if=“host(133.196.13.2) and username(hamada)”>…</usage>」により、「編集操作を行う機器のＩＰアドレスが「１３３．１９６．１３．２」かつユーザがｈａｍａｄａであるならば、コンテンツ「ａ」の編集操作は不可」かつ「コンテンツ「ａ」は読込可能で書込み不可」という利用制御条件が示されている。続く２つ目の「ｕｓａｇｅ」エレメント、すなわち、「<usage if=”true”>…</usage>」により、１つ目の「ｕｓａｇｅ」エレメントが示すケースに該当しなかった場合、読み込まれる。ただしＩｆで示される条件がｔｒｕｅとなっているため、すべての状況にヒットする。したがって「その他の状況の場合、「コンテンツ「ａ」の複製（ｃｏｐｙ）と編集（ｅｄｉｔ）は不可」かつ「コンテンツ「ａ」は読込可能で書込み不可」かつ「パス／ａ／ａ［１］の要素にはフルにアクセス可能」であるという利用制御条件が示されている。
【０１９０】
このような条件設定方法を用いて、部分文書（コンテンツ）に対して有効期間や有効な場所（当該コンテンツを利用できる期間や場所）について設定することも可能である。例えば、
<usage if=“host(133.196.13.2) and start-time=(2003-06-05) and end-time=(2003-06-07)”/>で「有効期間が２００３年６月５日から７日まで」を、あるいは、
<usage if=“host(133.196.13.2) and area=(E140-43-56 N41-45-58 E140-43-44 N41-46-07)”/>
で、「経度１４０度４３分５６秒から１４０度４３分４４秒、緯度４１度４５分５８秒から４１度４６分７秒までの間」と表現できる。
【０１９１】
ページ部品ＤＢＭ２２１ｂは、ページ部品読込モジュールＭ２２１ａで、入力された文書から生成されたページ部品群を格納し管理している。各ページ部品は、自分の親となるページ部品および子供のページ部品群への参照情報を持っているので、この参照情報を基に順にたどっていくことで、任意のページ部品を取り出すことができる。
【０１９２】
ページ部品ＤＢＭ２２１ｂが管理するページ部品を用いた、ページ部品処理モジュールＭ２２の文書編集処理手順について、図１５に示すフローチャートを参照して説明する。
【０１９３】
まず、ページ部品管理モジュールＭ２２１は、ページ部品ＤＢＭ２２１ｂから、コンテナａ，ｂ，ｄ，ｅを含むスクラップブックＸに対応するページ部品群を取出し、編集用のスクラップブックＸを生成し、レンダリング処理モジュールＭ２２２により、図１６に示すように、当該スクラップブックＸがブラウザ上に表示される（ステップＳ６００）。当該スクラップブックＸに対応するページ部品は、例えば、図８に示すような構造であり、初期状態では、スクラップブックＸの各コンテナは全て空である。
【０１９４】
同様に、ページ部品管理モジュールＭ２２１は、ページ部品ＤＢＭ２２１ｂから、コンテンツＡ、Ｂを含む文書Ｙに対応するページ部品群を取出し、編集用の文書Ｙを生成し、レンダリング処理モジュールＭ２２２により、図１６に示すように、当該文書Ｙがブラウザ上に表示される（ステップＳ６０１）。なお、文書Ｙにおいて、コンテンツＡ及びコンテンツＢはコンテナｇ内に保持され、コンテンツＢはコンテナｆを含む。
【０１９５】
さらに、ページ部品管理モジュールＭ２２１は、ページ部品ＤＢＭ２２１ｂから、コンテンツＣ、Ｄ、Ｅを含む文書Ｚに対応するページ部品群を取出し、編集用の文書Ｚを生成し、レンダリング処理モジュールＭ２２２により、図１６に示すように、当該文書Ｚがブラウザ上に表示される（ステップＳ６０１）。文書Ｚにおいて、コンテンツＣ、Ｄ及びＥはコンテナｈ内に保持されている。
【０１９６】
なお、ステップＳ６００とステップＳ６０１の順序は逆でもよい。また、ステップＳ６０１で表示する文書は１でもよいし、複数あってもよい。
【０１９７】
図１６のスクラップブックＸの具体例を以下に示す。
【０１９８】
（スクラップブックＸ）
<?xml version=“1.0”?>
<root style=“root.xsl”>
<accept type=“type-a” if=”host(133.196.13.2) and username(hamada)” >
<usage>
<operation name=“copy”>false</operation>
<operation name=“edit”>false</operation>
</usage>
</accept>
<accept type=“type-ｂ” if=”max(1)”>
<usage>
<operation name=“copy”>true</operation>
<operation name=“edit”>true</operation>
</usage>
</accept>
<accept type=“type-d; type-e”>
<usage>
<operation name=“copy”>true</operation>
<operation name=“edit”>true</operation>
</usage>
</accept>
<accept type=”type-d; type-e” >
<usage>
<operation name=“copy”>true</operation>
<operation name=“edit”>true</operation>
</usage>
</accept>
上記スクラップブックのうち、１番目の「ａｃｃｅｐｔ」エレメントがコンテナａに対応する部分文書であり、２番目の「ａｃｃｅｐｔ」エレメントがコンテナｂに対応する部分文書であり、３番目の「ａｃｃｅｐｔ」エレメントがコンテナｄに対応する部分文書であり、４番目の「ａｃｃｅｐｔ」エレメントがコンテナｅに対応する部分文書である。
【０１９９】
上記各コンテナの受理条件、操作許容条件を図１７に示す。図１７では、例えば、コンテナａに設定された受理条件により、ユーザがコンテナの挿入操作を行った際に、挿入操作を行っているユーザが「ｈａｍａｄａであり、かつ、機器アドレスが「１３３．１９６．１３．２」の場合にページ部品の挿入処理を許可することを示している。また、コンテナａに設定された操作許容条件により、当該コンテナａ内にコンテンツを挿入した後に当該コンテンツへの操作をユーザが行った際に、複製操作（印刷操作）、編集操作ともに許可しないことを示している。上記のスクラップブックの「ｒｏｏｔ（ルート）」エレメントの直下にある、コンテナaは、ｔｙｐｅ属性によって受理可能なタイプ（受理タイプ）の一覧が与えられ、ｉｆ命令によって受理条件が与えられ、その直下の「ｕｓａｇｅ」要素によって、操作許容条件が与えられる。
【０２００】
文書Ｙ及び文書Ｚに含まれる各コンテンツに設定された利用制御条件を図１８に示す。図１８では、例えば、あるコンテナにユーザがコンテンツＡの挿入操作を行った際に、「当該コンテンツＡの複製を作成して挿入することはできないが、移動により挿入することは可能」である」ことを示している。また、あるコンテナ内にコンテンツＡを挿入した後に当該コンテンツＡに対する操作をユーザが行った際に、「複製操作、編集操作ともに許可しない」ことを示している。
【０２０１】
ここで、図１６の文書Ｙの具体例を以下に示す。
【０２０２】
（文書Ｙ）
<?xml version=“1.0”?>
<root style=“root.xsl”>
<accept>
<a component=“yes” type=“type-a” style=“a1.xsl;a2.xsl;a3.xsl”>
<usage>
<operation name=“copy”>false</operation>
<operation name=“edit”>false</operation>
<operation name=“move”>true</operation>
</usage>
<aaa>aaa</aaa>
</a>
<b component=“yes”  type=“type-b” style=“b1.xsl;b2.xsl;b3.xsl”>
<usage>
<operation name=“copy”>false</operation>
<operation name=“edit”>false</operation>
<operation name=“move”>true</operation>  <accept></accept>
</usgae>
<bbb>bbb</bbb>
</b>
</accept>
</root>
上記文書Ｙは、再帰的な入れ子の例ともなっており、コンテンツBがコンテナｆを持っており、別のコンテンツを受け入れることができるようになっている。これを指定しているのがコンテンツB内の「ａｃｃｅｐｔ」エレメントである。ここでは受理タイプや、その他の受理条件、操作許容条件も設定されていないため、あらゆるコンテンツを受け入れることができるようになっている。このように、各文書は、コンテンツがコンテナを含まない場合もあれば、１または複数のコンテナを含む場合もあり、コンテナが１または複数のコンテンツを持つことができる、入れ子のツリー構造をなす。ルートのコンテンツと当該ルートのコンテンツにぶら下がる複数のコンテナは、しばしばスクラップブックの用途として利用され、またコンテナに子のコンテンツがたくさん埋められたページは、図１のアプリ処理装置３００に返されて素材提供文書の用途として利用されるが、構造としてはコンテンツとコンテナとの入れ子構造に他ならない。
【０２０３】
文書Ｚも文書Ｙと同様に記述することができる。
【０２０４】
（文書Ｚ）
<?xml version=“1.0”?>
<root style=“root.xsl”>
<accept>
<c component=“yes” type=“type-a” style=“a1.xsl;a2.xsl;a3.xsl” author_accept=“YES”>
<usage if=“test(/c[@author_accept = ‘YES’])”>
<operation name=“copy”>true</operation>
<operation name=“edit”>true</operation>
<operation name=“move”>true</operation>
<usage>
</c>
<d component=“yes”  type=“type-d” style=“d1.xsl;d2.xsl;d3.xsl” author_accept=“YES”>
<usage if=“test(/d[@author_accept = ‘YES’])”>
<operation name=“copy”>true</operation>
<operation name=“edit”>true</operation>
<operation name=“move”>true</operation>
<usage>
</d>
<e component=“yes”  type=“type-e” style=“e1.xsl;e2.xsl;e3.xsl” author_accept=“NO”>
<usage if=“test(/e[@author_accept = ‘YES’])”>
<operation name=“copy”>true</operation>
<operation name=“edit”>true</operation>
<operation name=“move”>true</operation>
<usage>
</e>
</accept>
</root>
このようにして、コンテナ、コンテンツは、ユーザ情報、機器情報、有効期間、有効場所についての論理演算を挿入操作やその他の操作の際を実行する際の条件として持つことができる。また、上記の述べた方法を拡張することで、容易に、コンテナは、挿入されるコンテンツの個数やタイプについての論理演算を挿入操作の際の条件として持つことができる。また、コンテンツもタイプについての論理演算を利用操作を実行する際の条件として持つことができる。
【０２０５】
なお、文書ＹおよびＺは、素材となるコンテンツを提供することを目的としたページである。文書Ｙ，Ｚでは、ページ部品管理モジュールＭ２２１およびページ部品Ｄ１の構成上、各コンテンツがコンテナに納められるようにａｃｃｅｐｔエレメントが記述されている。これにより、逆に外部からコンテンツを受理することもできる。
【０２０６】
しかし素材コンテンツを提供する目的においては、外部からコンテンツを受理することは必ずしも必要ない場合も多い。このようなニーズを考慮し、ページ内において、どこが独立したコンテンツなのかを示すｃｏｍｐｏｎｅｎｔ属性のみを用い、コンテナを示すａｃｃｅｐｔエレメントが存在しないようなブロックＷｅｂ文書を処理するようなページ部品管理モジュールＭ２２１の変形例を提供することも考えられる。この場合には、ページ部品生成モジュールＭ２２１ａの処理を２箇所変更する。１つは「ａｃｃｅｐｔ」エレメントの処理を見つけ出し、コンテナ情報Ｄ１４を生成する処理を省略する。もう１つは、当該ページ部品中の当該子ページ部品を挿入する場所であるＤ１６１を書き込む処理を省略する。Ｄ１６１は子ページ部品がどのコンテナに所属するかを判定するために用いられる情報であるが、コンテナが存在しないため、不要となる。このようにしてコンテナが省略されたブロックＷｅｂ文書を生成すればよい。このようなページ部品管理モジュールＭ２２１によれば、ドラッグ操作において前述ページ内のｃｏｍｐｏｎｅｎｔ属性で示されるコンテンツが取り出されるが、ドロップ操作によって外部からのコンテンツを受け入れることはできない。しかし、記述が簡易になるという利点がある。
【０２０７】
ページ部品挿入モジュールＭ２２１ｃは、上記ページ部品群に関して、任意のページ部品の子供として、別のページ部品を追加・挿入するためのものである。
【０２０８】
ページ部品編集モジュールＭ２２１ｆは、各ページ部品に対し、更新等の編集を行うためのものである。
【０２０９】
図１５の説明に戻り、ユーザが、例えば、図１６の文書ＹのコンテンツＡを図１６のスクラップブックＸのコンテナａに挿入する操作を行うと（ステップＳ６０２）、条件判定モジュールＭ２２５が呼ばれ、図１９に示すフローチャートに従い、コンテンツ挿入の可否を判定する。すなわち、この場合には、コンテナａに設定された受理条件と、コンテンツＡに設定された利用制御条件に基づき、挿入処理の可否を判定する。
【０２１０】
例えば、ここでは、挿入操作を行うユーザ「ｈａｍａｄａ」が、ＩＰアドレス「１３３．１９６．１３．２」の機器を使用するものとする。また、当該ユーザがコンテナａへコンテンツＡを移動による挿入操作を行ったとする。
【０２１１】
まず、コンテナａにコンテンツＡを挿入する要求を受けて（ステップＳ６１１）、条件判定モジュールＭ２２５は、ページ部品管理モジュールＭ２２１を介して、例えば、ホストモジュールＭ１から、ユーザ情報、当該スクラップブック編集装置して機能する機器の情報（機器情報）を取得する（ステップＳ６１２）。ここでは簡単のため、ユーザ情報としてユーザ名のみを例に挙げたが、一般には、ＬＡＮ内にてユーザが持つアクセス権限などの情報である。
【０２１２】
次にコンテナａの受理条件（受理タイプを含む）や操作許容条件をスクラップブックＸに対応するページ部品から取得する（ステップＳ６１３）。受理条件は、「ユーザが「ｈａｍａｄａ」、かつ使用する機器アドレスが「１３３．１９６．１３．２」」である。次に、コンテンツＡに対応するページ部品から当該コンテンツＡの利用制御条件を取得する（ステップＳ６１４）。この利用制御条件は「複製不可、編集不可、移動可」である。
【０２１３】
このように取得した条件を用いて、コンテナａの受理条件を用いた挿入操作の可否判定（ステップＳ６１５）、コンテンツａの許容操作条件を用いた挿入操作の可否判定（ステップＳ２６０）、コンテンツＡの利用制御条件を用いた挿入操作の可否判定（ステップＳ６１７）を行う。なお、ステップＳ６１５〜ステップＳ６１７の上記各判定の順番は任意でよい。また、上記各条件を一括して論理演算により判定してもよい。
【０２１４】
上記各条件を全て満たす場合には、コンテナａへのコンテンツＡの挿入操作は許可される（ステップＳ６１８）。上記例では、当該挿入操作は許可されるので、ページ部品挿入モジュールＭ２２１ｃにより、ユーザの移動による挿入操作による、コンテンツＡをコンテナａへ挿入する処理が実行される（図１５のステップＳ６０３）。一方、ステップＳ６１５〜ステップＳ６１７のいずれか１つの判定結果がＮＧ、すなわち、上記各条件のうちの少なくとも１つが満足されない場合には、挿入操作が拒否される（ステップＳ６１９）。
【０２１５】
図１９に示したようにして、コンテナａへのコンテンツＡの（移動による）挿入操作が終了すると、図１５の説明にもどり、スクラップブックＸの編集操作を続行する場合には（ステップＳ６０７）、ステップＳ６０２あるいはステップＳ６０４へ進む。
【０２１６】
同様にして、図２０に示すように、図１６の文書Ｙのページ部品Ｂを、スクラップブックＸのコンテナｂに挿入し、文書ＺのコンテンツＥをスクラップブックＸのコンテナｄに挿入し、文書ＺのコンテンツＤをスクラップブックＸのコンテナｅへ挿入する。
【０２１７】
ここで、コンテンツＡをもう１つコンテナａに挿入する処理は可能であるが、コンテンツＢをもう１つコンテナｂに挿入しようとすると、挿入処理はキャンセルされる。これは、コンテナｂの受理条件として、当該コンテナｂが受け入れ可能な（挿入可能な）コンテンツの個数が１つ以下と設定されているからである。このように、個数制限があるコンテナに新たに別のコンテンツを挿入したい場合は、既に挿入されているコンテンツのいずれかを予め削除する必要がある。
【０２１８】
さて、当該ユーザ「ｈａｍａｄａ」が、スクラップブックＸの各コンテナへのコンテンツの挿入が終了した後に、スクラップブックＸの任意のコンテナに挿入されたコンテンツを選択し、当該コンテンツに対して編集を行うとする（図１５のステップＳ６０４）。なお、ステップＳ６０２とステップＳ６０３の挿入操作および処理は、ステップＳ６０４とステップＳ６０５の一連の操作および処理の後に行ってもよい。
【０２１９】
コンテンツをコンテナ内で編集する場合、当該コンテナに設定された操作許容条件と、コンテンツに設定された利用制御条件に基づき、編集処理の可否を判定する。この可否判定は、条件判定モジュールＭ２２５が行う。
【０２２０】
ここで、例えば、スクラップブックＸ中のコンテナｂを選択し、このコンテナｂの中に挿入されたコンテンツＢを選択し、編集操作を行う（ステップＳ６０４）。このとき、条件判定モジュールＭ２２５が呼ばれ、図２１に示すフローチャートに従い、コンテンツの編集可否を判定する。ここでも、ユーザ「ｈａｍａｄａ」が、ＩＰアドレスが「１３３．１９６．１３．２」である機器上で上記操作を行うとする。
【０２２１】
まず、コンテナｂ内のコンテンツＢを編集する要求を受けて（ステップＳ６２１）、条件判定モジュールＭ２２５は、ページ部品管理モジュールＭ２２１を介して、例えば、ホストモジュールＭ１から、ユーザ情報、当該スクラップブック編集装置して機能する機器の情報（機器情報）を取得する（ステップＳ６２２）。ここでは簡単のため、ユーザ情報としてユーザ名のみを例に挙げたが、一般には、ＬＡＮ内にてユーザが持つアクセス権限などの情報である。
【０２２２】
次にコンテナｂの操作許容条件をスクラップブックＸに対応するページ部品から取得する（ステップＳ６２３）。この操作許容条件は「複製、編集は可」である。次に、コンテンツＢの利用制御条件をコンテンツＢに対応するページ部品から取得する（ステップＳ６２４）。この利用制御条件は「複製可、編集不可、移動可」である。コンテンツＢの利用制御条件は、先にコンテナｂにコンテンツＢが挿入されたときに、コンテナｂ内に保持したものを取得するようにしてもよい。このように取得した各条件を用いて、コンテナｂの操作許容条件を用いた操作の可否判定（ステップＳ６２５）、コンテンツＢの利用制御条件を用いた操作の可否判定（ステップＳ６２６）を行う。なお、ステップＳ６２５、ステップＳ６２６の各判定処理の順番は任意でよい。上記各条件を一括して論理演算により判定してもよい。
【０２２３】
上記各条件を全て満たす場合には、コンテナｂ内でのコンテンツＢへの操作は許可される（ステップＳ６２７）。一方、ステップＳ６２５およびステップＳ６２６のいずれか１つの判定結果がＮＧ、すなわち、上記各条件のうちの少なくとも１つが満足されない場合には、操作が拒否される（ステップＳ６２８）。上記例では、当該ユーザの編集操作は、コンテンツＢの利用制御条件を満たさないため、拒否される。
【０２２４】
コンテナ側とコンテンツ側の条件を組み合わせることにより、適切なコンテンツ管理を行い、より安全に個人情報に対してプライバシー保護を施したり、著作物に対して著作権保護を施したり、誤操作による異種ページ部品の混入を防ぐことが可能になる。
【０２２５】
条件判定モジュールＭ２２５が、図１６の部品コンテナｄ内のコンテンツＥを編集する要求を受けた場合には（ステップＳ６２１）、上記と同様にして、コンテナｄの操作許容条件として、「複製可、編集可」を、コンテンツＥの利用制御条件として、「ａｕｔｈｏｒ＿ａｃｃｅｐｔ要素がｙｅｓに限り複製、編集、移動が可」を取得する（ステップＳ６２２からステップＳ６２４）。次に、各条件を用いた判定処理に移行する（ステップＳ６２５からステップＳ６２６）。このとき、コンテンツＥについては、「ａｕｔｈｏｒ＿ａｃｃｅｐｔ」属性の値が「ｎｏ」であるため、コンテナｄの操作許容条件は満たすものの、コンテンツＥのもつ上記属性の値が、当該コンテンツＥの利用制御条件を満たさないため、ステップＳ６２６における判定結果はＮＧとなる。よって、先の例と同様に編集処理がキャンセルされる（ステップＳ６２８）。
【０２２６】
なお、文書中の要素のもつ特定の属性の値を条件判定に用いる場合には、
<usage if=“test(/a[@author_accept=’YES’))”>
のように、パス「／ａ」、パス直下の属性名「ａｕｔｈｏｒ＿ａｃｃｅｐｔ」、この属性名の属性値「ｙｅｓ」を与えることで条件判定を行う関数ｔｅｓｔを用いることで実現が可能である。  なお、test()内の文字列はxpath（XML Path Language）に準拠したものである。また、「ａｕｔｈｏｒ＿ａｃｃｅｐｔ」属性とは、当該属性をもつコンテンツの作成者の許可の有無を示す属性であり、「許可」の場合には当該属性値は「ｙｅｓ」でなる、不許可の場合には当該属性値は「ｎｏ」となる。
【０２２７】
次に、条件判定モジュールＭ２２５が、図２０のコンテナｅ内のコンテンツＤを編集する要求を受けた場合には（ステップＳ６２１）、上記と同様にして、コンテナｅの操作許容条件として、「author_accept属性値がｙｅｓに限り複製、編集、移動が可」を、コンテンツＤの利用制御条件として、「author_accept属性値がｙｅｓに限り複製、編集、移動が可」を取得する（ステップＳ６２２からステップＳ６２４）。次に、各条件を用いた判定処理に移行する（ステップＳ６２５からステップＳ６２６）。このとき、コンテンツＤの「ａｕｔｈｏｒ＿ａｃｃｅｐｔ」属性の属性値が「ｙｅｓ」であるため、コンテナｅの操作許容条件を満たすとともに（ステップＳ６２５）、コンテンツＤの利用制御条件も満たすから（ステップS６２６）、コンテンツＤをコンテナe内で編集する操作は許可され（ステップＳ６２７）、ページ部品編集モジュールＭ２２１ｆにより、コンテンツＤが更新され、例えば、要素値「Ｄ」が「Ｄ´」へと書き換えられる。
【０２２８】
この後、ユーザにより、スクラップブックＸの編集終了指示が入力されると（図１５のステップＳ６０７）、ページ部品管理モジュールＭ２２１のページ部品保存モジュールＭ２２１ｅは、編集後のスクラップブックＸのページ部品で、ページ部品ＤＢＭ２２１ｂ内の編集前のスクラップブックＸのページ部品を書き換える（ステップS６０８）。以上のようにして得られた編集後のスクラップブックＸを図２２に示す。
【０２２９】
ところで、図１９のステップＳ６１５での受理条件を用いた判定処理では、コンテナに設定された受理タイプと、当該コンテナに挿入しようとしているコンテンツのタイプとを用いて、当該コンテンツの当該コンテナへの挿入可否を判定するが、ページ部品挿入モジュールＭ２２１ｃにおける受理条件の判定処理動作について、図２３に示すフローチャートを参照して説明する。
【０２３０】
ここでは、前述同様、ユーザ「ｈａｍａｄａ」が、ＩＰアドレス「１３３．１９６．１３．２」の機器を用いて、図１６の文書ＹのコンテンツＡを図１６のスクラップブックＸのコンテナａに挿入する操作を行う場合を例にとり説明する。
【０２３１】
まず、コンテナａにコンテンツＡを挿入する要求を受けて（ステップＳ２０）、条件判定モジュールＭ２２５は、ページ部品ＤＢＭ２２１ｂからコンテナａのコンテナ情報Ｄ１４に含まれる受理タイプＤ１４２（受理タイプのリスト）を取出すとともに（ステップＳ２１）、コンテンツＡに含まれているタイプ名Ｄ１１を取出す。
【０２３２】
なお、ステップＳ２１において、コンテナａに受理タイプのリストが存在しない場合には、コンテナａに挿入するコンテンツのタイプには制約がないので、そのままステップＳ２４へ進み、コンテンツＡはコンテナａへ挿入可能であると判定される。また、ステップＳ２２において、コンテンツＡにタイプ名の指定がない場合には、コンテンツＡに対して挿入操作は許可されていないので、ステップＳ２６へ進み、コンテンツＡのコンテナａへの挿入操作は拒否される。
【０２３３】
コンテナａに受理タイプのリストが存在し、コンテンツＡのタイプ名が存在している場合には（ステップＳ２１，ステップＳ２２）、ステップＳ２３へ進み、コンテナａの受理タイプのリストにコンテンツＡのタイプ名が含まれているか否か判定する。含まれている場合には、ステップＳ２４へ進み、コンテンツＡは、コンテナａへ挿入可能であると判定される。一方、ステップＳ２３において、コンテ名ａの受理タイプのリストにコンテンツＡのタイプ名が含まれていない場合には、ステップＳ２５へ進む。
【０２３４】
ステップＳ２５では、コンテナａの受理タイプのリストにコンテンツＡのタイプ名が存在しない場合、このままでは、コンテナａはコンテンツＡを受け入れることができないため、まず、形式調整モジュールＭ２２４が呼び出される。この際、形式調整モジュールＭ２２４にコンテナａの受理タイプのリストと、コンテンツＡおよびそのタイプ名を渡して、コンテンツＡのタイプをコンテナａが受け入れ可能なタイプになるよう、変換を依頼する。
【０２３５】
コンテンツＡのタイプが、コンテナａが受け入れ可能なタイプに変換できたときには、ステップＳ２４へ進む。
【０２３６】
なお、ステップＳ２２で、コンテナａに受理タイプが指定されていないとき、或いはステップＳ２５で、コンテンツＡのタイプをコンテナａが受け入れ可能なタイプに変換できないときには、いずれもステップＳ２６へ進み、コンテンツＡのコンテナａへの挿入操作は拒否される。
【０２３７】
ステップＳ２４において、コンテナａへのコンテンツＡの挿入操作が可能であると判定された場合には、次に、コンテナａの上記受理タイプ以外の受理条件や操作許容条件、コンテンツＡの利用制御条件を用いた、図１９に示したような判定処理が行われる。
【０２３８】
また、上記のようなコンテナ・コンテンツ間で挿入操作（移動、複製を挿入する操作）の他にも、コンテナ間で一方のコンテナ内のコンテンツを他方のコンテナへ移動したり、複製したコンテンツを挿入したりする操作についても、上記のようなコンテナ・コンテンツ間での操作と同様に、コンテンツに設定された利用制御条件とコンテナの受理条件と操作許容条件とをあわせて判定される。
【０２３９】
その他の発展的な機能としては、各ページ部品に対してその部品に関連するスクリプトを持たせ、これをユーザがコンテクストメニューなどから実行できるようにし、これをメソッドと呼ぶとする。すると、上記に紹介した利用制御条件、コンテナの利用許容条件などを用いて、同様に実行できるメソッドの選択肢を限定するなどの制御が可能である。
【０２４０】
以上のようにしてスクラップブックＸの編集が終了すると、図２２に示したような編集後のスクラップブックＸは、スクラップブック編集装置３１０（のホストモジュールＭ１）からアプリ処理装置３００へ渡される。
【０２４１】
図１４の説明に戻り、ページ部品削除モジュールＭ２２１ｄは、任意のページ部品を削除するためのものである。具体的には、削除されるページ部品の親ページ部品からは、当該削除されるページ部品を関連付けるための子ページ部品管理情報Ｄ１６を削除し、当該削除されるページ部品自体をページ部品ＤＢから削除する。このとき、削除対象のページ部品に対応する部分文書に、当該部分文書に包含される部分文書（すなわち、子供の部分文書）があるときは、当該包含される部分文書に対応するページ部品もページ部品ＤＢから削除する。なお、ページ部品挿入モジュールの機能と、このページ部品削除モジュールの機能を組み合わせることで、ページ部品の移動も実現できる。
【０２４２】
ページ部品保存モジュールＭ２２１ｅは、任意のページ部品をファイル保存する機能である。指定されたページ部品を保存する機能であり、この機能を利用する場合には、保存したいページ部品とファイル名を指定する。ただし保存対象には、指定されたページ部品だけでなく、その子孫ページ部品も含まれる。
【０２４３】
保存の形式としては、ブロックＷｅｂ文書形式、ＰｕｒｅＸＭＬ形式、ＨＴＭＬ形式の３種類ある。ブロックＷｅｂ文書形式とは、「ｃｏｍｐｏｎｅｎｔ」属性や「ａｃｃｅｐｔ」エレメントなど、ブロック化のための特殊な表記を含む形式であり、次回に、ページ部品ＤＢＭ２２１ｂにロードしてもブロック構造情報を復元できる。
【０２４４】
ＰｕｒｅＸＭＬ形式は、これらブロック化のための特殊な表記を取り除いたものである。ＨＴＭＬ形式は、現在表示されているＨＴＭＬの状態をそのまま保存するものである。
【０２４５】
ブロックＷｅｂ文書形式とＰｕｒｅＸＭＬ形式の場合は、ページ部品Ｄ１のコンテンツＤ１２に対して、当該ページ部品の子孫ページ部品のコンテンツＤ１２を合成することで、保存内容を決定する。ページ部品Ｄ１には、子ページ部品管理情報Ｄ１６として、各子ページ部品とその子ページ部品を挿入すべき挿入場所Ｄ１６１に書かれている。コンテンツの合成の際には、この情報を用いて挿入された各子ページ部品に対応する部分文書を統合してＨＴＭＬあるいはＸＭＬ形式の文書を合成する。
【０２４６】
図１０に示した、ページ部品処理モジュールＭ２２のレンダリング処理モジュールＭ２２２は、ページ部品を表示する機能を持つ。重要な用途の１つとして、ページ部品管理モジュールＭ２２１で得られたブロックＷｅｂ文書を図１６に示すように、表示画面上に表示する。
【０２４７】
ページ部品は、前述したように、他のページ部品に包含されることもあれば、他のページ部品を包含することもある（ページ部品は、必然的に他のページ部品と包含関係を有する）。各ページ部品に対応するコンテンツに対して、そのページ部品のスタイルシートＤ１２を適用するだけでは不十分で、そのページ部品の各子ページ部品のスタイルシート適用結果（子ページ部品に対応するＨＴＭＬ文書）を親のページ部品に対応するＨＴＭＬ文書にはめ込むことで、ＨＴＭＬ文書の合成を行い、表示用データを生成する。
【０２４８】
上記、各ページ部品あるいはその子ページ部品に関してスタイルシート適用をしてＨＴＭＬ文書を生成した直後に、得られたＨＴＭＬ文書のルートエレメントおよびページ部品への参照を入力として、ＧＵＩ処理モジュールＭ２２３のＧＵＩ処理初期化モジュールＭ２２３ａを呼び出す。
【０２４９】
ＧＵＩ処理モジュールＭ２２３は、表示されたＨＴＭＬ文書に対して、ドラッグドロップやコンテクストメニューなどのコンテナ・コンテンツ向けＧＵＩ操作機能を提供するモジュールである。
【０２５０】
図１０に示した、ページ部品処理モジュールＭ２２の形式調整モジュールＭ２２４は、前述のように、ページ部品挿入処理モジュールＭ２２１ｃで用いられるモジュールであり、図２４に示すように、変換ルール検索モジュールＭ２２４ａと変換ルールデータベース（ＤＢ）Ｍ２２４ｂを有する。形式調整モジュールＭ２２４は、具体的には、ページ部品挿入処理モジュールＭ２２１ｃから、変換対象のページ部品と、他のページ部品中の受理タイプＤ１４２とを含む変換要求が入力されると、当該変換対象のページ部品のタイプ名Ｄ１１を調べ、少なくとも変換対象のページ部品に対応する部分文書のタイプ（例えば、データ形式）を他のページ部品中の受理タイプＤ１４２に含まれるいずれかのタイプに変換する処理である。
【０２５１】
この変換要求は、ページ部品挿入処理モジュールＭ２２１ｃから変換ルール検索モジュールＭ２２４ａに送られる。
【０２５２】
変換ルールＤＢＭ２２４ｂには、変換元と変換先のタイプ別に、複数の変換方法（変換規則あるいは変換ルール）が予め記憶されている。
【０２５３】
変換ルール検索モジュールＭ２２４ａは、変換ルールＤＢＭ２２４ｂから、変換元と変換先のタイプに対応する変換方法を見つけ出し、変換結果のページ部品を返すか、あるいは見つからなかった場合には、変換に失敗した旨を要求元のページ部品挿入処理モジュールＭ２２１ｃへ返す。
【０２５４】
変換ルールＤＢＭ２２４ｂには、変換元のタイプと変換先のタイプと、変換ルール（例えばＸＳＬＴ文書などの変換規則を記述した文書）の３つを１組とした複数のデータを管理している。変換ルール検索モジュールＭ２２４ａは、入力された、処理対象のページ部品のタイプ名Ｄ１１から、最終的に求めているタイプのいずれかに変換するための、複数の変換ルールからなるシーケンスパス（順序つき組み合わせ）を検索し、最終的に複数のシーケンスが見つかった場合には、最短パスとなる組み合わせを採用する。
【０２５５】
たとえば、処理対象のページ部品のタイプが「ｔｙｐｅ−ｘ」タイプであり、最終目的のタイプが「ｔｙｐｅ−ｙ」タイプか「ｔｙｐｅ−ｚ」タイプであり、変換ルールＤＢＭ２２４ｂには、以下のデータが記憶されていたとする。
【０２５６】
（ｔｙｐｅ−ｘ，  ｔｙｐｅ−ａ，  ｘａ．ｘｓｌ）
（ｔｙｐｅ−ａ，  ｔｙｐｅ−ｂ，  ａｂ．ｘｓｌ）
（ｔｙｐｅ−ｂ，  ｔｙｐｅ−ｙ，  ｂｙ．ｘｓｌ）
（ｔｙｐｅ−ｘ，  ｔｙｐｅ−ｃ，  ｘｃ．ｘｓｌ）
（ｔｙｐｅ−ｃ，  ｔｙｐｅ−ｚ，  ｃｚ．ｘｓｌ）
この場合、最終目的のタイプに変換するシーケンスとして、ｘａ．ｘｓｌ−＞ａｂ．ｘｓｌ−＞ｂｙ．ｘｓｌ、と、ｘｃ．ｘｓｌ−＞ｃｚ．ｘｓｌ、の２種類があるが、変換ルール検索モジュールＭ２２４ａは後者を選択し、順にＸＳＬＴ文書を適用した結果得られるページ部品（「ｔｙｐｅ−ｚ」タイプ）を返す。
【０２５７】
（まとめ）
以上説明したように、上記実施形態に係る図１に示すような情報処理システムは、主に、アプリ処理装置（情報処理装置）３００とスクラップブック編集装置（文書編集装置）３１０を含み、アプリ処理装置は、プログラムの実行に必要な引数として用いるコンテンツを挿入するための領域（コンテナ）を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを提供し、当該領域にコンテンツの挿入されたスクラップブックデータを受け取ると、当該スクラップブックデータの当該領域に挿入されたコンテンツを引数として用いて上記プログラムを実行する。
【０２５８】
また、アプリ処理装置から提供されたスクラップブックデータを編集し、当該領域にコンテンツの挿入されたスクラップブックデータをアプリ処理装置へ返すスクラップブック編集装置は、１または複数のコンテンツをそれぞれ含み、各コンテンツには、当該コンテンツを利用する際の制約条件を示した利用制御条件が予め設定されている文書データを記憶するための記憶手段（ページ部品管理モジュールＭ２２、特に、ページ部品ＤＢＭ２２１）を有し、アプリ処理装置から提供されるスクラップブックデータを文書読込モジュールＭ２１で読み込む。スクラップブックデータの領域に挿入する文書データのコンテンツが指定されたとき、条件判定モジュールＭ２２５は、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定し、この判定結果に基づき、ページ部品管理モジュールＭ２２１は、当該領域にコンテンツを挿入する。
【０２５９】
また、スクラップブックの上記領域には、当該領域へ挿入されたコンテンツに対する操作を制約するための操作許容条件が予め設定され、当該領域に挿入された文書データのコンテンツに対する任意の操作が指示されたとき、条件判定モジュールＭ２２５は、当該領域の操作許容条件及び当該領域内の当該コンテンツの利用制御条件に基づき、当該領域内の当該コンテンツに対し指示された操作の可否を判定し、この判定結果に基づき、ページ部品管理モジュールＭ２２１は、当該領域に挿入された文書データのコンテンツに対する任意の操作を実行する。
【０２６０】
上記スクラップブック編集装置によれば、構造化文書の中に含まれるコンテンツを、それよりさらに細かい操作単位としてのコンテンツ単位（ページ部品単位）で容易に編集することができるとともに、編集の際に当該コンテンツ単位で様々な利用制御を行うことができる。
【０２６１】
スクラップブック中の各コンテナには、スクラップブック提供者、すなわち、アプリ処理装置側の意図を表る受理条件や操作許容条件が設定され、素材提供装置３２０から提供される各文書のコンテンツには、当該コンテンツ提供者側の意図を示す利用制御条件が設定されている。そして、コンテナにコンテンツを挿入する際には当該コンテナの受理条件及び当該コンテンツの利用制御条件をともに満足する場合に、当該コンテンツを当該コンテナへ挿入することができ、コンテナの操作許容条件、当該コンテナに挿入されているコンテンツの利用制御条件とがともに満足する場合に、当該コンテナ内の当該コンテンツに対する操作（更新、印刷等を含む）が可能となるため、このようにして編集されたスクラップブックは、アプリ処理装置側の意図とコンテンツ提供者側の意図をともに満足するものとなっている。すなわち、アプリ処理装置では、その動作保証のため、信頼できるコンテンツのみに限定するため等の目的で設定された受理条件や操作許容条件を満足するコンテンツを得ることができる。また、コンテンツ提供者側では、コンテンツに設定された利用制御条件により、当該コンテンツの利用に対し所望の制限を加えることができるため、安心してコンテンツの公開が行える。
【０２６２】
また、上記スクラップブック編集装置によれば、ユーザは、スクラップブックのコンテナ内に所望の文書の所望のコンテンツを（コンテナの受理条件、コンテンツの利用制御条件を満足すれば）例えばドラッグアンドドロップのような簡単な操作により埋め込むことができる。
【０２６３】
従って、アプリ処理装置が、上記スクラップブック編集装置により上記のようにしてコンテンツの挿入されたスクラップブックを入力インタフェースとして利用することにより、アプリ処理装置がアプリケーション（プログラム）実行のために必要とするデータを得るための、ユーザによる操作の負担を大幅に削減することができる。例えば、小型携帯端末を上記アプリ処理装置として用いる場合、小型携帯端末のような操作性の悪い環境においても、文書中のコンテンツの指定と、当該コンテンツの挿入先のコンテナの指定という操作だけで（文字入力を行うことなく）、アプリ処理装置へのデータ入力を行えるのである。
【０２６４】
このように、上記実施形態に係るスクラップブック編集装置によれば、スクラップブックのコンテナには、当該コンテナに予め設定された受理条件及び操作許容条件を満たすコンテンツであって、しかも当該コンテンツの提供者側により予め設定された利用制御条件を満たすコンテンツのみが、コンテナへの挿入という簡単な操作により埋め込むことができる。
【０２６５】
従って、上記スクラップブックを入力インタフェースとして用いることにより、プログラムを実行して予め定められた情報処理を行うアプリ処理装置に対し、当該プログラムの実行に必要な信頼性の高いデータを容易に入力することができる。
【０２６６】
上記実施形態によれば、情報処理に必要な信頼性の高いデータ入力が容易に行える情報処理システムを提供することができる。
【０２６７】
なお、本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【０２６８】
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０２６９】
【図１】本発明の実施形態に係る情報処理システム全体の構成例を示した図。
【図２】図１のアプリ処理装置の処理動作を説明するためのフローチャート。
【図３】アプリ処理装置の起動部のメモリに予め記憶されている手順データの一例を示した図。
【図４】本実施形態に係る情報処理システムを用いた電子カルテ・処方箋システムについて説明するための図。
【図５】文書の構成例を示した図。
【図６】文書の構成例を示した図。
【図７】ページ部品のデータ構造の一例を示した図。
【図８】ページ部品のデータ構造の一例を示した図。
【図９】ページ部品のデータ構造の一例を示した図。
【図１０】スクラップブック編集装置の構成例を示した図。
【図１１】図１０に示したスクラップブック編集装置をコンピュータ（計算機）上で実現する場合の構成例を示した図。
【図１２】文書読込モジュールの構成例を示した図。
【図１３】文書タイプ判定モジュールの処理動作を説明するためのフローチャート。
【図１４】ページ部品管理モジュールの構成例を示した図。
【図１５】ページ部品処理モジュールの文書編集処理手順について説明するためのフローチャート。
【図１６】スクラップブック編集装置での文書の表示例を示した図。
【図１７】コンテナに設定された受理条件（受理タイプを含む）、操作許容条件を示す図。
【図１８】コンテンツに設定されたタイプ名及び利用制御条件を示す図。
【図１９】コンテナにコンテンツを挿入際の条件判定モジュールの処理動作を説明するためのフローチャート。
【図２０】図１６に示した表示画面上で、スクラップブックの各コンテナにコンテンツを挿入した後の画面表示例を示した図。
【図２１】コンテナ内のコンテンツに対し操作を行う際の条件判定モジュールの処理動作を説明するためのフローチャート。
【図２２】図２０に示した表示画面上で、スクラップブックのコンテナ内のコンテンツを更新した後の画面表示例を示した図。
【図２３】コンテナに設定された受理タイプと、当該コンテナに挿入しようとしているコンテンツのタイプとを用いた、当該コンテンツの当該コンテナへの挿入可否判定処理動作について説明するためのフローチャート。
【図２４】形式調整モジュールの構成例を示した図。
【符号の説明】
【０２７０】
３００…アプリ処理装置；
３０１…起動部；
３０２…制御部；
３０３…スクラップブック生成部；
３０４…スクラップブック受信部；
３０５…処理ステップ実行部；
３１０…スクラップブック編集装置；
３２０…素材提供装置；
【図１】
2006072551.tif 000003
【図２】
2006072551.tif 000004
【図３】
2006072551.tif 000005
【図４】
2006072551.tif 000006
【図５】
2006072551.tif 000007
【図６】
2006072551.tif 000008
【図７】
2006072551.tif 000009
【図８】
2006072551.tif 000010
【図９】
2006072551.tif 000011
【図１０】
2006072551.tif 000012
【図１１】
2006072551.tif 000013
【図１２】
2006072551.tif 000014
【図１３】
2006072551.tif 000015
【図１４】
2006072551.tif 000016
【図１５】
2006072551.tif 000017
【図１６】
2006072551.tif 000018
【図１７】
2006072551.tif 000019
【図１８】
2006072551.tif 000020
【図１９】
2006072551.tif 000021
【図２０】
2006072551.tif 000022
【図２１】
2006072551.tif 000023
【図２２】
2006072551.tif 000024
【図２３】
2006072551.tif 000025
【図２４】
2006072551.tif 000026