JP2006072551A - 文書編集装置、情報処理システム、情報処理装置およびプログラム - Google Patents
文書編集装置、情報処理システム、情報処理装置およびプログラム Download PDFInfo
- Publication number
- JP2006072551A JP2006072551A JP2004253210A JP2004253210A JP2006072551A JP 2006072551 A JP2006072551 A JP 2006072551A JP 2004253210 A JP2004253210 A JP 2004253210A JP 2004253210 A JP2004253210 A JP 2004253210A JP 2006072551 A JP2006072551 A JP 2006072551A
- Authority
- JP
- Japan
- Prior art keywords
- content
- area
- document
- scrapbook
- container
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
【課題】コンテンツを提供する側の当該コンテンツの利用に対する制限の範囲内で、コンテンツを利用する側の条件を満足するコンテンツの利用が容易に行える文書編集装置を提供する。
【解決手段】利用する際の制約条件を示した利用制御条件が予め設定されているコンテンツを含む文書データを記憶するための記憶手段を備え、コンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを受け取り、当該領域に挿入する文書データのコンテンツが指定されたとき、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定し、この判定結果に基づき、当該領域にコンテンツを挿入する。
【選択図】 図1
【解決手段】利用する際の制約条件を示した利用制御条件が予め設定されているコンテンツを含む文書データを記憶するための記憶手段を備え、コンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを受け取り、当該領域に挿入する文書データのコンテンツが指定されたとき、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定し、この判定結果に基づき、当該領域にコンテンツを挿入する。
【選択図】 図1
Description
本発明は、XML文書、HTML文書などの構造化文書の編集装置に関する。
Webシステム・情報デバイスなどでのアプリケーションでは、情報入力のユーザインターフェースとして、インプットボックスやセレクタなどのGUI部品を組み合わせたフォームを提供することが多い。この入力作業においては、ユーザは、フォームの各項目をすべてゼロから埋めなければならず、過去・あるいは他人の入力データを再利用することはできない、という問題があった。
それに対し、OSなどは単純なコピーペースト機能を提供しており、文字列レベルでコピーすることは可能であるが、たとえば住所欄の情報を名前欄へ貼り付けてしまうなど、内容的に不適正な引用を禁止することができない。また引用作業が、ある程度まとまってではなく、プリミティブな項目ごとでしか行うことができないのでは、作業効率が悪い。
そこで、特許文献1では、タイプつきの構造的なスクラップブックを用いることで、アプリケーションの新たな情報入力方法として、再利用に適した単位で適正な「引用」を可能とする情報入力方法を提供する、という解決方法を示している。
具体的には、構造的なスクラップブックは、「コンテンツ」を受け入れるための欄が複数存在し、かつ各欄には受け入れることのできる「コンテンツ」のタイプを限定することができる。これにより、各欄では、指定されたタイプのコンテンツ以外は入力されないことが保証される。なお、「コンテンツ」とは、再利用するのに適切なサイズに設定された、複数の項目を含んだ構造的データのことである。ここで、「コンテンツ」としてバイナリデータを扱いたい場合は、該バイナリデータへのURL等参照IDを項目に含めることで表現可能である。
この構造化スクラップブックをアプリケーションの入力インターフェースとして用いる場合、スクラップブックの各欄は、アプリケーション処理に必要な情報項目、いわば処理引数が対応する。したがって、スクラップブックのタイプ検査によって、アプリケーションへ入力される情報セットは健全であることが保証されることになる。
上述のように、引用の適正さを保証するため、特許文献1ではタイプ検査による受理判定を行っている。しかしそれだけでは不十分なケースもある。そこで、(1)受理判定における検査の強化、(2)相手の信頼性を確保する仕組み、(3)情報公開・利用の範囲の制御、(4)状態変化に応じた公開・利用の範囲の制御、といった補強が必要である。
(1)受理判定における検査の強化
スクラップブックの各欄(コンテナ)は、アプリケーション処理に必要な引数を示している。特許文献1では、各欄に収納できる個数に関する条件を設定できず、コンテンツを挿入できる数に制限はないが、アプリケーション処理によっては個数指定が必要な場合も多い。また500円以下の商品に関する商品カタログのみ受理するなど、コンテンツに含まれる情報に応じて受理するかどうかの判定をしたい場合もあるが、上記特許文献1ではコンテンツに含まれる情報(例えば値)を用いた受理判定もサポートしていない。
スクラップブックの各欄(コンテナ)は、アプリケーション処理に必要な引数を示している。特許文献1では、各欄に収納できる個数に関する条件を設定できず、コンテンツを挿入できる数に制限はないが、アプリケーション処理によっては個数指定が必要な場合も多い。また500円以下の商品に関する商品カタログのみ受理するなど、コンテンツに含まれる情報に応じて受理するかどうかの判定をしたい場合もあるが、上記特許文献1ではコンテンツに含まれる情報(例えば値)を用いた受理判定もサポートしていない。
(2)及び(3)は、いずれもクロスサイトにかかる問題である。特許文献1のスクラップブックを入力インターフェースとして用いたアプリケーションシステムの場合、ユーザは、任意のシステム間での引用が可能であるという仕組み上、スクラップブックを提供するアプリケーションシステムと、引用されるコンテンツを提供するシステムとが、同一であるとは限らない。
(2)相手の信頼性を確保する仕組み
スクラップブックを提供するアプリケーションシステム側としては、アプリケーションシステムの動作保証のため、信頼できないコンテンツの挿入は拒絶したい。そのため、コンテンツの提供元のシステムをあらかじめ信頼しているシステム、あるいは信頼できるシステムに限定するなどの仕組みがほしい場合がある。逆に、コンテンツを提供する側としても、信頼できないアプリケーションシステムにコンテンツが利用されるのを防ぐための仕組みがほしい場合がある。このようにコンテンツ提供者は、信頼の観点から、提供する情報の公開範囲・利用方法について制御したい。
スクラップブックを提供するアプリケーションシステム側としては、アプリケーションシステムの動作保証のため、信頼できないコンテンツの挿入は拒絶したい。そのため、コンテンツの提供元のシステムをあらかじめ信頼しているシステム、あるいは信頼できるシステムに限定するなどの仕組みがほしい場合がある。逆に、コンテンツを提供する側としても、信頼できないアプリケーションシステムにコンテンツが利用されるのを防ぐための仕組みがほしい場合がある。このようにコンテンツ提供者は、信頼の観点から、提供する情報の公開範囲・利用方法について制御したい。
(3)情報公開・利用の範囲の制御
またコンテンツ提供者は、信頼の観点からだけでなく、活用の観点からも、公開範囲・利用方法について制御したいことがある。例えば、自社アプリケーションシステム向けに用意したコンテンツは、他社では整合しないことが分かっているので、不具合を防止するため、公開・利用範囲を自社サイトに限定したり、ユーザ・実行マシン・LANなど、利用状況に応じて、コンテンツのアクセスレベルを変更したり、コピー・移動・複製など利用できる機能を変更制御する、などが挙げられる。
またコンテンツ提供者は、信頼の観点からだけでなく、活用の観点からも、公開範囲・利用方法について制御したいことがある。例えば、自社アプリケーションシステム向けに用意したコンテンツは、他社では整合しないことが分かっているので、不具合を防止するため、公開・利用範囲を自社サイトに限定したり、ユーザ・実行マシン・LANなど、利用状況に応じて、コンテンツのアクセスレベルを変更したり、コピー・移動・複製など利用できる機能を変更制御する、などが挙げられる。
(4)状態変化に応じた公開・利用の範囲の制御
上記(3)の他に、コンテンツの状態に応じて利用方法の制御を行いたい場合もある。コンテンツ内の値は、オブジェクトの状態と捉えることもできる。該システムではコンテンツは流通性を持っているので、たとえばワークフローなどの利用を考えたとき、承認フラグなどをコンテンツ内に持たせ、このフラグの値に応じて利用できる機能やアクセスレベルを制御できることが望まれる。
特開2004−046357公報
上記(3)の他に、コンテンツの状態に応じて利用方法の制御を行いたい場合もある。コンテンツ内の値は、オブジェクトの状態と捉えることもできる。該システムではコンテンツは流通性を持っているので、たとえばワークフローなどの利用を考えたとき、承認フラグなどをコンテンツ内に持たせ、このフラグの値に応じて利用できる機能やアクセスレベルを制御できることが望まれる。
以上説明したように、従来は、コンテンツを提供する側の当該コンテンツの利用に対する制限の範囲内で、コンテンツを利用する側の条件を満足するコンテンツの利用が容易に行えないという問題点があった。
そこで、本発明は上記問題点に鑑み、コンテンツを提供する側の当該コンテンツの利用に対する制限の範囲内で、コンテンツを利用する側の条件を満足するコンテンツの利用が容易に行える文書編集装置を提供することを目的とする。
また、プログラムを実行して予め定められた情報処理を行う情報処理装置へ、上記文書編集装置を用いて、コンテンツを提供する側の当該コンテンツの利用に対する制限の範囲内で、当該情報処理装置により要求される条件を満足するコンテンツを入力データとして入力することが容易に行える情報処理システム及び上記情報処理装置を提供することを目的とする。
本発明に一実施形態に係る文書編集装置は、コンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを提供し、当該領域にコンテンツの挿入されたスクラップブックデータを受け取ると、当該スクラップブックデータの当該領域に挿入されたコンテンツを用いて当該プログラムを実行する情報処理装置から提供されたスクラップブックデータを編集し、当該領域にコンテンツの挿入されたスクラップブックデータを当該情報処理装置へ返す文書編集装置であって、利用する際の制約条件を示した利用制御条件が予め設定されているコンテンツを含む文書データを記憶するための記憶手段を備え、情報処理装置から提供されるスクラップブックデータが入力され、当該領域に挿入する文書データのコンテンツが指定されると、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定し、この判定結果に基づき、当該領域にコンテンツを挿入する。
また、当該領域には、当該領域へ挿入されたコンテンツに対する操作を制約するための操作許容条件が予め設定され、当該領域に挿入された文書データのコンテンツに対する任意の操作が指示されたときには、当該領域の操作許容条件及び当該領域内の当該コンテンツの利用制御条件に基づき、当該領域内の当該コンテンツに対し指示された操作の可否を判定し、この判定結果に基づき、当該領域に挿入された当該文書データのコンテンツに対する任意の操作を実行する。
本発明によれば、コンテンツを提供する側の当該コンテンツの利用に対する制限の範囲内で、コンテンツを利用する側の条件を満足するコンテンツの利用が容易に行える。
また、プログラムを実行して予め定められた情報処理を行う情報処理装置に対し、情報処理に必要な信頼性の高いデータ入力が容易に行える。
以下、本発明の実施形態について図面を参照して説明する。
(システムの概要)
まず、本実施形態に係るシステムの概要を説明する。
まず、本実施形態に係るシステムの概要を説明する。
本実施形態に係るシステムは、1または複数のコンテンツを挿入するための1つ又は複数の領域(コンテナに相当する)を含むスクラップブックをユーザインターフェースとして用いるアプリケーションシステムである。
以下の説明において、「受理判定機構」とは、引用する側であるアプリケーションシステム側の都合を守るため、アプリケーションシステム側の都合である「受理条件」を満たすよう入力検査する機構であり、また「利用制御機構」とは、引用される側であるコンテンツ提供者の都合を守るため、提供者側の都合である「利用制御条件」を満たすよう操作を検査する機構である。エンドユーザは、これらのオンライン検査によって、両者の都合が守られる範囲内で自由に引用作業を行うことができる。
(1)受理判定機構
受理条件は、
a0. タイプ
a1. 値
a2. 個数
a3. 履歴(あるいは証明書など)
a4. 上記a0〜a3を組み合わせた論理式(タイプ・値・数・履歴)
などがあり、上記のa1、a2、a4は「受理判定における検査の強化」にあたり、a3は「相手の信頼性を確保する仕組み」にあたる。
受理条件は、
a0. タイプ
a1. 値
a2. 個数
a3. 履歴(あるいは証明書など)
a4. 上記a0〜a3を組み合わせた論理式(タイプ・値・数・履歴)
などがあり、上記のa1、a2、a4は「受理判定における検査の強化」にあたり、a3は「相手の信頼性を確保する仕組み」にあたる。
(2)利用制御機構
利用制御機構は、コンテンツに付与される「利用制御条件」を基に、コンテンツごとに「操作」可否・「アクセス」可否・「配布範囲」制御を行うことができる。利用制御条件は、状況を示す「条件」(if)と許可する「アクション」(then)の順序付リストで構成される(if then else構造)。「if+then」を利用定義と呼ぶ。「if」として次のファクタを使用できるようにする。
利用制御機構は、コンテンツに付与される「利用制御条件」を基に、コンテンツごとに「操作」可否・「アクセス」可否・「配布範囲」制御を行うことができる。利用制御条件は、状況を示す「条件」(if)と許可する「アクション」(then)の順序付リストで構成される(if then else構造)。「if+then」を利用定義と呼ぶ。「if」として次のファクタを使用できるようにする。
b1. 値
b2. ユーザ・IPアドレス・LANなどのコンテンツの利用環境
b3. 相手の履歴(あるいは証明書など)
b4. 上記b1〜b3を組み合わせた論理式(タイプ・値・数・履歴)
上記b1は「状態変化に応じた公開・利用の範囲の制御」にあたり、b3は「相手の信頼性を確保する仕組み」にあたり、b2、b4は「情報公開・利用の範囲の制御」にあたる。
b2. ユーザ・IPアドレス・LANなどのコンテンツの利用環境
b3. 相手の履歴(あるいは証明書など)
b4. 上記b1〜b3を組み合わせた論理式(タイプ・値・数・履歴)
上記b1は「状態変化に応じた公開・利用の範囲の制御」にあたり、b3は「相手の信頼性を確保する仕組み」にあたり、b2、b4は「情報公開・利用の範囲の制御」にあたる。
コンテンツに対するユーザ操作が加わった際、利用制御条件内のif文をスキャンして現状に見合う利用定義を見つけ出し、このユーザ操作が許可できるものかどうかを判断する。同様に表示などデータアクセス(R/W)の際、現状に見合う利用定義を見つけ出し、許可されているノードのみアクセス許可する。
本実施形態に係るアプリケーションシステムによれば、
c1.データを入力するためのユーザインターフェースとしてスクラップブックが提供され、エンドユーザは「引用」によるデータ入力が可能となる。
c1.データを入力するためのユーザインターフェースとしてスクラップブックが提供され、エンドユーザは「引用」によるデータ入力が可能となる。
c2.スクラップブックに挿入され得るコンテンツの提供元として、アクセス可能な任意の素材提供装置を利用することができる。
c3.ユーザによってスクラップブックに挿入されたコンテンツは、アプリケーションシステムによる処理実行に用いられる。
c4.スクラップブックへのコンテンツ挿入・編集操作において、アプリケーションシステム側が指定する「受理条件」や「操作許容条件」、コンテンツ提供者側が指定する「利用制御条件」を満たすよう検査が行われ、これら条件を満たさない操作はできないようになっている。
(システム構成)
図1は、システム全体の構成例を示したもので、大きく分けて、アプリ処理装置300、スクラップブック編集装置310、素材提供装置320からなる。
図1は、システム全体の構成例を示したもので、大きく分けて、アプリ処理装置300、スクラップブック編集装置310、素材提供装置320からなる。
アプリ処理装置300は、複数処理ステップからなる所定の機能を実現するためのアプリケーションプログラム群(以下、簡単にアプリケーションとも呼ぶ)を実行するための例えばコンピュータである。当該アプリケーションの各処理ステップの実行に必要なデータをユーザが入力するためのスクラップブックを生成して、ユーザに提供し、スクラップブックを介してデータを受け取り、当該各処理ステップを実行するようになっている。
スクラップブック編集装置310は、ユーザインターフェースを持ち、ユーザに対して、アプリ処理装置300から送られてくるスクラップブックに、素材提供装置320から提供される素材、すなわち、コンテンツの埋め込み(挿入)、修正・更新などの操作を行うためのものである。スクラップブック編集装置310については後述する。
素材提供装置320は上記スクラップブックに適用可能な、コンテンツ群を提供する装置である。コンテンツ群は、1または複数のコンテンツを含む文書(例えば、インターネットを介して提供可能なWebページであってもよい)として、あるいは各コンテンツが別々に(スクラップブック編集装置310に対し)提供されてもよい。
以下、本システムがWebシステムに含まれる場合を例にとり説明する。
(システムの動作)
図2は、図1のアプリ処理装置300の処理動作を説明するためのフローチャートである。ユーザが、アプリ処理装置300の有するネットワークを介したクライアント装置からのシグナルを受信する装置であるキーボード、マウス、あるいはボタンなどの入力装置を用いて、起動部301を起動するための指示を行うことにより起動部301が起動される(ステップS500)。たとえば、アプリ処理装置300が、Webサーバシステムに含まれている場合には、Webブラウザが当該アプリ処理装置300に対応するページを開いたとき、あるいはアプリ処理装置300がカーナビゲーションシステム(以下、簡単にカーナビと呼ぶ)に適用され、アプリ処理装置300が、カーナビの機能を実現するためのアプリケーションを実行する場合には、起動部301を起動させるための図示しないボタンがユーザにより押されたときに起動部301が起動する。
図2は、図1のアプリ処理装置300の処理動作を説明するためのフローチャートである。ユーザが、アプリ処理装置300の有するネットワークを介したクライアント装置からのシグナルを受信する装置であるキーボード、マウス、あるいはボタンなどの入力装置を用いて、起動部301を起動するための指示を行うことにより起動部301が起動される(ステップS500)。たとえば、アプリ処理装置300が、Webサーバシステムに含まれている場合には、Webブラウザが当該アプリ処理装置300に対応するページを開いたとき、あるいはアプリ処理装置300がカーナビゲーションシステム(以下、簡単にカーナビと呼ぶ)に適用され、アプリ処理装置300が、カーナビの機能を実現するためのアプリケーションを実行する場合には、起動部301を起動させるための図示しないボタンがユーザにより押されたときに起動部301が起動する。
起動部301は、上記アプリケーションプログラム群の実行順序や各プログラムを実行する際に必要なスクラップブックに関する情報などを示す複数のレコードからなる手順データが予め記憶されているメモリを有し、起動部301が起動されると、起動部301は、当該メモリ内に予め格納されている手順データを制御部302にセットする(ステップS501)。
図3は、起動部301のメモリに予め記憶されている手順データの一例を示したものである。図3に示すように、手順データは、アプリケーションプログラム群の各プログラムの実行順序(例えば、ここでは、「ステップ1」〜「ステップ5」)別の複数のレコードからなり、各レコードには、各ステップで実行すべきプログラムあるいはプログラムの識別子(例えば、ここでは「プログラム1」〜「プログラム5」)、当該プログラムで用いる引数に関する情報の記述された引数リスト、当該プログラムで用いるスクラップブックあるいはスクラップブックの識別子(例えば、ここでは「スクラップブック1」〜「スクラップブック5」)、当該引数リストに挙げられている各引数が挿入されるべき当該スクラップブック中のコンテナの位置情報などを含む引数・コンテナ対応付け情報などの情報が含まれている。
なお、本システムがWebサーバシステムであるならば、プログラムの識別子はCGIプログラムへのURL、スクラップブックの識別子はスクラップブックへのURLであってもよい。
制御部302は、起動部301から受け取った手順データを基に、各手順データのレコードに対応する処理を実行し終わるまでの間、アプリケーションの実行制御を司るようになっている。
制御部302は、手順データの各レコードを順番に取り出し、全てのレコードを取り出すまで、以下のステップS503〜ステップS506を繰り返す(ステップS502)。
制御部302は、レコードを1つ取り出すと(現在処理中のレコードをカレントレコードと呼ぶ)、これをスクラップブック生成部303に渡し、スクラップブック生成部303は、当該カレントレコードからスクラップブックの識別子を取り出し、当該識別子に対応するスクラップブックを生成する。スクラップブック生成部303は、例えば、複数の識別子のそれぞれに対応するスクラップブックの複数のフォーマットが予め記憶された記憶手段を有し、当該カレントレコードに含まれるスクラップブックの識別子に対応するフォーマットを当該記憶手段から読み出し、このフォーマットと、当該カレントレコードに含まれる引数リストや、引数・コンテンツ対応付け情報などを用いて、スクラップブックを生成する。引数リストには、各引数名と、当該引数に予め定められた受理条件や操作許容条件、具体的にはタイプ名・個数・値などや、これらを組み合わせたものが記述されている。この情報を用いて、各引数に対してコンテナ1つが対応するようなスクラップブックを生成する。
あるいは、スクラップブック生成部303は、例えば、複数の識別子のそれぞれに対応する複数のスクラップブックそのものが予め記憶された記憶手段を有し、当該カレントレコードに含まれるスクラップブックの識別子に対応するスクラップブックを当該記憶手段から読み出すようにしてもよい。
スクラップブック生成部303は、このようにして生成された(読み出された)スクラップブックをスクラップブック編集装置310へ送信する(ステップS503)。
続いて、スクラップブック編集装置310によって、当該スクラップブックの各コンテナへのコンテンツの挿入や、各コンテンツに対する編集が行われる。スクラップブック編集装置310でのスクラップブックの編集作業においては、ユーザは、さまざまな素材提供装置320から得られたコンテンツを引用することで、スクラップブックを編集することができる。スクラップブック編集装置310の処理動作の詳細は、後述する。スクラップブック編集装置310によって編集された(コンテンツが埋められた)当該スクラップブックは、アプリ処理装置300へ送信される(ステップS504)。
アプリ処理装置300のスクラップブック受信部304は、スクラップブック編集装置310から送信されたスクラップブックを受け取ると、カレントレコードに含まれる引数・コンテナ対応付け情報を参照して、当該スクラップブックの各コンテナから、当該コンテナに対応付けられた引数名に対応するコンテンツを取り出し、この取り出したコンテンツを当該引数名とともに処理ステップ実行部305に渡す(ステップS505)。
処理ステップ実行部305は、カレントレコードに含まれるプログラム識別子に対応するプログラムを所定の記憶手段から読み出し、当該スクラップブックから取り出されたコンテンツを引数として用いて当該読み出したプログラムを実行する(ステップS506)。その後、ステップS502へ戻る。
(具体例)
次に、図1に示したシステムを、病院での電子カルテ・処方箋システムに適用した場合を例にとり、当該システムの動作の概要を、図4を参照して説明する。このシステムでは、1ステップからなるアプリケーションプログラムが実行される。すなわち、手順データの唯一のレコードに対応するステップ1により、アプリ処理装置300では、患者データ・検査データ・処方薬を引数として受け取り、患者への販売処理を行うためのプログラムが実行される。
次に、図1に示したシステムを、病院での電子カルテ・処方箋システムに適用した場合を例にとり、当該システムの動作の概要を、図4を参照して説明する。このシステムでは、1ステップからなるアプリケーションプログラムが実行される。すなわち、手順データの唯一のレコードに対応するステップ1により、アプリ処理装置300では、患者データ・検査データ・処方薬を引数として受け取り、患者への販売処理を行うためのプログラムが実行される。
手順データのステップ1のレコードの引数リストには、例えば、以下に示すような情報が含まれている。
(“param_patient”, “type(Patient) and max(1) and url(/)”),
(“param_study”, “type(Study) and test(/study[@year >= 2004]) and url(/)”),
(“param_medicine”, “type(Medicine)”)
「param_patient」は患者データに対応する引数名であり、当該引数に対し、「Patient」という型のコンテンツであり、かつ個数は1つまでであり、かつ自サイトから提供されるコンテンツであるといった、受理条件が指定されている。なお「url」のカッコ内には受け入れ範囲となるサイトを自サイトからの相対URLで指定するようになっている。ここでは「/」と指定されているが、これは自サイトのルートディレクトリを示すため、自サイトならばどこからでも受け取る、という意味となる。
(“param_study”, “type(Study) and test(/study[@year >= 2004]) and url(/)”),
(“param_medicine”, “type(Medicine)”)
「param_patient」は患者データに対応する引数名であり、当該引数に対し、「Patient」という型のコンテンツであり、かつ個数は1つまでであり、かつ自サイトから提供されるコンテンツであるといった、受理条件が指定されている。なお「url」のカッコ内には受け入れ範囲となるサイトを自サイトからの相対URLで指定するようになっている。ここでは「/」と指定されているが、これは自サイトのルートディレクトリを示すため、自サイトならばどこからでも受け取る、という意味となる。
「param_study」は検査データに対応する引数名であり、当該引数に対し、「Study」という型のコンテンツであり、かつ当該コンテンツ内の「year」という属性の値が「2004」以上であり、かつ自サイトから提供されるコンテンツであるとい受理条件が指定されている。
「param_medicine」は処方箋に対応する引数名であり、当該引数に対し、「Medicine」という型のコンテンツが指定されている。
なお各コンテンツはXMLで記述され、Patient型のコンテンツには、患者名、患者ID、入院日、服用中の薬名群の情報が含まれている。Study型のコンテンツには、検査年・月・日、検査データ、X線写真データへのURLが含まれている。Medicine型のコンテンツには、薬名と薬IDの情報が含まれている。
手順データのステップ1のレコードで指定されているスクラップブック(スクラップブック生成部303で生成されるスクラップブックあるいは、当該レコードに含まれるスクラップブック)の一例を以下に示す。
<?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>
上記スクラップブックの各コンテナ(accept要素)には、手順データのステップ1のレコードに含まれる引数リストにより各引数に対し指定された条件(ここでは、例えば受理条件のみ)が記述されている。
<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>
上記スクラップブックの各コンテナ(accept要素)には、手順データのステップ1のレコードに含まれる引数リストにより各引数に対し指定された条件(ここでは、例えば受理条件のみ)が記述されている。
手順データのステップ1のレコードに含まれる引数・コンテナ対応付け情報の一例を以下に示す。
(“param_patient”, “/karte/accept[1]”),
(“param_study”, “/karte/accept[2]”),
(“param_medicine”, “/karte/accept[3]”),
引数・コンテナ対応付け情報の各データは、引数と、スクラップブック内での構造位置を示す情報とを1組とするデータであり、スクラップブック内での構造位置は、W3Cで標準化されているXPath (XML Path Language)で記述されている。上記引数・コンテナ対応付け情報によれば、引数「param_patient」が上記スクラップブック中の1つ目のコンテナ(accept要素)に対応し、引数「param_study」が上記スクラップブック中の2つ目のコンテナ(accept要素)に対応し、引数「param_medicine」上記スクラップブック中の3つ目のコンテナ(accept要素)に対応することを示している。
(“param_study”, “/karte/accept[2]”),
(“param_medicine”, “/karte/accept[3]”),
引数・コンテナ対応付け情報の各データは、引数と、スクラップブック内での構造位置を示す情報とを1組とするデータであり、スクラップブック内での構造位置は、W3Cで標準化されているXPath (XML Path Language)で記述されている。上記引数・コンテナ対応付け情報によれば、引数「param_patient」が上記スクラップブック中の1つ目のコンテナ(accept要素)に対応し、引数「param_study」が上記スクラップブック中の2つ目のコンテナ(accept要素)に対応し、引数「param_medicine」上記スクラップブック中の3つ目のコンテナ(accept要素)に対応することを示している。
手順データのステップ1のレコードに含まれる、あるいは、識別子により指定されているプログラムは、例えば、次のような内容の処理を行うプログラムである。
1.第1引数の患者データ内に含まれる服用中の薬群を取り出す(薬A・薬B)。
2.第3引数の処方薬群を取り出す(薬C・薬D・薬E)。
3.第3引数の処方薬群のなかに、服用中の薬群と組み合わせてはならないものがないかチェックする。
4.あればエラーを返して処理はストップ、なければ薬C・D・Eについて、在庫をチェックする。
5.在庫がなければエラーを返して処理ストップ、あれば患者への販売処理をする。
プログラムを記述する言語としては、たとえばPerl言語やC言語などが挙げられる。
このようなシステムに対し、ユーザである薬剤師あるいは医者が所定の操作を行うことにより起動部301を起動すると(ステップS500)、図2に示したようにして、上記手順データ(ステップ1のレコード)が読み出され、スクラップブック生成部303で、当該レコードから得た上記スクラップブックがスクラップブック編集装置310へ渡される(ステップS501〜ステップS503)。
ユーザはこのスクラップブックに対して、各コンテナに設定された受理条件を満たす限り、任意のコンテンツを当該コンテナへ挿入することができる。
ここでの例では、上記スクラップブックに、自病院内の患者データベース(図1の素材提供装置320に相当)から読み出された患者データ一覧表に含まれる対象患者の患者データ(コンテンツ)を挿入するとともに、自病院内の検査機器(図1の素材提供装置320に相当)が出力する検査データ一覧に含まれる投薬の根拠となる検査データを2,3個挿入し、さらに、処方する薬を、薬品会社の薬データベース(図1の素材提供装置320に相当)からピックアップして挿入する。また、当該ユーザのパーソナルコンピュータ(図1の素材提供装置320に相当)内に設けられたローカルデータベースに格納されている薬のリストなどからピックアップして挿入するようにしてもよい。このようなコンテンツを挿入する際に、上記スクラップブックの各コンテナに設定された受理条件を満たさない場合には、当該コンテンツは拒絶される。すなわち、当該コンテナへ挿入することはできない。
たとえば上述のように、<accept type=”Patient” if=”max(1) and url(/)”/> で示されるコンテナが受理するコンテンツは、型はPatient型であり、かつ総数は1でかつ同じWebサイトでなければならない、と制限されている。したがって、このコンテナに対してMedicine型のコンテンツを挿入しようとしても拒絶される。あるいはすでにpatient型のコンテンツが1つ挿入済みである状態である場合に、さらに患者型のコンテンツを挿入しようとしても拒絶される。
このようにして、スクラップブック編集装置310を用いたユーザによるスクラップブックの編集作業が終了すると、例えば、当該スクラップブックの表示画面上に設けられた申請ボタンを押すことで、当該スクラップブックの内容がそのままアプリ処理装置300へ送信される(ステップS503)。
スクラップブック編集装置310で編集され、アプリ処理装置300へ送信されたスクラップブックの一例を以下に示す。スクラップブックは、ここでは、XML(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>
アプリ処理装置300は、上記スクラップブックを受け取ると、スクラップブック受信部304において、上記手順データのステップ1のレコードに含まれる、引数・コンテナ対応付け情報を用いて、各引数に対応するコンテナから当該コンテナに挿入されたコンテンツが取り出され(ステップS505)、処理ステップ実行部305において、上記手順データのステップ1のレコードにて指定されているプログラムを起動し、スクラップブック受信部304から渡された各引数に対応するコンテンツ(ここでは、XMLで記述されたXMLデータ)を用いて、上記のようなプログラムが実行される。
<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>
アプリ処理装置300は、上記スクラップブックを受け取ると、スクラップブック受信部304において、上記手順データのステップ1のレコードに含まれる、引数・コンテナ対応付け情報を用いて、各引数に対応するコンテナから当該コンテナに挿入されたコンテンツが取り出され(ステップS505)、処理ステップ実行部305において、上記手順データのステップ1のレコードにて指定されているプログラムを起動し、スクラップブック受信部304から渡された各引数に対応するコンテンツ(ここでは、XMLで記述されたXMLデータ)を用いて、上記のようなプログラムが実行される。
(システム構成のバリエーション)
図1に示したシステムにおいて、アプリ処理装置300と、スクラップブック編集装置310は、別個のコンピュータ(例えばパーソナルコンピュータ)により実現され、ネットワークを介して通信しあう、C/S(クライアント・サーバ)システムであってもよい。
図1に示したシステムにおいて、アプリ処理装置300と、スクラップブック編集装置310は、別個のコンピュータ(例えばパーソナルコンピュータ)により実現され、ネットワークを介して通信しあう、C/S(クライアント・サーバ)システムであってもよい。
また、アプリ処理装置300の機能とスクラップブック編集装置310の機能とが、同一のデバイス内で実現されていてもよい。このような形態のものを情報デバイスと呼ぶ。
素材提供装置320は、Webサーバであってもよい。この場合、スクラップブック編集装置310と素材提供装置320とはクライアントとサーバの関係となり、ネットワークで通信して、素材提供装置320からスクラップブック編集装置310へコンテンツ群がWebページとして提供される。この場合に、素材提供装置320とアプリ処理装置300が同一であってもよい。
素材提供装置がCD−ROMや携帯型メモリカードなどの携帯可能な記録媒体であってもよい。この場合は、クライアントPCあるいは情報デバイスなどのスクラップブック編集装置310により上記記録媒体からコンテンツやコンテンツを含む文書を読み出すことにより、コンテンツ群が提供される。あるいは、スクラップブック編集装置として機能するクライアントPC上に構築された個人データベース(アルバムソフトなど)であってもよい。個人データベースは、ユーザが有用と思われるコンテンツ群をユーザのPC上に取っておくための仕組みである。これにより、後から見たくなったときには、インターネット上のサイトに検索し直さなくてもいつでも見ることができる。もちろん、この個人データベースも素材提供装置として動作する。
典型的な利用形態としては、Webサイトから横断的にコンテンツを収集する利用形態が考えられるが、それに限らず様々な利用形態が考えられる。たとえば、アプリ処理装置300、スクラップブック編集装置310、素材提供装置320の各機能を全て備えた情報デバイス同士が互いに接続して、コンテンツを交換しあうような利用形態であってもよい。
次に、スクラップブック編集装置310について説明する。
(スクラップブック編集装置)
(用語の説明)
まず、以下の説明で用いる用語の説明を行う。
(用語の説明)
まず、以下の説明で用いる用語の説明を行う。
Web文書(Webページ)とは、インターネットを介して閲覧可能な、HTMLやXMLなどで記述された、複数の要素から構成された文書構造を有する構造化文書である。なお、以下の説明では、Web文書を例にとり説明するが、この場合に限らない。インターネットを介して閲覧されることを目的として作成され、インターネットを介して取得した構造化文書でなくとも、任意のエディタで任意の目的で作成され、任意の手段で取得した、HTML文書やXML文書などの一般的な構造化文書であっても、本実施形態は適用可能である。
コンテンツは、表示されたWebページ中の内容的にまとまりのある、例えば、それぞれが内容的に独立性の高い表示データであって、どのようにコンテンツを区切るかは、Webページの作者の意図するところである。コンテンツは、Webページの作者によって、全く異なる観点から様々に区切ることのできるWebページ中の部分文書であって、1つのWebページ(Web文書)中のユーザが独立的に取り扱いたい部分文書とも言える。例えば、ポータルサイトの多くは、トップページにおいて、ポートレットと呼ばれる部分的なページエリアに、株価情報・気象情報・ニュース記事など、異なるジャンルの情報を、組み合わせて記載している。例えば、ジャンル別の情報、すなわち、例えば、ニュース記事や気象情報のそれぞれがコンテンツ(部分文書)であってもよいし、ニュース記事中の1つ1つのニュースがコンテンツ(部分文書)であってもよい。コンテンツの内容、区切り方は特に限定するものではない。なお、1つのWebページ全体が1つのコンテンツとしてもよいし、1つのコンテンツが複数のコンテンツを包含してもよい。
素材提供装置から提供される文書は、Web文書やHTML文書やXML文書などのコンテンツを含む文書である。
コンテナは、コンテンツを格納する領域のことである。コンテンツはコンテナを内部に複数持つことができるようになっており、コンテナは同じあるいは異なる複数のコンテンツを格納することができる。従ってコンテンツ〜コンテナが反復的に再帰するツリー構造が構成され得る。本システムでは、ページ(文書)全体もコンテンツとしてみなし、これを説明のためルートコンテンツと呼ぶ。スクラップブックは、ルートコンテンツが1つあり、そのルートコンテンツの中に複数のコンテナが存在するものといえる。
アプリ処理装置300から提供されるスクラップブックは、上記コンテナやコンテンツを含む、Web文書やHTML文書やXML文書などの文書である。また、素材提供装置320から提供される文書にも上記コンテナを含む場合もある。
本実施形態に係るスクラップブック編集装置310は、上記コンテナを含む、Web文書やHTML文書やXML文書などの文書(スクラップブックや素材提供装置から提供される文書を含む)を処理対象として、当該処理対象の文書に含まれるコンテナにコンテンツを挿入(格納)したり、当該コンテンツに対する操作を行うようになっている。
利用制御条件とは、コンテンツに与えられる付加情報(メタ情報)の1つであり、(スクラップブック編集装置310の)ユーザによる当該コンテンツの利用に関して、ケースごとに許可する操作およびアクセス方法などを規定するものである。コンテンツの提供者の意図が反映されている。すなわち、コンテンツに設定された利用制御条件は、当該コンテンツに対する操作の種別、当該コンテンツを利用する装置やユーザの識別子やIPアドレス、LANなどの利用環境、当該コンテンツの有効期間及び当該コンテンツが利用可能な場所のうちの少なくとも1つが指定されている。
また、受理条件・操作許容条件とは、コンテナに与えられる付加情報(メタ情報)の1つである。このうち受理条件とは、コンテナにコンテンツを挿入(格納)する際の条件を定めたものである。すなわち、コンテナに設定された受理条件には、当該コンテナに挿入可能なコンテンツのタイプ、個数及び当該コンテナへのコンテンツの挿入する装置・システムやユーザの識別子やIPアドレス、LANなどの利用環境のうちの少なくとも1つが指定されている。
操作許容条件とは、コンテナに格納されたコンテンツに対する、(スクラップブック編集装置310の)ユーザによる利用に関して、ケースごとに許可する操作およびアクセス方法などを規定するものである。コンテンツに付与可能な利用制御条件と内容は同様であり、コンテナに設定された利操許容条件は、当該コンテナ内のコンテンツに対する操作の種別、当該コンテンツを利用する装置・システムやユーザの識別子、IPアドレス、LANなどの利用環境、当該コンテンツの有効期間及び当該コンテンツが利用可能な場所のうちの少なくとも1つが指定されている。ただし、コンテンツに付与される利用制御条件は、当該コンテンツの提供者の意図が反映されたものであって、コンテナに付与される受理条件・操作許容条件は、コンテナを含む文書(アプリ処理装置300から提供されるスクラップブックや、素材提供装置320から提供される文書を含む)の提供者の意図が反映されている。ただし、コンテンツ提供者とコンテナ提供者が同一であってもよい。
本実施形態に係るスクラップブック編集装置300では、その処理対象となっているスクラップブックの任意のコンテナに任意の素材提供装置320から提供された文書に含まれるコンテンツを挿入し、当該挿入されたコンテンツに含まれるコンテナにさらに、任意の素材提供装置320から提供された文書に含まれるコンテンツを挿入するといった操作を行う場合もある。また、任意の素材提供装置320から提供された文書中の任意のコンテンツ内容を更新した後に、当該更新されたコンテンツをスクラップブックの任意のコンテナに挿入する場合もあれば、逆に、任意の素材提供装置320から提供された文書中の任意のコンテンツをスクラップブックの任意のコンテナに挿入した後、当該コンテナに挿入されたコンテンツの内容を更新する場合もある。以下に説明するスクラップブック編集装置300では、以下に説明するように、上記いずれの場合も可能である。
(スクラップブック編集装置の構成)
スクラップブック編集装置310では、アプリ処理装置300から提供されるスクラップブックや素材提供装置320から提供される文書をブラウザを用いて表示し、ブラウザ上でのドラッグドロップなどのGUI操作で、コンテンツを自由に組み合わせる機能を有する。
スクラップブック編集装置310では、アプリ処理装置300から提供されるスクラップブックや素材提供装置320から提供される文書をブラウザを用いて表示し、ブラウザ上でのドラッグドロップなどのGUI操作で、コンテンツを自由に組み合わせる機能を有する。
具体的には、あるブラウザから別のブラウザへ、ドラッグドロップなどのGUI操作でコンテンツを受け渡したり、コンテナを含む文書を表示するブラウザを開き、さまざまな文書から取り込みたいコンテンツをドラッグドロップなどのGUI操作でそのブラウザへ受け渡す。
スクラップブック編集装置310のブラウザは、インターネットあるいはファイルシステムなどにあるWeb文書を読み込むと、従来のブラウザと同様Web文書を表示するが、これに加えて、コンテンツをユーザが便利に取り扱うための多くの操作機能を有する。
(自由な再配置機能) Web文書の表示画面上において、ユーザがドラッグドロップなどのGUI操作を用いて、任意のコンテンツを別の位置へ動かす。
(ページ間受け渡し機能) 異なる文書間で、一方の文書のコンテナへ他方の文書のコンテンツを受け渡す。なお、ページ間受け渡しの際に、受け渡し先の文書のコンテナにはコンテンツ単位の受理条件が付与されている。
(形式(タイプ)の調整機能) 異なる文書間で、一方の文書のコンテナへ他方の文書のコンテンツを受け渡す際に、当該コンテンツのタイプと当該コンテナで受理可能なタイプとのミスマッチを解消する。コンテンツのタイプがそれを受ける側のコンテナに指定されたタイプに合わないと判定されると、適切な変換ルールを探し出し、この探し出したルールを当該コンテンツに適用して、当該コンテンツのタイプを受け側のコンテナで受理可能なタイプに変換してから当該コンテナへ挿入する。
(デザイン切替) コンテンツに対してデザイン(表示形式)を切り替える。この機能は、Web文書がXML文書などのようにデータとスタイルシート(表示方法)が分離して記述されている場合にのみ利用可能である。
(挿入機能) コンテンツを他のコンテンツ内に挿入する。この機能は再帰的であり、コンテンツが持つコンテナの中にコンテンツを入れ、また内部のコンテンツが持つコンテナの中に別のコンテンツを入れる処理を行うことができる。
(受け入れ判定機能) ドラッグドロップなどのGUI操作で、あるコンテンツをあるコンテナへ挿入する際、受け入れる側となるコンテナに、コンテンツを挿入する際の条件(受理条件)が設定され、挿入されるコンテンツに当該コンテンツを利用する際の条件(利用制御条件)が設定されていたときに、これら条件を満たさない場合は、挿入操作をキャンセルする。受理条件には、主にアプリケーション提供者の意図が反映されている。また、利用制御条件には、主に素材提供者の意図が反映されている)。
なお、挿入対象のコンテンツのタイプが受け入れ側のコンテナに設定されているタイプに関する受理条件に合致していない場合、上記形式の調整機能を用いて、当該コンテナが受け入れ可能なタイプに変換できるかどうかを試みる。受け入れ可能なタイプへの変換ルールが見つかった場合には、当該コンテンツは挿入可能と判定される。見つからなければ、挿入操作はキャンセルされる。
(コンテンツ編集機能) この機能を起動すると編集モードとなり、ユーザは、ブラウザ上で、現在選択しているコンテンツを編集することができる。
(保存機能) ユーザが上記各機能を用いて編集した文書を保存する。保存の形式としては、所定のデータ構造を有するコンテンツ(コンテナを有するコンテンツを含む)毎のページ部品単位で保存する。
(ページ部品)
コンテンツは他のコンテンツに包含される(親のコンテンツをもつ)こともあれば、他のコンテンツを包含する(子のコンテンツをもつ)こともある。これをコンテンツ(部分文書)間の包含関係あるいは親子関係と呼ぶ。
コンテンツは他のコンテンツに包含される(親のコンテンツをもつ)こともあれば、他のコンテンツを包含する(子のコンテンツをもつ)こともある。これをコンテンツ(部分文書)間の包含関係あるいは親子関係と呼ぶ。
前述したように、文書全体も1つのコンテンツとみなす。コンテンツは1または複数のコンテナを含む場合もあれば、コンテナを含まない場合もある。そして各コンテナは1または複数のコンテンツを含む場合もあれば、コンテンツを含まない場合もある。このように、文書(素材提供装置320から提供される文書やスクラップブック)は、図5に示すように、ある1つのコンテンツ(例えば、文書)をルートとする階層構造(ツリー構造)を有している。
アプリ処理装置300から提供されるスクラップブックは、空の状態のコンテナを少なくとも1つ有するものである。
図5に示す文書(ルートコンテンツ(0))は、4つのコンテナ(コンテナ(11)、コンテナ(12)、コンテナ(13)、コンテナ(6))を有し、コンテナ(11)はコンテンツ(1)を含み、コンテナ(12)はコンテンツ(2)を含み、コンテナ(13)はコンテンツ(3)を含み、コンテナ(6)は空の状態である。また、コンテンツ(3)はコンテナ(4)を有し、コンテナ(4)はコンテンツ(5)を有する。図5に示すように、ルートコンテンツや、それ以外のコンテンツがコンテンツを保持する場合には、必ずコンテナを介して(コンテナ(accept要素)内に)保持するようになっている。
図5に示した文書が、スクラップブックの場合には、スクラップブック編集装置310により編集されることにより、各コンテナにコンテンツが挿入されて、例えば、図6に示すような構造を有する文書が生成される。図6では、図5の各コンテナに、コンテンツが挿入された場合を示している。コンテナ(6)に挿入されたコンテンツ(8)がコンテナ(9)を含み、さらに、当該コンテナ(9)にコンテンツ(10)が挿入されている。また、コンテナ(6)のように、1つのコンテナには複数の(ここでは2つ)のコンテンツが挿入されている。図6に示すように、コンテナにコンテンツを挿入することにより、当該コンテンツは、挿入先のコンテナの子ノードとして表すことができ、親子関係にあると云える。
スクラップブック処理装置310では、コンテンツ(コンテナを含む場合もある)を処理単位としている。従って、文書中で、どこがコンテンツに当たるのか(すなわち、コンテンツ間(部分文書間)の包含関係)に関する情報が必要となる。これをここでは、ブロック構造情報と呼ぶ。ここでは、文書中で1つのページ部品に対応するコンテンツに対応するルートエレメントに「component」属性を与え、コンテナが存在する位置にacceptエレメントを与え、これらをブロック構造情報として用いている。
また、1つの文書を当該文書中に含まれているブロック構造情報を基に、スクラップブック処理装置310の処理単位であるコンテンツ単位のページ部品に分解することをブロック化とも云う。
また、現在広く用いられているHTML文書やXML文書などのWeb文書には、もちろんブロック構造情報(すなわち、「component」属性)は含まれていない。
スクラップブック編集装置310では、コンテンツ、コンテナを含むコンテンツ、1つまたは複数のコンテナを含み、各コンテナにはさらにコンテンツが含まれているような文書、1つまたは複数のコンテナを含み、そのうちの少なくとも1つは空の状態であるような文書(例えばスクラップブック)を図7に示すようなデータ構造を有するページ部品として管理・処理している。
ページ部品とは、コンテンツ(および直下のコンテナ群の集合)に1対1に対応し、ページ部品には、上記親子関係を示す参照情報や、当該コンテンツの内容や、その利用制御条件などを含み、コンテナを含む場合には当該コンテナに定められている受理条件・操作許容条件、コンテナに挿入されているコンテンツがある場合には当該コンテンツへの参照情報などが含まれている。
文書全体を1つのコンテンツとする場合もあり、この場合には、当該文書に含まれる各コンテンツに対応するページ部品が、文書全体に対応するページ部品と図5に示すような親子関係(階層構造)を有することとなる。
図7に示したページ部品D1は、2つのコンテナを有するコンテンツに対応するページ部品であり、特に、当該2つのコンテナに2つのコンテンツがそれぞれ挿入されている場合の(すなわち、2つのページ部品(コンテンツ)を含み、これら2つのコンテンツを子ノードとしてもつ)ページ部品のデータ構造の一例を示している。ページ部品には、複数のオブジェクトデータD11〜D17が含まれている。
コンテンツD12が当該ページ部品D1に対応するコンテンツの実体データである。
2つのコンテナ情報D14のそれぞれは、コンテテンツD12内の当該コンテナが挿入されている場所を示す情報D141、当該コンテナに挿入可能なコンテンツのタイプを示す受理タイプD142、さらに、受理タイプ以外の受理条件143や、操作許容条件144が含まれている。当該2つのコンテナに挿入されたコンテンツに対応するページ部品に関する情報は、図7のページ部品D1では、子ページ部品管理情報D16である。
各子ページ部品管理情報D16は、当該子ページ部品の挿入場所を示す情報D161、当該子ページ部品への参照情報D162を含む。
ページ部品D1には、タイプ名D11とコンテンツD12とスタイルシートD13とコンテナ情報D14と親ページ部品への参照D15と子ページ部品管理情報D16という情報が含まれているが、これらの情報は、コンテンツD12の文書中で当該ページ部品に対応する要素内に予め定められたタグ名の要素や属性として記述されていたり、当該コンテンツD12に対応する要素(トップノード)の属性として記述されている。
タイプ名D11は、コンテンツD12のタイプ名である。タイプとは、当該コンテンツのデータ形式(形式的な違い)や、当該コンテンツの内容に関するカテゴリ・ジャンルの違い(意味的な違い)に応じて各コンテンツを区別するためのもので、このようなコンテンツの意味的、形式的な違いに応じた各タイプを区別するための識別情報がタイプ名である。タイプ名D11には、当該コンテンツD12に対応する部分文書のトップノードであるエレメント(要素)に付される「type」属性で記述されている。
スタイルシートD13は、コンテンツD12を表示するための表示データに変換するための当該コンテンツD12に適用可能な変換規則(スタイルシート)である。当該コンテンツD12に複数の表示形式が適用可能であれば、各表示形式に対応する複数のスタイルシートD13がページ部品D1に含まれていることになる。スタイルシートは、コンテンツD12に対応する部分文書のトップノードであるエレメント(要素)に記述される「style」属性で記述されている。
コンテナ情報D14に含まれる受理タイプD142は、コンテンツD12に含まれる当該コンテナが受け入れ可能な(当該コンテナに挿入可能な)コンテンツのタイプ名(のリスト)であり、挿入場所D141は、コンテンツD12内の当該コンテナの挿入位置を示している。
コンテンツ内では、ここでは、各コンテナは「accept」要素として記述されている。受理タイプD142は、コンテンツD12中の「accept」要素の属性として記述されており、挿入場所D141は、この「accept」要素のページ部品D1に対応するコンテンツ内の文書構造上の配置位置を示している。
1つのコンテンツには複数の「accept」要素、すなわち、コンテナが含まれている場合もあり、この場合には、コンテンツ情報D14もコンテナの数だけ存在する。コンテンツ内では、受理条件はif属性に、操作許容条件はacceptエレメント直下の「usage」要素に記述されている。
親ページ部品への参照D15は、コンテンツD12が他のコンテンツに包含されている場合(即ち、コンテンツD12が他のコンテンツ内のコンテナに挿入されている場合)、当該ページ部品D1の親である他のコンテンツに対応するページ部品とを関連付けるための情報である。スクラップブックや、文書のように、親であるコンテンツは存在しない場合には、当該ページ部品には、親ページ部品への参照D15は含まれない。
子ページ部品管理情報D16は、コンテンツD12が他のコンテンツを包含している場合(即ち、コンテンツD12のコンテナにコンテンツが挿入されている場合)、当該ページ部品D1と子供である他のコンテンツに対応するページ部品とを関連付けるための情報であり、コンテンツD12の文書構造上の当該他のコンテンツの挿入場所D161と、当該他のコンテンツが存在する場所を示す位置情報である子ページ部品への参照D162を含む。挿入場所D161は、当該コンテンツD12中の、当該コンテンツを挿入することを指示する要素(例えば、後述する「accept」エレメントなど)の配置位置を示しており、この要素の例えば属性として、挿入するコンテンツの位置情報としての子ページ部品への参照D162が記述されている。
また、利用制御条件D17は、コンテンツD12のルートエレメント直下の「usage」要素以下が対応する。
ここで、図5に示したような構造を有する文書を例にとり、当該文書から得られるページ部品について説明する。図5においては、ルートコンテンツ(0)、コンテンツ(1)、コンテンツ(2)、コンテンツ(3)及びコンテンツ(5)が、それぞれ1つのページ部品に相当し、ルートコンテンツ(0)に対応するぺージ部品には、ルートコンテンツ(0)の実体データであるコンテンツD12、コンテナ(11)、コンテナ(12)、コンテナ(13)、コンテナ(6)にそれぞれ対応するコンテナ情報D14、コンテナ(13)が保持する(コンテナ(13)に挿入されている)コンテンツ(3)に対応するページ部品に関する情報(子ページ部品管理情報)D16などが含まれている。
また、上記コンテンツ(3)に対応するページ部品には、コンテナ(3)の実体データであるコンテンツD12、コンテナ(4)に対応するコンテナ情報D14、当該コンテンツ(3)の挿入先の親ページ部品であるルートコンテンツ(0)に対応するページ部品に関する情報(親ページ部品への参照)D15、コンテナ(4)が保持する(コンテナ(14)に挿入されている)コンテンツ(5)に対応するページ部品に関する情報(子ページ部品管理情報)D16などが含まれている。 スクラップブック編集装置310は、複数のコンテンツを含む文書や、複数のコンテンツやコンテナを含むスクラップブックもページ部品として処理・管理する。
図8は、スクラップブックに対応するページ部品の一例を示したものであり、ここでは、4つのコンテナを含み、各コンテナは空の状態であるスクラップブックの場合を示している。図8に示すように、当該スクラップブックの実体データであるコンテンツD12や、当該コンテンツD12に対する利用制御条件があれば、この利用制御条件D17、コンテンツD12のタイプ名D11、当該スクラップブックを表示する際にHTML文書の表示データに変換するためのスタイルシートD13、4つのコンテナのそれぞれに対応するコンテナ情報D14が含まれている。
スクラップブック編集装置310により図8に示したページ部品に対応するスクラップブックを編集した結果、このスクラップブックの各コンテナにコンテンツが挿入されると、図9に示すようなページ部品が得られる。図9に示すページ部品において、図8に示したページ部品と異なる部分は、4つのコンテナのそれぞれに挿入された4つのコンテンツのそれぞれに対応する子ページ部品管理情報D16が追加されている。
(構成)
図10は、スクラップブック編集装置310の構成例を示したものである。
図10は、スクラップブック編集装置310の構成例を示したものである。
図10に示すように、スクラップブック編集装置310は、ホストモジュールM1と、文書処理モジュールM2を含む。
ホストモジュールM1の基本的な機能は、OS(Operating System)上にウィンドウフレームを構築し、文書処理モジュールM2が機能するためのウィンドウ領域を確保すること、またユーザが操作するためのメニューやツールボタンなどを提供し、入力されたコマンドを文書処理モジュールM2に伝えることである。
ホストモジュールM1としては、具体的には、Webブラウザである。ホストモジュールM1に、文書処理モジュールM2に関して必要な登録処理を行うことにより、文書処理モジュールM2がホストモジュールM1から呼び出されて起動可能となる。
文書処理モジュールM2は、ホストモジュールM1からWeb文書(アプリ処理装置300から提供されたスクラップブックや素材提供装置320から提供された文書)の数だけ実体化され呼び出される。すなわちWebページ1つに対して、文書処理モジュールが1つメモリ上に生成される。
文書処理モジュールM2は、大きく分けて文書読込モジュールM21とページ部品処理モジュールM22という2つのサブモジュールを含む。
文書読込モジュールM21は、ホストモジュールM1から与えられた、ブロック構造情報を含む文書(このような文書をここでは、ブロックWeb文書と呼ぶ)を読み込み、ページ部品処理モジュールM22へ渡す。なお、ページ部品処理モジュールM22で処理対象とする文書は、文書読込モジュールM21で読み込まれたブロックWeb文書であり、従って、ページ部品処理モジュールM22の説明で、「Web文書」あるいは「Webページ」とあるのは、全て、上記ブロックweb文書のことである。
ページ部品処理モジュールM22は、ページ部品管理モジュールM221、レンダリング処理モジュールM222、GUI処理モジュールM223、形式調整モジュールM224、条件判定モジュールM225という5つのサブモジュールを含む。
ページ部品管理モジュールM221は、文書読込モジュールM21で読み込まれた文書からページ部品群を生成するとともに、得られたページ部品群をページ部品データベースM221b(後述)に格納し、このページ部品データベースM221bにアクセスして、ページ部品単位の挿入、移動、削除、更新などによる操作に応じて、各ページ部品を更新する。
条件判定モジュールM225は、Web文書間でページ部品の受け渡し操作が行われたとき(すなわち、一方のWeb文書(例えばスクラップブック)のコンテナへの他方のWeb文書のコンテンツの挿入操作の際)に、ページ部品の受け渡しが許可された場合に、すなわち、当該挿入操作がコンテナの受理条件を満たすか否かを判定する。
ページ部品管理モジュールM221は、条件判定モジュールM225で挿入操作が受理条件を満たす場合には、受け側のWeb文書あるいは当該Web文書に含まれるコンテンツのページ部品を更新する。
レンダリング処理モジュールM222は、ページ部品管理モジュールM221で管理されている(ページ部品データベースM221bに記憶されている)、各Webページに対応するページ部品群を例えばHTML文書等の表示データに変換して、表示装置に表示する。
GUI処理モジュールM223は、レンダリング処理モジュールM222で表示されたWeb文書上で、ドラッグドロップやコンテクストメニューなどコンテンツやコンテナを操作するためのGUI機能を提供する。GUI操作が行われたら、ページ部品管理モジュールM221に対して、当該操作に対応するデータ処理機能を呼び出した上で、レンダリング処理モジュールM222を用いて、表示画面を書き換える。
形式調整モジュールM224は、文書処理モジュールM2内あるいは文書処理モジュールM2間でページ部品の受け渡しを行う際に(例えば、一方のWeb文書(例えばスクラップブック)のコンテナへの他方のWeb文書のコンテンツの挿入操作の際に)、挿入されるページ部品(コンテンツ)のタイプ(データ形式)などの調整を行うモジュールである。形式調整ジュールM224は、条件判定モジュールM225によってそのページ部品の挿入が許可された場合に、ページ部品管理モジュールM221が、ページ部品の挿入操作を行う際に呼び出される。
具体的には挿入操作を行う際に、コンテナに挿入するコンテンツのページ部品のタイプ名D11が、挿入先のコンテナのコンテナ情報D14に含まれる受理タイプD142を満たさない場合に、形式調整モジュールM224は、変換ルールデータベースM224b(図24参照)から適切な変換ルールの組み合わせを探し出し、当該コンテンツを当該コンテナが受け入れ可能なタイプのコンテンツに変換して、ページ部品管理モジュールM221に返す。もし解決できる変換ルールの組み合わせが見つからなかった場合、その旨をページ部品管理モジュールM221に通知し、ページ部品管理モジュールは挿入操作をキャンセルする。
条件判定モジュールM225は、文書読込モジュールM21が読み込んだWeb文書から得られたコンテンツのページ部品に含まれているタイプ名や利用制御条件と、文書読込モジュールM21が読み込んだWeb文書から得られたコンテナを含むコンテンツのページ部品に含まれている当該コンテナに対応するコンテナ情報内の受理タイプやそれ以外の受理条件を用いて、当該コンテナへ当該コンテンツを挿入可能か否か判定する。
また、文書読込モジュールM21が読み込んだWeb文書から得られたコンテンツのページ部品に含まれている利用制御条件と、文書読込モジュールM21が読み込んだWeb文書から得られたコンテナを含むコンテンツのページ部品に含まれている当該コンテナに対応するコンテナ情報内の操作許容条件を用いて、当該コンテナへ挿入された当該コンテンツに対する編集操作が可能か否かを判定する。
例えば、文書処理モジュールM2内あるいは文書処理モジュールM2間でページ部品の受け渡しを行う際に(例えば、一方のWeb文書(例えばスクラップブック)のコンテナへの他方のWeb文書のコンテンツの挿入操作の際に)、操作を行っているユーザやその機器(例えば、スクラップ編集装置310として機能しているコンピュータ)が受理条件で指定されている条件を満たしているか否か(挿入を実行する権限を持っているか否か)、そのコンテンツのタイプ(ページ部品に含まれるタイプ名)などが、受理条件で指定されている条件を満たしているか否かをチェックする。
また、コンテナに受理された当該コンテナ内のコンテンツに対して編集や削除、複製等の操作を行う際にも、当該コンテナの操作許容条件と当該コンテンツの利用制御条件を用いて、操作を行っているユーザやその機器(例えば、スクラップ編集装置310として機能しているコンピュータ)が操作許容条件や利用制御条件で指定されている条件を満たしているか否か、当該コンテンツに対する操作が操作許容条件や利用制御条件で指定されている条件を満たしているか否かをチェックし、操作許容条件や利用制御条件を満たす範囲内での編集やその他の操作を実行可能にする。
図11は、図10に示したスクラップブック編集装置310を例えばコンピュータ(計算機)上で実現する場合の構成例を示したものである。
図11において、スクラップブック編集装置310は、プロセッサ(CPU)20、メモリ22、ディスプレイやプリンタなどの出力装置24、マウスやキーボードなどの入力装置23、記憶装置21から構成されている。
これらのうち、記憶装置21は、システムの制御の中枢を担うプログラム等の格納やデータ等の一時保持などに利用されるものであって、ホストプログラム31、文書処理プログラム32などを格納している。また、メモリ22は、上記各プログラム実行の際に利用可能な共有メモリやプログラム実行の際のワーキングエリアなどに利用されるものである。また、プロセッサ20は記憶装置21内のプログラムを実行することにより、入出力制御や各種処理を含め、必要な各種制御処理を実施するものである。
プロセッサ20は、主に、記憶装置21内のホストプログラム31を実行することにより、図11に示したコンピュータ上で、図10に示したスクラップブック編集装置のホストモジュールM1に対応する機能を実現するようになっている。
プロセッサ20は、主に、記憶装置21内の文書処理プログラム32を実行することにより、図11に示したコンピュータ上で、図10に示したスクラップブック編集装置の文書処理モジュールM2に対応する機能を実現するようになっている。
さらに、プロセッサ20は、主に、記憶装置21内の各種アプリケーションプログラム34を実行することにより、図11に示したコンピュータ上で、これら各アプリケーション対応の機能を実現するようになっている。
以下、図10に示した、文書処理モジュールについて詳細に説明する。
(文書処理モジュール)
文書処理モジュールM2に含まれる各サブモジュールの詳細説明をする前に、当該モジュールM2が取り扱うブロックWeb文書について説明する。
文書処理モジュールM2に含まれる各サブモジュールの詳細説明をする前に、当該モジュールM2が取り扱うブロックWeb文書について説明する。
以下に、ブロックWeb文書の一例を示す。
<?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>
上記ブロックWeb文書は、「root(ルート)」エレメント以下に、「accept」タグで囲まれた1つのコンテナを有し、当該コンテナに2つの独立的に取り扱うことのできるコンテンツ「a」、「b」が含まれている。これら2つのコンテンツは、「component」属性を有し、それぞれ1つのページ部品として表される。すなわち、ページ部品のコンテンツD12に対応するコンテンツの実体データは、「component」属性が与えられているエレメントの子エレメントである、上記<a>タグや<b>タグで囲まれた要素である。
<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>
上記ブロックWeb文書は、「root(ルート)」エレメント以下に、「accept」タグで囲まれた1つのコンテナを有し、当該コンテナに2つの独立的に取り扱うことのできるコンテンツ「a」、「b」が含まれている。これら2つのコンテンツは、「component」属性を有し、それぞれ1つのページ部品として表される。すなわち、ページ部品のコンテンツD12に対応するコンテンツの実体データは、「component」属性が与えられているエレメントの子エレメントである、上記<a>タグや<b>タグで囲まれた要素である。
コンテンツ「a」で表示される表示データは、「aaaaa」や「aaaaaaa」であり、コンテンツ「b」で表示される表示データは、「bbbbb」である。
rootエレメントから始まる上記ブロックWeb文書には、「accept」タグで示される位置に、「type−a」タイプあるいは「type−b」タイプのコンテンツを挿入できることが示されている。
なお、上記Web文書から明らかなように、当該文書中の1つのページ部品に対応するコンテンツに対応する部分文書は、当該部分文書中のトップノード(あるいはルートノートである場合もある)に記述されている「component」属性の値が「yes」であることにより判別することができる。言い換えれば、「component」属性の値が「yes」であるエレメントが挿入、編集等の操作対象のコンテンツであり、1つのページ部品である。
また、HTTP(Hypertext Transfer Protocol)を介して渡される場合は、MIME(Multipurpose Internet Mail Extensions)タイプを示すHTTPヘッダであるContent−Type項目の値は、「text/cmp」と指定されているか、FTP(File Transfer Protocol)などその他のネットワークプロトコルやファイルシステムからの入力であれば、拡張子が「cmp」でなければならないというようにルールを決めている。これは入力文書がブロックWeb文書であるかどうかを、スクラップブック編集装置が判定するために用意するルールである。
(文書読込モジュール)
図12は、文書読込モジュールM21の構成例を示したものであり、矢印はデータの流れを示している。
図12は、文書読込モジュールM21の構成例を示したものであり、矢印はデータの流れを示している。
文書読込モジュールM21では、主にブロックWeb文書の読み込みを行う。文書処理モジュールM2への文書の入力を管理しており、与えられた文書がブロックWeb文書である場合にのみ、その文書を読み込んでページ部品処理モジュールM22に渡すが、それ以外のWeb文書(たとえばHTML文書やXML文書など)であれば、読み込み処理を中断してホストモジュールM1に制御を戻す。以下具体的な手順を示す。
文書読込モジュールM21は文書タイプ判定モジュールM211、文書読込実行モジュールM212から構成される。
まず外部から、文書タイプ判定モジュールM211にURLが渡される。URLの種類としては、HTTPプロトコルを持つURL、FTP(File Transfer Protocol)プロトコルを持つURL、File URL(file:から始まるローカルファイルを示すURL)などである可能性がある。
文書タイプ判定モジュールM211は、図13に示す手順で、入力文書がブロックWeb文書かどうかを判定するようになっている。すなわち、入力文書がHTTPを介して渡される場合は、「Content−Type」が、「text/cmp」であれば、当該入力文書はブロックWeb文書であり(ステップS1〜ステップS3)、FTPなどその他のネットワークプロトコルやファイルシステムからの入力であれば、拡張子が「cmp」であれば、当該入力文書はブロックWeb文書であると判定する(ステップS1)。
図12に戻り、文書タイプ判定モジュールM211により、ブロックWeb文書であると判断されれば、続いて、文書読み込み実行モジュールM212にそのURLが渡される。文書読み込み実行モジュールM212は、与えられたURLを基に、必要に応じて通信処理をするなどし、対応する文書をモジュール内のバッファに取り込む。ただし具体的な読み込み処理については、周知の技術を用いればよく、ここでの具体的な説明は省略する。そして、バッファ内の内容は文書読込みモジュールM21の最終出力として、ページ部品処理モジュールM22に渡される。 逆に文書判定モジュールM211により、ブロックWeb文書でないと判断された場合は、文書読込みモジュールM21の読み込み処理は失敗であるため、処理を中断し、ホストモジュールM1に制御を戻す。
なお、上記のブロックWeb文書から明らかなように、文書中のコンテンツに対応する部分文書は、当該部分文書中のトップノード(あるいはルートノードである場合もある)に記述されている「component」属性にて、その値が「yes」であることにより判別することができる。ここでは、「component」属性を有するノードをトップノードとする部分文書が1つのコンテンツに対応すると判別し、1つのページ部品として記憶・管理される。
以下、ページ部品処理モジュールM22に渡されるブロックWeb文書(スクラップブックを含む)を簡単に、Web文書あるいは文書と呼ぶ。
(ページ部品処理モジュール)
ページ部品処理モジュールM22は、文書読込モジュールM21によって入力された文書を管理し、ユーザに当該文書を表示し、かつコンテンツのための便利なGUI操作を提供する、スクラップブック編集装置310の核となるモジュールである。なお、ここでは、1つのページ部品処理モジュールM22が管理する文書は1文書である。複数文書を管理する場合には、ページ数だけページ部品処理モジュールM22が生成される。
ページ部品処理モジュールM22は、文書読込モジュールM21によって入力された文書を管理し、ユーザに当該文書を表示し、かつコンテンツのための便利なGUI操作を提供する、スクラップブック編集装置310の核となるモジュールである。なお、ここでは、1つのページ部品処理モジュールM22が管理する文書は1文書である。複数文書を管理する場合には、ページ数だけページ部品処理モジュールM22が生成される。
ページ部品処理モジュールM22は、複数のサブモジュールから構成されており、これらが互いに協調動作する。以下に各モジュールについて詳細に説明する。
ページ部品管理モジュールM221は、各文書のページ部品群を管理し、構成変更のためのAPI(application programming interface)を提供する他のモジュール向けのベースサービスモジュールである。
図14に示すように、ページ部品管理モジュールM221は、ページ部品読込モジュールM221a、ページ部品データベース(DB)M221b、ページ部品挿入モジュールM221c、ページ部品削除モジュールM221d、ページ部品保存モジュールM221e、ページ部品編集モジュールM221fという6つのサブモジュールから構成されている。
ページ部品読込モジュールM221aは、入力された文書を解析し、当該文書中に含まれているコンテンツについてのページ部品を生成し、最終的に出来上がったページ部品群をページ部品DBM221bに登録する。
ページ部品が生成されるコンテンツとは、当該文書中の「component」属性の値が「yes」であるエレメント(要素)をトップノードとする部分文書である。 ページ部品読込モジュールM221aは、まず入力された文書から、「component」属性の付与されている部分文書を抽出する。ただし、コンテンツの実体データは、「component」属性が与えられているエレメントの子エレメントに含まれている。
そして、文書から抽出された各コンテンツについて、「component」属性が付与されているエレメントをトップノードとする部分文書を基に、図7に示したようなページ部品を生成する。なお、コンテンツとして文書全体についてのページ部品が生成されるが、その生成も上記同様である。
ページ部品中のコンテンツD12は、例えば、「component」属性が付与されているエレメントをトップノードとする部分文書内のコンテンツの実体データである。
各ページ部品を生成する際には、元の文書の文書構造として表されているエレメント間の親子関係(XML文書中のエレメント間の親子関係と同様)から、各ページ部品間の親子関係が得られるので、親子関係の存在するページ部品については、それに従い、親のページ部品へ当該ページ部品を関連付けるためのポインタやリンクなどの情報(すなわち、ここでは、親ページ部品への参照D15)や、子供のページ部品を当該ページに関連付けるための情報(すなわち、ここでは子ページ部品管理情報D16)として、子ページ部品を当該ページ部品に関連付けるためのポインタやリンクなどの情報(子ページ部品への参照D162)や、当該ページ部品中の当該子ページ部品を挿入する場所(位置)D161を書き込む。
「component」属性を有する部分文書について、その属性として、「type」属性が記述されていれば、この「type」属性の値を、ページ部品のタイプ名D11として書き込み、「style」属性が記述されていれば(この「style」属性の値がセミコロンで複数の文字列(各文字列は、例えばスタイルシートの識別子に対応する)に分割されていれば、その各文字列を)スタイルシートD13としてそれぞれ書き込む。
「component」属性を有する部分文書について、例えば、当該部分文書中の子エレメントとして、「accept」エレメントが存在すれば、それは、当該部分文書に対応するコンテンツには、コンテナがあることを示すので、コンテナ情報D14を生成する。当該「accept」エレメントには、このエレメント内のコンテナに挿入可能なコンテンツのタイプ名や、それ以外の受理条件、操作許容条件などが属性として示されているので、これらを、生成されたコンテナ情報D14に書き込む。
すなわち、「accept」エレメントに「type」属性があれば(その値がセミコロンで複数の文字列(各文字列は、例えば受け入れ可能なコンテンツのタイプ(受理タイプ)の識別子に対応する)に分割されていれば、その各文字列を)受理タイプD142としてそれぞれ書き込む。また、当該文書中の文書構造上の「accept」エレメントの配置されている位置(挿入場所D141)をコンテナ情報D14に書き込む。「accept」エレメントは複数存在する場合があり、その場合にはその数だけコンテナ情報D14を生成し、上記同様に各データを書き込む。
ページ部品読込モジュールM221aは、入力された文書から、コンテナに対し設定されている受理条件や操作許容条件、コンテンツに対し設定されている利用制御条件を抽出する。
受理条件とは、複製操作や移動操作など、コンテナへのコンテンツを挿入するための操作を実行する際に用いられる条件であり、操作許容条件・利用制御条件は、コンテナへのコンテンツを挿入するための操作を含めあらゆる操作の実行の際に用いられる条件である。
コンテンツ(ページ部品)をコンテナへ挿入する際に用いられる条件は、コンテンツに紐付けされている利用制御条件とコンテナに紐付けされている受理条件であり、挿入された後、当該コンテナ内で当該コンテンツに対して操作する際に用いられる条件は、コンテンツに紐付けされている利用制御条件とコンテナに紐付けされている操作許容条件である。このように、両者の条件双方が検査されることにより、コンテンツ側の都合とコンテナ側の都合の双方がケアされる。
ページ部品読込モジュールM221aに入力された文書の一例を以下に示す。
<?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>
上記文書は、1つのコンテナと当該コンテナに挿入された「a」「b」という2つのコンテンツを有している。コンテナや各コンテンツには、これらに対する操作に関して、ユーザや機器等の実行環境条件、コンテンツのタイプや状態に関する条件が論理演算子「AND」などを用いて表現されている。
<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>
上記文書は、1つのコンテナと当該コンテナに挿入された「a」「b」という2つのコンテンツを有している。コンテナや各コンテンツには、これらに対する操作に関して、ユーザや機器等の実行環境条件、コンテンツのタイプや状態に関する条件が論理演算子「AND」などを用いて表現されている。
なお、<accept type=“type-a;type-b”>から</accept>までが1つのコンテナ、当該コンテナ中の<a component=“yes” type=“type-a”>から</a>までの部分文書がコンテンツ「a」、<b component=“yes” type=“type-b” style=“b1.xsl;b2.xsl;b3.xsl”>から</b>までの部分文書がコンテンツ「b」、<usage if=“host(133.196.13.2) and username(hamada)”>から<access mode=“readonly”/></usage>までがコンテンツ「a」の利用制御条件である。
上記文書に含まれるコンテンツに対する利用制御条件の意味するところを説明する。上記文書に含まれる、独立的に取り扱うことのできる1つのページ部品に対応する部分文書「a」(component属性が「yes」を有する「a」エレメントに対応する部分文書)には、その直下に「usage」タグが与えられている。この「usage」タグは、利用制御条件を記述するために特別に予約されたシステム用のタグである。したがって部分文書「a」は、「a」タグで囲まれているコンテンツ(の実体)を持っている一方、「usage」エレメントにて利用制御条件が指定されている。具体的には、1つ目の「usage」エレメント、すなわち、「<usage if=“host(133.196.13.2) and username(hamada)”>…</usage>」により、「編集操作を行う機器のIPアドレスが「133.196.13.2」かつユーザがhamadaであるならば、コンテンツ「a」の編集操作は不可」かつ「コンテンツ「a」は読込可能で書込み不可」という利用制御条件が示されている。続く2つ目の「usage」エレメント、すなわち、「<usage if=”true”>…</usage>」により、1つ目の「usage」エレメントが示すケースに該当しなかった場合、読み込まれる。ただしIfで示される条件がtrueとなっているため、すべての状況にヒットする。したがって「その他の状況の場合、「コンテンツ「a」の複製(copy)と編集(edit)は不可」かつ「コンテンツ「a」は読込可能で書込み不可」かつ「パス/a/a[1]の要素にはフルにアクセス可能」であるという利用制御条件が示されている。
このような条件設定方法を用いて、部分文書(コンテンツ)に対して有効期間や有効な場所(当該コンテンツを利用できる期間や場所)について設定することも可能である。例えば、
<usage if=“host(133.196.13.2) and start-time=(2003-06-05) and end-time=(2003-06-07)”/>で「有効期間が2003年6月5日から7日まで」を、あるいは、
<usage if=“host(133.196.13.2) and area=(E140-43-56 N41-45-58 E140-43-44 N41-46-07)”/>
で、「経度140度43分56秒から140度43分44秒、緯度41度45分58秒から41度46分7秒までの間」と表現できる。
<usage if=“host(133.196.13.2) and start-time=(2003-06-05) and end-time=(2003-06-07)”/>で「有効期間が2003年6月5日から7日まで」を、あるいは、
<usage if=“host(133.196.13.2) and area=(E140-43-56 N41-45-58 E140-43-44 N41-46-07)”/>
で、「経度140度43分56秒から140度43分44秒、緯度41度45分58秒から41度46分7秒までの間」と表現できる。
ページ部品DBM221bは、ページ部品読込モジュールM221aで、入力された文書から生成されたページ部品群を格納し管理している。各ページ部品は、自分の親となるページ部品および子供のページ部品群への参照情報を持っているので、この参照情報を基に順にたどっていくことで、任意のページ部品を取り出すことができる。
ページ部品DBM221bが管理するページ部品を用いた、ページ部品処理モジュールM22の文書編集処理手順について、図15に示すフローチャートを参照して説明する。
まず、ページ部品管理モジュールM221は、ページ部品DBM221bから、コンテナa,b,d,eを含むスクラップブックXに対応するページ部品群を取出し、編集用のスクラップブックXを生成し、レンダリング処理モジュールM222により、図16に示すように、当該スクラップブックXがブラウザ上に表示される(ステップS600)。当該スクラップブックXに対応するページ部品は、例えば、図8に示すような構造であり、初期状態では、スクラップブックXの各コンテナは全て空である。
同様に、ページ部品管理モジュールM221は、ページ部品DBM221bから、コンテンツA、Bを含む文書Yに対応するページ部品群を取出し、編集用の文書Yを生成し、レンダリング処理モジュールM222により、図16に示すように、当該文書Yがブラウザ上に表示される(ステップS601)。なお、文書Yにおいて、コンテンツA及びコンテンツBはコンテナg内に保持され、コンテンツBはコンテナfを含む。
さらに、ページ部品管理モジュールM221は、ページ部品DBM221bから、コンテンツC、D、Eを含む文書Zに対応するページ部品群を取出し、編集用の文書Zを生成し、レンダリング処理モジュールM222により、図16に示すように、当該文書Zがブラウザ上に表示される(ステップS601)。文書Zにおいて、コンテンツC、D及びEはコンテナh内に保持されている。
なお、ステップS600とステップS601の順序は逆でもよい。また、ステップS601で表示する文書は1でもよいし、複数あってもよい。
図16のスクラップブックXの具体例を以下に示す。
(スクラップブックX)
<?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-b” 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>
上記スクラップブックのうち、1番目の「accept」エレメントがコンテナaに対応する部分文書であり、2番目の「accept」エレメントがコンテナbに対応する部分文書であり、3番目の「accept」エレメントがコンテナdに対応する部分文書であり、4番目の「accept」エレメントがコンテナeに対応する部分文書である。
<?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-b” 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>
上記スクラップブックのうち、1番目の「accept」エレメントがコンテナaに対応する部分文書であり、2番目の「accept」エレメントがコンテナbに対応する部分文書であり、3番目の「accept」エレメントがコンテナdに対応する部分文書であり、4番目の「accept」エレメントがコンテナeに対応する部分文書である。
上記各コンテナの受理条件、操作許容条件を図17に示す。図17では、例えば、コンテナaに設定された受理条件により、ユーザがコンテナの挿入操作を行った際に、挿入操作を行っているユーザが「hamadaであり、かつ、機器アドレスが「133.196.13.2」の場合にページ部品の挿入処理を許可することを示している。また、コンテナaに設定された操作許容条件により、当該コンテナa内にコンテンツを挿入した後に当該コンテンツへの操作をユーザが行った際に、複製操作(印刷操作)、編集操作ともに許可しないことを示している。上記のスクラップブックの「root(ルート)」エレメントの直下にある、コンテナaは、type属性によって受理可能なタイプ(受理タイプ)の一覧が与えられ、if命令によって受理条件が与えられ、その直下の「usage」要素によって、操作許容条件が与えられる。
文書Y及び文書Zに含まれる各コンテンツに設定された利用制御条件を図18に示す。図18では、例えば、あるコンテナにユーザがコンテンツAの挿入操作を行った際に、「当該コンテンツAの複製を作成して挿入することはできないが、移動により挿入することは可能」である」ことを示している。また、あるコンテナ内にコンテンツAを挿入した後に当該コンテンツAに対する操作をユーザが行った際に、「複製操作、編集操作ともに許可しない」ことを示している。
ここで、図16の文書Yの具体例を以下に示す。
(文書Y)
<?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>
上記文書Yは、再帰的な入れ子の例ともなっており、コンテンツBがコンテナfを持っており、別のコンテンツを受け入れることができるようになっている。これを指定しているのがコンテンツB内の「accept」エレメントである。ここでは受理タイプや、その他の受理条件、操作許容条件も設定されていないため、あらゆるコンテンツを受け入れることができるようになっている。このように、各文書は、コンテンツがコンテナを含まない場合もあれば、1または複数のコンテナを含む場合もあり、コンテナが1または複数のコンテンツを持つことができる、入れ子のツリー構造をなす。ルートのコンテンツと当該ルートのコンテンツにぶら下がる複数のコンテナは、しばしばスクラップブックの用途として利用され、またコンテナに子のコンテンツがたくさん埋められたページは、図1のアプリ処理装置300に返されて素材提供文書の用途として利用されるが、構造としてはコンテンツとコンテナとの入れ子構造に他ならない。
<?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>
上記文書Yは、再帰的な入れ子の例ともなっており、コンテンツBがコンテナfを持っており、別のコンテンツを受け入れることができるようになっている。これを指定しているのがコンテンツB内の「accept」エレメントである。ここでは受理タイプや、その他の受理条件、操作許容条件も設定されていないため、あらゆるコンテンツを受け入れることができるようになっている。このように、各文書は、コンテンツがコンテナを含まない場合もあれば、1または複数のコンテナを含む場合もあり、コンテナが1または複数のコンテンツを持つことができる、入れ子のツリー構造をなす。ルートのコンテンツと当該ルートのコンテンツにぶら下がる複数のコンテナは、しばしばスクラップブックの用途として利用され、またコンテナに子のコンテンツがたくさん埋められたページは、図1のアプリ処理装置300に返されて素材提供文書の用途として利用されるが、構造としてはコンテンツとコンテナとの入れ子構造に他ならない。
文書Zも文書Yと同様に記述することができる。
(文書Z)
<?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>
このようにして、コンテナ、コンテンツは、ユーザ情報、機器情報、有効期間、有効場所についての論理演算を挿入操作やその他の操作の際を実行する際の条件として持つことができる。また、上記の述べた方法を拡張することで、容易に、コンテナは、挿入されるコンテンツの個数やタイプについての論理演算を挿入操作の際の条件として持つことができる。また、コンテンツもタイプについての論理演算を利用操作を実行する際の条件として持つことができる。
<?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>
このようにして、コンテナ、コンテンツは、ユーザ情報、機器情報、有効期間、有効場所についての論理演算を挿入操作やその他の操作の際を実行する際の条件として持つことができる。また、上記の述べた方法を拡張することで、容易に、コンテナは、挿入されるコンテンツの個数やタイプについての論理演算を挿入操作の際の条件として持つことができる。また、コンテンツもタイプについての論理演算を利用操作を実行する際の条件として持つことができる。
なお、文書YおよびZは、素材となるコンテンツを提供することを目的としたページである。文書Y,Zでは、ページ部品管理モジュールM221およびページ部品D1の構成上、各コンテンツがコンテナに納められるようにacceptエレメントが記述されている。これにより、逆に外部からコンテンツを受理することもできる。
しかし素材コンテンツを提供する目的においては、外部からコンテンツを受理することは必ずしも必要ない場合も多い。このようなニーズを考慮し、ページ内において、どこが独立したコンテンツなのかを示すcomponent属性のみを用い、コンテナを示すacceptエレメントが存在しないようなブロックWeb文書を処理するようなページ部品管理モジュールM221の変形例を提供することも考えられる。この場合には、ページ部品生成モジュールM221aの処理を2箇所変更する。1つは「accept」エレメントの処理を見つけ出し、コンテナ情報D14を生成する処理を省略する。もう1つは、当該ページ部品中の当該子ページ部品を挿入する場所であるD161を書き込む処理を省略する。D161は子ページ部品がどのコンテナに所属するかを判定するために用いられる情報であるが、コンテナが存在しないため、不要となる。このようにしてコンテナが省略されたブロックWeb文書を生成すればよい。このようなページ部品管理モジュールM221によれば、ドラッグ操作において前述ページ内のcomponent属性で示されるコンテンツが取り出されるが、ドロップ操作によって外部からのコンテンツを受け入れることはできない。しかし、記述が簡易になるという利点がある。
ページ部品挿入モジュールM221cは、上記ページ部品群に関して、任意のページ部品の子供として、別のページ部品を追加・挿入するためのものである。
ページ部品編集モジュールM221fは、各ページ部品に対し、更新等の編集を行うためのものである。
図15の説明に戻り、ユーザが、例えば、図16の文書YのコンテンツAを図16のスクラップブックXのコンテナaに挿入する操作を行うと(ステップS602)、条件判定モジュールM225が呼ばれ、図19に示すフローチャートに従い、コンテンツ挿入の可否を判定する。すなわち、この場合には、コンテナaに設定された受理条件と、コンテンツAに設定された利用制御条件に基づき、挿入処理の可否を判定する。
例えば、ここでは、挿入操作を行うユーザ「hamada」が、IPアドレス「133.196.13.2」の機器を使用するものとする。また、当該ユーザがコンテナaへコンテンツAを移動による挿入操作を行ったとする。
まず、コンテナaにコンテンツAを挿入する要求を受けて(ステップS611)、条件判定モジュールM225は、ページ部品管理モジュールM221を介して、例えば、ホストモジュールM1から、ユーザ情報、当該スクラップブック編集装置して機能する機器の情報(機器情報)を取得する(ステップS612)。ここでは簡単のため、ユーザ情報としてユーザ名のみを例に挙げたが、一般には、LAN内にてユーザが持つアクセス権限などの情報である。
次にコンテナaの受理条件(受理タイプを含む)や操作許容条件をスクラップブックXに対応するページ部品から取得する(ステップS613)。受理条件は、「ユーザが「hamada」、かつ使用する機器アドレスが「133.196.13.2」」である。次に、コンテンツAに対応するページ部品から当該コンテンツAの利用制御条件を取得する(ステップS614)。この利用制御条件は「複製不可、編集不可、移動可」である。
このように取得した条件を用いて、コンテナaの受理条件を用いた挿入操作の可否判定(ステップS615)、コンテンツaの許容操作条件を用いた挿入操作の可否判定(ステップS260)、コンテンツAの利用制御条件を用いた挿入操作の可否判定(ステップS617)を行う。なお、ステップS615〜ステップS617の上記各判定の順番は任意でよい。また、上記各条件を一括して論理演算により判定してもよい。
上記各条件を全て満たす場合には、コンテナaへのコンテンツAの挿入操作は許可される(ステップS618)。上記例では、当該挿入操作は許可されるので、ページ部品挿入モジュールM221cにより、ユーザの移動による挿入操作による、コンテンツAをコンテナaへ挿入する処理が実行される(図15のステップS603)。一方、ステップS615〜ステップS617のいずれか1つの判定結果がNG、すなわち、上記各条件のうちの少なくとも1つが満足されない場合には、挿入操作が拒否される(ステップS619)。
図19に示したようにして、コンテナaへのコンテンツAの(移動による)挿入操作が終了すると、図15の説明にもどり、スクラップブックXの編集操作を続行する場合には(ステップS607)、ステップS602あるいはステップS604へ進む。
同様にして、図20に示すように、図16の文書Yのページ部品Bを、スクラップブックXのコンテナbに挿入し、文書ZのコンテンツEをスクラップブックXのコンテナdに挿入し、文書ZのコンテンツDをスクラップブックXのコンテナeへ挿入する。
ここで、コンテンツAをもう1つコンテナaに挿入する処理は可能であるが、コンテンツBをもう1つコンテナbに挿入しようとすると、挿入処理はキャンセルされる。これは、コンテナbの受理条件として、当該コンテナbが受け入れ可能な(挿入可能な)コンテンツの個数が1つ以下と設定されているからである。このように、個数制限があるコンテナに新たに別のコンテンツを挿入したい場合は、既に挿入されているコンテンツのいずれかを予め削除する必要がある。
さて、当該ユーザ「hamada」が、スクラップブックXの各コンテナへのコンテンツの挿入が終了した後に、スクラップブックXの任意のコンテナに挿入されたコンテンツを選択し、当該コンテンツに対して編集を行うとする(図15のステップS604)。なお、ステップS602とステップS603の挿入操作および処理は、ステップS604とステップS605の一連の操作および処理の後に行ってもよい。
コンテンツをコンテナ内で編集する場合、当該コンテナに設定された操作許容条件と、コンテンツに設定された利用制御条件に基づき、編集処理の可否を判定する。この可否判定は、条件判定モジュールM225が行う。
ここで、例えば、スクラップブックX中のコンテナbを選択し、このコンテナbの中に挿入されたコンテンツBを選択し、編集操作を行う(ステップS604)。このとき、条件判定モジュールM225が呼ばれ、図21に示すフローチャートに従い、コンテンツの編集可否を判定する。ここでも、ユーザ「hamada」が、IPアドレスが「133.196.13.2」である機器上で上記操作を行うとする。
まず、コンテナb内のコンテンツBを編集する要求を受けて(ステップS621)、条件判定モジュールM225は、ページ部品管理モジュールM221を介して、例えば、ホストモジュールM1から、ユーザ情報、当該スクラップブック編集装置して機能する機器の情報(機器情報)を取得する(ステップS622)。ここでは簡単のため、ユーザ情報としてユーザ名のみを例に挙げたが、一般には、LAN内にてユーザが持つアクセス権限などの情報である。
次にコンテナbの操作許容条件をスクラップブックXに対応するページ部品から取得する(ステップS623)。この操作許容条件は「複製、編集は可」である。次に、コンテンツBの利用制御条件をコンテンツBに対応するページ部品から取得する(ステップS624)。この利用制御条件は「複製可、編集不可、移動可」である。コンテンツBの利用制御条件は、先にコンテナbにコンテンツBが挿入されたときに、コンテナb内に保持したものを取得するようにしてもよい。このように取得した各条件を用いて、コンテナbの操作許容条件を用いた操作の可否判定(ステップS625)、コンテンツBの利用制御条件を用いた操作の可否判定(ステップS626)を行う。なお、ステップS625、ステップS626の各判定処理の順番は任意でよい。上記各条件を一括して論理演算により判定してもよい。
上記各条件を全て満たす場合には、コンテナb内でのコンテンツBへの操作は許可される(ステップS627)。一方、ステップS625およびステップS626のいずれか1つの判定結果がNG、すなわち、上記各条件のうちの少なくとも1つが満足されない場合には、操作が拒否される(ステップS628)。上記例では、当該ユーザの編集操作は、コンテンツBの利用制御条件を満たさないため、拒否される。
コンテナ側とコンテンツ側の条件を組み合わせることにより、適切なコンテンツ管理を行い、より安全に個人情報に対してプライバシー保護を施したり、著作物に対して著作権保護を施したり、誤操作による異種ページ部品の混入を防ぐことが可能になる。
条件判定モジュールM225が、図16の部品コンテナd内のコンテンツEを編集する要求を受けた場合には(ステップS621)、上記と同様にして、コンテナdの操作許容条件として、「複製可、編集可」を、コンテンツEの利用制御条件として、「author_accept要素がyesに限り複製、編集、移動が可」を取得する(ステップS622からステップS624)。次に、各条件を用いた判定処理に移行する(ステップS625からステップS626)。このとき、コンテンツEについては、「author_accept」属性の値が「no」であるため、コンテナdの操作許容条件は満たすものの、コンテンツEのもつ上記属性の値が、当該コンテンツEの利用制御条件を満たさないため、ステップS626における判定結果はNGとなる。よって、先の例と同様に編集処理がキャンセルされる(ステップS628)。
なお、文書中の要素のもつ特定の属性の値を条件判定に用いる場合には、
<usage if=“test(/a[@author_accept=’YES’))”>
のように、パス「/a」、パス直下の属性名「author_accept」、この属性名の属性値「yes」を与えることで条件判定を行う関数testを用いることで実現が可能である。 なお、test()内の文字列はxpath(XML Path Language)に準拠したものである。また、「author_accept」属性とは、当該属性をもつコンテンツの作成者の許可の有無を示す属性であり、「許可」の場合には当該属性値は「yes」でなる、不許可の場合には当該属性値は「no」となる。
<usage if=“test(/a[@author_accept=’YES’))”>
のように、パス「/a」、パス直下の属性名「author_accept」、この属性名の属性値「yes」を与えることで条件判定を行う関数testを用いることで実現が可能である。 なお、test()内の文字列はxpath(XML Path Language)に準拠したものである。また、「author_accept」属性とは、当該属性をもつコンテンツの作成者の許可の有無を示す属性であり、「許可」の場合には当該属性値は「yes」でなる、不許可の場合には当該属性値は「no」となる。
次に、条件判定モジュールM225が、図20のコンテナe内のコンテンツDを編集する要求を受けた場合には(ステップS621)、上記と同様にして、コンテナeの操作許容条件として、「author_accept属性値がyesに限り複製、編集、移動が可」を、コンテンツDの利用制御条件として、「author_accept属性値がyesに限り複製、編集、移動が可」を取得する(ステップS622からステップS624)。次に、各条件を用いた判定処理に移行する(ステップS625からステップS626)。このとき、コンテンツDの「author_accept」属性の属性値が「yes」であるため、コンテナeの操作許容条件を満たすとともに(ステップS625)、コンテンツDの利用制御条件も満たすから(ステップS626)、コンテンツDをコンテナe内で編集する操作は許可され(ステップS627)、ページ部品編集モジュールM221fにより、コンテンツDが更新され、例えば、要素値「D」が「D´」へと書き換えられる。
この後、ユーザにより、スクラップブックXの編集終了指示が入力されると(図15のステップS607)、ページ部品管理モジュールM221のページ部品保存モジュールM221eは、編集後のスクラップブックXのページ部品で、ページ部品DBM221b内の編集前のスクラップブックXのページ部品を書き換える(ステップS608)。以上のようにして得られた編集後のスクラップブックXを図22に示す。
ところで、図19のステップS615での受理条件を用いた判定処理では、コンテナに設定された受理タイプと、当該コンテナに挿入しようとしているコンテンツのタイプとを用いて、当該コンテンツの当該コンテナへの挿入可否を判定するが、ページ部品挿入モジュールM221cにおける受理条件の判定処理動作について、図23に示すフローチャートを参照して説明する。
ここでは、前述同様、ユーザ「hamada」が、IPアドレス「133.196.13.2」の機器を用いて、図16の文書YのコンテンツAを図16のスクラップブックXのコンテナaに挿入する操作を行う場合を例にとり説明する。
まず、コンテナaにコンテンツAを挿入する要求を受けて(ステップS20)、条件判定モジュールM225は、ページ部品DBM221bからコンテナaのコンテナ情報D14に含まれる受理タイプD142(受理タイプのリスト)を取出すとともに(ステップS21)、コンテンツAに含まれているタイプ名D11を取出す。
なお、ステップS21において、コンテナaに受理タイプのリストが存在しない場合には、コンテナaに挿入するコンテンツのタイプには制約がないので、そのままステップS24へ進み、コンテンツAはコンテナaへ挿入可能であると判定される。また、ステップS22において、コンテンツAにタイプ名の指定がない場合には、コンテンツAに対して挿入操作は許可されていないので、ステップS26へ進み、コンテンツAのコンテナaへの挿入操作は拒否される。
コンテナaに受理タイプのリストが存在し、コンテンツAのタイプ名が存在している場合には(ステップS21,ステップS22)、ステップS23へ進み、コンテナaの受理タイプのリストにコンテンツAのタイプ名が含まれているか否か判定する。含まれている場合には、ステップS24へ進み、コンテンツAは、コンテナaへ挿入可能であると判定される。一方、ステップS23において、コンテ名aの受理タイプのリストにコンテンツAのタイプ名が含まれていない場合には、ステップS25へ進む。
ステップS25では、コンテナaの受理タイプのリストにコンテンツAのタイプ名が存在しない場合、このままでは、コンテナaはコンテンツAを受け入れることができないため、まず、形式調整モジュールM224が呼び出される。この際、形式調整モジュールM224にコンテナaの受理タイプのリストと、コンテンツAおよびそのタイプ名を渡して、コンテンツAのタイプをコンテナaが受け入れ可能なタイプになるよう、変換を依頼する。
コンテンツAのタイプが、コンテナaが受け入れ可能なタイプに変換できたときには、ステップS24へ進む。
なお、ステップS22で、コンテナaに受理タイプが指定されていないとき、或いはステップS25で、コンテンツAのタイプをコンテナaが受け入れ可能なタイプに変換できないときには、いずれもステップS26へ進み、コンテンツAのコンテナaへの挿入操作は拒否される。
ステップS24において、コンテナaへのコンテンツAの挿入操作が可能であると判定された場合には、次に、コンテナaの上記受理タイプ以外の受理条件や操作許容条件、コンテンツAの利用制御条件を用いた、図19に示したような判定処理が行われる。
また、上記のようなコンテナ・コンテンツ間で挿入操作(移動、複製を挿入する操作)の他にも、コンテナ間で一方のコンテナ内のコンテンツを他方のコンテナへ移動したり、複製したコンテンツを挿入したりする操作についても、上記のようなコンテナ・コンテンツ間での操作と同様に、コンテンツに設定された利用制御条件とコンテナの受理条件と操作許容条件とをあわせて判定される。
その他の発展的な機能としては、各ページ部品に対してその部品に関連するスクリプトを持たせ、これをユーザがコンテクストメニューなどから実行できるようにし、これをメソッドと呼ぶとする。すると、上記に紹介した利用制御条件、コンテナの利用許容条件などを用いて、同様に実行できるメソッドの選択肢を限定するなどの制御が可能である。
以上のようにしてスクラップブックXの編集が終了すると、図22に示したような編集後のスクラップブックXは、スクラップブック編集装置310(のホストモジュールM1)からアプリ処理装置300へ渡される。
図14の説明に戻り、ページ部品削除モジュールM221dは、任意のページ部品を削除するためのものである。具体的には、削除されるページ部品の親ページ部品からは、当該削除されるページ部品を関連付けるための子ページ部品管理情報D16を削除し、当該削除されるページ部品自体をページ部品DBから削除する。このとき、削除対象のページ部品に対応する部分文書に、当該部分文書に包含される部分文書(すなわち、子供の部分文書)があるときは、当該包含される部分文書に対応するページ部品もページ部品DBから削除する。なお、ページ部品挿入モジュールの機能と、このページ部品削除モジュールの機能を組み合わせることで、ページ部品の移動も実現できる。
ページ部品保存モジュールM221eは、任意のページ部品をファイル保存する機能である。指定されたページ部品を保存する機能であり、この機能を利用する場合には、保存したいページ部品とファイル名を指定する。ただし保存対象には、指定されたページ部品だけでなく、その子孫ページ部品も含まれる。
保存の形式としては、ブロックWeb文書形式、PureXML形式、HTML形式の3種類ある。ブロックWeb文書形式とは、「component」属性や「accept」エレメントなど、ブロック化のための特殊な表記を含む形式であり、次回に、ページ部品DBM221bにロードしてもブロック構造情報を復元できる。
PureXML形式は、これらブロック化のための特殊な表記を取り除いたものである。HTML形式は、現在表示されているHTMLの状態をそのまま保存するものである。
ブロックWeb文書形式とPureXML形式の場合は、ページ部品D1のコンテンツD12に対して、当該ページ部品の子孫ページ部品のコンテンツD12を合成することで、保存内容を決定する。ページ部品D1には、子ページ部品管理情報D16として、各子ページ部品とその子ページ部品を挿入すべき挿入場所D161に書かれている。コンテンツの合成の際には、この情報を用いて挿入された各子ページ部品に対応する部分文書を統合してHTMLあるいはXML形式の文書を合成する。
図10に示した、ページ部品処理モジュールM22のレンダリング処理モジュールM222は、ページ部品を表示する機能を持つ。重要な用途の1つとして、ページ部品管理モジュールM221で得られたブロックWeb文書を図16に示すように、表示画面上に表示する。
ページ部品は、前述したように、他のページ部品に包含されることもあれば、他のページ部品を包含することもある(ページ部品は、必然的に他のページ部品と包含関係を有する)。各ページ部品に対応するコンテンツに対して、そのページ部品のスタイルシートD12を適用するだけでは不十分で、そのページ部品の各子ページ部品のスタイルシート適用結果(子ページ部品に対応するHTML文書)を親のページ部品に対応するHTML文書にはめ込むことで、HTML文書の合成を行い、表示用データを生成する。
上記、各ページ部品あるいはその子ページ部品に関してスタイルシート適用をしてHTML文書を生成した直後に、得られたHTML文書のルートエレメントおよびページ部品への参照を入力として、GUI処理モジュールM223のGUI処理初期化モジュールM223aを呼び出す。
GUI処理モジュールM223は、表示されたHTML文書に対して、ドラッグドロップやコンテクストメニューなどのコンテナ・コンテンツ向けGUI操作機能を提供するモジュールである。
図10に示した、ページ部品処理モジュールM22の形式調整モジュールM224は、前述のように、ページ部品挿入処理モジュールM221cで用いられるモジュールであり、図24に示すように、変換ルール検索モジュールM224aと変換ルールデータベース(DB)M224bを有する。形式調整モジュールM224は、具体的には、ページ部品挿入処理モジュールM221cから、変換対象のページ部品と、他のページ部品中の受理タイプD142とを含む変換要求が入力されると、当該変換対象のページ部品のタイプ名D11を調べ、少なくとも変換対象のページ部品に対応する部分文書のタイプ(例えば、データ形式)を他のページ部品中の受理タイプD142に含まれるいずれかのタイプに変換する処理である。
この変換要求は、ページ部品挿入処理モジュールM221cから変換ルール検索モジュールM224aに送られる。
変換ルールDBM224bには、変換元と変換先のタイプ別に、複数の変換方法(変換規則あるいは変換ルール)が予め記憶されている。
変換ルール検索モジュールM224aは、変換ルールDBM224bから、変換元と変換先のタイプに対応する変換方法を見つけ出し、変換結果のページ部品を返すか、あるいは見つからなかった場合には、変換に失敗した旨を要求元のページ部品挿入処理モジュールM221cへ返す。
変換ルールDBM224bには、変換元のタイプと変換先のタイプと、変換ルール(例えばXSLT文書などの変換規則を記述した文書)の3つを1組とした複数のデータを管理している。変換ルール検索モジュールM224aは、入力された、処理対象のページ部品のタイプ名D11から、最終的に求めているタイプのいずれかに変換するための、複数の変換ルールからなるシーケンスパス(順序つき組み合わせ)を検索し、最終的に複数のシーケンスが見つかった場合には、最短パスとなる組み合わせを採用する。
たとえば、処理対象のページ部品のタイプが「type−x」タイプであり、最終目的のタイプが「type−y」タイプか「type−z」タイプであり、変換ルールDBM224bには、以下のデータが記憶されていたとする。
(type−x, type−a, xa.xsl)
(type−a, type−b, ab.xsl)
(type−b, type−y, by.xsl)
(type−x, type−c, xc.xsl)
(type−c, type−z, cz.xsl)
この場合、最終目的のタイプに変換するシーケンスとして、xa.xsl−>ab.xsl−>by.xsl、と、xc.xsl−>cz.xsl、の2種類があるが、変換ルール検索モジュールM224aは後者を選択し、順にXSLT文書を適用した結果得られるページ部品(「type−z」タイプ)を返す。
(type−a, type−b, ab.xsl)
(type−b, type−y, by.xsl)
(type−x, type−c, xc.xsl)
(type−c, type−z, cz.xsl)
この場合、最終目的のタイプに変換するシーケンスとして、xa.xsl−>ab.xsl−>by.xsl、と、xc.xsl−>cz.xsl、の2種類があるが、変換ルール検索モジュールM224aは後者を選択し、順にXSLT文書を適用した結果得られるページ部品(「type−z」タイプ)を返す。
(まとめ)
以上説明したように、上記実施形態に係る図1に示すような情報処理システムは、主に、アプリ処理装置(情報処理装置)300とスクラップブック編集装置(文書編集装置)310を含み、アプリ処理装置は、プログラムの実行に必要な引数として用いるコンテンツを挿入するための領域(コンテナ)を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを提供し、当該領域にコンテンツの挿入されたスクラップブックデータを受け取ると、当該スクラップブックデータの当該領域に挿入されたコンテンツを引数として用いて上記プログラムを実行する。
以上説明したように、上記実施形態に係る図1に示すような情報処理システムは、主に、アプリ処理装置(情報処理装置)300とスクラップブック編集装置(文書編集装置)310を含み、アプリ処理装置は、プログラムの実行に必要な引数として用いるコンテンツを挿入するための領域(コンテナ)を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを提供し、当該領域にコンテンツの挿入されたスクラップブックデータを受け取ると、当該スクラップブックデータの当該領域に挿入されたコンテンツを引数として用いて上記プログラムを実行する。
また、アプリ処理装置から提供されたスクラップブックデータを編集し、当該領域にコンテンツの挿入されたスクラップブックデータをアプリ処理装置へ返すスクラップブック編集装置は、1または複数のコンテンツをそれぞれ含み、各コンテンツには、当該コンテンツを利用する際の制約条件を示した利用制御条件が予め設定されている文書データを記憶するための記憶手段(ページ部品管理モジュールM22、特に、ページ部品DBM221)を有し、アプリ処理装置から提供されるスクラップブックデータを文書読込モジュールM21で読み込む。スクラップブックデータの領域に挿入する文書データのコンテンツが指定されたとき、条件判定モジュールM225は、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定し、この判定結果に基づき、ページ部品管理モジュールM221は、当該領域にコンテンツを挿入する。
また、スクラップブックの上記領域には、当該領域へ挿入されたコンテンツに対する操作を制約するための操作許容条件が予め設定され、当該領域に挿入された文書データのコンテンツに対する任意の操作が指示されたとき、条件判定モジュールM225は、当該領域の操作許容条件及び当該領域内の当該コンテンツの利用制御条件に基づき、当該領域内の当該コンテンツに対し指示された操作の可否を判定し、この判定結果に基づき、ページ部品管理モジュールM221は、当該領域に挿入された文書データのコンテンツに対する任意の操作を実行する。
上記スクラップブック編集装置によれば、構造化文書の中に含まれるコンテンツを、それよりさらに細かい操作単位としてのコンテンツ単位(ページ部品単位)で容易に編集することができるとともに、編集の際に当該コンテンツ単位で様々な利用制御を行うことができる。
スクラップブック中の各コンテナには、スクラップブック提供者、すなわち、アプリ処理装置側の意図を表る受理条件や操作許容条件が設定され、素材提供装置320から提供される各文書のコンテンツには、当該コンテンツ提供者側の意図を示す利用制御条件が設定されている。そして、コンテナにコンテンツを挿入する際には当該コンテナの受理条件及び当該コンテンツの利用制御条件をともに満足する場合に、当該コンテンツを当該コンテナへ挿入することができ、コンテナの操作許容条件、当該コンテナに挿入されているコンテンツの利用制御条件とがともに満足する場合に、当該コンテナ内の当該コンテンツに対する操作(更新、印刷等を含む)が可能となるため、このようにして編集されたスクラップブックは、アプリ処理装置側の意図とコンテンツ提供者側の意図をともに満足するものとなっている。すなわち、アプリ処理装置では、その動作保証のため、信頼できるコンテンツのみに限定するため等の目的で設定された受理条件や操作許容条件を満足するコンテンツを得ることができる。また、コンテンツ提供者側では、コンテンツに設定された利用制御条件により、当該コンテンツの利用に対し所望の制限を加えることができるため、安心してコンテンツの公開が行える。
また、上記スクラップブック編集装置によれば、ユーザは、スクラップブックのコンテナ内に所望の文書の所望のコンテンツを(コンテナの受理条件、コンテンツの利用制御条件を満足すれば)例えばドラッグアンドドロップのような簡単な操作により埋め込むことができる。
従って、アプリ処理装置が、上記スクラップブック編集装置により上記のようにしてコンテンツの挿入されたスクラップブックを入力インタフェースとして利用することにより、アプリ処理装置がアプリケーション(プログラム)実行のために必要とするデータを得るための、ユーザによる操作の負担を大幅に削減することができる。例えば、小型携帯端末を上記アプリ処理装置として用いる場合、小型携帯端末のような操作性の悪い環境においても、文書中のコンテンツの指定と、当該コンテンツの挿入先のコンテナの指定という操作だけで(文字入力を行うことなく)、アプリ処理装置へのデータ入力を行えるのである。
このように、上記実施形態に係るスクラップブック編集装置によれば、スクラップブックのコンテナには、当該コンテナに予め設定された受理条件及び操作許容条件を満たすコンテンツであって、しかも当該コンテンツの提供者側により予め設定された利用制御条件を満たすコンテンツのみが、コンテナへの挿入という簡単な操作により埋め込むことができる。
従って、上記スクラップブックを入力インタフェースとして用いることにより、プログラムを実行して予め定められた情報処理を行うアプリ処理装置に対し、当該プログラムの実行に必要な信頼性の高いデータを容易に入力することができる。
上記実施形態によれば、情報処理に必要な信頼性の高いデータ入力が容易に行える情報処理システムを提供することができる。
なお、本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、半導体メモリなどの記録媒体に格納して頒布することもできる。
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
300…アプリ処理装置;
301…起動部;
302…制御部;
303…スクラップブック生成部;
304…スクラップブック受信部;
305…処理ステップ実行部;
310…スクラップブック編集装置;
320…素材提供装置;
301…起動部;
302…制御部;
303…スクラップブック生成部;
304…スクラップブック受信部;
305…処理ステップ実行部;
310…スクラップブック編集装置;
320…素材提供装置;
Claims (9)
- コンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを入力するための手段と、
利用する際の制約条件を示した利用制御条件が予め設定されているコンテンツを含む文書データを記憶するための記憶手段と、
前記領域に挿入する前記文書データのコンテンツが指定されたとき、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定する第1の判定手段と、
前記第1の判定手段の判定結果に基づき、前記領域にコンテンツを挿入する手段と、
を具備したことを特徴とする文書編集装置。 - 前記領域には、当該領域へ挿入されたコンテンツに対する操作を制約するための操作許容条件が予め設定され、
前記領域に挿入された前記文書データのコンテンツに対する任意の操作が指示されたとき、当該領域の操作許容条件及び当該領域内の当該コンテンツの利用制御条件に基づき、当該領域内の当該コンテンツに対し指示された操作の可否を判定する第2の判定手段と、
前記第2の判定手段の判定結果に基づき、前記領域に挿入された前記文書データのコンテンツに対する任意の操作を実行する手段と、
をさらに具備したことを特徴とする請求項1記載の文書編集装置。 - 前記領域に設定された前記受理条件は、当該領域に挿入可能なコンテンツのタイプ、個数及び当該領域へのコンテンツの挿入操作を行うユーザを含む利用環境のうちの少なくとも1つが指定されていることを特徴とする請求項1記載の文書編集装置。
- 前記コンテンツに設定された前記利用制御条件は、当該コンテンツに対する操作の種別、当該コンテンツを利用するユーザを含む利用環境、当該コンテンツの有効期間及び当該コンテンツが利用可能な場所のうちの少なくとも1つが指定されていることを特徴とする請求項1記載の文書編集装置。
- 前記領域に設定された前記許容操作条件は、当該領域に挿入されたコンテンツに対する操作の種別、当該コンテンツを利用するユーザを含む利用環境、当該コンテンツの有効期間及び当該コンテンツが利用可能な場所のうちの少なくとも1つが指定されていることを特徴とする請求項2記載の文書編集装置。
- コンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを提供し、
前記領域にコンテンツの挿入されたスクラップブックデータを受け取ると、当該スクラップブックデータの前記領域に挿入されたコンテンツを用いて前記プログラムを実行する情報処理装置と、
前記情報処理装置から提供された前記スクラップブックデータを編集し、前記領域にコンテンツの挿入されたスクラップブックデータを前記情報処理装置へ返す文書編集装置とを備え、
前記文書編集装置は、
前記情報処理装置から提供される前記スクラップブックデータを入力するための手段と、
利用する際の制約条件を示した利用制御条件が予め設定されているコンテンツを含む文書データを記憶するための記憶手段と、
前記領域に挿入する前記文書データのコンテンツが指定されたとき、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定する第1の判定手段と、
前記第1の判定手段の判定結果に基づき、前記領域にコンテンツを挿入する手段と、
を具備したことを特徴とする情報処理システム。 - 前記領域には、当該領域へ挿入されたコンテンツに対する操作を制約するための操作許容条件が予め設定され、
前記文書編集装置は、
前記領域に挿入された前記文書データのコンテンツに対する任意の操作が指示されたとき、当該領域の操作許容条件及び当該領域内の当該コンテンツの利用制御条件に基づき、当該領域内の当該コンテンツに対し指示された操作の可否を判定する第2の判定手段と、
前記第2の判定手段の判定結果に基づき、前記領域に挿入された前記文書データのコンテンツに対する任意の操作を実行する手段と、
をさらに具備したことを特徴とする請求項6記載の情報処理システム。 - プログラムの実行に必要な引数を得るために、当該引数として用いるコンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを、当該スクラップブックデータを編集する文書編集装置へ提供する手段と、
前記領域にコンテンツの挿入されたスクラップブックデータを前記文書編集装置から受け取り、当該スクラップブックデータの前記領域に挿入されたコンテンツを用いて前記プログラムを実行する手段と、
を備えた情報処理装置。 - コンピュータを、
コンテンツを挿入するための領域を有し、当該領域には当該領域へコンテンツを挿入する際の制約条件を示した受理条件が予め設定されているスクラップブックデータを入力するための手段と、
利用する際の制約条件を示した利用制御条件が予め設定されているコンテンツを含む文書データを記憶するための記憶手段と、
前記領域に挿入する前記文書データのコンテンツが指定されたとき、当該領域の受理条件及び当該コンテンツの利用制御条件に基づき、当該コンテンツの当該領域への挿入可否を判定する第1の判定手段と、
前記第1の判定手段の判定結果に基づき、前記領域にコンテンツを挿入する手段と、
として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004253210A JP2006072551A (ja) | 2004-08-31 | 2004-08-31 | 文書編集装置、情報処理システム、情報処理装置およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004253210A JP2006072551A (ja) | 2004-08-31 | 2004-08-31 | 文書編集装置、情報処理システム、情報処理装置およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006072551A true JP2006072551A (ja) | 2006-03-16 |
Family
ID=36153138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004253210A Pending JP2006072551A (ja) | 2004-08-31 | 2004-08-31 | 文書編集装置、情報処理システム、情報処理装置およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006072551A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008305180A (ja) * | 2007-06-07 | 2008-12-18 | Toshiba Corp | 文書生成装置、文書生成プログラム及び文書生成方法 |
JP2009053997A (ja) * | 2007-08-28 | 2009-03-12 | Fuji Xerox Co Ltd | 文書管理システム及び管理装置及び文書管理プログラム |
JP2012155413A (ja) * | 2011-01-24 | 2012-08-16 | Nec Corp | ポータルサーバ及びポータルページ表示方法 |
JP2016033737A (ja) * | 2014-07-31 | 2016-03-10 | 凸版印刷株式会社 | ドキュメント作成支援方法およびドキュメント作成支援プログラム |
KR20160122155A (ko) * | 2014-02-17 | 2016-10-21 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 외부 콘텐츠 아이템과의 인코딩된 연관을 제공하는 기법 |
CN112114786A (zh) * | 2020-09-23 | 2020-12-22 | 统信软件技术有限公司 | 一种编辑器的实现方法、计算设备及可读存储介质 |
-
2004
- 2004-08-31 JP JP2004253210A patent/JP2006072551A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008305180A (ja) * | 2007-06-07 | 2008-12-18 | Toshiba Corp | 文書生成装置、文書生成プログラム及び文書生成方法 |
JP2009053997A (ja) * | 2007-08-28 | 2009-03-12 | Fuji Xerox Co Ltd | 文書管理システム及び管理装置及び文書管理プログラム |
US8539591B2 (en) | 2007-08-28 | 2013-09-17 | Fuji Xerox Co., Ltd. | Document management system, management device, recording medium storing document management program, document management method and data signal |
JP2012155413A (ja) * | 2011-01-24 | 2012-08-16 | Nec Corp | ポータルサーバ及びポータルページ表示方法 |
KR20160122155A (ko) * | 2014-02-17 | 2016-10-21 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 외부 콘텐츠 아이템과의 인코딩된 연관을 제공하는 기법 |
KR102368945B1 (ko) * | 2014-02-17 | 2022-02-28 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 외부 콘텐츠 아이템과의 인코딩된 연관을 제공하는 기법 |
US11727194B2 (en) | 2014-02-17 | 2023-08-15 | Microsoft Technology Licensing, Llc | Encoded associations with external content items |
JP2016033737A (ja) * | 2014-07-31 | 2016-03-10 | 凸版印刷株式会社 | ドキュメント作成支援方法およびドキュメント作成支援プログラム |
CN112114786A (zh) * | 2020-09-23 | 2020-12-22 | 统信软件技术有限公司 | 一种编辑器的实现方法、计算设备及可读存储介质 |
CN112114786B (zh) * | 2020-09-23 | 2024-05-14 | 统信软件技术有限公司 | 一种编辑器的实现方法、计算设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2439680C2 (ru) | Синхронизация в реальном времени данных xml между приложениями | |
JP4732358B2 (ja) | 静的および動的リストの使用を伴う仮想フォルダおよび項目共有のためのシステムおよび方法 | |
KR101608099B1 (ko) | 문서의 동시적인 협업적 검토 | |
EP2260413B1 (en) | Web content management | |
US6996776B1 (en) | Method and system for SGML-to-HTML migration to XML-based system | |
KR101169098B1 (ko) | 소프트웨어 애플리케이션 문서의 데이터 저장소 | |
US8584009B2 (en) | Automatically propagating changes in document access rights for subordinate document components to superordinate document components | |
JP4932240B2 (ja) | コンピュータ生成の文書におけるネストされたデータを透過的方法で公開するための方法およびシステム | |
US20060143459A1 (en) | Method and system for managing personally identifiable information and sensitive information in an application-independent manner | |
JP5072845B2 (ja) | 文書用のxmlデータストアのためのプログラム可能性 | |
US8683310B2 (en) | Information architecture for the interactive environment | |
JP3944014B2 (ja) | 文書編集方法、文書編集システム及び文書処理プログラム | |
US20030177202A1 (en) | Method and apparatus for executing an instruction in a web page | |
US20060218164A1 (en) | Document management device and document management program | |
JP2007149016A (ja) | ホームページ作成支援システム、ホームページ作成支援方法、ホームページ作成支援サーバ | |
JP2006072551A (ja) | 文書編集装置、情報処理システム、情報処理装置およびプログラム | |
JP2006350554A (ja) | 文書電子化システム | |
WO2010093063A1 (ja) | ホームページ作成装置、およびこれに用いるホームページ作成支援装置とホームページ作成のためのクライアント装置 | |
JP2009110241A (ja) | 電子ファイル管理装置 | |
JP2006134102A (ja) | ディレクトリ編集支援プログラム、ディレクトリ編集支援方法及びディレクトリ編集支援装置 | |
JP6454440B1 (ja) | ドキュメント作成支援システム | |
WO2002052454A1 (en) | Electronic authoring and publishing system | |
JP2006302240A (ja) | 文書管理プログラム及び文書管理装置 | |
Gutteridge et al. | Report on the technical issues of using GNU EPrints Software for the development of an institutional e-Print repository at the University of Southampton | |
JP2000250794A (ja) | バージョン管理装置、バージョン管理方法およびその方法を実行させるための記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070403 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070410 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070606 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070911 |