(57)【要約】 【課題】      特許出願に添付される特許請求の範囲等に記載された請求項間の関連を表すクレーム全体構造を、その階層構造の容易な把握が可能なように出力、表示する。【解決手段】  入力された特許請求の範囲における各請求項の記載から２階層の引用関係（階層構造）を抽出し（ステップ１−１）、これに基づいて初期のルートの集合を生成し（ステップ１−２）、このルートの集合に基づいて独立項から末端項に至る１又は複数の請求項及び順序を含む完成ルートで構成される完成ルートの集合を生成する（ステップ１−３）。そして、この完成ルートの集合に基づいてルート間の出力スペースおよび位置などを把握し、この把握した情報に基づいてクレーム全体構造を出力する（ステップ１−４）。【選択図】    図１
2012027743.tif 000002
【特許請求の範囲】
【請求項１】
情報間の関連および該関連の順序関係を示す階層構造の１又は複数で構成される全体構造の出力方法であって、１又は複数の前記階層構造を含む入力情報を受け取る入力ステップ、該入力情報から１又は複数の前記階層構造を抽出して初期のルート情報の集合を生成するルート情報集合生成ステップ、該ルート情報の集合に基づいて、自己より前に関連する他の情報のない先頭の情報から自己より後に関連する他の情報のない末端の情報に至る１又は複数の情報が関連付けられた前記階層構造である完成ルート情報の、１又は複数で構成される完成ルート情報の集合を生成する完成ルート情報集合生成ステップ、該完成ルート情報の集合から得られる出力制御情報に基づいて全体構造を出力する出力ステップ、を備えることを特徴とする全体構造の出力方法。
【請求項２】
前記完成ルート情報集合生成ステップは、前記ルート情報の集合から所定の条件で選択した一のルート情報を比較元ルート情報、１又は複数のルート情報を比較先ルート情報の集合として決定する比較対象決定ステップ、前記比較元ルート情報の一端から把握される前記情報を示す識別情報と、一の前記比較先ルート情報の前記一端とは逆の端である逆端から把握される前記情報を示す識別情報を比較し、該識別情報同士が一致すれば該ルート情報を関連付けることで新たなルート情報を生成する比較連結処理ステップ、該比較連結処理ステップを前記比較元ルート情報と前記比較先ルート情報の集合との間でそれぞれ行う比較元ルート単位の比較連結処理ステップ、該比較元ルート単位の比較連結処理を前記所定の条件を満たす全てのルート情報をそれぞれ比較元ルート情報として行う総当りの比較連結処理ステップを備え、さらに、
前記総当りの比較連結処理ステップの単位で完成ルート情報の集合を生成する総当り単位のループステップであって、総当りの比較連結処理ステップにより生成される前記新たなルート情報を含むルート情報の集合に対して、前記比較連結処理ステップによって関連付けられるルート情報がないことを確認できるまで総当りの比較連結処理ステップを繰り返し行う総当り単位のループステップ、あるいは、
前記比較元ルート単位の比較連結処理ステップの単位で完成ルートの集合を生成する比較元単位のループステップであって、前記比較元ルート単位の比較連結処理ステップによって生成される１又は複数の前記新たなルート情報の集合のそれぞれを比較元ルート情報とし、それぞれの該比較元ルート情報と前記初期のルート情報の集合から決定されたものである前記比較先ルート情報の集合を用いて比較元ルート単位の比較連結処理ステップを行うことを、前記比較連結処理ステップによって関連付けられるルート情報がないことを確認できるまで繰り返し行うことで１又は複数の完成ルート情報を生成する比較元単位のループステップ、のいずれか一方を備え、さらに、
前記比較元単位のループステップあるいは前記総当り単位のループステップの途中あるいは完了した後のルート情報の集合に完成ルート情報以外のルート情報が含まれる場合には、完成ルート情報のみ抽出する完成ルート情報抽出ステップを備えることがあることを特徴とする、請求項１に記載の全体構造の出力方法。
【請求項３】
前記完成ルート情報集合生成ステップにおいて、前記関連付けられたルート情報が完成ルート情報であるかを確認し、完成ルート情報である場合には前記比較連結処理ステップの対象から除くために、該完成ルート情報を別に保持する完成ルート情報一時保持ステップを備えることを特徴とする請求項２に記載の全体構造の出力方法。
【請求項４】
コンピュータに、請求項１〜３に記載された各ステップをそれぞれ実行させるように機能させることを特徴とする全体構造出力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特許出願に添付される特許請求の範囲に記載された複数の請求項の全体構造を解析し、その構造の把握が容易となるように階層的に出力（表示）するための方法、プログラムや情報処理装置等に関するものである。また、特許請求の範囲のような階層構造を有するようなもの、例えば、実用新案登録出願やＰＣＴ出願、外国の出願の相当する添付書類、その他これらのような階層構造を有するものにも同様に利用できる。
【背景技術】
【０００２】
特許出願に添付される特許請求の範囲に請求項を記載するにあたっては、独立形式請求項（以下、「独立項」という。）や、先に記載されている請求項を引用する引用形式請求項（以下、「引用項」という。）で記載することが認められている。このため、特許請求の範囲は、１又は複数の独立項と引用項が記載されて構成されるのが一般的であるが、一の引用項を一見してもその請求項の直前の関係（以下、「２階層構造」という。）しか把握できない。そして、注目する引用項の内容を知るには、その記載から引用する請求項を調べ、次にその把握した請求項が引用する請求項をさらに調べるということを、独立項まで順に辿ることなどが必要となる。このため、特許請求の範囲に記載される請求項の数が多いほど、また、引用項の数やその累積数が多いほど各請求項の間の引用関係が複雑化するため、２階層構造などの階層構造が累積して構成される特許請求の範囲の全体構造（以下、「クレーム全体構造」という。）が複雑化し、特に引用項に係る発明の引用関係の把握が困難となる。
【０００３】
ところで、上記のような形式で記載された請求項の引用関係などを整理して、一の引用項がいずれの請求項から構成されるのかを知ることは、出願時には審査対象となる客体を明確化し、権利化後には特許権として主張される権利範囲を明確化する上で重要なことである。また、特許請求の範囲の記載漏れや、分割出願時の削除する請求項と原出願に残す請求項の判断、特許権のライセンスや証券化などの特許権の流通などに際して、引用項の内容を把握することは重要である。このように、クレーム全体構造を把握し、請求項の引用関係を知ることは、出願や特許権を迅速、適切に扱う上で重要となっている。
【０００４】
そこで、従来から、クレーム全体構造を把握するにあたって、人手により紙に書き出していた。具体的には、独立項あるいは引用項を特許請求の範囲の記載から判断し、これらの請求項間の関係（関連）を示す線（以下、「接続線」という。）で接続して図に表していた。あるいは、人手による時間的、労力的な負担を小さくするために、コンピュータ（プログラム）を利用して描画（出力）していた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３１７１６４号公報
【特許文献２】特開２００８−２８７７４４号公報
【非特許文献】
【０００６】
【非特許文献１】特許請求項分析支援ソフト  クレームチャート、インターネット、２０１０年６月１５日検索、＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｉｎｐａｔｅｃ．ｃｏ．ｊｐ／ｓｅｒｖｉｃｅ／ｃｃｌ．ｈｔｍ＞
【非特許文献２】新森明宏ら著、「特許請求項における多重多数項引用の検出と書換特許」、情報処理学会論文誌Ｖｏｌ．４９、Ｎｏ．７、ｐｐ．２６９２〜２７０２
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記の従来技術には、下記のような問題点がある。
【０００８】
（１）人手による全体構造図の作成の問題点
人手により図を描いていく場合には、請求項１、２、・・・と順番に調べ、着目している請求項（子）の記載から引用される請求項（親）を判断し、順に記載していくことになる。しかし、各請求項の記載からは直接の親子関係である２階層構造しか分からないため、一つの親に複数の子がある場合には、親の後ろ（下位）や複数の子の間にどの程度のスペースを空けて書き出せば良いか分からない。そして、分からないまま適当に記載すると、より下位の請求項を書くためのスペースが不足する場合がある。この場合には、スペース不足に対処するために、下位の請求項を小さく書く、スペースのある場所に接続線を伸ばして書く、消しゴムなどで修正し上位の請求項から書き直すなどの必要性が生じ、結果として全体構造が見づらくなるという問題がある。
【０００９】
逆に、スペースに大きめの余裕を持って記載していくと、全体構造がスペース一杯に広がることで、コンパクトさに欠けて見ずらくなる。また、紙自体も一定のスペースしかないので結局スペース不足となって、上記と同様の問題が生じる。さらに、全体構造を全て書き出せないなどの問題がある。
【００１０】
（２）コンピュータ（プログラム）による従来技術の問題点
コンピュータを用いた従来技術として、非特許文献１〜２、特許文献１〜２が存在する。しかし、非特許文献１〜２には、出力の結果しか記載されておらず、特許請求の範囲を解析して描画（出力）に至るまでの方法は特に記載されていない。また、図に示される接続線は多くの箇所で折れ曲り、あるいは交差している。このような形式では、請求項数や引用関係が少ない場合にはそれなりに良いかも知れないが、請求項数が多くなり引用関係が複雑になるほど全体構成の把握が困難となることが考えられる。
【００１１】
また、特許文献１には、特許請求の範囲から２階層構造（従属関係情報（特許文献１の図７））を抽出し、これを用いて特許文献１の図１４のような出力をすることが記載されている（特許文献１の第[００８１]〜[００９９]段落参照）。しかし、結果図から全体構造を把握するには、接続点を判断するなど人がその出力表示を解読しながら見る必要がある。このため、解読に習熟するまでは把握が難しく、習熟しても見落としたり見誤ったりするなど間違って把握する可能性があるという問題が考えられる。
【００１２】
一方、特許文献２には、特許文献１のように特許請求の範囲の記載から２階層構造（特許文献２の階層関係管理表（図４））を取得し、これに基づいて特許文献２の図５〜６のように出力することが記載されている（特許文献２の第[００４３]〜[００４４]段落参照）。そして、出力結果の図６については、接続線が折れ曲がりあるいは交差して見えづらく、特許文献１と同様な問題がある。一方、図５の表現形式は従来から人手でも表現されていたものでもあり、分かりやすく好ましい。しかし、特許文献２には２階層構造をどのような方法で処理すれば、図５のように出力できるのか開示されていない。
【００１３】
（３）その他
クレーム全体構造は階層的であることから人手の方法のように引用関係を最後まで順に辿ることを繰り返す方法なども考えられるが、請求項同士は多重に引用されるのが通常であるから、場合によっては出力位置を修正するなどが必要な場合もあり、分岐の判断などアルゴリズムが複雑となる。
【００１４】
そこで、上記のような問題に鑑み、本発明は、特許請求の範囲のような２階層構造を含む情報を解析し、解析結果に基づいてその全体構造を把握が容易な形式で出力するための方法、プログラム、装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記の課題を解決するために、本発明は、情報間の関連および該関連の順序関係を示す階層構造の１又は複数で構成される全体構造の出力方法であって、１又は複数の前記階層構造を含む入力情報を受け取る入力ステップ、該入力情報から１又は複数の前記階層構造を抽出して初期のルート情報の集合を生成するルート情報集合生成ステップ、該ルート情報の集合に基づいて、自己より前に関連する他の情報のない先頭の情報から自己より後に関連する他の情報のない末端の情報に至る１又は複数の情報が関連付けられた前記階層構造である完成ルート情報の、１又は複数で構成される完成ルート情報の集合を生成する完成ルート情報集合生成ステップ、該完成ルート情報の集合から得られる出力制御情報に基づいて全体構造を出力する出力ステップ、を備えることを特徴とする（請求項１、４）。
【００１６】
ここで、前記情報とは、例えば特許請求の範囲に記載された請求項を意味し、階層構造とは２つ、３つ、・・・ｎの情報間の関連を意味する。完成ルートとは、独立項から引用項を順番に経て、もう他の請求項から引用されることのない引用項（以下、「末端項」という。）までの全ての引用関係およびその順番を有するルートを意味する。なお、独立項を引用する請求項がない場合には独立項が末端項でもあり、また、完成ルート、完成していないルートを単にルートと称する。
【００１７】
そして、各請求項には該請求項（子）が引用する請求項（親）との関連およびその順序関係としての引用、被引用の関係（親子関係）が記載されており、親と子の２つの関係としての２階層構造がわかるので、最初にこの２階層分の関係を例えば全て抽出し、初期のルート情報の集合として保持する。つまり、初期のルート情報は、親子関係がその順番とともに表される１又は複数のルートをエントリとするルートの集合であり、該初期のルート情報に基づいて完成ルート情報の集合を生成し、これに基づいてルート間（１の親から分岐する複数の子の間）に必要なスペースや、出力空間全体の範囲などの出力を制御する出力制御情報を得て、出力する。
【００１８】
つまり、本発明は、入力情報である特許請求の範囲などを解析し、出力空間（スペース）のどの位置に請求項番号や接続線を出力するかなどクレーム全体構造を把握できる情報を抽出・生成した上で、請求項番号や接続線を出力するものである。これは、各請求項から分岐する１または複数の引用項を出力するに際して、その分岐する引用項間に必要なスペースを予め知って出力すれば、整然とした統一のある出力が可能であり、かつ、出力位置の修正などが不要となるなどの効果が得られるという着想に基づくものである。そして、この着想を実現するための具体的な手段が、上記の完成ルートの集合を生成し、これに基づいてクレーム全体構造を出力することである。例えば、請求項１から請求項２と４が直接分岐する場合、完成ルートの集合から請求項１と２で構成される２階層構造を含む完成ルートの数を求めることにより、請求項２と４の間に必要なスペースがわかるというように、完成ルート情報の集合に基づいて、ある請求項から分岐する２つのルートの間に必要なスペース求めることができる。
【００１９】
本発明は、より詳細には、前記完成ルート情報集合生成ステップは、前記ルート情報の集合から所定の条件で選択した一のルート情報を比較元ルート情報、１又は複数のルート情報を比較先ルート情報の集合として決定する比較対象決定ステップ、前記比較元ルート情報の一端から把握される前記情報を示す識別情報と、一の前記比較先ルート情報の前記一端とは逆の端である逆端から把握される前記情報を示す識別情報を比較し、該識別情報同士が一致すれば該ルート情報を関連付けることで新たなルート情報を生成する比較連結処理ステップ、該比較連結処理ステップを前記比較元ルート情報と前記比較先ルート情報の集合との間でそれぞれ行う比較元ルート単位の比較連結処理ステップ、該比較元ルート単位の比較連結処理を前記所定の条件を満たす全てのルート情報をそれぞれ比較元ルート情報として行う総当りの比較連結処理ステップを備え、さらに、
前記総当りの比較連結処理ステップの単位で完成ルート情報の集合を生成する総当り単位のループステップであって、総当りの比較連結処理ステップにより生成される前記新たなルート情報を含むルート情報の集合に対して、前記比較連結処理ステップによって関連付けられるルート情報がないことを確認できるまで総当りの比較連結処理ステップを繰り返し行う総当り単位のループステップ、あるいは、
前記比較元ルート単位の比較連結処理ステップの単位で完成ルートの集合を生成する比較元単位のループステップであって、前記比較元ルート単位の比較連結処理ステップによって生成される１又は複数の前記新たなルート情報の集合のそれぞれを比較元ルート情報とし、それぞれの該比較元ルート情報と前記初期のルート情報の集合から決定されたものである前記比較先ルート情報の集合を用いて比較元ルート単位の比較連結処理ステップを行うことを、前記比較連結処理ステップによって関連付けられるルート情報がないことを確認できるまで繰り返し行うことで１又は複数の完成ルート情報を生成する比較元単位のループステップ、のいずれか一方を備え、さらに、
前記比較元単位のループステップあるいは前記総当り単位のループステップの途中あるいは完了した後のルート情報の集合に完成ルート情報以外のルート情報が含まれる場合には、完成ルート情報のみ抽出する完成ルート情報抽出ステップを備えることがあることを特徴とする（請求項２、４）。
【００２０】
ここで、比較元ルートの一端とは例えば直線的なルート情報の右端あるいは左端、逆端とは左端あるいは右端であり、識別情報とは例えば請求項番号であり、関連付けは、例えば両ルートを連結することで行うことを意味する。また、比較元ルート単位の比較連結処理ステップという場合には比較連結処理ステップが含まれ、総当りの比較連結処理ステップという場合には比較元ルート単位の比較連結処理ステップと比較連結処理ステップが含まれる関係にある。
【００２１】
そして、上記の総当り単位のループステップは、入力情報から生成されたルート情報の集合である初期のルート情報の集合から、対象となる全てのルートを比較元ルートとするなどの所定の条件に基づいて選択された比較元ルートのぞれぞれに対して、ルート情報の集合のそれぞれのルートを比較先ルートとして比較連結処理し（総当たりの比較連結処理）、この総当たりの比較連結処理によって、上記の新たなルート情報（連結ルート）、完成ルート情報、連結ができなかったルート情報のいずれかあるいは全部で構成されることになるルートの集合を新たに生成する。そして、この新たなルートの集合に対し、比較対象決定ステップから再度実行して比較元ルート情報、比較先ルート情報を選択し、上記の総当たりの比較連結処理ステップを行うことを繰り返すことでルートの集合自体を更新していき、完成ルート情報の集合を生成する（後述の（３−１）で説明される実施例１）。
【００２２】
このような構成によれば、入力情報から生成されたルート情報の例えば比較元ルートであれば右端、比較先ルートであれば左端というように、ルート情報の片方向のみに対して比較連結処理を行えば良いため、処理が簡易であり、高速な処理が可能となる効果がある。
【００２３】
一方、比較元単位のループステップは、初期のルート情報の集合から所定の条件で比較元ルート情報を選択し、該比較元ルートに対して初期のルートの集合の例えば全てのルートを比較先ルートとして比較連結処理ステップを行う。これによって、該比較元ルートから１又は複数の新たなルート情報の集合が生成されるので、この新たなルート情報の集合のそれぞれのルート情報を比較元ルート情報、初期のルート情報の集合をそれぞれ比較先ルート情報として比較連結処理ステップを総当り的に行う。これを、関連付けられるルート情報がないことを確認できるまで繰り返し行うことで完成ルート情報の集合のうちの、初期のルートの集合から選択された該比較元ルートの階層構造（例えば２階層構造）を含む全ての完成ルート情報が生成できることになる。そして、この比較元ルート単位の比較連結処理を、初期のルート情報のうち所定の条件を満たす全てのルートのそれぞれを比較元ルートとして行うことで（総当りの比較連結処理ステップ）、完成ルート情報の集合を生成することを意味する（後述の（３−２）で説明される実施例２）。
【００２４】
ここで、上記の比較元ルートとして選択されるための所定の条件は、例えば、末端項（末端の情報）を有するルートのみを比較元ルートとして選択し、あるいは、独立項（先頭の情報）を有するルートのみを比較元ルートとして選択することである。このようにすれば、完成ルートは必ず末端項や独立項を含むので、全ての初期のルート情報の集合に対して比較元単位の比較連結処理を行う必要はなく、また比較連結処理は末端項から独立項あるいは独立項から末端項への一方向にのみ行えば良いため、処理が簡易であり高速化が可能である。なお、全てのルートを比較元ルートとして選択しても良いが、この場合は、階層構造の両方向に比較元単位の比較連結処理を行う必要がある。
【００２５】
このような構成によれば、完成ルート情報集合生成ステップにおける比較連結処理の対象となるルートの集合の数が発散することを軽減し、メモリの節約や処理の高速化などが可能となる効果がある。
【００２６】
そして、上記の各ループステップの途中あるいは後に、ルート情報の集合に他のルートに包含される関係にあるルートや重複するルート（以下、「包含ルート」という。）がある場合には、完成ルートのみを抽出し、包含ルートを削除するなどして完成ルートの集合を完成させる。包含ルートの排除処理はループステップが完了した後、すなわちルートの集合の中に完成ルートが全て存在する状態を生成した後に行うのが良く、完成ルートの消失を防ぐためである。そして、この完成ルート情報の集合によってクレーム全体構造を把握できるようになり、その後に完成ルート情報の集合に基づいて出力する。
【００２７】
なお、入力情報は、特許請求の範囲などの全体情報のうち、予め出力したい全体構造に絞って入力しても良いし、入力後に対象となる出力したい部分のみ処理対象として全体構造を出力しても良い。これは、複数の独立項がある場合に特に請求項１に係る全体構造を出力したい場合や、下位の引用項は出力する必要もない場合などの状況を想定したものである。対象の指定は予め指定するよう構成しても良いし、処理中に指定するように構成しても良い。
【００２８】
また、本発明は、前記完成ルート情報集合生成ステップにおいて、前記関連付けられたルート情報が完成ルート情報であるかを確認し、完成ルート情報である場合には前記比較連結処理ステップの対象から除くために、該完成ルート情報を別に保持する完成ルート情報一時保持ステップを備えることを特徴とする（請求項３、４）。
【００２９】
これは、完成ルート情報集合生成ステップの処理過程における比較連結処理によって順次生成されることになる完成ルートを、例えばファイルなどに別に保持しておくことで、比較連結処理の対象から除外することを意味し、これによって比較連結処理の対象となるルートの集合の規模が小さくなり、高速な処理が可能となる。この別に保持する処理は、比較連結処理ステップにより完成ルート情報が生成される毎、比較元ルート単位の比較連結処理ステップの前あるいは後、総当りの比較連結処理ステップの前あるいは後、各ループステップの前あるいは後など、いずれのタイミングで行っても良く、効率を考えて決定すれば良い。
【発明の効果】
【００３０】
本発明により、クレーム全体構造を、把握が容易となる形式で階層的に出力できる。すなわち、出力する対象となるクレームの全体構造を完成ルート情報として把握することで、請求項番号や接続線の位置を把握して出力できるので、整然とした統一のある出力が可能となる。
【００３１】
これによって、人手や従来技術とは異なり、請求項同士の関係を表す接続線を不必要に曲げるなどして出力する必要がなく、見やすく、出力後に出力内容の位置を移動するなどの補正をする必要もない。また、単純な処理の繰り返しにより行うことができるので、簡易で高速な処理が可能である。
【００３２】
以上、本発明は、出願、審査、特許権の評価の際など、クレームなどの全体構造を把握する必要のある、あらゆる場面に活用することで、的確、迅速に階層構造を含む入力情報を取り扱うことができるようになる。
【図面の簡単な説明】
【００３３】
【図１】本発明の処理概要
【図２（ａ）】特許請求の範囲の例
【図２（ｂ）】図２（ａ）対応するクレーム全体構造の例
【図３】２階層構造から生成されるルートリストの例
【図４】請求項毎の直接の引用関係、分岐数、種別を管理する管理情報
【図５】完成ルート情報の集合の生成シーケンス（生成の実施例１）
【図６】更新処理によるルートリストの推移を説明する図
【図７】更新処理完了のルートリスト４の包含関係と完成ルートリストの例
【図８】完成ルート情報の集合の生成シーケンス（生成の実施例２）
【図９】出力処理のフロー概要（出力の実施例１）
【図１０（ａ）】走査による出力処理のフロー概要（前半）（出力の実施例２）
【図１０（ｂ）】走査による出力処理のフロー概要（後半）（出力の実施例２）
【図１１】出力空間の座標位置を例示する図
【図１２】請求項番号の出力順序を表す図
【図１３】システム構成
【図１４】全体処理フロー
【図１５】メイン処理フロー
【図１６】入力データ構造の解析処理フロー
【発明を実施するための形態】
【００３４】
本発明を、特許請求の範囲の全体構造の出力に適用した形態を説明する。本発明は図１に示すように、入力された特許請求の範囲における各請求項の記載から２階層の引用関係（階層構造）を抽出し（ステップ１−１）、これに基づいて初期のルートの集合を生成し（ステップ１−２）、このルートの集合に基づいて独立項から末端項に至る１又は複数の請求項及び順序を含む完成ルートで構成される完成ルートの集合を生成する（ステップ１−３）。そして、この完成ルートの集合に基づいてルート間の出力スペースおよび位置などを把握し、この把握した情報に基づいてクレーム全体構造を出力するものである（ステップ１−４）。
【００３５】
以下に、図２（ａ）のような特許請求の範囲の記載を例として、全体構造を出力するまでの処理を、図１の各ステップと対比しながら説明する。この処理の結果、図２（ｂ）のような表示を出力することになる。
【００３６】
（１）階層構造（引用関係）の抽出（図１のステップ１−１）
図２（ａ）に示す特許請求の範囲の記載例を見ると、請求項１、７にはその他の請求項を引用する旨の記載がないため、請求項１、７は独立項である。また、請求項２は請求項１を引用することが記載されており、請求項１の引用項である。ここで、引用される請求項を親、引用する請求項を子とすると、請求項１には親がなく、請求項２（子）は請求項１を親としていることが分かる。同様にＣ３（"Ｃ"は請求項の略）はＣ２を、Ｃ４はＣ１〜Ｃ３を、Ｃ５はＣ４を、Ｃ６はＣ４〜Ｃ５を、Ｃ８はＣ７をそれぞれ親とすることが分かる。また、Ｃ１とＣ７の独立項の数分の、それぞれの独立項に係るクレーム構造によって、クレーム全体構造が構成されることが分かる。
【００３７】
このように、一つの請求項の記載内容に着目すると、その着目した請求項が他のどの請求項を親に持つか分かる。つまり、各請求項の記載を見れば、自請求項と自請求項が直接引用する請求項の関係が分かり、自請求項を中心とした親子関係（２階層構造）がわかることになる。この２階層構造をまとめたものが図３（ａ）である。
【００３８】
また、逆に、ある請求項がいずれの請求項を子に持つか（引用されるか）もわかる。例えば、着目している請求項の番号が、他の請求項中に記載されているか否かで判断できる。本実施例については請求項１に着目すると、他の請求項である請求項２、４に請求項１が記載されているため、請求項１は請求項２、４を子に持つことが分かる。請求項の子の数は、構造的に見るとその請求項から直接に分岐する分岐数であるから、請求項１からは直接２つの分岐があることとなる。各請求項についての子とその分岐数の関係をまとめると、図４のようになる。なお、末端項は、例えば他の請求項を引用するが、他の請求項から引用されないことを条件に判断ができる。
【００３９】
（２）初期のルート情報の集合の生成（図１のステップ１−２）
図３（ａ）の引用関係を、例えば"−"の記号を用いて連結（関連付け）することでルート情報を生成し、該ルート情報をエントリとしたルートの集合を生成する。そして、ルートの集合を例えばリスト化したもの（以下、「ルートリスト」という。）を、図３（ｂ）に示す。このルートリストが初期のルート情報の集合に該当する。つまり、ルートリストは"１−０−"（Ｎｏ．１）、"２−１−０−"（Ｎｏ．２）、"３−２−"（Ｎｏ．３）、"４−１−０−"
（Ｎｏ．４）、"４−２−"（Ｎｏ．５）、"４−３−"（Ｎｏ．６）、"５−４−"（Ｎｏ．７）、"６−４−"（Ｎｏ．８）、"６−５−"（Ｎｏ．９）、"７−０−"（Ｎｏ．１０）、"８−７−０−"（Ｎｏ．１１）の１１のルートで構成される。独立項にはそれより上位に連結可能な請求項はないので、"０−"の記号を付加して明示（終端）させている。
【００４０】
なお、本例では、階層構造を上記の通り、子、親の順に記載しているが親、子という逆の順序でも良く、この場合は、必要に応じて以下の説明中の左端、右端を逆に読み替えて考えれば良い。また、図３（ｂ）の"２−１−０−"（Ｎｏ．２）、"４−１−０−"（Ｎｏ．４）、"８−７−０−"（Ｎｏ．１１）で示されるルートは３階層まで生成されている。これは、図３（ａ）に示すように請求項１と７は独立項であるため連結できるものはなく、独立項であることを理由に予め"０−"を付加したものである。なお、請求項２が引用項の場合には必ず請求項１のみを引用するから、"３−２−"（Ｎｏ．３）、"４−２−"（Ｎｏ．５）のように請求項２を右端に持つルートに予め"１−０−"を付加して、"３−２−１−０−"、"４−２−１−０−"としておいても良い。これらの２階層ルートに対する前処理は、下記に説明する完成ルートの集合の生成処理での総当たりの比較連結処理などにおいて、ルートリストのエントリ数を減らすことによる高速化を期待して行うものである。このため、上記のような前処理を行わなくても、初期のルートリストの全エントリを２階層構造まで生成しておき、下記に説明する比較連結処理の結果として行われるように構成しても良い。
【００４１】
また、ルートが完成したと判断されるエントリを他の領域や別ファイルなどに一時的に別に保持し、完成ルートの集合の生成処理におけるループ処理の対象から外すよう構成しても良い。この場合には、ルートの右端が"０−"で左端が末端項であるルートをルートが完成したと判断でき、完成ルートの集合の生成処理での各総当たりの比較連結処理などに先立って予め別ファイルに一時的に保持すれば比較連結処理の対象となるエントリ（すなわち、ルート）の数が経るので、メモリの節約やループでの処理の高速化が実現できる。図３（ｂ）の例においては、請求項６と請求項８が末端項であり、"８−７−０−"（Ｎｏ．１１）のルートが完成ルートに該当する。
【００４２】
また、ルートリスト中の"０−"は連結ができないことを示すマークの例示であり、要はそのルートの先に他の請求項がないこと、すなわち、独立項であることが処理において容易に判別できるようになっていれば良い。また、番号間の関連付けに用いた"−"のマークは、これに換えて"＋"、"、"、"・"記号など何でも良く、マークを用いず、請求項番号を格納するメモリ領域を分けて保持するものでの良い。要は、請求項の親子関係の累積がその順序も含めてわかるように関連付けられた構成であれば良い。さらに、末端項に上記の"０−"を付加しても良い。
【００４３】
（３）完成ルートの集合の生成（図１のステップ１−３）
以下に、図５〜８を参照して、完成ルートの集合（完成ルートリスト）の具体的な生成方法を説明する。これらの方法は、前述した全体構造を把握した上で出力するという本発明の思想を実現するための例示であり、完成ルートの集合の生成方法はどのような方法でも良く、生成方法を限定するものではない。完成ルートの集合は、ルートリストに下記の比較連結処理を基本とする処理を繰り返し適用し、ルートリストの各ルートを完成ルートとなる方向に更新することを通して生成する。初期のルートリストを便宜のためにルートリスト１と呼ぶ。
【００４４】
（３−１）完成ルート情報の集合の生成例１
図５に完成ルート情報の集合を生成する実施例を記載する。まず最初に、入力情報から生成された初期のルートの集合から例えば全てなどの所定の条件を満たす１の比較元ルートと、初期のルートの集合の全部あるいは一部を比較先ルートの集合として選択し（ステップ５−１）、この比較元ルートと各比較先ルートを相互にそれぞれ比較し、可能な場合には比較対象のルート同士を連結するなど両ルートを関連付けて新しいルート（連結ルート）を生成（更新）し（ステップ５−２〜５−３）、ここまでの処理を上記の所定の条件を満たすものとして選択された全ての比較元ルートに対して行うことによって、新たなルートの集合を生成する（ステップ５−１〜ステップ５−４）。そして、このようなルート同士の総当たり的な比較連結処理の後あるいは前に、生成される新たな連結ルートがないことを確認するまで繰り返し行う（ステップ５−５でＹＥＳ）。新たな連結ルートが一つでも生成される場合には、これらの連結ルートを含むルートの集合を新たなルートの集合として設定し（ステップ５−６）、この新たなルート集合に対して上記の比較元ルート、比較先ルートの選択（ステップ５−１）から再度行う。新たな連結ルートの生成のないことを確認の後（ステップ５−５でＮＯ）、生成された全てのルートの集合のうちから同一を含め包含関係にあるルートを削除するなどして完成ルートのみ抽出する（ステップ５−７）。これによって、完成ルート情報の集合が生成される。
【００４５】
なお、ステップ５−２とステップ５−３で構成される処理が比較元ルート単位の比較連結処理を意味し、ステップ５−１からステップ５−４までで構成される処理が総当りの比較連結処理を意味し、ステップ５−１からステップ５−６で構成される処理が総当り単位のループステップを意味する。
【００４６】
より詳細には、比較連結処理は、選択された比較元ルート内の例えば親番号（ルートの最も右の番号）を比較元データとして抽出し、比較先ルートの逆側の子番号（ルートの最も左の番号）を比較先データとして抽出し、続いて上記の比較元データと比較先データを比較し、一致すれば連結して新たなルート（連結ルート）を生成する。そして、比較連結処理を上記の比較元ルートに対して、ルートリストの例えば全てのルートを比較先ルートとしてそれぞれ順に選択して行う（比較元単位の比較連結処理）。次に、例えば所定の条件をルートリストの全ルートとすると、この比較元単位の比較連結処理をルートリストの全ルートを順番に比較元ルートとして選択して行い、つまり、ルート同士を総当たり的に比較・連結する（総当たりの比較連結処理）。この処理の課程で連結して生成された連結ルートおよび連結ができなかった比較元ルートを次のルートリストとすることで、新たなルートリストを生成する。
【００４７】
そして、総当りの比較連結処理が終了した時点で、生成された連結ルートが一つでもあれば総当りの比較連結処理をこの新たなルートリストに対して行うことを繰り返し行い、連結されるルートが一つもなければルートリストの更新生成（ステップ５−１〜ステップ５−６）を完了する。なお、比較元単位の比較連結処理では、比較先ルートには比較元ルートを含めなくても良く、当然として比較連結処理において連結できないからである。
【００４８】
また、上記の総当たりの比較連結処理毎に生成される新たなルートリストは、連結ルート、比較元データが"０"であったルートで構成し、完成ルートは別に保持するよう構成しても良い。これらは、ルートリストのエントリ数が少ない方が処理が早くなるので、ルートの消失が起こらない範囲でエントリ数を少なくするのが趣旨であり、その他の方法で少なくしても良い。逆に、新たなルートリストは、前のルートリストに連結ルートを追加して生成するなど、冗長にルートを保持しても良い。
【００４９】
上記の総当りの比較連結処理を、図３（ｂ）に示すルートリスト１のＮｏ．１１、１０、・・・１の順で比較元ルートとして選択し、ルートリスト１の全てを比較先ルートとして選択する場合を例に具体的に説明する。Ｎｏ．１１のルートは、右端が"０−"で左端が末端項なので完成ルートであり、Ｎｏ．１０は右端が"０−"であるため、これらを比較元ルートとし、比較先ルートと比較連結処理をしても結果として連結されない。
【００５０】
引き続き、"６−５−"（Ｎｏ．９）を選択し、その右端番号の５を比較元データとして抽出する。次に、比較先ルートとしてＮｏ．１１、１０、９、８、・・・１の順に選択していくが、Ｎｏ．１１、１０、９、８の左端番号はそれぞれ８、７、６、６であり、この左端番号を比較先データとして比較元データの５と比較すると一致しないので連結しない。次にＮｏ．７で示すルートの左端番号５を比較先データとして、比較元データの５と比較すると一致するので連結し、"６−５−４−"という連結ルートを生成して次のルートリストとなるルートリスト２に加える。引き続き、Ｎｏ．６、５、・・・、１のルートを順に比較先ルートとして選択して同様に比較先データを抽出し、比較元データである５と比較しても一致しない。なお、比較先ルートとして、比較元ルート（この場合はＮｏ．９）を選択しなくても良く、この場合、当然一致しないからであることは先に述べた通りである。
【００５１】
次に、Ｎｏ．８で示すルート"６−４−"を比較元ルートとして選択すると、比較元データは４である。次に、比較先データとしてＮｏ．１１、１０、９・・・１というように順に選択していくと、Ｎｏ．６、５、４の左端番号（比較先データ）は４であるので、比較連結処理によって、それぞれ"６−４−３−"、"６−４−２−"、"６−４−１−０−"の連結ルートが生成されることになり、それ以外の比較先ルートの比較先データとは一致しないので生成されない。
【００５２】
このような要領で、比較元ルートをＮｏ．１１、１０、・・・、１と順に選択し、該選択毎にその他の全てのルートを比較先ルートとして総当たり的に比較連結処理を行うことで、新たなルートリストを作る。なお、"０−"が比較元データとして選択された場合には、連結可能なルートがないのは明らかなので比較連結処理をスキップし、次のルートを比較元ルートとして高速化を図ることもできる。このような処理により、ルートリスト１（図３（ｂ））を元に図６（ａ）の新たなルートリスト（ルートリスト２）を得る。ルートリストの中のルートの順番は説明のためのものであり、順番を限定するものではない。
【００５３】
ここで、各比較元ルートの右端が"０−"のものは連結できるルートがないことは明らかであるが、ルートリストから削除することなく新たなルートリストに加えることが重要である。後に生成される新たなルートリストでの比較連結処理で比較先ルートとして連結される可能性があるからであり、階層構造が消失することを防ぐためである。ルートリスト１（図３（ｂ））の場合は、例えば、"１−０−"、"２−１−０−"、"４−１−０−"、"７−０−"、"８−７−０−"のルートが、このような理由で図６（ａ）のルートリスト２に加えられている。例えば、仮に、ルートリスト３に自ルートが比較元ルートとした場合に関連付けがなされないルートである"２−１−０−"が加えられていない場合、ルートリスト３を対象とした総当りの比較連結処理において、"６−５−４−３−２−"（Ｎｏ．１）のルートが完成しなくなってしまうことが分かる。
【００５４】
また、完成ルートを別に保持しておく場合には、例えばルートリスト２には、"６−４−１−０−"（Ｎｏ．４）、"８−７−０−"（Ｎｏ．１５）は含まれないことになる。また、前述の前処理を行っていれば、その前処理の内容に応じて"２−１−０−"（Ｎｏ．１２）、"１−０−"（Ｎｏ．１３）、"７−０−"（Ｎｏ．１４）は特にルートリストに含まれる必要はない。
【００５５】
上記の通り、ルートリスト１を対象に総当たりの比較連結処理を行った結果、連結できたルートは１以上であったので、引き続きルートリスト２（図６（ａ））をルートの集合として、ルートリスト１で行ったのと同様の総当たりの比較連結処理を行いルートリスト３（図６（ｂ））を得る。その結果、連結できたルートは１以上であったので、ルートリスト３を対象に同様の総当たりの比較連結処理をすることでルートリスト４（図６（ｃ））を得る。なお、新たなルートリストをルートの集合として総当りの比較連結処理を行うかは、新たなルートリストの右端が全て“０−”であるか否かで判断しても良い。
【００５６】
ルートリスト４の各ルートには全て右端に"０−"が付加されており、比較元の親と比較先の子を比較してもさらに連結することはできない状態になっている。このため、ルートリスト４を対象に総当りの比較連結処理を行っても連結ルートは一つもない。よって、ルートリストの更新生成はここで完了する。あるいは、このルートリスト４に対する総当りの比較連結処理に先立って、ルートリスト４の各ルートには全て右端に"０−"が付加されていることを確認できれば、ルートリストの更新生成を完了するとしても良い。要は、ルートリスト４の各ルートから連結ルートができないことを確認して完了すれば良い。なお、この状態では、図６（ｃ）からわかるように独立項から個々の末端項までの全ルートが、包含関係にあるルートを有しながらもルートリスト４に含まれていることになっている。
【００５７】
（包含ルートの削除処理（図５のステップ５−７））
続いて、更新生成が完了したルートリスト（本例ではルートリスト４）から、完成ルートのみからなる集合を生成する処理を行う。なぜなら、上記のように、更新生成が完了したルートリストは完成ルートに包含されるルートを含む場合があり、これらの包含ルートを取り除いた完成ルートの集合を先に生成しておくことで、請求項番号や接続線の出力位置の判断を、容易に正しく行えるようになるからである。
【００５８】
なお、この包含ルートの削除処理は必要に応じて行うものであり、生成された完成ルートは別に取っておくような場合などであって、完成ルートの集合に包含ルートがないことが明らかな場合にまで実行する必要はない。
【００５９】
ルートリスト４の例でいうと、例えば"６−５−４−１−０−"（Ｎｏ．３）は、"５−４−１−０−"（Ｎｏ．９）、"４−１−０−"（Ｎｏ．１２）、"１−０−"（Ｎｏ．１５）のルートを包含していることがわかる。このような関係を説明のためルートリスト４に併記する（図７（ａ））。そして、包含されるルートを削除あるいは完成ルートのみ抽出して生成したルートリストが、出力処理に用いるルートリスト（完成ルートリスト）である（図７（ｂ））。すなわち、完成ルートリストは、"６−５−４−３−２−１"（Ｎｏ．１）、"６−５−４−２−１"（Ｎｏ．２）、"６−５−４−１"（Ｎｏ．３）、"６−４−３−２−１"
（Ｎｏ．４）、"６−４−２−１"（Ｎｏ．５）、"６−４−１"（Ｎｏ．６）、"８−７"（Ｎｏ．７）の７つのエントリ（ルート）で構成される。なお、上記の通り、"０−"は専らプログラム処理に利用するものであって表示する必要がないため、削除してある。
【００６０】
そして、この完成ルートリストにより、ある請求項から分岐する任意の２つのルートの間に、どの程度のスペースを設ける必要があるかを求めることができる。例えば、請求項１は、図４の通り請求項２と請求項４の２つの引用項を有するから、"１−２−・・・"というルートと"１−４−・・・"というルートの分岐があることになり、この２つの分岐間に必要なスペースを求める場合を考える。完成ルートリストを見ると、"１−２−"を含むルートは４つあるので、この４つのルートを出力する分のスペースが、"１−２−・・・"のルートと"１−４−・・・"のルートの間に必要となることが分かる。
【００６１】
（３−２）完成ルート情報の集合の生成例２
図８に完成ルート情報の集合を生成する実施例２を記載する。簡単に実施例１との違いを説明すると、実施例１はルートリスト１の全エントリを並行に処理していくのに対し、本実施例２ではルートリスト１の各エントリ毎にそのルートを発展させることで完成ルートを生成する点が異なる。また、実施例１では更新されたルートリストから比較元ルート、比較先ルートを選択するのに対し、実施例２では初期の比較元ルートや、比較先ルートの集合はルートリスト１から選択する点でも異なる。具体的な処理を以下に説明する。
【００６２】
本実施例２では、初期のルートの集合（ルートリスト１）から所定の条件を満たす１の初期の比較元ルートと、初期のルートの集合の全部あるいは一部を比較先ルートの集合として選択する（ステップ８−１）。次に、比較元ルートをこの時点で空である連結ルートの集合に含める（ステップ８−２）。これは、初期の１の比較元ルートから１又は複数の完成ルートが生成されることを考慮したものであり、この時点での連結ルートの集合には初期の比較元ルートしかなく、プログラム上の配列変数のようなものと理解すると良い。
【００６３】
次に、この連結ルートの集合から１のルートを比較元ルートとして選択し（ステップ８−３）、ルートリスト１のルートをそれぞれ比較先ルートとして比較連結処理を実行し（ステップ８−４〜ステップ８−５）、この処理を連結ルートの集合の全てのルートを比較元ルートとして行う（ステップ８−６）。このような比較元ルート単位の比較連結処理を、該処理の後あるいは前に、生成される新たな連結ルートがないことを確認するまで繰り返し行う（ステップ８−７でＹＥＳ）。新たな連結ルートが一つでも生成される場合には、これらの連結ルートを含むルートの集合を新たな連結ルートの集合として設定し（ステップ８−６）、再度この更新された連結ルートの集合からそれぞれ比較元ルートを選択する（ステップ８−３）ことから再度実行する。一方、新たな連結ルートの生成ないことを確認すると（ステップ８−７でＹＥＳ）、初期のルートの集合（ルートリスト１）から既に選択したルート以外の所定の条件を満たす１の初期の比較元ルートと比較先ルートの集合を選択するところ（ステップ８−１）から実行する。そして、初期の比較元ルートから所定の条件を満たす全てのルートに対して上記の処理（ステップ８−１〜ステップ８−８）を実行した後に（ステップ８−９でＹＥＳ）、全てのルートの集合のうちから同一を含め包含関係にあるルートを削除するなどして完成ルートのみ抽出することにより完成ルートリストが生成される（ステップ８−１０）。包含ルートの削除処理は実施例１と同じである。
【００６４】
なお、ステップ８−３〜ステップ８−６で構成される処理が比較元ルート単位の比較連結処理を意味し、ステップ８−３からステップ８−８までで構成される処理が比較元ルート単位のループステップを意味し、ステップ８−１からステップ８−９で構成される処理が総当りの比較連結処理を意味する。
【００６５】
ここで、上記の所定の条件とは、ルートリスト１の中の各ルートのうち末端項を含むルート、あるいは独立項を含むルートを比較元ルートとして選択することである。これは、生成すべき完成ルートは必ず末端項と独立項を含むため、これらのいずれかを含むルートを初期の比較元ルートとして発展させていけば、ルートの一端のみを比較のために確認するのみで、初期に比較元ルートとして選択した階層構造を含む全ての完成ルートが得られるためである。また、初期の比較元ルートとして選択すべきルート数が減るため、処理時間が短縮できる。
【００６６】
より詳細には、所定の条件を末端項を含むルートとした場合、まず最初にルートリスト１から末端項を含むルートを探して初期の比較元ルートとして選択する。次に、初期の比較元ルートに対して、ルートリスト１の全てのルートを比較先ルートとしてそれぞれ比較連結処理を行う。これによって、その初期の比較元ルートから１又は複数の連結ルートが新たに生成されることになる。次に、この新たな連結ルートの集合の各ルート（比較元ルート）に対し、ルートリスト１の全ルートを比較先ルートとしてそれぞれ比較連結処理を行って各ルートを発展更新させていくことを、連結ルートの集合のルートの右端が全て"０−"となって連結できるルートがなくなるまで繰り返し行う（比較元ルート単位の比較連結処理）。そして、ルートリスト１の中の末端項を含む全てのルートをそれぞれ初期の比較元ルートとして、各初期の比較元ルートに対してルートリスト１のルートのそれぞれを比較先ルートとして上記の処理（比較元ルート単位の比較連結処理）を行う（総当りの比較連結処理）。このように処理することで、完成ルートリストを生成する。
【００６７】
なお、所定の条件として、ルートリスト１の全てのルートをそれぞれ比較元ルートとしても良い。この場合は、ルートリスト１から選択された初期の比較元ルートの右端に対して比較元ルート単位のループステップを、連結ルートの全ての各比較元ルートの右端が"０−"になるまで、ルートリスト１を比較先ルートとして繰り返し行い、ルートの右端を完成させる。次に、この右端が完成した連結ルートの集合の左端を完成させるために、これらの各連結ルートの左端を比較元データとし、比較元データが全て末端項になるまで、同様に比較元ルート単位のループステップを行う。このような処理によって、完成ルートの集合を生成することになる。つまり、ルートリスト１の各ルートに対し、ルートの両方向からルートを生成更新していく。
【００６８】
本実施例２の方法は、ルートリスト１の各ルート毎に完成ルートに発展させていくので、上記の実施形態に比べてルートリストのエントリ数が発散することがなく、メモリの節約などが可能となるという効果がある。また、末端項あるいは独立項を含むことを比較元ルートの選択の条件とすれば、処理が簡易で短時間で実行できる効果がある。
【００６９】
なお、各初期のルートに基づいて、それぞれ１又は複数の完成ルートを生成するため、比較元ルート単位の比較連結処理の単位で包含ルートの排除を行っても良い。なお、完成ルートを別ファイルに格納しておくことなど、実施例１で記載した同様のオプションを必要に応じて適用することができる。
【００７０】
（４）出力処理（図１のステップ１−４）
次に、完成ルートリストを用いて、クレーム全体構造を階層的に出力する。この出力処理は、出力の際に完成ルートリストに基づいてルート間のスペース（行間など）などの出力を制御するための情報を取得し、そのスペース分の出力空間を移動するなどして出力する処理である。なお、図９〜１２を参照して具体的に説明するが、これらの方法は、前述の全体構造を把握した上で出力するという本発明の思想を実現するため出力方法の例示であり、出力処理はどのような方法でも良く、出力方法を限定するものではない。
【００７１】
（４−１）出力処理の実施例１
図９に完成ルート情報の集合を生成する実施例を記載する。本実施例は、図９に示すように、特許請求の範囲の独立項を最初に出力し（ステップ９−１）、次に、この独立項を親をとして、その直接の１又は複数の引用項を、完成ルートリストに基づいて求めた引用項間に必要なスペース分だけ出力空間を移動した位置に順番に出力する（ステップ９−２）。次にこの出力済みの各引用項を親として、その直接の１又は複数の引用項（子）を同様に必要なスペースを求めながら出力していく、という動作を末端項を出力するまで、言い換えると全ての親に子がなくなるまで繰り返し行うことによって（ステップ９−３〜ステップ９−４）、クレーム全体構造を出力する処理である。子である引用項が２以上ある場合に、その出力順序は任意である。図２（ｂ）には、請求項番号の小さい方から順に、全ての子が同一列となるように出力する例を示してある。
【００７２】
出力（描画）の形式は見やすいようであればどのような形態でも良いが、表計算ソフトやＨＴＭＬの表のように出力空間を行列形式で管理し、このマトリクス上に出力する場合を例に説明する。マトリクスの１単位をセルと称すと、マトリクスは縦と横にある長さを持つセル（セルの大きさは全て同じでなくても良い）の集まりである。そして、図１１に説明のために示すように、セル単位にマトリクス上の位置座標を管理するが、原点からの距離（μｍ、ｍｍ、ｃｍなど）を単位として位置座標で管理しても良い。セル単位の座標を（行、列）、すなわち（ｘ、ｙ）形式で表すことにすると、クレーム全体構造の出力空間であるマトリクスは座標（０、０）が原点であり、原点から下方向、右方向がそれぞれ正の値となる。また、請求項番号および接続線のそれぞれの出力は、セル単位に行うものとして説明する。
【００７３】
また、請求項を「Ｃ」（ｃｌａｉｍの略）と表示することにすると、特許請求の範囲に最初に記載される請求項１を表すＣ１の出力位置を原点とするが、マトリクス上に出願番号、公開番号などのユーザに伝える必要のある情報を出力（表示）するスペースを設ける場合には、マトリクス上の実際の原点からＣ１の原点位置を管理するために、行と列方向にオフセット値を設けて管理すると良い。なお、Ｃに代えて"請求項"などと出力しても良く、請求項番号のみ出力しても良い。
【００７４】
（特許請求の範囲に独立項が一つある場合の出力方法の説明）
以下、図２（ａ）の特許請求の範囲の内容を例に説明を行う。まず最初に、簡単のためにＣ１に係る階層構造である請求項１〜６のみを対象として出力処理を説明する。なお、図１１を参照すると理解に良い。
【００７５】
独立項である請求項１は、クレーム全体構造を出力するスペースの任意の場所に書き出せるので、Ｃ１を任意のセルに出力でき、これを原点とする。その後に、Ｃ１を親とする直接の引用項（子）を出力する為に、まずはＣ１の出力位置（原点）から１セル右に移動し、分岐を表すための適切な接続線を判断してその位置に出力する。本例においては、Ｃ１はＣ２とＣ４の２つの子を持ち、２以上の子を持つので、Ｃ１から複数の分岐があると判断できる（図４）。つまり、Ｃ１からは、Ｃ１→Ｃ２、Ｃ１→Ｃ４という階層構造を含む２つのルートがあることがわかるので、横と下に接続がある旨を示す接続線（┬）を出力する。その後、さらに右方向に１セルだけ移動し、その位置である座標（０、２）にＣ２を出力する。Ｃ２とＣ４のうちＣ２を先に出力したのは、Ｃ２の方がＣ４よりも請求項の番号が小さいためである。
【００７６】
ここで、クレーム間を接続する接続線は、図１１に例示されているように「─」、「┬」、「│」、「├」、「└」など引用関係（階層構造）に応じた種類があるが、各請求項からの分岐数は図４のように把握できるので、適切に選ぶことができる。本例においては、例えば、Ｃ１には複数の子があるのでＣ１とＣ２の間は「┬」で接続し、Ｃ３からの分岐数は１なのでＣ３とＣ４を「─」で接続する。また、Ｃ２とＣ４の間は下記に説明する通り例えば８行分のスペースが必要であるため、最初と最後以外は「│」で接続し、最後に「└」を用いる。なお、最初は上述の通り、「┬」である。仮に、親に対して子が３つある場合には、一番目の子は「┬」で接続し、二に番目の子は「├」で接続し、三番目の子は「└」で接続し、子の間は「│」で接続することになる。
【００７７】
次に、出力済みの引用項番号以外の番号のうち最も小さい引用項番号を出力する。本例においてはＣ４を出力する。ここで、Ｃ２とＣ４は同じ親をもつから同じ列に出力するが、仮にＣ４をＣ２からどの程度のスペース（行数）を開けて良いかわからずにＣ４を適当な位置に出力してしまうと、Ｃ１−Ｃ２を含むルートの数がＣ２とＣ４間の適当に設けられたスペースを越えた場合には、スペースが不足することにより出力できなくなる可能性がある。そして、この状況に対処するために、あとからこのＣ４の位置を修正し、表示を小さくし、あるいは、接続線をマトリクス上のスペースのあるところまで伸ばして出力するなどの特別な処理を行う必要が生じるなど、処理が複雑化してしまう。また、この状況に対処するために十分な余裕をもってＣ４を出力すると、逆にスペースが大きすぎるために出力空間を浪費してしまい、全体像が把握しずらく、また、紙に印刷する場合には紙の浪費となるなどの問題が生じてしまう。
【００７８】
そこで、前述しているように、Ｃ１→Ｃ２、Ｃ１→Ｃ４と繋がるルートの間に必要なスペース（行数）を完成ルートリストに基づいて取得することで、上記の問題を解決する。すなわち、完成ルートリストを見るとＣ１−Ｃ２を含むルートはＮｏ．１、２、４、５の４ルートあるので、出力済みの"Ｃ１┬Ｃ２"のＣ２以降に４つのルート（分岐）があることが分かる。言い換えると、Ｃ１−Ｃ２を含む４つのルートが、Ｃ１−Ｃ４を含むルートが出力される位置より上に存在することになる。このため、Ｃ４を、出力したＣ２の行も含めて４つのルートが出力できる間隔分のスペース（行）を空けた位置であって、Ｃ２と同列の下方（Ｘ方向）に出力する。この処理によって、ルート間の空間として最適なスペースを設定でき、上述の問題が解決できる。
【００７９】
また、クレーム全体構造を見やすくするために、例えばルートとルートの間を１行分（任意の行数で良い。）だけ空けるようにする場合、Ｃ１−Ｃ２を含むルートは４つあるため、"Ｃ１┬Ｃ２"の出力行から８行目（＝４ルート×２）にＣ４を上記のＣ２と同一列に出力しても良い。つまり、座標（８、２）で示される位置である（図１１参照）。
【００８０】
また、複数の子の分岐構造を表す出力線は、子の出力位置へ移動するときに出力すると良い。本例では、Ｃ１とＣ２の間の接続線は出力済みであるから、この出力済みの出力線の位置と同一列であって１セル下から、出力済みの構造とＣ４を接続する「│」と「└」を出力する。仮に、Ｃ１に、Ｃ２、Ｃ４以外の他の引用項がある場合には、Ｃ４の出力後に同様にスペースを求めて移動して出力することになる。
【００８１】
次に、上記で出力が済んだＣ２、Ｃ４を新たな親として、この親の子をそれぞれ出力する。親に複数の子がある場合には完成ルートリストに基づいてスペースを求めることは上述の通りである。このため、座標（０、２）に出力済みのＣ２を親とした場合には、子がＣ３とＣ４の２つがあり、子Ｃ３が座標（０、４）に、子Ｃ４が座標（４、４）に出力される。"Ｃ１−Ｃ２−Ｃ３"を含むルートは、完成ルートリストから２ルートであることが分かるので、Ｃ３から４行目（＝２ルート×２）にＣ４を出力するためである。
【００８２】
一方、座標（８、２）に出力済みのＣ４を親とした場合には、子Ｃ５が座標（８、４）に、子Ｃ６が座標（１０、４）に出力される。次に、上記の親Ｃ２の子であるＣ３とＣ４、親Ｃ４の子であるＣ５、Ｃ６を新たな親として、その直接の引用項である子を出力する。親Ｃ３は子が一つであり、子Ｃ４が座標（０、６）に出力され、親Ｃ４からは子Ｃ５、Ｃ６がそれぞれ座標（４、６）、（６、６）に出力され、親Ｃ５からは子Ｃ６が座標（８、６）に出力され、親Ｃ６は末端項であるため子は出力されない。
【００８３】
次に、直前に出力されたこれらの子を新たな親とすると、座標（０、６）の親Ｃ４からは子Ｃ５、Ｃ６がそれぞれ座標（０、８）、（２、８）に出力され、座標（４、６）の親Ｃ５から子Ｃ６が座標（４、８）に出力され、残りの２つの親Ｃ６は末端項であるため、子は出力されない。次に同様に直前に出力された子を新たな親とすると、座標（０、８）の親Ｃ５から子Ｃ６が座標（０、１０）に出力され、残りの２つの親Ｃ６は末端項であるため、子は出力されない。次に直前に出力された子を親とすると、座標（０、１０）の親Ｃ６は末端項であるため子は出力されず、他に親はないため処理が完了する。なお、この新たな親の座標は子として出力されたときに記憶し、新たな親からの子を出力する時にその記憶している座標位置に戻って子の出力を行えば良い。上記なような処理を繰り返し行い、末端項まで行って出力する子がなくなるまで行うことで、クレーム構造全体が階層的に出力できることになる。
【００８４】
（特許請求の範囲に複数の独立項がある場合の出力方法の説明）
続いて、特許請求の範囲に複数の独立項が存在する場合を説明するが、独立項が一つの場合と基本的には同じである。出力済みの独立項以外の他の独立項を出力する場合も同様に完成ルートリストに基づいてスペースを求める。すなわち、最初に完成ルートリストから他の独立項のクレーム構造の一つ上方に位置する独立項を含むルートの数をカウントし、該独立項のためにその分のスペースを空けて、該他の独立項を出力する。さらに、見やすくするため、独立項に係るクレーム構造の間は２行空けるようにする場合には、その求めたスペースに２行を足した分を空けた行であって、Ｃ１などの他の独立項と同じ列座標に独立項を出力する。
【００８５】
本例では、Ｃ１とＣ７が独立項であり、Ｃ７を出力するのに際して、Ｃ１が一つ上方に位置する独立項である。そこで、完成ルートリストを参照すると、Ｃ７の一つ上方であるＣ１を含むルートは６つあり、ルート間は１行空け、独立項間の階層構造間は２行空けるとすると、最終のルートの下にはスペースは必要ないから、他の独立項であるＣ７に係る構造のためにＣ１から１３行（＝６ルート×２−１＋２）目のあって、Ｃ１と同じ列に独立項を出力する。つまり、図１１に示すように座標（１３、０）の位置にＣ７を出力する。
【００８６】
（４−２）出力処理の実施例２
上記のような出力済みの番号から階層構造を出力していく処理は、出力位置を記憶するのに代えて、マトリクス上の全セルを順に走査することによって行っても良い。すなわち、独立項を出力した後にマトリクス全体の走査を開始し、走査の過程で請求項番号が見つかればその番号を親とする子を出力することにより実現する。この走査処理は、原点から座標の行位置を増加更新、すなわち行方向（Ｘ方向）に移動しながら請求項番号を探し、最終行まで移動した後に座標の列位置を増加更新、すなわち列方向（Ｙ方向）に移動して、再度行方向を移動しながら請求項番号を探すという動作を最終列まで行うことを意味する。あるいは、原点から列方向（Ｙ方向）に移動しながら請求項番号を探し、最終列まで移動した後に行を移動（Ｘ方向に移動）して、再度列方向を移動しながら請求項番号を探すという動作を最終行まで行うことを意味する。このマトリクス全体についての走査を行うことで、全ての請求項について分岐構造を出力することができる。
【００８７】
なお、上述した複数の独立項を出力する場合、上記の他の独立項に関する構造を出力するタイミングはＣ１に関連する階層構造を全て出力した後でも良いし、Ｃ１を出力した後に他の独立項を順に全て出力した後に走査処理を行うようにしても良い。要は全体的な処理効率の観点からそのタイミングを決めれば良い。つまり、本例では、Ｃ１およびＣ１に関する階層構造を全て出力した後に、Ｃ７およびＣ７に関する階層構造を出力しても良く、Ｃ１、Ｃ７を出力し、その後にそれぞれの階層構造を並行して出力しても良い。
【００８８】
以下に、出力空間の走査により、複数の独立項を並行して出力する場合を図１０を参照して説明する。各独立項に係る階層構造を並行して出力するために、まず最初に独立項のみ完成ルートリストに基づいてスペースを求めて全て出力する（ステップ１０−１）。この処理は請求項１から順に独立項を探し、独立項が見つかるとその独立項を出力する位置の上方に必要なスペースを完成ルートリストに基づいて求め、そのスペースを空けた位置に独立項を出力する。なお、独立項が請求項１の場合は原点であるからスペースを求める必要はない。その後、原点（Ｃ１の出力位置）に戻る（ステップ１０−２）。
【００８９】
次に、原点から行方向（Ｘ方向）に出力内容を走査し（ステップ１０−３）、請求項番号が見つかれば、その座標を走査の再開のための再開座標位置として記憶し、その番号の引用構造を完成ルートリストに基づいてスペースを求めて出力する（ステップ１０−４）。その後、再開座標位置に戻り、例えば１セルだけ行方向に移動した位置から走査を再開し（ステップ１０−５）、その列の走査が終わらなければ当該列を引き続き走査し（ステップ１０−６でＮＯ）、終われば隣の列に移動して列の走査を繰り返し（ステップ１０−６でＹＥＳ、１０−７でＮＯ）、最終列の最終行まで走査した時点で終了する（ステップ１０−７でＹＥＳ）。なお、接続線も１セルに出力する場合には、接続線を出力する列に請求項番号がないことは明らかであるため、処理の効率化のため列方向（Ｙ方向）に２セル移動しても良い。また、発見した請求項についての子を全て出力した後に、そのセルの行の位置を記憶しておき、走査の再開は走査再開座標の列であってこの記憶した行位置から行ってもよい。走査中の列のその記憶した行位置までは、請求項番号がないことは明らかなためである。
【００９０】
本例においては、原点（０、０）にＣ１を出力し、同一列の行間を１３（＝２×６ルート−１＋２）行目である（１３、０）にＣ７を出力する。その後に、原点（０、０）に戻ってから列と行の走査を開始すると、まずは原点にＣ１を見つけるので、Ｃ１を親とするＣ２、Ｃ４を出力する。つまり、座標（０、２）の位置にＣ２を出力し、（８、２）の位置にＣ４を出力する。続いて、座標（１、０）あるいは（９、０）に戻り走査を再開すると、座標（１３、０）の位置にＣ７を見つけるので、Ｃ７を親とするＣ８を座標（１３、２）に出力する。
【００９１】
最終行まで走査した後、列方向（Ｙ方向）に移動することで座標（０、１）あるいは（０、２）に移動して再度列方向の走査を開始すると、次に出力済みのＣ２、Ｃ４、Ｃ８がこの順に見つかるので、それぞれを親とする子の階層構造を順次出力する。これを最終行まで繰り返すことで、クレーム全体構造の出力が完成する。すなわち、図１２に示すような（１）〜（１７）の順番で、クレーム全体構造が出力されることになる。
【００９２】
ここで、クレーム全体構造の出力空間であるマトリクスとして必要な行数および列数も、完成ルートリストに基づいて求めることができる。すなわち、完成ルートリストには全てのルートが記載されているのでそのエントリの数に基づいて行数を決めればよく、また、完成ルートリストのうち最も長いルートが記載されたルートに基づいて列数を決める。
【００９３】
本実施例の場合には、出力空間として必要な行数は、完成ルートリストのエントリ数は7なのでルート間を１行空けるとすれば、独立項が２であるため、１４（＝７×２＋２−１×２）行があればよい。最後の徐算は各請求項に係る構造の最終のルートは一行あければよいことによる。また、必要な列数は、完成ルートリスト中の最も長いルートはＮｏ．１の"６−５−４−３−２−１"なので、接続線の出力に１セル要する場合、合計１１（＝６×２−１）列分の出力空間を用意すればよいことが分かる。このように、完成ルートリストに基づいて予め出力空間の大きさも求めることができるため、走査する空間（領域）がわかり、メモリの節約、処理の高速化などが可能である。
【００９４】
一方、独立項に係る構造毎に出力する場合には、着目している独立項に関する階層構造に必要な行数は同様に完成ルートリストから分かるので、その範囲の行座標まで先に走査し、独立項に関する構造間に必要な行数を空けたところから、次の独立項に関する階層構造に必要な行数として求めた範囲までを走査処理の対象とすることで、同様に出力が可能である。
【００９５】
あるいは、基本的な出力処理は同じだが、走査処理の向きを変えても良い。すなわち、まずはＣ１を原点に出力する。その後、原点から順に列方向（Ｙ方向）に走査し、最終列まで走査すると、次の行に移動して走査を続け、最終行の最終列まで走査すると処理を完了する。走査の際に請求項番号が見つかれば、上記と同様に分岐構造を出力する。この場合は、Ｃ１が最初に見つかるためＣ１を親とした子であるＣ２、Ｃ４が出力され、走査再開座標に戻って走査を再開すると次に子として出力されたＣ２が見つかるので、Ｃ２を親として子のＣ３、Ｃ４が出力されるといった具合に出力がなされていくことになる。そして、Ｃ１に係る構造が全て出力されると、今度はそれ以外の他の独立項の構造を出力し、これを繰り返すことでクレーム全体構造を完成させる。
【００９６】
なお、独立項からの引用項を出力する場合に、その直接の引用項のみならず、該独立項と直接の引用項である子を含む完成ルートを先に出力し、その後に走査し、請求項番号が見つかる度に、その番号を親とする子であってまだ出力されていない子を含むルート全体を出力するようにしても良い。
【００９７】
上記の実施例１〜２に説明したような方法により、接続線が不必要に交差させる必要もなく、出力後に位置を修正するなどの複雑な処理を不要とし、直感的に分かりやすいクレーム全体構成を出力することができる。
【００９８】
さらに、出力処理は、単純なループ構造の中で繰り返し同一の処理を行うという単純な処理構造により、特許請求の範囲の全体構成を出力することができる。
【００９９】
（５）システム構成
以上の通り、本発明に特徴的な処理方法は説明したので、これより以下は、全体のシステムについて簡単に説明する。本システムは図１３に例示されるように、ＣＰＵなどの演算手段、メモリ、ハードディスクなどの記憶手段、キーボードやマウス、通信回線等の入力手段、ディスプレイやプリンタなどの出力手段、メインメモリなどの一時記憶手段により構成され、これらの各手段が相互に連携することによって、本発明を実現する。このようなハード構成は、デスクトップコンピュータ、ラップトップコンピュータなど周知であり、コンピュータであれば良い。また、ソフトウェアプログラムを主に想定しているが、本発明はロジック回路などのハードウェアとして構成しても良い。各手段は一つの装置上に実現しても良いし、例えば記憶手段をＤＢとして他の装置とするなど、一つまたは複数の手段を分散環境で実現しても良い。
【０１００】
また、一時記憶手段には本発明の処理を制御する、例えば階層情報抽出部（モジュール、機能）、初期ルート集合生成部、完成ルート集合生成部、階層構造出力部があり、それぞれ上述の図１の処理に対応して説明した（１）〜（４）の処理を担当する。なお、モジュール構成は管理のし易いように分割すれば良く上記の構成に限定されない。これらの機能を有するプログラムは、記憶手段、ＡＳＰ（application service provider）やＷｅｂサーバなどに保存されており、そこから、一時記憶手段にロードされても良い。
【０１０１】
そして、上記のような構成において、記憶手段などからクレーム情報、制御情報を入力（インプット）し、各機能部や手段が連携することで、結果物であるクレーム全体構造を出力（アウトプット）する。
【０１０２】
（６）プログラムによる処理フローの実施例
以下、図１４〜図１６を参照してプログラムによる処理フローを説明する。図１４は全体処理フローを説明する図であり、処理の実行が指示されることにより、出力（描画）すべき特許請求の範囲の情報（以下、「クレーム情報」という。）および制御情報を入力情報として、開始される処理である。クレーム情報は、テキストボックス、ファイル、データベースなどシステムに応じた方法により入力される。また、制御情報もファイル、データベース、環境設定画面等で予め指定し、処理開始時に読み込まれる。
【０１０３】
図１４において、処理の実行が指示されると、制御情報を読み込む（Ｓ１４−１）。次に、後述するメイン処理を実行（Ｓ１４−２）し、正常終了する（Ｓ１４−３でＮＯ）。途中でなんらかのエラーが発生すれば（Ｓ１４−３でＹＥＳ）、エラーを表示し（Ｓ１４−４）て異常終了する。
【０１０４】
ここで制御情報は、例えば、特許請求の範囲のデータの入力方法、各請求項の記載箇所を判別する方法（例えば、すみつきかっこ、大かっこなど）、出力モード（ファイル、紙、ディスプレイ、メモリ等など）、出願番号、出願公開番号などの書誌的事項や出力日時などの出力（表示）の有無、カテゴリ表示の有無、クレーム情報に補正後あるいは補正前の両情報がある場合にはいずれの情報を解析・出力するか、ルートリストのエントリ数や出力時間に応じて処理を中断するか、出力処理に要する時間が長くなると予想される場合にはいずれの独立項の構造を表示するか、独立項に関する階層構造間のスペースのサイズ（行間）などの表示間隔を指定する情報、請求項番号の表示方法（例えば、「請求項１」、「Ｃ１」、単に「１」と表示するなど）、請求項番号の出力サイズ（各セルのサイズ）、ルート間の行数（例えば、１行）など、表示に関連する制御情報を想定している。
【０１０５】
図１５はメイン処理フロー（図１４のＳ１４−２）を説明する図である。まずは、クレーム情報を解析するのに必要な解析制御情報およびクレーム情報を読み込む（Ｓ１５−１〜Ｓ１５−２）。次に、解析制御情報およびクレーム情報に基づいて完成ルート情報を作成する（Ｓ１５−３）。次に、該ルート情報に基づいて、クレーム全体構造を出力する（Ｓ１５−４）。また、各ステップにおいてエラーが発生した場合には、処理を中断してエラー情報を作成して格納し（Ｓ１５−５）、メイン処理を抜けて異常終了であることを示す。エラー発生時でも処理が継続可能であれば、警告、エラー情報の格納など適切に処理し、中断して終了しなくても良い。
【０１０６】
ここで、各請求項には該請求項が引用する請求項が記載されているが、その表現形式は多様である。例えば、請求項１〜３を引用する場合の表現形式は、「請求項１ないし３」、「請求項１ないし請求項３」、「請求項１乃至３」、「請求項１〜３」、「請求項１、２〜３」など様々である。また、請求項を個別に表現する形式も、「請求項１又は２」、「請求項１または２に記載のいずれか１項」、「請求項１若しくは請求項２」、「請求項１、請求項２」など多様である。このように同一の内容に対して多様な表現形式があるので、これらの記載を全て判断し、正確に引用先の請求項を抽出する必要がある。
【０１０７】
上記の解析制御情報は、例えば、このような多様な記載から１、２、３というような引用番号を判断するため情報である。例えば、上記の「ないし」、「乃至」、「〜」などの範囲を表す用語を解析制御情報として予め登録しておき、多様な表現を全て同一の記号（例えば、「〜」、「−」、「~」）に置き換えて、該記号に挟まれる数字を全て抽出する。また、請求項を個別に指定する表現形式に対しても同様に、「または」、「又は」、「若しくは」など個別に表す用語も予め解析制御情報として登録し、同一の記号（例えば、「、」など）に置き換え、それぞれ抽出する。これによって、統一された記号により判断できるので、引用番号を容易に抽出できる。
【０１０８】
なお、上記の通りその記載方法は多様であり、将来どのように変わるかも分からない。このため、プログラムコードとして全て実装しても良いが、利用者が適時に改良していけるように、判断すべきキーワードを解析制御情報として設定画面上で容易に追加するようにすることもできる。
【０１０９】
また、各請求項の記載を判断する方法はどのようなものでも良いが、請求項の記載を示すためのすみつきかっこの記号と"請求項"というワードに基づいて各請求項を判別することが考えられる。
【０１１０】
一方、各請求項から引用する請求項番号を抽出する方法もどのようなものでも良いが、"請求項"というワードを手がかり（検索キー）にする方法が考えられる。ここで、上記の通り記載方法は多様であるため、例えば、「請求項１〜２」という場合の"２"のように必ずしも請求項という用語が数字の前に記載されていない場合がある。この場合には"請求項"というワードから、"〜"などのワードに基づいて上記の"２"を判断しても良い。また、引用される請求項番号は「請求項」のキーワードから遠く離れた位置にないと考えられるので、"請求項"というワードから予め指定されたある程度の範囲（１０文字までなど）に存在する数値を請求項番号として判断することが考えられる。
【０１１１】
ただし、後者については請求項という用語の以降どこまでの範囲内に請求項番号が記載されるかわからず、１０文字以内など適当な範囲に限定すると請求項番号が正しく抽出されないという問題がある。また、「請求項」という検索キーも各請求項の先頭の方あるいは後の方に書かれる場合があり、特に請求項が先頭部分にある場合「請求項」という記載の後のどこまでの範囲に請求項番号が含まれるのかを判断するのが難しい。この問題に対処するために、仮に、「請求項」という用語の以降に現れる全ての数値を引用番号として抽出すると、途中に「第１の」などの数値が記載されている場合には、誤って請求項番号と判断されるという問題が生じてしまうので、「第１」など数値を含む表現を無視するようにしなければならない。
【０１１２】
このため、予めこの「第１」や「いずれか１項」などの用語を解析制御情報として登録しておき、その登録のある用語は他の文字に置換するなどして、予め無視するように処理すると良い。第１、第２など全て登録するのも煩わしいので、第ｎとして登録しておき、ｎはプログラムで作り出せるようにしても良い。
【０１１３】
また、このような記載は将来にわたって予測することは難しく、また、技術分野によってもまちまちであると考えられるため、ユーザが設定画面を通じて適時、容易に設定できるようにすると良い。このようにすると、プログラムコードとしては設定された各キーワードを無視するための処理を実装すれば、設定はユーザが必要な時に追加、削除、保存できるため、拡張性の優れたものとなる。なお、上記の方法を組合わせ、予め設定された範囲から抽出するが、その範囲を超えて認識された数値がある場合には、置換すると共に警告を出して注意を促しても良い。
【０１１４】
図１６は、入力データ構造の解析（図１５のＳ１５−３）を上述の（３−１）の実施例１を例として説明する図である。まずは処理を容易にするために、クレーム情報から図４のような管理制御情報を先に抽出して管理する。例えば、各請求項の番号に対応させて、独立項か引用項か末端項かの種別、該請求項を引用する請求項の数および引用項番号などを構造体などを用いて管理制御情報として抽出する（ステップ１６−１）。発明のカテゴリも含めても良い。この際、請求項が番号順に記載されているか、引用される親請求項は該請求項より前に記載されているかなどの特許請求の範囲の記載要件の適合性をチェックし、違反がある場合にはエラー内容を表示すると良い（Ｓ１６−２、１６−９）。これによって、人がチェックする手間が省けるし、誤ったデータによる誤った結果を表示することも避けられる。
【０１１５】
カテゴリの判断方法はどのような方法でも良く、例えば、拡張性、汎用性を高めるために、ユーザが任意に随時、装置、手段、媒体、ノード、プログラム、方法、ステップ、工程などのキーワードをカテゴリを判別するための解析制御情報として設定画面などを通じて設定できるようにしておき、各請求項中に現れるキーワードの頻度で判断したり、文末の一致するキーワードを優先してカテゴリを判断しても良い。該当した設定済みのキーワードをそのまま表示しても良いし、「物」、「方法」、「製造方法」などに集約して表示しても良い。
【０１１６】
次に、前述のように完成ルート情報を生成し（Ｓ１６−４〜８）、次に、出力処理の効率化のための情報である出力スペース全体の行数と列数などの情報を完成ルート情報に基づいて決定する（Ｓ１６−８）。出力処理（図１５のＳ１５−４）は、前述の通りであるので省略する。
【０１１７】
なお、解析すべき階層構造を有する入力情報は、当初から階層構造のみ抽出されたものを入力しても良い。また、特許請求の範囲以外の明細書等のその他の記載を一緒に入力しても良く、その場合には、全体の記載から解析すべき情報である特許請求の範囲を抽出して行うことになる。
【０１１８】
（７）その他
その他の機能を以下に説明する。これらの機能を単体あるいは組み合わせることで、ユーザの利便性を向上させる効果がある。
【０１１９】
（７−１）全体構造の分類機能
特許請求の範囲には、カテゴリが異なる点を除き、ほとんど同じ内容である複数の請求項が存在する場合が多く、実質的に同一と判断される請求項を出力した全体構造の上に明示したい場合がある。また、請求項の記載内容には、該請求項を特徴付けるキーワードが存在し、キーワードを有するか否かで分類したい場合もある。このような場合にこれらを出力済みの全体構造の上に表示できると便利である。そこで、指定されたキーワードや請求項番号を入力情報から検索して探し、全体構造の各請求項番号を色分けする機能が便利である。これによって人が入力情報を確認するよりも正確に、容易にチェックすることができる。なお、検索キーワードを出力済みの請求項番号に対応付けて表示したり、出力された請求項番号へ請求項に記載された内容をリンクし、吹き出しや別出力などで表示する機能を設けても良い。また、実質的に同一か否かは、人が判断しても良いし、カテゴリを表す用語（ステップ、機能部）などを除くなどした上で一致度を計算し、一致の割合によって実質的に同一と判断しても良い。
【０１２０】
（７−２）部分的な階層構造の集約機能
クレーム全体構造において、ある引用項から末端項までの同一の階層構造が、全体構造中に多数現れる場合がある。例えば、図２の例においては"Ｃ４−Ｃ５−Ｃ６"と"Ｃ４−Ｃ６"による階層構造が、Ｃ１、Ｃ２、Ｃ３からそれぞれ分岐していることが分かる。このような場合に、これらの分岐する箇所に、この共通する階層構造を関連付ける記号を表示して繋がりを示しつつ、共通する階層構造を別のスペースに一つだけ表示するようにすれば、クレーム全体構造を出力するスペースを小さくすることができる。特に、ルート数が多い場合には見やすいなどの効果がある。このため、例えば、図２のＣ４の位置に下位の階層構造を特定する記号（例えば、（１）、[１]など）のみを出力し、Ｃ１に関する階層構造とは別に、上記の共通する階層構造を該記号と共に、例えば右隣に一つだけ出力しておくと良い。あるいはＣ４以降の接続線を"・・・（１）"など、別に出力したことを示す接続線と対応記号を表示しても良い。要は、分離して表示することになる共通する階層構造が、どのように連結しているのか分かる形で表示すれば良い。
【０１２１】
このように処理するために、完成ルートリストの各ルートで末端項側から共通する構造を調べるなどすることで共通する階層構造がわかり、その共通する階層構造に代えて対応する記号を付加するなどして完成ルートリストを加工すれば、上述の方法と同じ要領でクレーム全体構造が出力できる。そして、共通する階層構造についても、この階層構造を完成ルートリストとして上述の方法と同じ要領で出力することで実現できる。
【０１２２】
（７−３）多重クレームの判別、表示機能
アメリカや韓国など多重多数項引用が許容されない国になされる特許出願に対しては、上記に説明した、特許請求の範囲などの入力情報を受け取って初期のルート情報の集合を生成するために解析する際などに多重多数項引用をチェックし、発見すると出力された全体構造の該当部分を色分けするなどして表示し、ユーザに示す。これに応じて、ユーザが全体構造の出力表示を、画面上で操作して修正する。その後、プログラムなどが修正された全体構造を辿るなどすることで、請求項間の引用関係を修正された全体構造から抽出し、これに基づいて入力情報に含まれる引用関係を修正し、修正内容を反映して入力情報を出力するようにする。このようにすると、ユーザが視覚的に表示された全体構造を修正した結果が入力情報に反映されるので、人が入力情報を直接修正する必要がなく、ユーザの利便性が向上する。
【０１２３】
なお、全体構造には上記の通り部分的な同一構造が含まれるので、全てを修正しなくても、抽出された引用関係のうち修正された内容を優先して入力情報に反映するようにしても良い。また、部分的な階層構造の集約機能と組み合わせて使用しても良い。
【産業上の利用可能性】
【０１２４】
以上、本発明は、特許出願に添付される特許請求の範囲を取り扱う分野の全てに利用できる。また、出願は特許出願に限らず、同じく階層構造で記載される実用新案登録出願やＰＣＴ出願も同様に利用でき、日本国の出願のみならず特許請求の範囲に相当する書類を有する様々な国の出願に対しても利用できる。また、出願分割など出願の関連の出力にも利用できる。
【０１２５】
さらに、出願関係に限らず、上述した２階層構造のような直接の親子関係からなるデータを有する、他のあらゆる技術分野の全体構造の出力にも適用できる。例えば、複数人による電子メールやメッセージのやり取りの履歴など、一つの事象から次々に分岐・連続するものや、例えばツリー状に関連するものの関係や、コンピュータプログラムにおける呼出元と呼出先の関数の関係を解析したい場合などにも利用できる。また、ツリー状に関連することに限定されず、スター状などの関連構造にも適用できる。この場合は、上記の通りツリー状に表示しても良いし、スター状に表示しても良い。スター状に表示するときは、中心からの距離と角度などのパラメータで出力位置やルート間の間隔などを得て出力しても良い。ｎ次元空間への出力であっても良い。
【０１２６】
また、逆に、システムにおける情報の管理に際して、少なくとも親がわかるように情報を管理するように構成すれば、本発明により提供された全体構造の出力方法、プログラム、装置などによって全体構造の解析および出力ができるので、管理情報の節約なども期待できる。
【図１】
2012027743.tif 000003
【図２（ａ）】
2012027743.tif 000004
【図２（ｂ）】
2012027743.tif 000005
【図３】
2012027743.tif 000006
【図４】
2012027743.tif 000007
【図５】
2012027743.tif 000008
【図６】
2012027743.tif 000009
【図７】
2012027743.tif 000010
【図８】
2012027743.tif 000011
【図９】
2012027743.tif 000012
【図１０（ａ）】
2012027743.tif 000013
【図１０（ｂ）】
2012027743.tif 000014
【図１１】
2012027743.tif 000015
【図１２】
2012027743.tif 000016
【図１３】
2012027743.tif 000017
【図１４】
2012027743.tif 000018
【図１５】
2012027743.tif 000019
【図１６】
2012027743.tif 000020