(57)【要約】【課題】ダイアグラムを適切に処理する技術を提供する。【解決手段】データ処理装置において、Ｓ８８処理ユニットの処理部７２ａは、処理単位を示す複数の図形と、図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する表示部１０３と、表示部１０３により表示された画面を介してユーザからダイアグラムの編集指示を受け付け、指示された編集を実行する編集部１０４と、編集部１０４が、処理の分岐の開始又は終了を示す第１図形と、処理単位を示す第２図形との間を接続線で接続する編集指示を受け付けたとき、第２図形を構成する線の接続点を決定して接続線の一端を自動的に接続させるとともに、第１図形を構成する線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に接続線の他端を接続させるリンク制御部１０６と、を備える。【選択図】図１２
2009238215.tif 000002
【特許請求の範囲】
【請求項１】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する表示部と、
前記表示部により表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行する編集部と、
前記編集部が、処理の分岐の開始又は終了を示す第１図形と、処理単位を示す第２図形との間を接続線で接続する編集指示を受け付けたとき、前記第２図形を構成する線上の前記接続線を接続させる点を決定して前記接続線の一端を自動的に接続させるとともに、前記第１図形を構成する線のうち前記接続線を接続させる線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に前記接続線の他端を接続させるリンク制御部と、
を備えることを特徴とするデータ処理装置。
【請求項２】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示するステップと、
表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行するステップと、
処理の分岐の開始又は終了を示す第１図形と、処理単位を示す第２図形との間を接続線で接続する編集指示を受け付けたとき、前記第２図形を構成する線上の前記接続線を接続させる点を決定して前記接続線の一端を自動的に接続させるとともに、前記第１図形を構成する線のうち前記接続線を接続させる線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に前記接続線の他端を接続させるステップと、
をコンピュータに実行させることを特徴とするデータ処理方法。
【請求項３】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示するステップと、
表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行するステップと、
処理の分岐の開始又は終了を示す第１図形と、処理単位を示す第２図形との間を接続線で接続する編集指示を受け付けたとき、前記第２図形を構成する線上の前記接続線を接続させる点を決定して前記接続線の一端を自動的に接続させるとともに、前記第１図形を構成する線のうち前記接続線を接続させる線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に前記接続線の他端を接続させるステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項４】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する表示部と、
前記表示部により表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行する編集部と、
前記編集部が、処理の分岐の開始又は終了を示す第１図形と、処理単位を示す第２図形との間を接続線で接続する編集指示を受け付けたとき、前記第１図形と前記第２図形とを前記接続線で接続させるリンク制御部と、を備え、
前記リンク制御部は、前記第１図形に前記接続線をスナップさせる接続点を設定し、ユーザが前記接続線の接続先を選択中に、前記接続先が前記接続点から所定の距離の範囲内に近づけられたとき、前記接続線の一端を前記接続点に自動的にスナップさせ、前記接続先が確定されたとき、前記第１図形と前記第２図形とを新たに接続線で接続させ、前記第１図形に接続されている接続線又は前記第１図形に設定されている接続点に応じて、前記第１図形に新たに接続点を設定することを特徴とするデータ処理装置。
【請求項５】
前記リンク制御部は、新たに接続された接続線の両側に新たな接続点を設定することを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
前記リンク制御部は、新たに接続された接続線と隣接する接続線又は前記第１図形の端点との間に接続点が設定されていない場合、新たに接続された接続線と隣接する接続線又は前記第１図形の端点との間に新たに接続点を設定することを特徴とする請求項４に記載のデータ処理装置。
【請求項７】
前記リンク制御部は、前記第１図形に設定されている接続点が無くなった場合、接続されている接続線同士の間又は前記接続線と前記第１図形の端点との間に新たに接続点を設定することを特徴とする請求項４に記載のデータ処理装置。
【請求項８】
前記リンク制御部は、前記接続先が確定されたとき、前記第１図形に接続されている接続線を再配置し、再配置された接続線同士の間又は前記接続線と前記第１図形の端点との間に新たに接続点を設定することを特徴とする請求項４に記載のデータ処理装置。
【請求項９】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示するステップと、
表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行するステップと、
処理の分岐の開始又は終了を示す第１図形と、処理単位を示す第２図形との間を接続線で接続する編集指示を受け付けたとき、前記第１図形と前記第２図形とを前記接続線で接続させるステップと、を備え、
前記接続させるステップは、
前記第１図形に前記接続線をスナップさせる接続点を設定するステップと、
ユーザが前記接続線の接続先を選択中に、前記接続先が前記接続点から所定の距離の範囲内に近づけられたとき、前記接続線の一端を前記接続点に自動的にスナップさせるステップと、
前記接続先が確定されたとき、前記第１図形と前記第２図形とを新たに接続線で接続させ、前記第１図形に接続されている接続線又は前記第１図形に設定されている接続点に応じて、前記第１図形に新たに接続点を設定するステップと、
を含むことを特徴とするデータ処理方法。
【請求項１０】
処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する機能と、
表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行する機能と、
処理の分岐の開始又は終了を示す第１図形と、処理単位を示す第２図形との間を接続線で接続する編集指示を受け付けたとき、前記第１図形と前記第２図形とを前記接続線で接続させる機能と、をコンピュータに実現させ、
前記接続させる機能は、前記第１図形に前記接続線をスナップさせる接続点を設定し、ユーザが前記接続線の接続先を選択中に、前記接続先が前記接続点から所定の距離の範囲内に近づけられたとき、前記接続線の一端を前記接続点に自動的にスナップさせ、前記接続先が確定されたとき、前記第１図形と前記第２図形とを新たに接続線で接続させ、前記第１図形に接続されている接続線又は前記第１図形に設定されている接続点に応じて、前記第１図形に新たに接続点を設定することを特徴とするデータ処理プログラム。
【請求項１１】
平面上に配置された複数の図形を描画して表示画面を生成する表示部と、
前記複数の図形のうち、ユーザにより選択された図形を編集対象として、ユーザにより指示された編集を行う編集部と、
ユーザから、複数の図形をグループ化する指示を受け付け、ユーザにより選択された複数の図形をグループ化し、以降、グループに属する複数の図形のいずれかがユーザにより選択されると、グループに属する全ての図形を編集対象とするよう前記編集部に指示するグループ管理部と、を備え、
前記グループ管理部は、ユーザが特定の操作とともに、又は特定の操作につづいて、前記グループに属する複数の図形のいずれかを選択したときには、選択された図形のみを編集対象とするよう前記編集部に指示することを特徴とするデータ処理装置。
【請求項１２】
平面上に配置された複数の図形を描画して表示画面を生成するステップと、
編集部が、前記複数の図形のうち、ユーザにより選択された図形を編集対象として、ユーザにより指示された編集を行うステップと、
ユーザから、複数の図形をグループ化する指示を受け付け、ユーザにより選択された複数の図形をグループ化し、以降、グループに属する複数の図形のいずれかがユーザにより選択されると、グループに属する全ての図形を編集対象とするよう前記編集部に指示するステップと、
ユーザが特定の操作とともに、又は特定の操作につづいて、前記グループに属する複数の図形のいずれかを選択したときには、選択された図形のみを編集対象とするよう前記編集部に指示するステップと、
をコンピュータに実行させることを特徴とするデータ処理方法。
【請求項１３】
平面上に配置された複数の図形を描画して表示画面を生成するステップと、
編集部が、前記複数の図形のうち、ユーザにより選択された図形を編集対象として、ユーザにより指示された編集を行うステップと、
ユーザから、複数の図形をグループ化する指示を受け付け、ユーザにより選択された複数の図形をグループ化し、以降、グループに属する複数の図形のいずれかがユーザにより選択されると、グループに属する全ての図形を編集対象とするよう前記編集部に指示するステップと、
ユーザが特定の操作とともに、又は特定の操作につづいて、前記グループに属する複数の図形のいずれかを選択したときには、選択された図形のみを編集対象とするよう前記編集部に指示するステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書処理技術に関し、特に、処理の流れを表現したダイアグラムを処理するデータ処理装置及び方法に関する。
【背景技術】
【０００２】
ＸＭＬは、ネットワークなどを介して他者とデータを共有するのに適した形式として注目されており、ＸＭＬ文書を作成、表示、編集するためのアプリケーションが開発されている（たとえば、特許文献１参照）。ＸＭＬ文書は、文書型定義などにより定義されたボキャブラリ（タグセット）に基づいて作成されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２９０８０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＸＭＬは、処理の流れを示すダイアグラムを表現するのにも適している。本出願人は、このように柔軟な設計が許されるＸＭＬ文書を利用して、ダイアグラムを適切に処理することが可能な技術を開発した。そして、ダイアグラムを処理する際のユーザの利便性を向上させることが可能なデータ処理技術を想到するに至った。
【０００５】
本発明はこうした状況に鑑みてなされたものであり、その目的は、ダイアグラムを適切に処理する技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は、データ処理装置に関する。このデータ処理装置は、処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する表示部と、前記表示部により表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行する編集部と、前記編集部が、処理の分岐の開始又は終了を示す第１図形と、処理単位を示す第２図形との間を接続線で接続する編集指示を受け付けたとき、前記第２図形を構成する線上の前記接続線を接続させる点を決定して前記接続線の一端を自動的に接続させるとともに、前記第１図形を構成する線のうち前記接続線を接続させる線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に前記接続線の他端を接続させるリンク制御部と、を備えることを特徴とする。
【０００７】
本発明の別の態様は、データ処理方法に関する。このデータ処理方法は、処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示するステップと、表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行するステップと、処理の分岐の開始又は終了を示す第１図形と、処理単位を示す第２図形との間を接続線で接続する編集指示を受け付けたとき、前記第２図形を構成する線上の前記接続線を接続させる点を決定して前記接続線の一端を自動的に接続させるとともに、前記第１図形を構成する線のうち前記接続線を接続させる線の任意の位置の指定をユーザから受け付け、ユーザから指定された位置に前記接続線の他端を接続させるステップと、をコンピュータに実行させることを特徴とする。
【０００８】
本発明の更に別の態様は、データ処理装置に関する。このデータ処理装置は、処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示する表示部と、前記表示部により表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行する編集部と、前記編集部が、処理の分岐の開始又は終了を示す第１図形と、処理単位を示す第２図形との間を接続線で接続する編集指示を受け付けたとき、前記第１図形と前記第２図形とを前記接続線で接続させるリンク制御部と、を備え、前記リンク制御部は、前記第１図形に前記接続線をスナップさせる接続点を設定し、ユーザが前記接続線の接続先を選択中に、前記接続先が前記接続点から所定の距離の範囲内に近づけられたとき、前記接続線の一端を前記接続点に自動的にスナップさせ、前記接続先が確定されたとき、前記第１図形と前記第２図形とを新たに接続線で接続させ、前記第１図形に接続されている接続線又は前記第１図形に設定されている接続点に応じて、前記第１図形に新たに接続点を設定することを特徴とする。
【０００９】
前記リンク制御部は、新たに接続された接続線の両側に新たな接続点を設定してもよい。前記リンク制御部は、新たに接続された接続線と隣接する接続線又は前記第１図形の端点との間に接続点が設定されていない場合、新たに接続された接続線と隣接する接続線又は前記第１図形の端点との間に新たに接続点を設定してもよい。前記リンク制御部は、前記第１図形に設定されている接続点が無くなった場合、接続されている接続線同士の間又は前記接続線と前記第１図形の端点との間に新たに接続点を設定してもよい。前記リンク制御部は、前記接続先が確定されたとき、前記第１図形に接続されている接続線を再配置し、再配置された接続線同士の間又は前記接続線と前記第１図形の端点との間に新たに接続点を設定してもよい。
【００１０】
本発明の更に別の態様は、データ処理方法に関する。このデータ処理方法は、処理単位を示す複数の図形と、前記図形間を接続して処理の流れを示す接続線とを含むダイアグラムを表示するステップと、表示された画面を介してユーザから前記ダイアグラムの編集指示を受け付け、指示された編集を実行するステップと、処理の分岐の開始又は終了を示す第１図形と、処理単位を示す第２図形との間を接続線で接続する編集指示を受け付けたとき、前記第１図形と前記第２図形とを前記接続線で接続させるステップと、を備え、前記接続させるステップは、前記第１図形に前記接続線をスナップさせる接続点を設定するステップと、ユーザが前記接続線の接続先を選択中に、前記接続先が前記接続点から所定の距離の範囲内に近づけられたとき、前記接続線の一端を前記接続点に自動的にスナップさせるステップと、前記接続先が確定されたとき、前記第１図形と前記第２図形とを新たに接続線で接続させ、前記第１図形に接続されている接続線又は前記第１図形に設定されている接続点に応じて、前記第１図形に新たに接続点を設定するステップと、を含むことを特徴とする。
【００１１】
本発明の更に別の態様は、データ処理装置に関する。このデータ処理装置は、平面上に配置された複数の図形を描画して表示画面を生成する表示部と、前記複数の図形のうち、ユーザにより選択された図形を編集対象として、ユーザにより指示された編集を行う編集部と、ユーザから、複数の図形をグループ化する指示を受け付け、ユーザにより選択された複数の図形をグループ化し、以降、グループに属する複数の図形のいずれかがユーザにより選択されると、グループに属する全ての図形を編集対象とするよう前記編集部に指示するグループ管理部と、を備え、前記グループ管理部は、ユーザが特定の操作とともに、又は特定の操作につづいて、前記グループに属する複数の図形のいずれかを選択したときには、選択された図形のみを編集対象とするよう前記編集部に指示することを特徴とする。
【００１２】
本発明の更に別の態様は、データ処理方法に関する。このデータ処理方法は、平面上に配置された複数の図形を描画して表示画面を生成するステップと、編集部が、前記複数の図形のうち、ユーザにより選択された図形を編集対象として、ユーザにより指示された編集を行うステップと、ユーザから、複数の図形をグループ化する指示を受け付け、ユーザにより選択された複数の図形をグループ化し、以降、グループに属する複数の図形のいずれかがユーザにより選択されると、グループに属する全ての図形を編集対象とするよう前記編集部に指示するステップと、ユーザが特定の操作とともに、又は特定の操作につづいて、前記グループに属する複数の図形のいずれかを選択したときには、選択された図形のみを編集対象とするよう前記編集部に指示するステップと、をコンピュータに実行させることを特徴とする。
【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によれば、ダイアグラムを適切に処理する技術を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】前提技術に係る文書処理装置の構成を示す図である。
【図２】文書処理装置により編集されるＸＭＬ文書の例を示す図である。
【図３】図２に示したＸＭＬ文書をＨＴＭＬで記述された表にマッピングする例を示す図である。
【図４（ａ）】図２に示したＸＭＬ文書を図３に示した表にマッピングするための定義ファイルの例を示す図である。
【図４（ｂ）】図２に示したＸＭＬ文書を図３に示した表にマッピングするための定義ファイルの例を示す図である。
【図５】図２に示したＸＭＬ文書を、図３に示した対応によりＨＴＭＬにマッピングして表示した画面の例を示す図である。
【図６】ユーザが定義ファイルを生成するために、定義ファイル生成部がユーザに提示するグラフィカルユーザインターフェースの例を示す図である。
【図７】定義ファイル生成部により生成された画面レイアウトの他の例を示す図である。
【図８】文書処理装置によるＸＭＬ文書の編集画面の一例を示す図である。
【図９】文書処理装置により編集されるＸＭＬ文書の他の例を示す図である。
【図１０】図９に示した文書を表示した画面の例を示す図である。
【図１１】実施の形態に係るデータ処理装置の構成を示す図である。
【図１２】Ｓ８８処理ユニットの処理部の内部構成を示す図である。
【図１３】Ｓ８８処理ユニットにより表示される画面の例を示す図である。
【図１４】Ｓ８８処理ユニットにより表示される画面の例を示す図である。
【図１５】Ｓ８８処理ユニットにより表示される画面の別の例を示す図である。
【図１６】Ｓ８８処理ユニットにより表示された画面の別の例を示す図である。
【図１７】図１７（ａ）〜（ｅ）は、接続線を接続させる接続点を自動的に更新する様子を示す図である。
【図１８】図１８（ａ）〜（ｅ）は、接続線を接続させる接続点を自動的に更新する様子を示す図である。
【図１９】図１９（ａ）〜（ｅ）は、接続線を接続させる接続点を自動的に更新する様子を示す図である。
【図２０】グループ管理部の機能を説明するための図である。
【図２１】グループ管理部の機能を説明するための図である。
【図２２】グループ管理部の機能を説明するための図である。
【図２３】グループ管理部の機能を説明するための図である。
【発明を実施するための形態】
【００１６】
（前提技術）
図１は、前提技術に係る文書処理装置２０の構成を示す。文書処理装置２０は、文書内のデータが階層構造を有する複数の構成要素に分類された構造化文書を処理するが、本前提技術では構造化文書の一例としてＸＭＬ文書を処理する例について説明する。文書処理装置２０は、主制御ユニット２２、編集ユニット２４、ＤＯＭユニット３０、ＣＳＳユニット４０、ＨＴＭＬユニット５０、ＳＶＧユニット６０、及び変換部の一例であるＶＣユニット８０を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００１７】
主制御ユニット２２は、プラグインのロードや、コマンド実行のフレームワークを提供する。編集ユニット２４は、ＸＭＬ文書を編集するためのフレームワークを提供する。文書処理装置２０における文書の表示及び編集機能は、プラグインにより実現されており、文書の種別に応じて必要なプラグインが主制御ユニット２２又は編集ユニット２４によりロードされる。主制御ユニット２２又は編集ユニット２４は、処理対象となるＸＭＬ文書の名前空間を参照して、ＸＭＬ文書がいずれのボキャブラリにより記述されているかを判別し、そのボキャブラリに対応した表示又は編集用のプラグインをロードして表示や編集を実行させる。例えば、文書処理装置２０には、ＨＴＭＬ文書の表示及び編集を行うＨＴＭＬユニット５０、ＳＶＧ文書の表示及び編集を行うＳＶＧユニット６０など、ボキャブラリ（タグセット）ごとに表示系及び編集系がプラグインとして実装されており、ＨＴＭＬ文書を編集するときはＨＴＭＬユニット５０が、ＳＶＧ文書を編集するときはＳＶＧユニット６０が、それぞれロードされる。後述するように、ＨＴＭＬとＳＶＧの双方の構成要素を含む複合文書が処理対象となっている場合は、ＨＴＭＬユニット５０とＳＶＧユニット６０の双方がロードされる。
【００１８】
このような構成によれば、ユーザは、必要な機能のみを選択してインストールし、後から適宜機能を追加又は削除することができるので、プログラムを格納するハードディスクなどの記録媒体の記憶領域を有効に活用することができ、また、プログラム実行時にも、メモリの浪費を防ぐことができる。また、機能拡張性に優れており、開発主体としても、プラグインの形で新たなボキャブラリに対応することが可能なので開発が容易となり、ユーザとしても、プラグインの追加により容易かつ低コストにて機能を追加することができる。
【００１９】
編集ユニット２４は、ユーザインターフェースを介してユーザから編集指示のイベントを受け付け、そのイベントを適切なプラグインなどに通知するともに、イベントの再実行（リドゥ）又は実行の取消（アンドゥ）などの処理を制御する。
【００２０】
ＤＯＭユニット３０は、ＤＯＭ提供部３２、ＤＯＭ生成部３４、及び出力部３６を含み、ＸＭＬ文書をデータとして扱うときのアクセス方法を提供するために定められた文書オブジェクトモデル（Document Object Model：ＤＯＭ）に準拠した機能を実現する。ＤＯＭ提供部３２は、編集ユニット２４に定義されているインタフェースを満たすＤＯＭの実装である。ＤＯＭ生成部３４は、ＸＭＬ文書からＤＯＭツリーを生成する。後述するように、処理対象となるＸＭＬ文書が、ＶＣユニット８０により他のボキャブラリにマッピングされる場合は、マッピング元のＸＭＬ文書に対応するソースツリーと、マッピング先のＸＭＬ文書に対応するデスティネーションツリーが生成される。出力部３６は、例えば編集終了時に、ＤＯＭツリーをＸＭＬ文書として出力する。
【００２１】
ＣＳＳユニット４０は、ＣＳＳ解析部４２、ＣＳＳ提供部４４、及びレンダリング部４６を含み、ＣＳＳに準拠した表示機能を提供する。ＣＳＳ解析部４２は、ＣＳＳの構文を解析するパーサの機能を有する。ＣＳＳ提供部４４は、ＣＳＳオブジェクトの実装であり、ＤＯＭツリーに対してＣＳＳのカスケード処理を行う。レンダリング部４６は、ＣＳＳのレンダリングエンジンであり、ＣＳＳを用いてレイアウトされるＨＴＭＬなどのボキャブラリで記述された文書の表示に用いられる。
【００２２】
ＨＴＭＬユニット５０は、ＨＴＭＬにより記述された文書を表示又は編集する。ＳＶＧユニット６０は、ＳＶＧにより記述された文書を表示又は編集する。これらの表示／編集系は、プラグインの形で実現されており、それぞれ、文書を表示する表示部（Canvas）５６、６６、編集指示を含むイベントを送受信する制御部（Editlet）５２、６２、編集コマンドを受けてＤＯＭに対して編集を行う編集部（Zone）５４、６４を備える。制御部５２又は６２が外部からＤＯＭツリーの編集コマンドを受け付けると、編集部５４又は６４がＤＯＭツリーを変更し、表示部５６又は６６が表示を更新する。これらは、ＭＶＣ（Model-View-Controller）と呼ばれるフレームワークに類似する構成をとっており、概ね、表示部５６及び６６が「View」に、制御部５２及び６２が「Controller」に、編集部５４及び６４とＤＯＭの実体が「Model」に、それぞれ対応する。本前提技術の文書処理装置２０では、ＸＭＬ文書をツリー表示形式で編集するだけでなく、それぞれのボキャブラリに応じた編集を可能とする。例えば、ＨＴＭＬユニット５０は、ＨＴＭＬ文書をワードプロセッサに類似した方式で編集するためのユーザインターフェースを提供し、ＳＶＧユニット６０は、ＳＶＧ文書を画像描画ツールに類似した方式で編集するためのユーザインターフェースを提供する。
【００２３】
ＶＣユニット８０は、マッピング部８２、定義ファイル取得部８４、及び定義ファイル生成部８６を含み、あるボキャブラリにより記述された文書を、他のボキャブラリにマッピングすることにより、マッピング先のボキャブラリに対応した表示編集用プラグインで文書を表示又は編集するためのフレームワークを提供する。本前提技術では、この機能を、ボキャブラリコネクション（Vocabulary Connection：ＶＣ）と呼ぶ。定義ファイル取得部８４は、マッピングの定義を記述したスクリプトファイルを取得する。この定義ファイルは、ノードごとに、ノード間の対応（コネクション）を記述する。このとき、各ノードの要素値や属性値の編集の可否を指定してもよい。また、ノードの要素値や属性値を用いた演算式を記述してもよい。これらの機能については、後で詳述する。マッピング部８２は、定義ファイル取得部８４が取得したスクリプトファイルを参照して、ＤＯＭ生成部３４にデスティネーションツリーを生成させ、ソースツリーとデスティネーションツリーの対応関係を管理する。定義ファイル生成部８６は、ユーザが定義ファイルを生成するためのグラフィカルユーザインターフェースを提供する。
【００２４】
ＶＣユニット８０は、ソースツリーとデスティネーションツリーの間のコネクションを監視し、表示を担当するプラグインにより提供されるユーザインタフェースを介してユーザから編集指示を受け付けると、まずソースツリーの該当するノードを変更する。ＤＯＭユニット３０が、ソースツリーが変更された旨のミューテーションイベントを発行すると、ＶＣユニット８０は、そのミューテーションイベントを受けて、ソースツリーの変更にデスティネーションツリーを同期させるべく、変更されたノードに対応するデスティネーションツリーのノードを変更する。デスティネーションツリーを表示／編集するプラグイン、例えばＨＴＭＬユニット５０は、デスティネーションツリーが変更された旨のミューテーションイベントを受けて、変更されたデスティネーションツリーを参照して表示を更新する。このような構成により、少数のユーザにより利用されるローカルなボキャブラリにより記述された文書であっても、他のメジャーなボキャブラリに変換することで、文書を表示することができるとともに、編集環境が提供される。
【００２５】
文書処理装置２０により文書を表示又は編集する動作について説明する。文書処理装置２０が処理対象となる文書を読み込むと、ＤＯＭ生成部３４が、そのＸＭＬ文書からＤＯＭツリーを生成する。また、主制御ユニット２２又は編集ユニット２４は、名前空間を参照して文書を記述しているボキャブラリを判別する。そのボキャブラリに対応したプラグインが文書処理装置２０にインストールされている場合は、そのプラグインをロードして、文書を表示／編集させる。プラグインがインストールされていない場合は、マッピングの定義ファイルが存在するか否かを確認する。定義ファイルが存在する場合、定義ファイル取得部８４が定義ファイルを取得し、その定義に従って、デスティネーションツリーが生成され、マッピング先のボキャブラリに対応するプラグインにより文書が表示／編集される。複数のボキャブラリを含む複合文書である場合は、後述するように、それぞれのボキャブラリに対応したプラグインにより、文書の該当箇所がそれぞれ表示／編集される。定義ファイルが存在しない場合は、文書のソース又はツリー構造を表示し、その表示画面において編集が行われる。
【００２６】
図２は、処理対象となるＸＭＬ文書の例を示す。このＸＭＬ文書は、生徒の成績データを管理するために用いられる。ＸＭＬ文書のトップノードである構成要素「成績」は、配下に、生徒ごとに設けられた構成要素「生徒」を複数有する。構成要素「生徒」は、属性値「名前」と、子要素「国語」、「数学」、「理科」、「社会」を有する。属性値「名前」は、生徒の名前を格納する。構成要素「国語」、「数学」、「理科」、「社会」は、それぞれ、国語、数学、理科、社会の成績を格納する。例えば、名前が「Ａ」である生徒の国語の成績は「９０」、数学の成績は「５０」、理科の成績は「７５」、社会の成績は「６０」である。以下、この文書で使用されているボキャブラリ（タグセット）を、「成績管理ボキャブラリ」と呼ぶ。
【００２７】
本前提技術の文書処理装置２０は、成績管理ボキャブラリの表示／編集に対応したプラグインを有しないので、この文書をソース表示、ツリー表示以外の方法で表示するためには、前述したＶＣ機能が用いられる。すなわち、成績管理ボキャブラリを、プラグインが用意された別のボキャブラリ、例えば、ＨＴＭＬやＳＶＧなどにマッピングするための定義ファイルを用意する必要がある。ユーザ自身が定義ファイルを作成するためのユーザインターフェースについては後述することにして、ここでは、既に定義ファイルが用意されているとして説明を進める。
【００２８】
図３は、図２に示したＸＭＬ文書をＨＴＭＬで記述された表にマッピングする例を示す。図３の例では、成績管理ボキャブラリの「生徒」ノードを、ＨＴＭＬにおける表（「TABLE」ノード）の行（「TR」ノード）に対応づけ、各行の第１列には属性値「名前」を、第２列には「国語」ノードの要素値を、第３列には「数学」ノードの要素値を、第４列には「理科」ノードの要素値を、第５列には「社会」ノードの要素値を、それぞれ対応付ける。これにより、図２に示したＸＭＬ文書を、ＨＴＭＬの表形式で表示することができる。また、これらの属性値及び要素値は、編集可能であることが指定されており、ユーザがＨＴＭＬによる表示画面上で、ＨＴＭＬユニット５０の編集機能により、これらの値を編集することができる。第６列には、国語、数学、理科、社会の成績の加重平均を算出する演算式が指定されており、生徒の成績の平均点が表示される。このように、定義ファイルに演算式を指定可能とすることにより、より柔軟な表示が可能となり、編集時のユーザの利便性を向上させることができる。なお、第６列は、編集不可であることが指定されており、平均点のみを個別に編集することができないようにしている。このように、マッピング定義において、編集の可否を指定可能とすることにより、ユーザの誤操作を防ぐことができる。
【００２９】
図４（ａ）及び図４（ｂ）は、図２に示したＸＭＬ文書を図３に示した表にマッピングするための定義ファイルの例を示す。この定義ファイルは、定義ファイル用に定義されたスクリプト言語により記述される。定義ファイルには、コマンドの定義と、表示のテンプレートが記述されている。図４（ａ）（ｂ）の例では、コマンドとして、「生徒の追加」と「生徒の削除」が定義されており、それぞれ、ソースツリーにノード「生徒」を挿入する操作と、ソースツリーからノード「生徒」を削除する操作が対応付けられている。また、テンプレートとして、表の第１行に「名前」、「国語」などの見出しが表示され、第２行以降に、ノード「生徒」の内容が表示されることが記述されている。ノード「生徒」の内容を表示するテンプレート中、「text-of」と記述された項は「編集可能」であることを意味し、「value-of」と記述された項は「編集不可能」であることを意味する。また、ノード「生徒」の内容を表示する行のうち、第６列には、「(src:国語 + src:数学 + src:理科 + src:社会) div 4」という計算式が記述されており、生徒の成績の平均が表示されることを意味する。
【００３０】
図５は、図２に示した成績管理ボキャブラリで記述されたＸＭＬ文書を、図３に示した対応によりＨＴＭＬにマッピングして表示した画面の例を示す。表９０の各行には、左から、各生徒の名前、国語の成績、数学の成績、理科の成績、社会の成績、及び平均点が表示されている。ユーザは、この画面上で、ＸＭＬ文書を編集することができる。たとえば、第２行第３列の値を「７０」に変更すると、このノードに対応するソースツリーの要素値、すなわち、生徒「Ｂ」の数学の成績が「７０」に変更される。このとき、ＶＣユニット８０は、デスティネーションツリーをソースツリーに追従させるべく、デスティネーションツリーの該当箇所を変更し、ＨＴＭＬユニット５０が、変更されたデスティネーションツリーに基づいて表示を更新する。したがって、画面上の表においても、生徒「Ｂ」の数学の成績が「７０」に変更され、更に、平均点が「５５」に変更される。
【００３１】
図５に示した画面には、図４（ａ）（ｂ）に示した定義ファイルに定義されたように、「生徒の追加」及び「生徒の削除」のコマンドがメニューに表示される。ユーザがこれらのコマンドを選択すると、ソースツリーにおいて、ノード「生徒」が追加又は削除される。このように、本前提技術の文書処理装置２０では、階層構造の末端の構成要素の要素値を編集するのみではなく、階層構造を編集することも可能である。このようなツリー構造の編集機能は、コマンドの形でユーザに提供されてもよい。また、例えば、表の行を追加又は削除するコマンドが、ノード「生徒」を追加又は削除する操作に対応づけられてもよい。また、他のボキャブラリを埋め込むコマンドがユーザに提供されてもよい。この表を入力用テンプレートとして、穴埋め形式で新たな生徒の成績データを追加することもできる。以上のように、ＶＣ機能により、ＨＴＭＬユニット５０の表示／編集機能を利用しつつ、成績管理ボキャブラリで記述された文書を編集することが可能となる。
【００３２】
図６は、ユーザが定義ファイルを生成するために、定義ファイル生成部８６がユーザに提示するグラフィカルユーザインタフェースの例を示す。画面左側の領域９１には、マッピング元のＸＭＬ文書がツリー表示されている。画面右側の領域９２には、マッピング先のＸＭＬ文書の画面レイアウトが示されている。この画面レイアウトは、ＨＴＭＬユニット５０により編集可能となっており、ユーザは、画面右側の領域９２において、文書を表示するための画面レイアウトを作成する。そして、例えば、マウスなどのポインティングデバイスにより、画面左側の領域９１に表示されたマッピング元のＸＭＬ文書のノードを、画面右側の領域９２に表示されたＨＴＭＬによる画面レイアウト中へドラッグ＆ドロップ操作を行うことにより、マッピング元のノードと、マッピング先のノードとのコネクションが指定される。例えば、要素「生徒」の子要素である「数学」を、ＨＴＭＬ画面の表９０の第１行第３列にドロップすると、「数学」ノードと、３列目の「ＴＤ」ノードの間にコネクションが張られる。各ノードには、編集の可否が指定できるようになっている。また、表示画面中には、演算式を埋め込むこともできる。画面の編集が終わると、定義ファイル生成部８６は、画面レイアウトとノード間のコネクションを記述した定義ファイルを生成する。
【００３３】
ＸＨＴＭＬ、ＭａｔｈＭＬ、ＳＶＧなどの主要なボキャブラリに対応したビューワやエディタは既に開発されているが、図２に示した文書のようなオリジナルなボキャブラリで記述された文書に対応したビューワやエディタを開発するのは現実的でない。しかし、上記のように、他のボキャブラリにマッピングするための定義ファイルを作成すれば、ビューワやエディタを開発しなくても、ＶＣ機能を利用して、オリジナルなボキャブラリで記述された文書を表示・編集することができる。
【００３４】
図７は、定義ファイル生成部８６により生成された画面レイアウトの他の例を示す。図７の例では、成績管理ボキャブラリで記述されたＸＭＬ文書を表示するための画面に、表９０と、円グラフ９３が作成されている。この円グラフ９３は、ＳＶＧにより記述される。後述するように、本前提技術の文書処理装置２０は、一つのＸＭＬ文書内に複数のボキャブラリを含む複合文書を処理することができるので、この例のように、ＨＴＭＬで記述された表９０と、ＳＶＧで記述された円グラフ９３とを、一つの画面上に表示することができる。
【００３５】
図８は、文書処理装置２０によるＸＭＬ文書の編集画面の一例を示す。図８の例では、一つの画面が複数に分割されており、それぞれの領域において、処理対象となるＸＭＬ文書を異なる複数の表示形式により表示している。領域９４には、文書のソースが表示されており、領域９５には、文書のツリー構造が表示されており、領域９６には、図５に示したＨＴＭＬにより記述された表が表示されている。これらのいずれの画面上においても、文書の編集が可能であり、いずれかの画面上でユーザが編集を行うと、ソースツリーが変更され、それぞれの画面の表示を担当するプラグインが、ソースツリーの変更を反映すべく画面を更新する。具体的には、ソースツリーの変更を通知するミューテーションイベントのリスナーとして、それぞれの編集画面の表示を担当するプラグインの表示部を登録しておき、いずれかのプラグイン又はＶＣユニット８０によりソースツリーが変更されたときに、編集画面を表示中の全ての表示部が、発行されたミューテーションイベントを受け取って画面を更新する。このとき、プラグインがＶＣ機能により表示を行っている場合は、ＶＣユニット８０がソースツリーの変更に追従してデスティネーションツリーを変更した後、変更されたデスティネーションツリーを参照してプラグインの表示部が画面を更新する。
【００３６】
例えば、ソース表示及びツリー表示を、専用のプラグインにより実現している場合は、ソース表示用プラグインとツリー表示用プラグインは、デスティネーションツリーを用いず、直接ソースツリーを参照して表示を行う。この場合、いずれかの画面において編集が行われると、ソース表示用プラグインとツリー表示用プラグインは、変更されたソースツリーを参照して画面を更新し、領域９６の画面を担当しているＨＴＭＬユニット５０は、ソースツリーの変更に追従して変更されたデスティネーションツリーを参照して画面を更新する。
【００３７】
ソース表示及びツリー表示は、ＶＣ機能を利用して実現することもできる。すなわち、ソース、ツリー構造をＨＴＭＬによりレイアウトし、そのＨＴＭＬにＸＭＬ文書をマッピングして、ＨＴＭＬユニット５０により表示してもよい。この場合、ソース形式、ツリー形式、表形式の３つのデスティネーションツリーが生成されることになる。いずれかの画面において編集が行われると、ＶＣユニット８０は、ソースツリーを変更した後、ソース形式、ツリー形式、表形式の３つのデスティネーションツリーをそれぞれ変更し、ＨＴＭＬユニット５０は、それらのデスティネーションツリーを参照して、３つの画面を更新する。
【００３８】
このように、一つの画面上に複数の表示形式で文書を表示することにより、ユーザの利便性を向上させることができる。例えば、ユーザは、ソース表示又はツリー表示により文書の階層構造を把握しつつ、表９０などを用いて視覚的に分かりやすい形式で文書を表示し、編集することができる。上記の例では、一つの画面を分割して複数の表示形式による画面を同時に表示したが、一つの画面に一つの表示形式による画面を表示し、表示形式をユーザの指示により切り替え可能としてもよい。この場合、主制御ユニット２２が、ユーザから表示形式の切り替え要求を受け付け、各プラグインに指示して表示を切り替える。
【００３９】
図９は、文書処理装置２０により編集されるＸＭＬ文書の他の例を示す。図９に示したＸＭＬ文書では、ＳＶＧ文書の「foreignObject」タグの中にＸＨＴＭＬ文書が埋め込まれており、さらに、ＸＨＴＭＬ文書の中にＭａｔｈＭＬで記述された数式が入っている。このような場合、編集ユニット２４が、名前空間を参照して、適切な表示系に描画作業を振り分ける。図９の例では、編集ユニット２４は、まず、ＳＶＧユニット６０に四角形を描画させ、つづいて、ＨＴＭＬユニット５０にＸＨＴＭＬ文書を描画させる。さらに、図示しないＭａｔｈＭＬユニットに、数式を描画させる。こうして、複数のボキャブラリを包含する複合文書が適切に表示される。表示結果を図１０に示す。
【００４０】
文書編集中、カーソル（キャリッジ）の位置に応じて、表示されるメニューを切り替えてもよい。すなわち、カーソルが、ＳＶＧ文書が表示された領域内に存在するときは、ＳＶＧユニット６０が提供するメニュー、又はＳＶＧ文書をマッピングするための定義ファイルに定義されたコマンドを表示し、カーソルが、ＸＨＴＭＬ文書が表示された領域内に存在するときは、ＨＴＭＬユニット５０が提供するメニュー、又はＸＨＴＭＬ文書をマッピングするための定義ファイルに定義されたコマンドを表示する。これにより、編集位置に応じて適切なユーザインターフェースを提供することができる。
【００４１】
複合文書において、あるボキャブラリに対応する適切なプラグイン又はマッピング定義ファイルがなかった場合は、そのボキャブラリにより記述された部分は、ソース表示又はツリー表示されてもよい。従来、ある文書に他の文書を埋め込んだ複合文書を開くとき、埋め込まれた文書を表示するアプリケーションがインストールされていないと、その内容を表示することができなかったが、本前提技術では、表示用のアプリケーションが存在しなくても、テキストデータにより構成されたＸＭＬ文書をソース表示又はツリー表示することにより内容を把握することができる。これは、テキストベースであるＸＭＬなどの文書ならではの特徴といえる。
【００４２】
データがテキストベースで記述されることの他の利点として、例えば、複合文書中の、あるボキャブラリにより記述される部分において、同一文書内の他のボキャブラリで記述された部分のデータを参照してもよい。また、文書内で検索を実行する時に、ＳＶＧなどの図に埋め込まれた文字列も検索対象とすることができる。
【００４３】
あるボキャブラリにより記述された文書内に、他のボキャブラリのタグを用いてもよい。このＸＭＬ文書は、妥当（valid）ではないが、整形式（well-formed）であれば、有効なＸＭＬ文書として処理可能である。この場合、挿入された他のボキャブラリのタグは、定義ファイルによりマッピングされてもよい。例えば、ＸＨＴＭＬ文書中に、「重要」、「最重要」などのタグを使用し、これらのタグで囲まれた部分を強調表示してもよいし、重要度の順にソートして表示してもよい。
【００４４】
図１０に示した編集画面において、ユーザにより文書が編集されると、編集された部分を担当するプラグイン又はＶＣユニット８０がソースツリーを変更する。ソースツリーには、ノードごとにミューテーションイベントのリスナーを登録できるようになっており、通常は、各ノードが属するボキャブラリに対応したプラグインの表示部又はＶＣユニット８０がリスナーとして登録される。ＤＯＭ提供部３２は、ソースツリーが変更されると、変更されたノードから上位の階層へたどって、登録されたリスナーがあれば、そのリスナーへミューテーションイベントを発行する。例えば、図９に示した文書において、＜ｈｔｍｌ＞ノードの下位のノードが変更された場合、＜ｈｔｍｌ＞ノードにリスナーとして登録されたＨＴＭＬユニット５０にミューテーションイベントが通知されるとともに、その上位の＜ｓｖｇ＞ノードにリスナーとして登録されたＳＶＧユニット６０にもミューテーションイベントが通知される。このとき、ＨＴＭＬユニット５０は、変更されたソースツリーを参照して表示を更新する。ＳＶＧユニット６０は、自身のボキャブラリに属するノードが変更されていないので、ミューテーションイベントを無視してもよい。
【００４５】
編集の内容によっては、ＨＴＭＬユニット５０による表示の更新に伴って、全体のレイアウトが変わる可能性がある。この場合は、画面のレイアウトを管理する構成、例えば最上位のノードの表示を担当するプラグインにより、プラグインごとの表示領域のレイアウトが更新される。例えば、ＨＴＭＬユニット５０による表示領域が以前より大きくなった場合、ＨＴＭＬユニット５０は、まず自身の担当する部分を描画して、表示領域の大きさを決定する。そして、画面のレイアウトを管理する構成に、変更後の表示領域の大きさを通知し、レイアウトの更新を依頼する。画面のレイアウトを管理する構成は、通知を受けて、プラグインごとの表示領域を再レイアウトする。こうして、編集された部分の表示が適切に更新されるとともに、画面全体のレイアウトが更新される。
【００４６】
（実施の形態）
図１１は、実施の形態に係るデータ処理装置１００の構成を示す。データ処理装置１００は、図２に示した前提技術に係る文書処理装置２０の構成に加えて、ダイアグラムコンポーネント７０を備える。ダイアグラムコンポーネント７０は、ダイアグラムを表示し、編集する機能を提供する。ダイアグラムコンポーネント７０は、ダイアグラムを表記するための複数の表記法のそれぞれに準じた処理を行う複数の処理ユニット７１と、複数の表記法において共通に用いられる機能を提供するコア部７６を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００４７】
Ｓ８８処理ユニット７１ａ、ＢＰＭＮ処理ユニット７１ｂ、フローチャート処理ユニット７１ｃなどの処理ユニット７１は、ダイアグラムを作成するために定められた規格又は表記法に則って、ダイアグラムを記述した文書を読み込んで表示するとともに、ユーザからの編集指示を受け付けて、ダイアグラムを編集する。Ｓ８８処理ユニット７１ａは、国際計測制御学会（Instrumentation, Systems, and Automation society：ＩＳＡ）が規格化したバッチ制御の国際標準規格であるＳ８８に準拠したダイアグラムの表示及び編集を制御する。ＢＰＭＮ処理ユニット７１ｂは、ビジネスプロセスを図示して可視化するためのグラフィカルな標準記法として策定されたＢＰＭＮ（Business Process Modeling Notation）に準拠したダイアグラムの表示及び編集を制御する。フローチャート処理ユニット７１ｃは、ＪＩＳなどにより規格化されたフローチャートの表記法に準拠したダイアグラムの表示及び編集を制御する。それぞれの表記法によって、図形の形状や、矢印の形状などの表記の仕様が異なっているので、それぞれの仕様に応じて処理部７２が設けられる。処理部７２は、それぞれの表記法においてダイアグラムを表記するのに充分な情報を持つ独自のＸＭＬボキャブラリを用いて、ダイアグラムをデータ化して処理する。
【００４８】
ルール管理部７４は、処理部７２における編集のルールを管理する。ダイアグラムには、規格などにより、様々な制約が定められている。例えば、ビジネスプロセスモデルを表記するＢＰＭＮでは、「メッセージフローは同じプール内のそれぞれのレーンにあるアクティビティ間で使うことは許されない」という制約がある。ルール管理部７４は、このような編集制約を保持して、処理部７２における編集の許否を判定し、各規格に準拠した文書の作成を支援する。ルール管理部７４は、ハードコードされたモジュールとして提供されてもよいし、パラメータファイルなどによりカスタマイズ可能としてもよい。
【００４９】
コア部７６は、様々なダイアグラムの表記法に応じて設けられる複数の処理部７２により共通に利用される機能を提供する。例えば、コア部７６は、ＤＯＭの操作や、ファイルの入出力など、ダイアグラムの処理に際して、ダイアグラムの種別の違いによらずに必要となる共通の機能を提供する。グループ管理部７７は、ダイアグラムに含まれる複数の図形をグループ化して管理する。グループ管理部７７の機能の詳細については後述する。
【００５０】
このように、共通の機能を提供するコア部７６と、ダイアグラムを作成するモデルに応じた処理を行う処理部７２と、編集制約を管理するルール管理部７４とを、それぞれ独立した別々のモジュールとして設けることで、処理部７２とルール管理部７４をダイアグラムの種別に応じて別々にカスタマイズすることができ、柔軟に対応させることができる。また、共通の機能はコア部７６にまとめることで、ダイアグラムの種別が異なっても、処理部７２とルール管理部７４のみをカスタマイズすればよいので、開発の工数を低減させることができる。処理部７２は、コア部７６及びルール管理部７４のそれぞれとの間で通信を行うためのインタフェースを有しており、インタフェースを介してコア部７６及びルール管理部７４と協調動作する。
【００５１】
図１２は、Ｓ８８処理ユニット７１ａの処理部７２ａの内部構成を示す。処理部７２ａは、ツリー制御部１０１、パンくずリスト制御部１０２、表示部１０３、編集部１０４、図形管理部１０５、リンク制御部１０６を備える。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
【００５２】
Ｓ８８では、バッチプロセスの手順が、「MasterRecipe」、「Procedure」、「Unit Procedure」、「Operation」、「Phase」などの処理単位を用いて階層的に表現される。表示部１０３は、ユーザにより指定された階層におけるダイアグラムを表示する。編集部１０４は、表示部１０３により表示された階層におけるダイアグラムの編集指示をユーザから受け付けて、指示された編集を実行する。
【００５３】
ツリー制御部１０１は、バッチプロセスに含まれるこれらの処理単位の階層構造をツリー表示する。ツリー制御部１０１は、ツリー表示においてユーザが特定の階層を指定すると、その階層のダイアグラムを表示部１０３に表示させる。パンくずリスト制御部１０２は、表示部１０３に表示されている階層を示すパンくずリストを表示する。パンくずリスト制御部１０２は、パンくずリストにおいてユーザが特定の階層を指定すると、その階層のダイアグラムを表示部１０３に表示させる。
【００５４】
図形管理部１０５は、編集部１０４により編集されるバッチプロセス中に配置可能な図形を管理する。図形管理部１０５は、Ｓ８８における「MasterRecipe」、「Procedure」、「Unit Procedure」、「Operation」、「Phase」、「Parallel Divergent」、「Parallel Convergent」などの処理単位を示す図形や、フローチャートにおける「処理」、「入出力」、「準備」、「判断」などを示す図形の形状データを保持し、画面にそれらの図形を表示する。ユーザが、表示された図形をドラッグして、表示部１０３により表示されたダイアグラムの表示画面にドロップする操作などを行うと、図形管理部１０５は、操作された図形及びドロップされた位置を編集部１０４に通知して、表示されている階層にその図形を配置させる。
【００５５】
リンク制御部１０６は、バッチプロセス中に配置された処理単位を示す複数の図形の間を接続する直線型又はかぎ型のリンクを制御する。リンク制御部１０６の機能の詳細については後述する。
【００５６】
図１３は、Ｓ８８処理ユニット７１ａにより表示される画面の例を示す。表示画面には、表示部１０３がバッチプロセス中の特定の階層のダイアグラムを表示するメイン画面１１６と、ツリー制御部１０１がバッチプロセスの階層構造をツリー表示するツリー画面１１０と、パンくずリスト制御部１０２がメイン画面１１６に表示中の階層を示すパンくずリストを表示するパンくずリスト画面１１２と、図形管理部１０５が配置可能な図形の候補を表示するストック画面１１８が設けられている。
【００５７】
メイン画面１１６には、Ｓ８８の仕様にしたがって、ユーザにより選択された階層のダイアグラムが表示される。Ｓ８８では、処理単位に応じて図形の形状が決められており、「Procedure」を示す図形１２０は、矩形の各頂点の内側に斜線が付されている。同様に、「Unit Procedure」を示す図形には、矩形の左上、右上、右下の３頂点の内側に斜線が付されており、「Operation」を示す図形には、矩形の左上、右上の２頂点の内側に斜線が付されており、「Phase」を示す図形には、矩形の右上の１頂点の内側に斜線が付されている。このように、矩形の頂点の内側に付された斜線の数によって、その図形がいずれの処理単位に該当するのかを視覚的に判断することができる。また、下位の階層を有する処理単位の矩形の右上の頂点付近には、「＋」記号１２２が表示される。
【００５８】
編集部１０４は、下位の階層を持つことが可能な処理単位の図形をマウスでダブルクリックする操作を受け付けると、その処理単位の階層へ移動するよう表示部１０３へ通知し、その階層のダイアグラムを表示させる。例えば、「Procedure1」の図形１２０をダブルクリックする操作を受け付けると、「Procedure1」の階層へ移動させる。このときの画面の例を図１４に示す。編集部１０４は、「＋」記号１２２をクリックする操作を受け付けると、その「＋」記号１２２が付された図形に対応する処理単位の階層へ移動させてもよい。また、「＋」記号１２２をクリックする操作を受け付けると、階層を移動させずに、表示中のダイアグラムにおいて、その階層のダイアグラムを展開させてもよい。
【００５９】
図１４は、Ｓ８８処理ユニット７１ａにより表示される画面の例を示す。図１４では、「Procedure1」の階層のダイアグラムがメイン画面１１６に表示されている。パンくずリスト制御部１０２は、階層の移動に追随してパンくずリスト画面１１２を更新する。この画面において、パンくずリスト制御部１０２は、例えば「MasterRecipe」をクリックする操作を受け付けると、「MasterRecipe」の階層へ移動するよう表示部１０３へ通知する。また、矢印１１４をクリックする操作を受け付けると、１つ上の階層へ移動するよう表示部１０３へ通知する。
【００６０】
図１５は、Ｓ８８処理ユニット７１ａにより表示される画面の別の例を示す。図１５の例では、表示部１０３は、メイン画面１１６の領域を示す矩形の各頂点の内側に、その処理単位の図形に対応する斜線を表示している。すなわち、表示中の階層が「Procedure」であれば、図１５に示すように、メイン画面１１６の四隅の内側に斜線が付され、「Unit Procedure」であれば、左上、右上、右下の三隅の内側に斜線が付される。これにより、表示中の階層がいずれの処理単位に該当するかを視覚的に分かりやすく表示することができる。表示部１０３は、表示中の階層の処理単位が下位の階層を有している場合は、メイン画面１１６の右上の頂点の内側に「＋」記号１２６を表示してもよい。この場合、編集部１０４は、「＋」記号１２６をクリックする操作を受け付けると、下位の階層へ移動するよう表示部１０３へ通知してもよい。
【００６１】
図１６は、Ｓ８８処理ユニット７１ａにより表示された画面の別の例を示す。図１６の例では、メイン画面１１６に、処理の分岐の開始を示す「Parallel Divergent」の図形１３０と、処理の分岐の終了を示す「Parallel Convergent」の図形１３２が配置されている。リンク制御部１０６は、「Parallel Divergent」の図形１３０又は「Parallel Convergent」の図形１３２と、他の図形、例えば「Phase 2-1」の図形１３４との間を接続線１３５で接続するときに、「Parallel Divergent」の図形１３０又は「Parallel Convergent」の図形１３２に含まれる横方向の直線の任意の位置に接続線１３５を接続させることを可能とする。通常、リンク制御部１０６が図形間に接続線を設定するとき、指定された図形の各辺の中央など、予め設定された位置に自動的に接続線を接続させる。同じ図形に複数のリンクが設定される場合は、接続線が接続される辺を等分した位置を算出して自動的に接続線を接続させる。しかし、「Parallel Divergent」又は「Parallel Convergent」では、分岐の数が不定であるため、固定的に定められた等分点などに接続線をスナップさせるよりも、ユーザが所望の位置に接続することを可能とした方が、ユーザの利便性が向上すると考えられる。したがって、本実施の形態では、直線上の任意の位置に接続線を接続させる機能を提供し、ユーザが任意の位置を指定可能とする。
【００６２】
図１６において、リンク制御部１０６は、ユーザが接続線１３５を配置させる編集操作を行っているときに、「Parallel Convergent」の図形１３２のうち、接続線１３５を接続させる直線上の、ユーザが操作するポインタ１３６の近傍の位置に、スナップ位置を示す図形１３８を表示する。ユーザがポインタ１３６を左右に移動させると、リンク制御部１０６は、ポインタ１３６の移動に応じて、スナップ位置を示す図形１３８を直線上で左右に移動させる。ユーザがポインタ１３６の位置を決定すると、リンク制御部１０６は、そのときの図形１３８の位置に接続線１３５を接続させる。
【００６３】
リンク制御部１０６は、「Parallel Divergent」の図形１３０又は「Parallel Convergent」の図形１３２に接続線を接続させるときに、その図形に既に接続されている接続線の数に応じて接続点の位置を算出し、算出した位置に接続線をスナップさせてもよい。例えば、「Parallel Divergent」の図形１３０に既に３本の接続線が接続されており、ユーザが４本目の接続線を接続させる場合、リンク制御部１０６は、図形１３０の接続線を接続させる直線の５分点を算出し、それぞれの点に４本の接続線を自動的に接続させてもよい。
【００６４】
従来のように、予め固定的に定められた接続点に接続線をスナップさせて接続させると、用意されている接続点の数以上に接続線を接続させる場合に、複数の接続線が同一の接続点に接続されることになり、接続線同士を判別しにくいという問題があった。したがって、本実施の形態では、接続線の数に応じて、接続点を自動的に更新する技術について更に詳述する。
【００６５】
図１７（ａ）〜（ｅ）は、接続線を接続させる接続点を自動的に更新する様子を示す図である。リンク制御部１０６は、図形１３２に接続線が接続されていないときには、例えば、図１７（ａ）に示すように、接続線を接続させる直線の中点に接続点１３８ａを設ける。初期状態においては、任意の位置に任意の数の接続点が設けられてもよい。
【００６６】
図１７（ａ）に示す状態において、１本の接続線１３５ａが接続点１３８ａに接続された状態を図１７（ｂ）に示す。接続点１３８ａに接続線１３５ａが接続されると、未接続の接続点がなくなってしまい、次に接続される接続線が接続点１３８ａで重なってしまうので、リンク制御部１０６は、新たに接続点１３８ｂ１及び１３８ｂ２を設ける。リンク制御部１０６は、直線の端点と接続線が接続された接続点１３８ａとの中点を新たな接続点としてもよいし、直線の端点又は接続点１３８ａから所定の距離の位置を新たな接続点としてもよい。２つの接続点１３８ｂ１及び１３８ｂ２は、接続点１３８ａから対称な位置に設けられるのが望ましい。図１７（ｂ）の例では、接続点１３８ａの両側に１つずつ、計２つの接続点を新たに設けたが、リンク制御部１０６は、接続線が接続点に接続されたときに、３以上の接続点を新たに設けてもよい。
【００６７】
各接続点の周囲には、スナップ範囲１３９が設けられており、ユーザが、接続線の一端をスナップ範囲１３９の内部へドラッグすると、リンク制御部１０６は、接続線の一端を接続点に自動的にスナップさせる。例えば、接続点１３８ｂ１の近傍へ接続線の一端をドラッグし、接続点１３８ｂ１にスナップされた状態でドロップすると、リンク制御部１０６は、接続線１３５ｂを接続点１３８ｂ１に接続させる。この状態を図１７（ｃ）に示す。
【００６８】
図１７（ｃ）に示す状態では、接続点１３８ｂ２が未接続のまま残っているので、リンク制御部１０６は、新たに接続点を設けなくてもよいが、図形１３２の左側から接続線を接続させたい場合に不便である可能性があるので、今回接続された接続線１３５ｂの両側に新たに接続点を設けてもよい。例えば、図１７（ｄ）に示すように、接続線１３５ｂが接続された接続点１３８ｂ１と、直線の端点又は隣の接続点１３８ａとの中点を、新たな接続点１３８ｃ１及び１３８ｃ２としてもよい。
【００６９】
図１７（ｄ）に示す状態において、１本の接続線１３５ｃが接続点１３８ｂ２に接続された状態を図１７（ｅ）に示す。リンク制御部１０６は、接続線１３５ｃが接続された接続点１３８ｂ２の両側に、新たな接続点１３８ｃ３及び１３８ｃ４を設ける。これにより、接続線が増加しても、新たに接続点が設けられるので、複数の接続線が同一の接続線に重なることを防ぐことができ、見やすいダイヤグラムを作成することができる。
【００７０】
図１８（ａ）〜（ｅ）は、接続線を接続させる接続点を自動的に更新する様子を示す図である。図１８（ａ）〜（ｅ）では、接続線が接続された接続点の位置も、接続線の数に応じて自動的に更新する例を示す。リンク制御部１０６は、接続されている接続線の数をｎとすると、直線の（ｎ＋１）分点にそれぞれの接続線を接続させ、２（ｎ＋１）分点のうち接続線が接続されていない点を新たな接続点とする。例えば、ｎ＝０の場合は、図１８（ａ）に示すように、２分点を接続点１３８ｄとし、ｎ＝１の場合は、図１８（ｂ）に示すように、２分点に接続線１３５ｄを接続させ、４分点のうち１／４及び３／４の位置を接続点１３８ｅ１及び１３８ｅ２とする。
【００７１】
図１８（ｂ）に示す状態において、ユーザが、接続線の一端を接続点１３８ｅ１の近傍へドラッグすると、リンク制御部１０６は、接続線の一端を接続点１３８ｅ１に自動的にスナップさせる。これにより、ユーザが接続線の一端をドラッグしている間にも、接続線が他の接続線と重なることを防ぐことができる。この後、ユーザが接続線をドロップすると、リンク制御部１０６は、２本の接続線１３５ｄ及び１３５ｅを３分点に再配置するとともに、６分点のうち１／６、３／６、５／６の位置を新たに接続点１３８ｆ１、１３８ｆ２、及び１３８ｆ３とする。この状態を図１８（ｃ）に示す。
【００７２】
図１８（ｃ）に示す状態において、更に、接続線１３５ｆが接続点１３８ｆ１に接続されると、図１８（ｄ）に示すように、３本の接続線は、４分点の左から、１３８ｆ、１３８ｅ、１３８ｄの順に再配置される。また、図１８（ｄ）に示す状態において、更に、接続線１３５ｇが接続点１３８ｇ３に接続されると、図１８（ｅ）に示すように、４本の接続線は、５分点の左から、１３８ｆ、１３８ｅ、１３８ｇ、１３８ｄの順に再配置される。このように、各接続線の間に接続点を設けておくことにより、接続線を接続しようとするときに、接続線が再配置される際の接続順序を容易に確認することができる。
【００７３】
図１９（ａ）〜（ｅ）は、接続線を接続させる接続点を自動的に更新する様子を示す図である。図１９（ａ）〜（ｅ）では、直線全体の等分点ではなく、直線の両端に一定のマージンをおき、マージンを除いた部分の等分点を接続点とする。すなわち、図１９（ａ）に示すように、直線の両端からそれぞれ所定の距離にある位置Ａ及びＢを基準として、接続線の接続位置と接続点の位置とを算出する。
【００７４】
まず、図１９（ａ）に示す状態において、接続線１３５ｉが接続点１３８ｉに接続されると、リンク制御部１０６は、線分ＡＢの２分点に接続線１３５ｉを接続させ、接続線１３５ｉの両側に接続点１３８ｊ１及び１３８ｊ２を設ける。つづいて、接続点１３８ｊ１に接続線１３５ｊが接続されると、リンク制御部１０６は、線分ＡＢの両端に接続線１３５ｉ及び１３５ｊを接続させ、直線の左側端点と点Ａの間、線分ＡＢの中点、直線の右側端点と点Ｂの間に、それぞれ、接続点１３８ｋ１、１３８ｋ２、及び１３８ｋ３を設ける。
【００７５】
さらに、接続点１３８ｋ１に接続線１３５ｋが接続されると、リンク制御部１０６は、点Ａ、線分ＡＢの中点、及び点Ｂに、それぞれ、接続線１３５ｋ、１３５ｊ、及び１３５ｉを接続させ、直線の左側端点と点Ａの間、線分ＡＢの４分点のうち１／４及び３／４の位置、直線の右側端点と点Ｂの間に、それぞれ、接続点１３８ｌ１、１３８ｌ２、１３８ｌ３、及び１３８ｌ４を設ける。
【００７６】
さらに、接続点１３８ｌ３に接続線１３５ｌが接続されると、リンク制御部１０６は、点Ａ、線分ＡＢの３分点、及び点Ｂに、それぞれ、接続線１３５ｋ、１３５ｊ、１３５ｌ、１３５ｉをこの順に接続させ、直線の左側端点と点Ａの間、線分ＡＢの６分点のうち１／６、３／６、及び５／６の位置、直線の右側端点と点Ｂの間に、それぞれ、接続点１３８ｍ１、１３８ｍ２、１３８ｍ３、１３８ｍ４、及び１３８ｍ５を設ける。
【００７７】
以降は、同様に、線分ＡＢの端点及び（ｎ−１）分点に接続線を接続させ、直線の左側端点と点Ａの間、線分ＡＢの２（ｎ−１）分点のうち接続線が接続されていない点、直線の右側端点と点Ｂの間に、接続点を設ける。
【００７８】
図１６では、並列処理を表現する「Parallel Divergent」及び「Parallel Convergent」の例を示したが、逐次処理を表現する「Sequence Divergent」及び「Sequence Convergent」においても同様である。このような機能を提供することにより、ユーザの利便性を向上させることができる。
【００７９】
図２０〜図２３は、グループ管理部７７の機能を説明するための図である。図２０に示すように、ユーザが、マウスなどを用いて矩形１４０、矩形１４２、及び接続線１４４を選択してグループ化する操作を行うと、グループ管理部７７は、それらの図形をグループ化する。グループ管理部７７は、グループに属する複数の図形のいずれかが選択されると、グループに属する全ての図形を編集対象とするよう、編集部１０４に指示する。編集部１０４は、拡大、縮小、回転、移動などの編集操作が行われると、グループに属する全ての図形に対して編集を適用させる。例えば、ユーザが、矩形１４０、矩形１４２、及び接続線１４４のいずれかを選択して右へ移動させると、図２１に示すように、グループに属する矩形１４０、矩形１４２、及び接続線１４４が全て右へ移動される。
【００８０】
従来の図形描画ソフトウェアなどにおいては、ユーザが、グループ化された図形のうち一部のみを編集したいときには、いったんグループ化を解除してから、編集対象の図形を選択して編集する必要があった。しかし、本実施の形態では、グループ化されている場合であっても、特定の操作を行うことで、グループに属する図形の一部のみを選択し、編集することを可能とする。特定の操作は、例えば、「Alt」キー、「Ctrl」キー、「Shift」キーなどの機能キー又は特殊キーなどを押下しながら図形をクリックする操作であってもよいし、ファンクションキーなどを押下した後につづいて図形をクリックする操作などであってもよい。
【００８１】
図２２に示すように、グループ管理部７７は、例えば「Alt」キーを押下しながら矩形１４０をクリックする操作を受け付けると、グループに属する矩形１４０、矩形１４２、及び接続線１４４の全てを選択するのではなく、クリックされた矩形１４０のみを選択するよう編集部１０４に指示する。ここで、ユーザが、矩形１４０を右へ移動させると、図２３に示すように、編集部１０４は、グループ全体を移動させるのではなく、選択された矩形１４０のみを右へ移動させる。このように、本実施の形態のデータ処理装置においては、いったんグループ化を解除してから一部の図形を選択して編集する必要がない上に、一部の図形を編集した後に再度グループ化する必要がない。したがって、ユーザの利便性を向上させることができる。
【００８２】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００８３】
実施の形態では、ＸＭＬ文書を処理する例について説明したが、本実施の形態のデータ処理装置１００は、他のマークアップ言語、例えば、ＳＧＭＬ、ＨＴＭＬなどで記述された文書も同様に処理可能である。
【符号の説明】
【００８４】
２０  文書処理装置、２２  主制御ユニット、２４  編集ユニット、３０  ＤＯＭユニット、３２  ＤＯＭ提供部、３４  ＤＯＭ生成部、３６  出力部、４０  ＣＳＳユニット、４２  ＣＳＳ解析部、４４  ＣＳＳ提供部、４６  レンダリング部、５０  ＨＴＭＬユニット、５２，６２  制御部、５４，６４  編集部、５６，６６  表示部、６０  ＳＶＧユニット、７０ダイアグラムコンポーネント、７１ａ  Ｓ８８処理ユニット、７１ｂ  ＢＰＭＮ処理ユニット、７１ｃ  フローチャート処理ユニット、７２  処理部、７４  ルール管理部、７６  コア部、７７  グループ管理部、８０  ＶＣユニット、８２  マッピング部、８４  定義ファイル取得部、８６  定義ファイル生成部、１００  データ処理装置、１０１  ツリー制御部、１０２  パンくずリスト制御部、１０３  表示部、１０４  編集部、１０５  図形管理部、１０６  リンク制御部。
【図１】
2009238215.tif 000003
【図２】
2009238215.tif 000004
【図３】
2009238215.tif 000005
【図４（ａ）】
2009238215.tif 000006
【図４（ｂ）】
2009238215.tif 000007
【図５】
2009238215.tif 000008
【図６】
2009238215.tif 000009
【図７】
2009238215.tif 000010
【図８】
2009238215.tif 000011
【図９】
2009238215.tif 000012
【図１０】
2009238215.tif 000013
【図１１】
2009238215.tif 000014
【図１２】
2009238215.tif 000015
【図１３】
2009238215.tif 000016
【図１４】
2009238215.tif 000017
【図１５】
2009238215.tif 000018
【図１６】
2009238215.tif 000019
【図１７】
2009238215.tif 000020
【図１８】
2009238215.tif 000021
【図１９】
2009238215.tif 000022
【図２０】
2009238215.tif 000023
【図２１】
2009238215.tif 000024
【図２２】
2009238215.tif 000025
【図２３】
2009238215.tif 000026