(57)【要約】      （修正有）【課題】表示テキストの仕組みと、ブロックを生成するための仕組みと、を木構造によって統合的に管理するためのテキスト編集システム、テキスト編集方法及びテキスト編集プログラムを提供する。【解決手段】テキスト情報５００を木構造によって管理し、また、前記木構造におけるノードの接続関係によってデータ出力手段が出力する位置関係を管理し、さらに、前記ノードの接続関係のうち任意の一つをＮＥＸＴ（５２１〜５２５）と設定し、そして、前記ノードの接続関係に優先順位をつけて管理するオブジェクト管理手段とデータ入力手段及びデータ出力手段を設ける。【選択図】図３
2014194815.tif 000002
【特許請求の範囲】
【請求項１】
テキスト情報を木構造によって管理するオブジェクト管理手段と、データ入力手段とデータ出力手段とを備えたテキスト編集システムであって、
前記オブジェクト管理手段は、親ノードに対する子ノードの相対的な位置関係を示す接続関係、又は、接続される子ノードを根とする部分木がブロックとして接続されることを示す接続関係の、どちらかの接続関係によってノードの接続された木構造によってテキスト情報を管理し、
前記オブジェクト管理手段は、前記木構造におけるノードの接続関係によって前記データ出力手段が出力する位置関係を管理し、
前記オブジェクト管理手段は、前記ノードの前記接続関係のうち任意の一つをＮＥＸＴと設定し、
前記オブジェクト管理手段は、前記ノードの前記接続関係に優先順位をつけて管理することを特徴とするテキスト編集システム。
【請求項２】
請求項１記載のテキスト編集システムであって、
前記オブジェクト管理手段は、あるノードＡからブロックとして扱うための接続関係によって接続されたノードＢと、前記ノードＡからブロックとして扱うための接続関係によって接続されたノードＣにおいて、前記優先順位によって前記ノードＢが前記ノードＣより優先される場合に、前記ノードＢから前記ＮＥＸＴと設定された前記接続関係をたどった最後尾のノードＤに前記ノードＣを関連付け、前記オブジェクト管理手段が前記ＮＥＸＴと設定された前記接続関係をたどる際に前記ノードＤの次に前記ノードＣへ進むテキスト編集システム。
【請求項３】
コンピュータがテキスト情報を処理するテキスト編集方法において、
テキスト情報を木構造によって管理するオブジェクト管理ステップと、データ入力ステップとデータ出力ステップとを含むテキスト編集方法であって、
前記オブジェクト管理ステップは、親ノードに対する子ノードの相対的な位置関係を示す接続関係、又は、接続される子ノードを根とする部分木がブロックとして接続されることを示す接続関係の、どちらかの接続関係によってノードの接続された木構造によってテキスト情報を管理するステップを含み、
前記オブジェクト管理ステップは、前記木構造におけるノードの接続関係によって前記データ出力ステップが出力する位置関係を管理するステップを含み、
前記オブジェクト管理ステップは、前記ノードの前記接続関係のうち任意の一つをＮＥＸＴと設定するステップを含み、
前記オブジェクト管理ステップは、前記ノードの前記接続関係に優先順位をつけて管理するステップを含むことを特徴とするテキスト編集方法。
【請求項４】
請求項３記載のテキスト編集方法であって、
前記オブジェクト管理ステップは、あるノードＡからブロックとして扱うための接続関係によって接続されたノードＢと、前記ノードＡからブロックとして扱うための接続関係によって接続されたノードＣにおいて、前記優先順位によって前記ノードＢが前記ノードＣより優先される場合に、前記ノードＢから前記ＮＥＸＴと設定された前記接続関係をたどった最後尾のノードＤに前記ノードＣを関連付けるステップを含み、前記オブジェクト管理ステップが前記ＮＥＸＴと設定された前記接続関係をたどる際に前記ノードＤの次に前記ノードＣへ進むステップを含むテキスト編集方法。
【請求項５】
テキスト情報を木構造によって管理するテキスト編集プログラムであって、
コンピュータを請求項１又は２記載のテキスト編集システムとして機能させるテキスト編集プログラム。
【請求項６】
テキスト情報を木構造によって管理するテキスト編集プログラムであって、
請求項３又は４記載のテキスト編集方法をコンピュータに実行させるテキスト編集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、木構造によるテキスト情報を編集するためのテキスト編集システムに関する。
【背景技術】
【０００２】
従来のテキスト情報は文字列によって一次元的に管理されており、画面上に二次元的に表示するためには改行コードや空白コードなどの制御文字コードを用いる必要があった。特許文献１には、これらの制御文字コードを用いてテキスト情報の改行とインデントを調節する方法が記載されている。
【０００３】
また、ＳＧＭＬ（Ｓｔａｎｄａｒｄ Ｇｅｎｅｒａｌｉｚｅｄ Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ，ＩＳＯ ８８７９−１９８６）やＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ，Ｗ３Ｃ  ｒｅｃｏｍｍｅｎｄａｔｉｏｎ）などに基づいた構造化文書を扱うシステムでは論理構造に基づいて二次元的な表示が制御されているが、表示される文字情報以外に論理構造を指定するための情報が必要である。
【０００４】
一方、記号が二次元構造を持って配置されることが一般的である数式のような情報を入力するためのシステムが特許文献２に開示されている。特許文献２の発明によれば、ポインティングデバイスを利用してノードの追加や削除を行なうことによって、オブジェクトの二次元的な配置を扱うことができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２８５１１４号公報
【特許文献２】特開２００６−２３５９１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のテキスト情報のうちプレーンテキスト情報は文字コードが一次元上に並んだ文字列に基づいたものであるため、文字や記号などを画面上に二次元的に配置するためには制御文字コードのような画面に表示される情報以外の制御情報をデータとして与える必要があった。
【０００７】
また、構造化文書を扱う従来のシステムにおいては、文書の論理構造は木構造によって管理されているが、画面に表示される文字列情報の部分はブロックとしてノードに関連付けられているため、ブロックを生成するための仕組みと表示テキスト情報の仕組みとが別の枠組みとなっている。例えば、ＸＭＬのようにソースコードをプレーンテキストとしてみることができる規格におけるソースコードは、そのソースコードに基づいて描画されるレンダリング結果には表示されない情報が多く記述されており、文書の論理構造が複雑になるにしたがってプレーンテキストとしての編集は困難なものとなる。
【０００８】
上記のような従来の問題点に鑑み、本発明は、表示テキストの仕組みとブロックを生成するための仕組みとを木構造によって統合的に管理するためのテキスト編集システム、テキスト編集方法、及びテキスト編集プログラムを提供することを目的とする。
【０００９】
本発明の他の一つの目的は、木構造においては接続関係のないノードを関連付けることによってブロック間の前後関係を設定可能であるテキスト編集システム、テキスト編集方法、及びテキスト編集プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明によって、テキスト情報を木構造によって管理するオブジェクト管理手段と、データ入力手段とデータ出力手段とを備えたテキスト編集システムであって、前記オブジェクト管理手段は、親ノードに対する子ノードの相対的な位置関係を示す接続関係、又は、接続される子ノードを根とする部分木がブロックとして接続されることを示す接続関係の、どちらかの接続関係によってノードの接続された木構造によってテキスト情報を管理し、前記オブジェクト管理手段は、前記木構造におけるノードの接続関係によって前記データ出力手段が出力する位置関係を管理し、前記オブジェクト管理手段は、前記ノードの前記接続関係のうち任意の一つをＮＥＸＴと設定し、前記オブジェクト管理手段は、前記ノードの前記接続関係に優先順位をつけて管理することを特徴とするテキスト編集システムが提供される。
【００１１】
上記のようなテキスト編集システムでは、オブジェクト管理手段によってテキスト情報が木構造を用いて管理されるが、オブジェクト管理手段はノードの接続関係を識別し、その接続関係によってデータ出力手段における出力が決定される。ここで利用される木構造は、ノードの接続関係による制約を持つような木構造となり、あるノードの接続関係の情報には親ノードと子ノードの接続関係の存在だけではなく、親ノードからみてどういう接続関係で子ノードが接続されているかという相対的な位置を特定するための情報も持つような木構造となる。またオブジェクト管理手段は、子ノードへの接続関係のうち任意の一つをＮＥＸＴと設定することによって、あるノードから接続関係がＮＥＸＴであるノードへとたどることの繰り返しによって得られるノードの集合のように一次元的な関係を木構造に内包させて管理することが可能となる。さらにオブジェクト管理手段は、必要に応じて、子ノードへの接続関係に優先順位を設定するが、このことによってそれらの子ノードを順序付けて処理することが可能となるようなデータ構造を持つノードの生成と管理が可能となる。
【００１２】
また、上記オブジェクト管理手段は、あるノードＡからブロックとして扱うための接続関係によって接続されたノードＢ、前記ノードＡからブロックとして扱うための接続関係によって接続されたノードＣにおいて、前記優先順位によって前記ノードＢが前記ノードＣより優先される場合に、前記ノードＢから前記ＮＥＸＴと設定された前記接続関係をたどった最後尾のノードＤに前記ノードＣを関連付け、前記オブジェクト管理手段が前記ＮＥＸＴと設定された前記接続関係をたどる際に前記ノードＤの次に前記ノードＣへ進むものであってもよい。
【００１３】
この場合、オブジェクト管理手段は、あるノードＡに接続された子ノードであるノードＢと、ノードＡに接続された別の子ノードであるノードＣを、優先順位に従って管理するが、ノードＢがノードＣより優先されるようにオブジェクト管理手段によって設定されていた場合に、ノードＢに接続される子ノードのうち接続関係がＮＥＸＴである子ノードを調べ、その子ノードに接続される子ノード（ノードＢからみると孫ノード）のうち接続関係がＮＥＸＴである子ノードをさらに調べるということを繰り返すことによって、ＮＥＸＴである接続関係にはノードの接続されていない最後尾のノードＤを得ることができる。もしノードＢのＮＥＸＴである接続位置に他のノードが接続されていない場合にはノードＢが最後尾であるため、オブジェクト管理手段はノードＢをノードＤとして扱う（以下、ブロックとは、必ずしも複数のノードによって構成されている必要はなく、少なくとも一つのノードによって構成されているものとする）。このとき、オブジェクト管理手段はノードＤにノードＣを関連付けて扱うことによって、ノードＤの次にノードＣを調べ、ノードＣから接続関係がＮＥＸＴであるノードをさらに調べるということを繰り返していくことが可能となる。このことによってオブジェクト管理手段がブロックをまたいだノードの前後関係を管理することが可能となる。
【００１４】
また、本発明によって、コンピュータがテキスト情報を処理するテキスト編集方法において、テキスト情報を木構造によって管理するオブジェクト管理ステップと、データ入力ステップとデータ出力ステップとを含むテキスト編集方法であって、前記オブジェクト管理ステップは、親ノードに対する子ノードの相対的な位置関係を示す接続関係、又は、接続される子ノードを根とする部分木がブロックとして接続されることを示す接続関係の、どちらかの接続関係によってノードの接続された木構造によってテキスト情報を管理するステップを含み、前記オブジェクト管理ステップは、前記木構造におけるノードの接続関係によって前記データ出力ステップが出力する位置関係を管理するステップを含み、前記オブジェクト管理ステップは、前記ノードの前記接続関係のうち任意の一つをＮＥＸＴと設定するステップを含み、前記オブジェクト管理ステップは、前記ノードの前記接続関係に優先順位をつけて管理するステップを含むことを特徴とするテキスト編集方法が提供される。
【００１５】
また、上記オブジェクト管理ステップは、あるノードＡからブロックとして扱うための接続関係によって接続されたノードＢ、前記ノードＡからブロックとして扱うための接続関係によって接続されたノードＣにおいて、前記優先順位によって前記ノードＢが前記ノードＣより優先される場合に、前記ノードＢから前記ＮＥＸＴと設定された前記接続関係をたどった最後尾のノードＤに前記ノードＣを関連付けるステップを含み、前記オブジェクト管理ステップが前記ＮＥＸＴと設定された前記接続関係をたどる際に前記ノードＤの次に前記ノードＣへ進むステップを含むものであってもよい。
【００１６】
また、本発明によって、テキスト情報を木構造によって管理するテキスト編集プログラムであって、コンピュータを請求項１又は２記載のテキスト編集システムとして機能させるテキスト編集プログラムが提供される。
上記のようなテキスト編集プログラムでは、コンピュータを請求項１又は２記載のテキスト編集システムとして機能させることが可能となる。
【００１７】
また、本発明によって、テキスト情報を木構造によって管理するテキスト編集プログラムであって、請求項３又は４記載のテキスト編集方法をコンピュータに実行させるテキスト編集プログラムが提供される。
上記のようなテキスト編集プログラムでは、請求項３又は４記載のテキスト編集方法をコンピュータに実行させることが可能となる。
【発明の効果】
【００１８】
請求項１又は３に記載の発明によれば、表示テキストの仕組みとブロックを生成するための仕組みとを木構造によって統合的に管理するためのテキスト編集システム又はテキスト編集方法が提供される。
【００１９】
請求項２又は４に記載の発明によれば、木構造においては接続関係のないノードを関連付けることによってブロック間の前後関係を設定可能であるテキスト編集システム又はテキスト編集方法が提供される。
【００２０】
請求項５に記載の発明によれば、コンピュータが上記のテキスト編集システムとして機能する。
【００２１】
請求項６に記載の発明によれば、上記のテキスト編集方法がコンピュータにより実行される。
【図面の簡単な説明】
【００２２】
【図１】テキスト編集システムの構成を示すブロック図。
【図２】従来のテキスト情報の一例を示す図。
【図３】本発明によって得られるテキスト情報の一例を示す図。
【図４】木構造によるテキスト情報と従来のテキスト情報との比較のための図。
【図５】出力においてノードを配置するために確保される領域を示す図。
【図６】本発明で扱う木構造の一例を示す図。
【図７】図６の木構造の一部を取り出して説明するための図。
【図８】図６の木構造の一部を取り出して説明するための図。
【図９】図６の木構造の一部を取り出して説明するための図。
【図１０】図６の木構造の一部を取り出して説明するための図。
【図１１】図６の木構造の一部を取り出して説明するための図。
【図１２】図７に説明のための変更を加えた図。
【図１３】括弧表示のためのノードを用いずにブロックとしての部分木への接続関係を持つ木構造の一例を示す図。
【図１４】タグによる木構造を本発明における木構造で管理する一例を示す図。
【発明を実施するための形態】
【００２３】
以下、本発明の一実施形態について図面を参照して説明する。図１は本発明におけるテキスト編集システムの構成を示すブロック図である。当該システムは、パソコン等のコンピュータ１００、入力装置２００及び出力装置３００によって構成されている。コンピュータ１００は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、ポケットコンピュータ、及び電子手帳など、様々な形をとり得る。図１では一例としてコンピュータ１００と入力装置２００及び出力装置３００が分かれているが、当業者には明白であるように、これらの全てあるいは一部が一体となっている場合がある。例えば、表示画面３０１とポインティングデバイス２０２とは、一体となっていることもある。
【００２４】
入力装置２００は、キーボード２０１及びポインティングデバイス２０２によって構成されている。ポインティングデバイス２０２は、例えば、マウス、トラックボール、トラックパッド、タッチパネル、及びタブレット装置など、様々な形をとり得る。当業者には明白であるように、キーボード２０１とポインティングデバイス２０２とは常に両方が必要であるわけではなく、どちらか一方のみであってもよく、一方が他方の代替として機能することもある。また入力装置２００とデータ入力手段１０２とを一体としてデータ入力手段として扱うこともありうる。
【００２５】
出力装置３００は、表示画面３０１及びプリンタ３０２によって構成されている。表示画面３０１は、ＣＲＴ、ＬＣＤ、及びプラズマディスプレイなど、様々な形をとり得る。当業者には明白であるように、表示画面３０１とプリンタ３０２とは常に両方が必要であるわけではなく、どちらか一方のみであってもよく、一方が他方の代替として機能することもある。また出力装置３００とデータ出力手段１０３とを一体としてデータ出力手段として扱うこともありうる。
【００２６】
また、コンピュータ１００は、入力装置２００からの操作入力に応じて、内蔵するＣＰＵ、メモリ、補助記憶装置等のハードウェアを、各種の手段として機能させるテキスト編集プログラムを搭載したり実行したりすることができる。また、コンピュータ１００は、入力装置２００からの操作入力に応じて、内蔵するＣＰＵ、メモリ、補助記憶装置等のハードウェアを利用して、各種のステップを実行させるテキスト編集プログラムを搭載したり実行したりすることができる。図には省略されているが、一般的なコンピュータにおける記憶手段としてメモリや補助記憶装置等のハードウェアや、ネットワーク回線によって接続された別のコンピュータの制御する記憶手段等様々な外部記憶装置、コンピュータ可読媒体などが利用可能である場合がある。また、各種データは複数の記憶手段に分散して記憶されていることもある。
【００２７】
データ入力手段１０２は、入力装置２００からデータを受け取る。例えば、キーボード２０１で押されたキーに関するデータやポインティングデバイス２０２から得られるポインティングデバイスの移動に関するデータなどを受け取る。それらデータの内容によってオブジェクト管理手段１０１をどのように機能させるかが決定される。
【００２８】
オブジェクト管理手段１０１は、データ入力手段１０２によって得られるデータによって、テキスト情報の持つ木構造を操作し、木構造におけるノードの接続関係に応じてデータ出力手段１０３によって出力する出力情報を構成する。その際、フォントの形状の情報などの個々の描画情報はオブジェクト管理手段１０１が備えていても良いし、データ出力手段１０３が備えていても良く、また、一般的なコンピュータが備える記憶装置からデータを取り出して利用しても良いということは、当業者には明らかである。また、オブジェクト管理手段１０１は、本発明に必要なデータを一般的なコンピュータが備える記憶装置を用いて保存・読み出し・変更するが、そのことについては当業者には明らかであり一般的なことであるため、図１においては省略されている。
【００２９】
データ出力手段１０３は、オブジェクト管理手段１０１から得られる情報に基づいて表示画面３０１に表示される出力やプリンタ３０２で印刷される出力データを生成し、出力装置３００によって出力する。
【００３０】
図２は従来のテキスト情報の一例である。図２（ａ）の４００は出力装置３００における出力例である。二点鎖線による矩形は説明のために範囲を指定するためのもので、出力には含まれない（以下、二点鎖線の扱いは同様）。図２（ｂ）の４１０は出力例４００のデータを表わしたものである。４１０においては１８個の矩形が並んでいるが、これらはメモリ等の記憶装置におけるデータの配置を表わしたものである。矩形内に描かれている記号は、その場所にその記号を表わす文字コードが格納されていることを示している。４１１と４１３及び４１４の白抜きの「改」は改行コードが格納されていることを表わしており、４１２の白抜きの「空」はスペースやタブなどの空白コードが格納されていることを表わしている。これらは一般的には文字列「\n」「\t」が用いられることもあるようなコードであるが、説明のために「改」や「空」としている。このように、従来ではテキスト情報のみで出力例４００のような二次元的な配置を行なうためには改行コード４１１や空白コード４１２などの制御文字コードを文字列の一部として持つ必要があった。
【００３１】
図３は本発明によって得られるテキスト情報の一例である。図３（ａ）の５００は出力例である。図３（ｂ）は出力例５００を得るために、オブジェクト管理手段１０１によって管理される木構造である。５１１はこの木構造の根であり、他のノードからの接続がない特別なノードである。オブジェクト管理手段１０１が木構造によるテキスト情報を調べる際には、まず木構造の根のノードから開始するため、文字列によるテキスト情報における先頭文字のようなものである。
【００３２】
各ノードのデータは、ノード５１１における「ｉｆ」のようにそれぞれのノードが描画される際の情報と、子ノードへの方向を表わすコードとその方向に接続される子ノードを参照するためのポインタ等のような子ノードの接続のための情報と、どの接続方向がＮＥＸＴであるかを示す情報、ブロックとして扱う接続関係にある子ノードを参照するためのポインタ等の情報、そして、子ノードへの接続関係に優先順位を与えるための情報によって構成されている。出力装置３００において子ノードが出力される際の親ノードからの相対的な位置は、図中の木構造における接続方向によって特定される。オブジェクト管理手段１０１によって操作されるデータ構造においては、接続方向は例えば「（１，０）」のようなベクトルによって相対的に管理された方向であることもあり得るし、例えば「０：上、１：右上、２：右、３：右下、４：下、５：左下、６：左、７：左上」のような番号付けによって管理された方向であることもありうる。また、例えば「９０度」のような角度によって管理された方向であることもありうる。以下の説明は、図中の木構造における実線の矢印はこれらのデータ構造に基づいて描かれており、実線の矢印の向きにはデータ構造における意味があることを前提として行なう。また、接続関係５４１や接続関係５４２のような点線の矢印によって描かれる接続関係はブロックとして扱う接続関係であり、矢印の向きと、出力装置３００における出力の際の親ノードと子ノードの相対的な位置関係には、直接的な関係はないものとする。
【００３３】
図３（ｂ）において、５２１〜５２５は、各ノードからの接続関係のうちＮＥＸＴと設定された接続関係を表わしている。矢印の根元が親ノードであり、矢印の先が子ノードとなる（以下、５２１〜５２５と同じ太さの矢印は、ＮＥＸＴと設定された接続関係であるものとする）。ＮＥＸＴと設定された接続関係はオブジェクト管理手段１０１によって出力情報が調整された結果、出力例５００にあるようにそれぞれ親ノードの右側に並ぶような位置にデータ出力手段１０３によって配置されて出力装置３００に出力される。この際の位置関係は接続関係５２１〜５２５が右向きの矢印であるためであり、ＮＥＸＴと設定された接続関係と右側への配置との間には直接の関係はない。下向きの接続関係がＮＥＸＴと設定されている場合には、その接続関係によって配置される子ノードは出力装置３００において親ノードの下側に配置されるようにオブジェクト管理手段１０１によって管理されることになる。また、図３（ｂ）におけるノード「（）」やノード「｛」のようにＮＥＸＴと設定された接続関係を表わす矢印の出ていないノードは、ＮＥＸＴと設定された接続方向に子ノードが接続されていないことを表わしている（以下、ＮＥＸＴと設定された接続関係を表わす矢印の出ていないノードは、ＮＥＸＴと設定された接続方向に子ノードが接続されていないことを表わすものとする）。
【００３４】
図３（ｂ）において、５３１はＮＥＸＴと設定されていない一般的な接続関係である（以下、５３１と同じ太さの矢印は、ＮＥＸＴと設定されていない一般的な接続関係であるものとする）。これらの矢印の向きはデータ構造における意味があり、例えば接続関係５３１の場合は、ノード「ｉｆ」からノード「｛」への下向きの矢印であるため、出力例５００にあるように「ｉｆ」の下に「｛」が出力されるように、オブジェクト管理手段１０１とデータ出力手段１０３によって出力情報が管理される。また、５４１と５４２は、ＮＥＸＴと設定されていない接続関係であるが、接続される子ノードから接続関係を矢印の先の方向へたどって得られる全てのノード（以下、部分木）をブロックとしてまとめて扱うような接続関係である（以下、５４１と５４２と同様の点線による矢印は、部分木をブロックとして扱うための接続関係であるものとする）。
【００３５】
図４は、本発明によって得られるテキスト情報の出力例と、従来の文字列によるテキスト情報の出力例の比較のための図である。図４（ａ）の６００は本発明によって得られるテキスト情報の出力装置３００における出力例であり、プログラムにおけるブロックの入れ子構造の例である。図４（ｂ）の４２０は、６００と同等のプログラムとして機能する内容を従来の文字列によるテキスト情報によって記述して出力装置３００に出力した例である。４２０は出力としては二次元の位置関係を持っているように見えるが、データ構造としては一次元上に文字コードが並んだ形で格納されており、図２（ｂ）と同様な表現が可能である。一次元上にならんだ文字コードによって記述されているという性質から、入れ子構造を表現するためには、「｛」のようなブロックの開始を表わす文字コードと、「｝」のようなブロックの終了を表わす文字コードが対になって用意されていなければならないという性質や、ブロックを表わすためにインデントのための空白コードが用意されていなければならないという性質などを持つ。
【００３６】
本発明におけるテキスト情報は、オブジェクト管理手段１０１によって木構造として管理されているため、入れ子構造は木構造によって自然に表現することが可能であり、部分木によってブロックが管理されているため、ブロックをインデントで表現するための空白コードや、ブロックの終了を表わす記号である「；」や「｝」などを必要としない。
【００３７】
図５（ａ）は、出力装置３００における出力例６００において、ブロックとしての部分木のために用意される領域を示すものである。点線による矩形は説明のためのものである。矩形Ｒ１１はノード「ｉｆ」の右に位置するノード「（）」に用意された領域であり、矩形Ｒ２１〜Ｒ２２はノード「ｉｆ」の下に位置するノード「｛」に用意された領域であり、矩形Ｒ３１〜Ｒ３３はノード「ｆｏｒ」の右に位置するノード「（）」に用意された領域であり、矩形Ｒ４１とＲ４２はノード「ｆｏｒ」の下に位置するノード「｛」に用意された領域である。図５（ａ）では同じノードに用意された領域の幅や高さを揃えているが、図５（ｂ）のように揃えない場合もあり得る。
【００３８】
図５（ｂ）は、出力例６００の元となった木構造と同じ木構造に対して別の出力を行なった例である。このような設定はオブジェクト管理手段１０１によって行なわれ、出力情報の調整はデータ出力手段１０３によって行なわれる。ＳＣ１〜ＳＣ５は、ブロックとしての部分木のために用意された領域の後ろに、必要に応じてセミコロンを表示した例である。元のデータとしての木構造は同じであっても、データ出力手段１０３による木構造の表示の段階やオブジェクト管理手段１０１による操作の段階でこのような修飾を行なうことが可能である。図５（ｂ）のような出力例を利用する場面としては、例えば、従来のプログラミング言語の表記に慣れた利用者の理解を助けるために利用する場面などが考えられる。
【００３９】
図６は、出力例６００の元となった木構造である。矢印の種類による区別は、上述のように、図３（ｂ）における矢印の区別と同様である。本発明における木構造を構成するためのデータ構造は、出力のための描画情報などの当業者には明白であるような情報の他に、ノードの接続関係の情報を持つことを基本としている。具体的には、全てのノードに識別番号等が付与されて識別され、それぞれのノードの描画情報や、接続関係のＮＥＸＴ設定情報、接続関係における優先順位の情報の他、接続関係と出力位置の管理データ、接続される子ノードを識別するための情報とその子ノードとの接続関係の情報などがオブジェクト管理手段１０１によって管理されている。図６はそれらのデータ構造に基づいた木構造である。これらの情報がメモリやデータベースなどへの書き込みや読み出し等の一般的な操作やその他の拡張的な操作によって管理可能であることは、当業者には明らかである。
【００４０】
図６に示される木構造を、説明のために、部分木をブロックとして扱うための接続関係を持つノードで区切って示したものが図７〜図１１になる。
【００４１】
図７は、図６の木構造の根ノードであるノード６０１からの接続関係を示したものである。ノード６０１からノード６０２への接続関係はＮＥＸＴが設定された接続関係であり、ノード６０１からノード６０３への接続関係６１１はＮＥＸＴの設定されていない一般的な接続関係である。６１１が下向きの矢印であることは、ノード６０３は、出力装置３００に出力される際にはノード６０１の下側に配置されることを意味する。このとき、プログラミング言語の記述方法としては、ノード６０２のＮＥＸＴ方向に接続された子ノードとして、ノード６０３がノード６０２のが右側に接続されるような木構造とすることもありえる。どのような木構造がどのような意味に解析されるのかは、本発明によるテキスト文書を解析する際に考慮されるべきことであり、本発明ではそれらの各種情報を記述するための基礎となる、木構造によるテキスト情報を編集するためのシステム、方法及びプログラムが提供される。
【００４２】
図８は、ノード６０２からの接続関係は、部分木をブロックとして扱うための接続関係が一つであることを示す図である。図８におけるノード「ｘ」から見た場合に、接続関係がＮＥＸＴであるノードへとたどることによる最後尾のノードはノード「０」である。
【００４３】
図９は、ノード６０３からの接続関係においては、部分木をブロックとして扱うための接続関係が二つあることを示す図である。この図において、ノード６０３から接続された二つの子ノードの位置関係は、優先順位が高いものほど上に位置するように配置されている。つまり、ノード「ｙ」から接続関係がＮＥＸＴであるノードへとたどることによる最後尾であるノード「０」の次は、請求項２又は４記載の発明によって関連付けられたノード「ｆｏｒ」へとたどっていくことになる（以下、点線による矢印が一つのノードから複数出ているような図においては、上のものほど優先順位が高いものとして書かれているものとする）。また、図９のノード「ｆｏｒ」からノード６０５への接続関係６１２はＮＥＸＴの設定されていない一般的な接続関係であり、出力装置３００に出力される際には親ノードの下側に配置される子ノードへの接続関係であることを示している。
【００４４】
図１０は、ノード６０４からの接続関係においては、部分木をブロックとして扱うための接続関係が三つあることを示す図である。この場合、上述のように上に位置するものほど優先順位が高いことから、オブジェクト管理手段１０１がノードを調べる際の順序はノード「ｉｎｔ」、ノード「ｉ」、ノード「＝」、ノード「０」、そして請求項２又は４記載の発明によって関連付けられたノード「ｉ」へと進み、ノード「＜」、ノード「１」、ノード「０」、そしてまた請求項２又は４記載の発明によって関連付けられたノード「ｉ」へと進み、ノード「＋」、ノード「＋」という順序でたどることになる。これらによる出力例は図５（ａ）の領域Ｒ３１〜Ｒ３３内に配置されている出力が該当する。この場合には、オブジェクト管理手段１０１がノード「ｉｎｔ」からノード「０」までの各ノードをたどる際に、そのノードの描画情報に最も近い描画情報を持つ文字あるいは文字列をデータ出力手段１０３に出力させ、部分木から別の部分木へと移る際にセミコロンをデータ出力手段１０３に出力させるということで、従来の文字列に基づいたテキスト情報へと変換することも可能である。
【００４５】
木構造は探索によって根から全てのノードをたどって根に戻ってくることが可能であるという性質を持つため、本発明で扱うような制約を持つ木構造にであっても一次元的な情報への変換は容易である。また逆に、オブジェクト管理手段１０１が、従来の一次元的な文字列に基づいたテキスト情報を取り込み、その文字列の先頭文字と同じ描画情報を持つノードを根として、文字列における次の文字と同じ描画情報を持つノードをＮＥＸＴ方向に接続していくことを繰り返すことによって、最後尾のノード以外の全てのノードがＮＥＸＴ方向への子ノードただ一つを子ノードとして持つような特殊な木構造を生成することも可能である。このように、本発明で扱う木構造の一形態として従来の一次元的な文字列情報を扱う事は容易であり、また本発明で扱う木構造を探索によって従来の一次元的な文字列情報へと変換することも容易である。よって、本発明においてオブジェクト管理手段１０１が扱うような木構造に基づいたテキスト情報は、従来の一次元構造に基づいたテキスト情報との互換性を持つ新たなテキスト情報であるとみなすことが可能である。
【００４６】
図１１は、ノード６０５からの接続関係においては、部分木をブロックとして扱うための接続関係が二つあることを示す図である。ノードをたどる方法は図１０の場合と同様であるが、ノード「ｘ」からノード「ｉ」への接続関係６１３は、ＮＥＸＴの設定されていない一般的な接続関係であり、出力の際には右上に出力される子ノードであることを示している。このときにノード「ｉ」の出力される大きさのための設定はオブジェクト管理手段１０１が行ない、出力情報の調整はデータ出力手段１０３が行なう。また、オブジェクト管理手段１０１がノード６１５に接続されたノード「ｙ」から接続関係がＮＥＸＴであるノードへとたどっていく場合に、接続関係６１３を持つノード「ｘ」までたどりついたとき、オブジェクト管理手段１０１は、接続関係６１３を無視してノード「ｚ」へ進むことと、接続関係６１３の方向へたどってからノード「ｚ」へ進むことのどちらも選択可能である。
【００４７】
ＮＥＸＴと設定された接続関係以外の接続関係をどのように扱ってたどることになるのかは、木構造をどう解析するのかという目的に従ってオブジェクト管理手段１０１がどちらかを選択することになる。例えば、まずＮＥＸＴへとたどって得られる一次元的なノードの集まりを抽出してから、そのノードを一次元的に処理する中でＮＥＸＴと設定された接続関係以外の接続関係にある子ノードを扱う場合もあり、また、例えば、行きがけ順や帰りがけ順、また可能であれば通りがけ順などのように一般的に知られた方法で本発明で扱う木構造をたどっていく場合は、基本的にはＮＥＸＴと設定された接続関係以外の子ノードを優先順位に従って全てたどった後に、ＮＥＸＴと設定された接続関係へ向かうという順序になる。ただし、図６におけるノード「ｆｏｒ」やノード「ｉｆ」については、下に接続された子ノードへは最後に向かうようにオブジェクト管理手段１０１によって優先順位が設定されている。このような例外的な優先順位の設定を排除するためには、例えば図１２におけるノード「ｉｆ」のように下向きの接続関係６２２がＮＥＸＴ方向であるとオブジェクト管理手段１０１によって設定されていれば良く、本発明の枠組みの範囲内で調整可能である。
【００４８】
図１３（ａ）は図３（ａ）と同じ意味を持つような表現の別の例である。部分木をブロックとして扱うための接続関係を持つノードは括弧の類の描画情報を持つものには限らない。出力例７００を得るためにオブジェクト管理手段１０１が管理する木構造は、例えば図１３（ｂ）のようになるが、この図のように接続関係７２１がＮＥＸＴ方向であると設定されており接続関係７３１が部分木をブロックとして扱うための接続関係なのではなく、接続関係７３１がＮＥＸＴ方向であると設定されており接続関係７２１が部分木をブロックとして扱うための接続関係であるような構造であっても良い。また例えば図１３（ｃ）のように接続関係７５１と接続関係７５２の両方が部分木をブロックとして扱うための接続関係であるような構造であっても良い。さらには、接続関係７３１と接続関係７５１と接続関係７５２のそれぞれは、他の接続関係がどうであるかに関わらず、一般的な接続関係であっても良い。それらの接続関係は、オブジェクト管理手段１０１の設定した優先順位に従って、オブジェクト管理手段１０１によって順番に調べられることになる。
【００４９】
図１４は、ＸＭＬなどで用いられるタグによる木構造を、本発明における木構造のデータ構造として扱う場合のノードの接続関係の一例を示す図である。図１４（ａ）はプレーンテキストで表現される場合にはこのようにタグが利用されるという例である。図１４（ｂ）は、タグ名と同じ描画情報を持つノード８０１に、一般的な接続関係８１１によってノード「＜＞」が接続され、一般的な接続関係８１２によってノード「｛」が接続されている。さらに、タグ内のパラメタは部分木をブロックとして扱うための接続関係８３１によってノード「＜＞」に接続され、タグで囲まれた内容は部分木をブロックとして扱うための接続関係８３２によってノード「｛」に接続されている。本発明におけるオブジェクト管理手段１０１の扱う木構造ではブロックを部分木として扱うため、タグで囲む範囲を示す終了タグのような情報は不要になる。図１４（ｃ）ではノード「＜＞」やノード「｛」を介さずに、ノード８４１から部分木をブロックとして扱うための接続関係８５１と８５２によって、ブロックとして部分木が接続されている。図１３の場合と同様に８５１と８５２のそれぞれは、他の接続関係がどうであるかに関わらず、一般的な接続関係であっても良い。その場合、どの接続関係がタグ内のパラメタを表わす部分木をブロックとして扱うための接続関係であって、どの接続関係がタグに囲まれた内容を表わす部分木をブロックとして扱うための接続関係であるかという区別が、接続方向や優先順位などの接続関係を特定する情報に基づいてオブジェクト管理手段１０１によって管理されていれば、オブジェクト管理手段１０１とデータ出力手段１０３によって出力装置３００に出力例８００を出力することが可能となる。
【００５０】
本発明において、ノードの追加やノードの接続及び接続の解除などの基本的な操作をキーボード２０１から行なうことが可能であることは、当業者には明白である。その際にはオブジェクト管理手段１０１は、現在選択されているノードと選択されている接続位置の情報を保持しており、キーボード２０１から入力されたコードに従って選択位置に新たなノードを追加したり削除したりという操作を行なう。また、ノード「ｉｆ」のような複数の文字列を描画情報として持つようなノードの生成は、例えばバックスラッシュの文字コードを併用することやその他のキーとの組み合わせなどで行なうこと、あるいは漢字変換システムのような入力文字変換システムを用いることによっても可能であることも、当業者には明白である。
【００５１】
また、利用者が「ｉｆ」という出力を得たい場合に、ノード「ｉｆ」とするかノード「ｉ」とノード「ｆ」の連続とするかは利用者によって選択可能であるが、そのテキスト情報を機械的に解析させる場合にはそれらについての考慮が必要である。人間が目で読むような形での出力においては、ノード「ｉｆ」の場合と、ノード「ｉ」とノード「ｆ」の連続の場合にあまり大きな違いはないが、本発明で扱う木構造を解析するようなシステムにとってはノードの違いが重要になる。ノード「≦」だけの場合とノード「＜」とノード「＝」が連続する場合の間の関係についても同様であり、ノード「＋＋」だけの場合とノード「＋」とノード「＋」が連続する場合の間の関係についても同様である。また、ノード「（）」にブロックとして接続される部分木として扱うか、ノード「（」のＮＥＸＴ方向に接続されてかつＮＥＸＴ方向にノード「）」が接続されたノードとして扱うかということの間にも同様の関係がある。ただし、その意味を同じものとして扱うか違うものとして扱うかに関わらず、いずれも本発明におけるオブジェクト管理手段１０１の扱うことのできる木構造であるということは共通点としてあげられる。このことは従来のテキストエディタにおいて「日本語」という文字列と「にほんご」という文字列をどう扱うかということに類似した話である。
【００５２】
本発明において扱われる木構造は、木構造そのものの構文を解析することも可能であり、また、一次元的な情報に一度変換すれば、従来の一次元的な文字列に対する構文解析による解析も可能である。また、ＮＥＸＴを設定する方向は右とは限らないため縦書きのテキストや右から左へ続くテキストの他、斜め方向へ続くテキストであっても扱うことのできる枠組みを提供するものである。ＮＥＸＴ方向の異なるノードが混在する木構造においては、木構造の根となるノードのＮＥＸＴ方向を第一の基準とし、第二の基準を各ノードから見た親ノードのＮＥＸＴ方向とし、そしてそれぞれのノードのＮＥＸＴ方向に接続された子ノードの持つＮＥＸＴ方向を第三の基準とすることによって、オブジェクト管理手段１０１から得られる木構造の情報をデータ出力手段１０３が調整して出力装置３００に出力することが可能となる。
【００５３】
本発明において、ブロックとしての部分木のために確保される領域は縦方向のみや横方向のみに並べられるように制限されているものではなく、出力装置が二次元平面を扱うものであれば二次元における様々な複数の方向に対して配置が可能であり、出力装置が三次元を扱うものであれば三次元における様々な複数の方向に対して配置が可能である。
【００５４】
また、例えば図５（ａ）におけるＲ１１やＲ２１〜Ｒ２２、Ｒ３１〜Ｒ３３、Ｒ４１及びＲ４２のようなブロックとしての部分木のために確保された領域内に配置されて出力されるようなノードがオブジェクト管理手段１０１によって選択されている状態で、データ入力手段１０２がキーボード２０１から改行コードを表わすデータを受け取ったような場合には、それらの領域の下にオブジェクト管理手段１０１が新たな領域を生成し、その新たな領域の面積に応じてまわりの領域や子ノードの位置がオブジェクト管理手段１０１によって再調整される。逆にノードの削除によって、ブロックとしての部分木のために確保された領域内に配置されるノードがゼロになっている状態で、データ入力手段１０２がキーボード２０１から削除のためのコードを受け取ったような場合には、その領域はオブジェクト管理手段１０１によって削除され、領域が占めていた面積に応じて回りの領域や子ノードの位置が再調整され、さらに、削除された領域に関連する親ノードの子ノードに優先順位の高い別の領域がある場合には、その領域内に配置されるノードの最後尾のノードがオブジェクト管理手段１０１によって選択状態となる。オブジェクト管理手段１０１がこれらの仕組みやこれらに類似するような代替的な仕組みを実現することによって、木構造内においても従来の文字列に基づいたテキスト情報における改行や削除と同様に扱うことのできる操作環境を利用者に提供することが可能となる。
【００５５】
また、ポインティングデバイス２０２を利用してノードの追加や削除を行なうことは、特許文献２に開示されているようなオブジェクトの二次元的な配置を扱うことのできる技術を利用することによって可能となる。
【００５６】
本発明を、その具体的な実施例を参照して具体的に示し、説明してきたが、当業者には明白であるように、特許請求の範囲に含まれる本発明の精神および範囲から離れることなく、形および詳細にさまざまな変更、修飾、変形、あるいは応用を行なうことが可能であり、それらは請求の範囲によってのみ制限される本発明に含まれるとみなされる。
【産業上の利用可能性】
【００５７】
本発明は、木構造によるテキスト文書を編集するものであるため、一次元的な文字列情報に基づいた従来のテキスト情報を拡張するのみではなく、従来から木構造で管理されていたような構造化文書との併用や応用も考えられる。例えば、本発明で扱うような木構造によるテキスト情報を、構造化文書における木構造のノード要素とすることによって、描画位置に基づく木構造と論理構造に基づく木構造という二つの木構造によって文書を扱うことが可能となる。また、本発明で扱うような木構造に基づけば、アウトラインエディタのような構造を、テキスト情報のみで構成することも可能である。また、プログラミング言語の中に印刷物に書かれた数式と同じ形状と同じ配置を持つような数式を、他のテキスト情報と同等のテキスト情報として挿入することも可能である。テキスト情報は様々なデータ形式の基礎となっているため、木構造によってテキスト情報の構造を拡張したことによる影響範囲は幅広いものとなる。
【符号の説明】
【００５８】
４００、４２０、５００、６００、７００、８００    テキスト情報
１０１    オブジェクト管理手段
１０２    データ入力手段
１０３    データ出力手段
５２１〜５２５、５３１、５４１、５４２、６１１〜６１３、６２１、６２２、７２１、７３１、７５１、７５２、８１１、８１２、８２１〜８２４、８３１、８３２、８５１、８５２    接続関係
５２１〜５２５、６２２、７２１、８２１〜８２４    ＮＥＸＴ
【図１】
2014194815.tif 000003
【図２】
2014194815.tif 000004
【図３】
2014194815.tif 000005
【図４】
2014194815.tif 000006
【図５】
2014194815.tif 000007
【図６】
2014194815.tif 000008
【図７】
2014194815.tif 000009
【図８】
2014194815.tif 000010
【図９】
2014194815.tif 000011
【図１０】
2014194815.tif 000012
【図１１】
2014194815.tif 000013
【図１２】
2014194815.tif 000014
【図１３】
2014194815.tif 000015
【図１４】
2014194815.tif 000016