(57)【特許請求の範囲】
【請求項１】
木構造のデータから第１の要素を選択する第１の選択手段と、
前記第１の選択手段によって選択された第１の要素に対応する第２の要素を選択する第２の選択手段と、
前記第１の選択手段によって選択された第１の要素と前記第２の選択手段によって選択された第２の要素によって規定される部分木である木構造のデータを他の木構造のデータ内に複写するために抽出する抽出手段とを具備し、
前記第２の選択手段は、前記第１の選択手段によって選択された第１の要素に対応する第２の要素の候補を、前記木構造のデータ内から抽出し、該抽出した第２の要素の候補が複数ある場合は、操作者の操作に基づいて、前記第２の要素を選択することを特徴とする情報処理装置。
【請求項２】
前記第１の選択手段によって選択される第１の要素は、前記抽出手段によって抽出される木構造のデータにおける下位の要素であり、前記第２の選択手段によって選択される第２の要素は、前記抽出手段によって抽出される木構造のデータにおける上位の要素であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の選択手段によって選択される第１の要素が複数ある場合、前記第２の選択手段は、該複数の第１の要素に対応する第２の要素の候補のうち、重複する要素を第２の要素の候補として抽出することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第２の選択手段は、前記複数の第１の要素のうち、一方の第１の要素が他方の第１の要素の上位にあるか否かを判断し、一方の第１の要素が他方の第１の要素の上位にある場合は、該一方の第１の要素を第１の要素として扱わずに、第２の要素の候補を抽出することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
コンピュータを、
木構造のデータから第１の要素を選択する第１の選択手段と、
前記第１の選択手段によって選択された第１の要素に対応する第２の要素を選択する第２の選択手段と、
前記第１の選択手段によって選択された第１の要素と前記第２の選択手段によって選択された第２の要素によって規定される部分木である木構造のデータを他の木構造のデータ内に複写するために抽出する抽出手段として機能させるための情報処理プログラムであって、
前記第２の選択手段は、前記第１の選択手段によって選択された第１の要素に対応する第２の要素の候補を、前記木構造のデータ内から抽出し、該抽出した第２の要素の候補が複数ある場合は、操作者の操作に基づいて、前記第２の要素を選択するものである、
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
木構造のデータ内の部分木のデータを他の木構造のデータ内に複写する技術がある。
これに関連する技術として、例えば、特許文献１には、構造化文書の編集処理を行う文書処理装置において、構造化文書の構造に対するコピー／ペースト処理を実現し、ユーザインタフェースに優れた文書処理装置を提供することを目的とし、入力部から文書のコピー範囲とコピー指示が入力されると、セレクション管理手段は前記コピー範囲の論理構造を特定し、コピー範囲決定手段は前記論理構造からコピー対象となる論理構造の範囲を決定し、論理構造格納手段は前記論理構造に関する情報をバッファ部に格納し、入力部からペースト位置とペースト指示が入力されると、ペースト位置決定手段は特定された文書の論理構造からペースト対象とすべき論理構造の位置を決定し、ペースト構造構築手段はバッファ部を参照してペーストする領域の完全な木構造を構築し、配置手段はペースト指示入力に対応して前記構築された木構造を前記ペースト位置に配置し、このとき、論理構造に矛盾が生じるような場合、再配置手段は論理構造に矛盾が無いように構造を再配置することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０６−１１０８８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、第１の要素と第２の要素以外の要素を選択することなしに、木構造のデータから部分木を抽出する範囲を指定できる情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【０００６】
請求項１の発明は、木構造のデータから第１の要素を選択する第１の選択手段と、前記第１の選択手段によって選択された第１の要素に対応する第２の要素を選択する第２の選択手段と、前記第１の選択手段によって選択された第１の要素と前記第２の選択手段によって選択された第２の要素によって規定される部分木である木構造のデータを他の木構造のデータ内に複写するために抽出する抽出手段を具備し、前記第２の選択手段は、前記第１の選択手段によって選択された第１の要素に対応する第２の要素の候補を、前記木構造のデータ内から抽出し、該抽出した第２の要素の候補が複数ある場合は、操作者の操作に基づいて、前記第２の要素を選択することを特徴とする情報処理装置である。
【０００７】
請求項２の発明は、前記第１の選択手段によって選択される第１の要素は、前記抽出手段によって抽出される木構造のデータにおける下位の要素であり、前記第２の選択手段によって選択される第２の要素は、前記抽出手段によって抽出される木構造のデータにおける上位の要素であることを特徴とする請求項１に記載の情報処理装置である。
【０００８】
請求項３の発明は、前記第１の選択手段によって選択される第１の要素が複数ある場合、前記第２の選択手段は、該複数の第１の要素に対応する第２の要素の候補のうち、重複する要素を第２の要素の候補として抽出することを特徴とする請求項１又は２に記載の情報処理装置である。
【０００９】
請求項４の発明は、前記第２の選択手段は、前記複数の第１の要素のうち、一方の第１の要素が他方の第１の要素の上位にあるか否かを判断し、一方の第１の要素が他方の第１の要素の上位にある場合は、該一方の第１の要素を第１の要素として扱わずに、第２の要素の候補を抽出することを特徴とする請求項３に記載の情報処理装置である。
【００１０】
請求項５の発明は、コンピュータを、木構造のデータから第１の要素を選択する第１の選択手段と、前記第１の選択手段によって選択された第１の要素に対応する第２の要素を選択する第２の選択手段と、前記第１の選択手段によって選択された第１の要素と前記第２の選択手段によって選択された第２の要素によって規定される部分木である木構造のデータを他の木構造のデータ内に複写するために抽出する抽出手段として機能させるための情報処理プログラムであって、前記第２の選択手段は、前記第１の選択手段によって選択された第１の要素に対応する第２の要素の候補を、前記木構造のデータ内から抽出し、該抽出した第２の要素の候補が複数ある場合は、操作者の操作に基づいて、前記第２の要素を選択するものである、情報処理プログラムである。
【発明の効果】
【００１１】
請求項１の情報処理装置によれば、第１の要素と第２の要素以外の要素を選択することなしに、木構造のデータから部分木を抽出する範囲を指定することができる。
【００１２】
さらに、請求項１の情報処理装置によれば、第２の要素を選択する場合に、候補の要素の中から選択することができる。
【００１３】
請求項２の情報処理装置によれば、第１の候補が上位、第２の候補が下位である場合に比較して、候補となる要素の数を減少させることができる。
【００１４】
請求項３の情報処理装置によれば、複数の各第１の要素に対応する第２の要素を抽出する場合に比較して、分岐がある部分木を選択する場合に、候補の要素の数を減少させることができる。
【００１５】
請求項４の情報処理装置によれば、第１の要素を選択した場合であっても、第２の要素の候補を不足なく抽出することができる。
【００１６】
請求項５の情報処理プログラムによれば、第１の要素と第２の要素意外の要素を選択することなしに、木構造のデータから部分木を抽出する範囲を指定することができる。さらに、第２の要素を選択する場合に、候補の要素の中から選択することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態の具体的な構成例を示すモジュール構成図である。
【図３】本実施の形態による処理例を示すフローチャートである。
【図４】本実施の形態による処理例を示すフローチャートである。
【図５】構造化文書の例を示す説明図である。
【図６】構造化文書の木構造の表示例を示す説明図である。
【図７】構造化文書の木構造内で選択された始点と終点の要素の例を示す説明図である。
【図８】終点を選択するためのユーザインタフェースの例を示す説明図である。
【図９】構造化文書の木構造内で選択された始点と終点の要素の例を示す説明図である。
【図１０】終点を選択するためのユーザインタフェースの例を示す説明図である。
【図１１】構造化文書の木構造内で選択された始点と終点の要素の例を示す説明図である。
【図１２】終点を選択するためのユーザインタフェースの例を示す説明図である。
【図１３】要素名が同じである場合の構造化文書の表示例を示す説明図である。
【図１４】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００１９】
以下、木構造のデータとして、構造化文書を主に例示して説明する。
本実施の形態である情報処理装置は、木構造のデータ内の部分木のデータを他の木構造のデータ内に複写するために、その部分木のデータを抽出するものであって、図１の例に示すように、選択（Ａ）モジュール１１０、選択（Ｂ）モジュール１２０、抽出モジュール１５０、操作受付モジュール１６０を有している。選択（Ｂ）モジュール１２０は、選択候補抽出モジュール１３０、コピー範囲決定モジュール１４０を有している。
【００２０】
選択（Ａ）モジュール１１０は、選択（Ｂ）モジュール１２０と接続されている。選択（Ａ）モジュール１１０は、木構造のデータから第１の要素を選択する。木構造とは、情報を節データ（以下、ノードともいう。節とは、木構造のデータを構成する結節点である）として配置したデータ構造であって、ルート（根）ノード以外の各ノードには一つの親ノードがあり、かつ、ルートノードが一つしかないものをいう。木構造のデータとしては、例えば、木構造文書のデータ等が該当する。第１の要素とは、木構造のデータを構成しているノードをいい、操作者の操作によって選択されたコピーしようとしている部分木の端点となるノード（ルートノード又はリーフノード）をいう。なお、第１の要素が部分木におけるリーフノードの場合は、第１の要素の数は複数であってもよい。コピー対象となる部分木は１つであるので、第１の要素が部分木におけるルートノードの場合は１つである。第１の要素は、操作者の選択操作における始点となるノードである。
【００２１】
選択（Ｂ）モジュール１２０は、選択（Ａ）モジュール１１０、抽出モジュール１５０と接続されている。選択（Ｂ）モジュール１２０は、選択（Ａ）モジュール１１０によって選択された第１の要素に対応する第２の要素を選択する。第２の要素とは、第１の要素が含まれている木構造のデータを構成しているノードをいい、操作者の操作によって選択されたコピーしようとしている部分木の端点となるノード（ルートノード又はリーフノード）をいう。第１の要素が部分木におけるルートノードである場合は第２の要素は部分木におけるリーフノードとなり、第１の要素が部分木におけるリーフノードである場合は第２の要素は部分木におけるルートノードとなる。なお、第２の要素が部分木におけるリーフノードの場合は、第２の要素の数は複数であってもよい。コピー対象となる部分木は１つであるので、第２の要素が部分木におけるルートノードの場合は１つである。第２の要素は、操作者の選択操作における終点となるノードである。
【００２２】
選択候補抽出モジュール１３０は、選択（Ａ）モジュール１１０によって選択された第１の要素に対応する第２の要素の候補を、木構造のデータ内から抽出する。
コピー範囲決定モジュール１４０は、その抽出した第２の要素の候補が複数ある場合は、操作者の操作に基づいて、第２の要素を選択する。この選択によって、コピー範囲である木構造のデータを決定したことになる。例えば、複数の第２の要素の候補を表示装置に表示し、その表示された第２の要素の候補のいずれかを選択させる。
【００２３】
選択候補抽出モジュール１３０によって抽出した第２の要素の候補が１つである場合は、操作者による第２の要素の選択が不要となる。したがって、操作者による第１の要素の選択操作なく、第１の要素を選択することとなる。ただし、その場合であっても、第２の要素の候補が複数ある場合と同様に、確認の意味で選択させるようにしてもよいし、その１つの第２の要素を提示し（部分木を提示することであってもよい）、そのノードを第２の要素として選択することになることを確認させるようにしてもよい。例えば、第１の要素として部分木のリーフノードを選択する場合にあっては、第２の要素の候補としてルートノードのみがある場合がある。つまり、第１の要素が全体の木構造のルートノードの直下のノードである場合又は第１の要素が全体の木構造のルートノードである場合である。また、第１の要素として部分木のルートノードを選択する場合にあっては、第２の要素の候補として全体の木構造のリーフノードのみがある場合がある。つまり、第１の要素が全体の木構造のリーフノードの直上のノードである場合又は第１の要素が全体の木構造のリーフノードである場合である。
【００２４】
選択（Ａ）モジュール１１０によって選択される第１の要素は、抽出モジュール１５０によって抽出される木構造のデータにおける下位の要素であり、選択（Ｂ）モジュール１２０によって選択される第２の要素は、抽出モジュール１５０によって抽出される木構造のデータにおける上位の要素である。つまり、第１の要素が部分木におけるリーフノードであり、第２の要素は部分木におけるルートノードとなる場合である。
【００２５】
選択（Ａ）モジュール１１０によって選択される第１の要素が複数ある場合、選択候補抽出モジュール１３０は、その複数の第１の要素に対応する第２の要素の候補のうち、重複する要素を第２の要素の候補として抽出する。重複する要素とは、一方の第１の要素に対応する要素であって、他方の第１の要素に対応する要素でもある要素をいう。当然のことながら、第１の要素が３つ以上である場合は、その３つ以上の第１の要素のいずれにも対応している要素のことである。
【００２６】
選択候補抽出モジュール１３０は、複数の第１の要素のうち、一方の第１の要素が他方の第１の要素の上位にあるか否かを判断し、一方の第１の要素が他方の第１の要素の上位にある場合は、その一方の第１の要素を第１の要素として扱わずに、第２の要素の候補を抽出する。ここで、「一方の第１の要素が他方の第１の要素の上位にある場合」とは、他方の第１の要素から上位方向へたどった場合に、分岐があった場合はいったん下位方向へ辿ることなしに、一方の第１の要素に行き着く場合のことをいう。つまり、他方の第１の要素から一方の第１の要素へ直線的に辿れることをいい、一方の第１の要素は、部分木においてリーフノードとはならない場合のことをいう。逆に、一方の第１の要素が位置的には他方の第１の要素の上位にある場合であっても、両者が部分木においてリーフノードである場合は、「一方の第１の要素が他方の第１の要素の上位にある場合」には含まれない。つまり、他方の第１の要素から上位方向へたどった場合に、分岐があった場合にいったん下位方向（リーフノード方向）へ辿り、いままで辿ってきた分岐のノードに戻ることなしに、一方の第１の要素に行き着く場合は、「一方の第１の要素が他方の第１の要素の上位にある場合」には含まれない。
【００２７】
抽出モジュール１５０は、選択（Ｂ）モジュール１２０と接続されている。抽出モジュール１５０は、選択（Ａ）モジュール１１０によって選択された第１の要素と選択（Ｂ）モジュール１２０によって選択された第２の要素によって規定される部分木である木構造のデータを他の木構造のデータ内に複写するために抽出する。部分木とは、コピー元の木構造の一部分を構成しているものであり、コピー対象となる木構造のデータをいう。これは、第１の要素と第２の要素によって規定される。つまり、ルートノードとリーフノードによって規定される。また、リーフノードは複数あってもよい。
【００２８】
操作受付モジュール１６０は、本実施の形態である情報処理装置において操作者の操作を受け付け、選択（Ａ）モジュール１１０、選択（Ｂ）モジュール１２０へその操作を渡す。操作受付モジュール１６０が受け付ける操作としては、少なくとも要素を選択する操作と、コピー操作が含まれる。例えば、コピー操作が指定された後に、木構造のデータから第１の要素と第２の要素が選択されるような一連の操作であってもよいし、木構造のデータから第１の要素と第２の要素が選択された後に、コピー操作が指定されるような一連の操作であってもよい。また、操作受付モジュール１６０が受け付ける操作として、第２の要素が複数あった場合に、そのいずれかを選択する操作であってもよい。具体的には、操作受付モジュール１６０は、マウス、キーボード、タッチパネル等に対して、操作者の操作が行われ、その操作を受け付ける。
【００２９】
図２は、本実施の形態の具体的な構成例を示すモジュール構成図である。
この具体的な構成例では、選択要素判定モジュール２１０、終点要素判定モジュール２２０、アプリケーションモジュール２３０、コピー操作受付モジュール２４０、コピー範囲決定モジュール２５０、バッファモジュール２６０を有している。例えば、構造化文書において、コピーの始点（開始要素）、終点（終了要素）を指定し、その始点、終点によって構成される部分木（始点、終点を結ぶ線上にある要素で構成される部分木）をコピー範囲として抽出する。なお、始点は複数あってもよい、その場合、複数の始点と終点によって構成される部分木がコピー対象となる。
【００３０】
選択要素判定モジュール２１０は、終点要素判定モジュール２２０と接続されている。選択要素判定モジュール２１０は、アプリケーション、システム上で、現在、操作者が選択している要素を判定する。その選択している要素が、前述した始点の要素になる。
終点要素判定モジュール２２０は、選択要素判定モジュール２１０、アプリケーションモジュール２３０と接続されている。終点要素判定モジュール２２０は、選択要素判定モジュール２１０で判定された、選択されている要素の上位要素を終点要素の候補として判定し、終点要素の候補をアプリケーションモジュール２３０に通知する。選択要素判定モジュール２１０で、要素が複数選択されていると判定された場合は、それらの要素の上位要素の共通要素を候補として判定する。
アプリケーションモジュール２３０は、終点要素判定モジュール２２０、コピー操作受付モジュール２４０と接続されている。アプリケーションモジュール２３０は、終点要素判定モジュール２２０から通知された終点要素の候補を表示装置に表示する。
【００３１】
コピー操作受付モジュール２４０は、アプリケーションモジュール２３０、コピー範囲決定モジュール２５０と接続されている。コピー操作受付モジュール２４０は、アプリケーション、システム上で、操作者によるコピー操作を受け付け、コピー範囲決定モジュール２５０にコピー範囲の決定を依頼する。その際には、操作者による操作によって終点要素が指定されている。つまり、終点要素を指定することがコピー操作となる。
コピー範囲決定モジュール２５０は、コピー操作受付モジュール２４０、バッファモジュール２６０と接続されている。コピー範囲決定モジュール２５０は、選択要素、終点要素からコピー範囲の部分木を生成する。
バッファモジュール２６０は、コピー範囲決定モジュール２５０と接続されている。バッファモジュール２６０は、コピー範囲決定モジュール２５０で生成された部分木をコピー内容として保存する。
【００３２】
選択要素判定モジュール２１０は図１に例示した選択（Ａ）モジュール１１０に主に該当し、終点要素判定モジュール２２０は図１に例示した選択候補抽出モジュール１３０に主に該当し、アプリケーションモジュール２３０とコピー操作受付モジュール２４０は図１に例示した操作受付モジュール１６０に主に該当し、コピー範囲決定モジュール２５０は図１に例示したコピー範囲決定モジュール１４０と抽出モジュール１５０に主に該当する。また、バッファモジュール２６０は、図１に例示した抽出モジュール１５０が抽出した部分木を記憶する。
【００３３】
終点の候補を決定するまでのフローチャートと、その後、ユーザが指定した終点要素によってコピー範囲を決定するまでのフローチャートに分けて説明する。図３に終点の候補を決定するまでのフローチャートを示し、図４に指定された終点からコピー範囲を決定するまでのフローチャートを示す。なお、これらのフローチャートは、始点が下位（部分木におけるリーフノード）にあり、終点が上位（部分木におけるルートノード）にある場合を示しているが、逆の場合、つまり、始点が上位（部分木におけるルートノード）にあり、終点が下位（部分木におけるリーフノード）にある場合には、上位を下位と読み替えることによって対応できる。ただし、下位要素を抽出するとは、分岐がある場合があるが、その場合はその分岐をスタックに記憶して、下位要素を抽出するようにすればよい。
【００３４】
図３は、本実施の形態による処理例を示すフローチャートである。
ステップＳ３０２では、選択候補抽出モジュール１３０が、選択している要素は１個か否かを判断し、１個ならばステップＳ３０４へ進み、それ以外の場合はステップＳ３０６へ進む。
ステップＳ３０４では、選択候補抽出モジュール１３０が、選択されている要素の上位要素を終点の候補として抽出する。
ステップＳ３０６では、選択候補抽出モジュール１３０が、ステップＳ３１４までの処理を、選択している要素数の回数だけ行う。
ステップＳ３０８では、選択候補抽出モジュール１３０が、選択されている要素の上位要素を抽出する。ここで抽出する上位要素は、下位に辿ることなく、上方向（ルートノードの方向）へ辿った場合のノードである。
【００３５】
ステップＳ３１０では、選択候補抽出モジュール１３０が、他の選択している要素が含まれているか否かを判断し、含まれている場合はステップＳ３１２へ進み、それ以外の場合はステップＳ３１４へ進む。つまり、抽出した上位要素内に選択（Ａ）モジュール１１０によって選択された要素が含まれている場合（言い換えると、その選択された要素がコピー範囲である部分木においてルーフノードになっていない場合）は、ステップＳ３１２へ進むことになる。
ステップＳ３１２では、選択候補抽出モジュール１３０が、含まれている要素は、選択している要素から除外する。したがって、ステップＳ３０８で既に上位要素を抽出している場合は、その抽出した上位要素も除外する。未だステップＳ３０８で上位要素を抽出していない場合は、以後、除外した要素の上位要素は抽出せず、ステップＳ３０６でのループ回数も１回減少する。
ステップＳ３１６では、選択候補抽出モジュール１３０が、共通する要素を終点の候補として抽出する。選択している要素が複数ある場合であって、ステップＳ３０８でその各要素に対して上位要素を抽出しているので、それらの上位要素のうち共通しているもの（いわゆる論理積）を抽出する。
ステップＳ３１８では、コピー範囲決定モジュール１４０が、候補内から終点を決定する。操作者の操作によって、複数ある終点の候補内から終点が選択される。
【００３６】
図４は、本実施の形態（主に抽出モジュール１５０による処理例）による処理例を示すフローチャートである。
ステップＳ４０２では、操作者が指定した終点要素を抽出する。
ステップＳ４０４では、始点要素を抽出する。
ステップＳ４０６では、始点要素、終点要素から部分木を生成する。
ステップＳ４０８では、コピーバッファに生成した内容を保存する。
【００３７】
図５は、構造化文書の例を示す説明図である。図６は、図５に例示した構造化文書の木構造の表示例を示す説明図である。この構造化文書から要素を選択し、コピー範囲を決定するものとする。選択している要素をコピー範囲の始点とし、その要素の上位要素の中から終点の要素を指定する。その始点、終点によって構成される部分木をコピー範囲とする。なお、図６に例示のものは表示装置に表示し、そのノードに対する選択等の操作を操作受付モジュール１６０が受け付ける。
この木構造全体のルートノードであるＢＯＯＫ要素６０２の下位にＨ１要素６０４がある。Ｈ１要素６０４の下位にＦＲＯＮＴ要素６０６、ＴＩＴＬＥ要素６１４、ＤＯＣＩＴＥＭ要素６１８がある。ＦＲＯＮＴ要素６０６の下位にＤＯＣＩＮＦＯ要素６０８がある。ＤＯＣＩＮＦＯ要素６０８の下位にＤＯＣＤＡＴＥ要素６１０、ＤＯＣＮＵＭ要素６１２がある。ＴＩＴＬＥ要素６１４の下位にＰＡＲＡ要素６１６がある。ＤＯＣＩＴＥＭ要素６１８の下位にＰＡＲＡ要素６２０、ＰＡＲＡ要素６２２、ＰＡＲＡ要素６２４がある。
【００３８】
以下に、「始点、終点がそれぞれ１個の場合」、「始点が１個、終点が２個の場合」、「始点が２個、終点が１個であり、始点、終点で構成する部分木の中に他の終点がある場合」の例を説明する。
図７は、構造化文書の木構造内で選択された始点と終点の要素の例（「始点、終点がそれぞれ１個の場合」の例）を示す説明図である。
ＰＡＲＡ要素６１６を始点、Ｈ１要素６０４を終点としている。この場合、ＰＡＲＡ要素６１６とＨ１要素６０４間で構成される部分木がコピー範囲７００になる。つまり、コピー範囲７００には、Ｈ１要素６０４、ＴＩＴＬＥ要素６１４、ＰＡＲＡ要素６１６が含まれる。そして、終点として、始点（ＰＡＲＡ要素６１６）の要素の上位要素（図７の例では、ＴＩＴＬＥ要素６１４、Ｈ１要素６０４、ＢＯＯＫ要素６０２）が候補になり、その中から終点を決定することになる。
【００３９】
図８は、終点を選択するためのユーザインタフェースの例を示す説明図である。図６の例と同様に、構造化文書がツリービューとして表示されている（以下の例においても同様）。
この場合、始点の要素（ＰＡＲＡ要素６１６）が操作者の操作によって選択され、［上位コピー］メニュー８１０を表示し、［上位コピー］メニュー８１０が操作者の操作によって選択されると、終点となる要素の候補である３つの選択肢８１２〜８１６を表示し、選択肢８１４が操作者の操作によって終点の要素として選択されたことを示している。この操作により、図７に例示の部分木であるコピー範囲７００として決定することになる。
図３に例示のフローチャートでは、ステップＳ３０２でＹｅｓの処理を行った場合の例となる。
【００４０】
図９は、構造化文書の木構造内で選択された始点と終点の要素の例（「始点が１個、終点が２個の場合」の例）を示す説明図である。
この場合、ＤＯＣＩＮＦＯ要素６０８とＰＡＲＡ要素６１６を始点、ＢＯＯＫ要素６０２を終点としている。この場合、ＰＡＲＡ要素６１６、ＤＯＣＩＮＦＯ要素６０８、ＢＯＯＫ要素６０２間で構成される部分木がコピー範囲９００になる。つまり、コピー範囲９００には、ＢＯＯＫ要素６０２、Ｈ１要素６０４、ＦＲＯＮＴ要素６０６、ＤＯＣＩＮＦＯ要素６０８、ＴＩＴＬＥ要素６１４、ＰＡＲＡ要素６１６が含まれる。そして、終点として、各始点の要素（ＰＡＲＡ要素６１６、ＤＯＣＩＮＦＯ要素６０８）の上位要素の共通要素（図９の例では、Ｈ１要素６０４、ＢＯＯＫ要素６０２）が候補になり、その中から終点を決定することになる。
【００４１】
図１０は、終点を選択するためのユーザインタフェースの例を示す説明図である。
この場合、始点の要素（ＰＡＲＡ要素６１６、ＤＯＣＩＮＦＯ要素６０８）が操作者の操作によって選択され、［上位コピー］メニュー１０１０を表示し、［上位コピー］メニュー１０１０が操作者の操作によって選択されると、終点となる要素の候補である２つの選択肢１０１２、１０１４を表示し、選択肢１０１２が操作者の操作によって終点の要素として選択されたことを示している。この操作により、図９に例示の部分木であるコピー範囲９００として決定することになる。
図３に例示のフローチャートでは、ステップＳ３０２でＮｏの処理を行い、ステップＳ３１０でＮｏの処理を行った場合の例となる。
【００４２】
図１１は、構造化文書の木構造内で選択された始点と終点の要素の例（「始点が２個、終点が１個であり、始点、終点で構成する部分木の中に他の終点がある場合」の例）を示す説明図である。
この場合、ＴＩＴＬＥ要素６１４とＰＡＲＡ要素６１６を始点、ＢＯＯＫ要素６０２を終点としている。この例では、ＴＩＴＬＥ要素６１４はＰＡＲＡ要素６１６とＢＯＯＫ要素６０２によって構成される部分木の内部にあるため、このＴＩＴＬＥ要素６１４は始点として除外する。そのため、この場合、ＰＡＲＡ要素６１６、ＢＯＯＫ要素６０２間で構成される部分木がコピー範囲１１００になる。つまり、コピー範囲１１００には、ＢＯＯＫ要素６０２、Ｈ１要素６０４、ＴＩＴＬＥ要素６１４、ＰＡＲＡ要素６１６が含まれる。そして、終点として、始点の要素（ＰＡＲＡ要素６１６）の上位要素（図１１の例ではＴＩＴＬＥ要素６１４、Ｈ１要素６０４、ＢＯＯＫ要素６０２）が候補になり、その中から終点を決定することになる。なお、ＴＩＴＬＥ要素６１４を誤って始点として選択したとして、この処理を行っているものである。
【００４３】
図１２は、終点を選択するためのユーザインタフェースの例を示す説明図である。
この場合、始点の要素（ＰＡＲＡ要素６１６、ＴＩＴＬＥ要素６１４）を選択され、［上位コピー］メニュー１２１０を表示し、［上位コピー］メニュー１２１０が操作者の操作によって選択されると、終点となる要素の候補である３つの選択肢１２１２〜１２１６を表示し、選択肢１２１２が操作者の操作によって終点の要素として選択されたことを示している。この操作により、図１１に例示の部分木であるコピー範囲１１００として決定することになる。
図３に例示のフローチャートでは、ステップＳ３０２でＮｏの処理を行い、ステップＳ３１０でＹｅｓの処理を行った場合の例となる。
【００４４】
図１３は、要素名が同じである場合の構造化文書の表示例を示す説明図である。
終点の候補に同じ名前の要素が複数存在する場合は、終点の候補として表示するものとして、前述の例のような要素名である場合、操作者にとっては区別がつかなくなることから、各要素の属性で要素を表示すればよい。図１３の例では、各要素の要素名が同じＰＡＲＡであるが、ＩＤ属性を判別するためのキーとしている。
この場合、始点の要素（ＰＡＲＡ要素（ＩＤ＝００００８）１３１６）が操作者の操作によって選択され、［上位コピー］メニュー１３３０を表示し、［上位コピー］メニュー１３３０が操作者の操作によって選択されると、終点となる要素の候補である３つの選択肢１３３２〜１３３６を要素名と属性で表示し、選択肢１３３２が操作者の操作によって終点の要素として選択されたことを示している。この操作により、図１３に例示の部分木であるコピー範囲１３００として決定することになる。つまり、コピー範囲１３００には、ＰＡＲＡ要素（ＩＤ＝００００１）１３０２、ＰＡＲＡ要素（ＩＤ＝００００２）１３０４、ＰＡＲＡ要素（ＩＤ＝００００７）１３１４、ＰＡＲＡ要素（ＩＤ＝００００８）１３１６が含まれる。当然のことながら、ツリービューとして表示している各要素も要素名と属性で表示する。
【００４５】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図１４に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部（演算部）としてＣＰＵ１４０１を用い、記憶装置としてＲＡＭ１４０２、ＲＯＭ１４０３、ＨＤ１４０４を用いている。ＨＤ１４０４として、例えばハードディスクを用いてもよい。選択（Ａ）モジュール１１０、選択（Ｂ）モジュール１２０、選択候補抽出モジュール１３０、コピー範囲決定モジュール１４０、抽出モジュール１５０、操作受付モジュール１６０、選択要素判定モジュール２１０、終点要素判定モジュール２２０、アプリケーションモジュール２３０、コピー操作受付モジュール２４０、コピー範囲決定モジュール２５０等のプログラムを実行するＣＰＵ１４０１と、そのプログラムやデータを記憶するＲＡＭ１４０２と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ１４０３と、補助記憶装置であるＨＤ１４０４と、キーボード、マウス、タッチパネル等に対する利用者の操作に基づいてデータを受け付ける受付装置１４０６と、ＣＲＴ、液晶ディスプレイ等の出力装置１４０５と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース１４０７、そして、それらをつないでデータのやりとりをするためのバス１４０８により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【００４６】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図１４に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１４に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えばＡＳＩＣ等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１４に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、情報家電、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
なお、各モジュールの処理内容として背景技術で説明した技術を採用してもよい。
【００４７】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００４８】
１１０…選択（Ａ）モジュール
１２０…選択（Ｂ）モジュール
１３０…選択候補抽出モジュール
１４０…コピー範囲決定モジュール
１５０…抽出モジュール
１６０…操作受付モジュール
２１０…選択要素判定モジュール
２２０…終点要素判定モジュール
２３０…アプリケーションモジュール
２４０…コピー操作受付モジュール
２５０…コピー範囲決定モジュール
２６０…バッファモジュール
【図１】
0005842437.tif 000002
【図２】
0005842437.tif 000003
【図３】
0005842437.tif 000004
【図４】
0005842437.tif 000005
【図５】
0005842437.tif 000006
【図６】
0005842437.tif 000007
【図７】
0005842437.tif 000008
【図８】
0005842437.tif 000009
【図９】
0005842437.tif 000010
【図１０】
0005842437.tif 000011
【図１１】
0005842437.tif 000012
【図１２】
0005842437.tif 000013
【図１３】
0005842437.tif 000014
【図１４】
0005842437.tif 000015