JP2012027743A - 階層構造の解析・出力方法、および、その情報処理装置、プログラム。 - Google Patents
階層構造の解析・出力方法、および、その情報処理装置、プログラム。 Download PDFInfo
- Publication number
- JP2012027743A JP2012027743A JP2010166600A JP2010166600A JP2012027743A JP 2012027743 A JP2012027743 A JP 2012027743A JP 2010166600 A JP2010166600 A JP 2010166600A JP 2010166600 A JP2010166600 A JP 2010166600A JP 2012027743 A JP2012027743 A JP 2012027743A
- Authority
- JP
- Japan
- Prior art keywords
- route
- comparison
- information
- route information
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 title description 13
- 238000002620 method output Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 108
- 238000012545 processing Methods 0.000 claims description 131
- 238000000605 extraction Methods 0.000 claims description 4
- 241000283080 Proboscidea <mammal> Species 0.000 claims 1
- 230000008569 process Effects 0.000 description 69
- 239000011159 matrix material Substances 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 4
- 241001522296 Erithacus rubecula Species 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】 特許出願に添付される特許請求の範囲等に記載された請求項間の関連を表すクレーム全体構造を、その階層構造の容易な把握が可能なように出力、表示する。
【解決手段】 入力された特許請求の範囲における各請求項の記載から2階層の引用関係(階層構造)を抽出し(ステップ1−1)、これに基づいて初期のルートの集合を生成し(ステップ1−2)、このルートの集合に基づいて独立項から末端項に至る1又は複数の請求項及び順序を含む完成ルートで構成される完成ルートの集合を生成する(ステップ1−3)。そして、この完成ルートの集合に基づいてルート間の出力スペースおよび位置などを把握し、この把握した情報に基づいてクレーム全体構造を出力する(ステップ1−4)。
【選択図】 図1
Description
本発明は、特許出願に添付される特許請求の範囲に記載された複数の請求項の全体構造を解析し、その構造の把握が容易となるように階層的に出力(表示)するための方法、プログラムや情報処理装置等に関するものである。また、特許請求の範囲のような階層構造を有するようなもの、例えば、実用新案登録出願やPCT出願、外国の出願の相当する添付書類、その他これらのような階層構造を有するものにも同様に利用できる。
特許出願に添付される特許請求の範囲に請求項を記載するにあたっては、独立形式請求項(以下、「独立項」という。)や、先に記載されている請求項を引用する引用形式請求項(以下、「引用項」という。)で記載することが認められている。このため、特許請求の範囲は、1又は複数の独立項と引用項が記載されて構成されるのが一般的であるが、一の引用項を一見してもその請求項の直前の関係(以下、「2階層構造」という。)しか把握できない。そして、注目する引用項の内容を知るには、その記載から引用する請求項を調べ、次にその把握した請求項が引用する請求項をさらに調べるということを、独立項まで順に辿ることなどが必要となる。このため、特許請求の範囲に記載される請求項の数が多いほど、また、引用項の数やその累積数が多いほど各請求項の間の引用関係が複雑化するため、2階層構造などの階層構造が累積して構成される特許請求の範囲の全体構造(以下、「クレーム全体構造」という。)が複雑化し、特に引用項に係る発明の引用関係の把握が困難となる。
ところで、上記のような形式で記載された請求項の引用関係などを整理して、一の引用項がいずれの請求項から構成されるのかを知ることは、出願時には審査対象となる客体を明確化し、権利化後には特許権として主張される権利範囲を明確化する上で重要なことである。また、特許請求の範囲の記載漏れや、分割出願時の削除する請求項と原出願に残す請求項の判断、特許権のライセンスや証券化などの特許権の流通などに際して、引用項の内容を把握することは重要である。このように、クレーム全体構造を把握し、請求項の引用関係を知ることは、出願や特許権を迅速、適切に扱う上で重要となっている。
そこで、従来から、クレーム全体構造を把握するにあたって、人手により紙に書き出していた。具体的には、独立項あるいは引用項を特許請求の範囲の記載から判断し、これらの請求項間の関係(関連)を示す線(以下、「接続線」という。)で接続して図に表していた。あるいは、人手による時間的、労力的な負担を小さくするために、コンピュータ(プログラム)を利用して描画(出力)していた。
特許請求項分析支援ソフト クレームチャート、インターネット、2010年6月15日検索、<URL:http://www.inpatec.co.jp/service/ccl.htm>
新森明宏ら著、「特許請求項における多重多数項引用の検出と書換特許」、情報処理学会論文誌Vol.49、No.7、pp.2692〜2702
しかし、上記の従来技術には、下記のような問題点がある。
(1)人手による全体構造図の作成の問題点
人手により図を描いていく場合には、請求項1、2、・・・と順番に調べ、着目している請求項(子)の記載から引用される請求項(親)を判断し、順に記載していくことになる。しかし、各請求項の記載からは直接の親子関係である2階層構造しか分からないため、一つの親に複数の子がある場合には、親の後ろ(下位)や複数の子の間にどの程度のスペースを空けて書き出せば良いか分からない。そして、分からないまま適当に記載すると、より下位の請求項を書くためのスペースが不足する場合がある。この場合には、スペース不足に対処するために、下位の請求項を小さく書く、スペースのある場所に接続線を伸ばして書く、消しゴムなどで修正し上位の請求項から書き直すなどの必要性が生じ、結果として全体構造が見づらくなるという問題がある。
人手により図を描いていく場合には、請求項1、2、・・・と順番に調べ、着目している請求項(子)の記載から引用される請求項(親)を判断し、順に記載していくことになる。しかし、各請求項の記載からは直接の親子関係である2階層構造しか分からないため、一つの親に複数の子がある場合には、親の後ろ(下位)や複数の子の間にどの程度のスペースを空けて書き出せば良いか分からない。そして、分からないまま適当に記載すると、より下位の請求項を書くためのスペースが不足する場合がある。この場合には、スペース不足に対処するために、下位の請求項を小さく書く、スペースのある場所に接続線を伸ばして書く、消しゴムなどで修正し上位の請求項から書き直すなどの必要性が生じ、結果として全体構造が見づらくなるという問題がある。
逆に、スペースに大きめの余裕を持って記載していくと、全体構造がスペース一杯に広がることで、コンパクトさに欠けて見ずらくなる。また、紙自体も一定のスペースしかないので結局スペース不足となって、上記と同様の問題が生じる。さらに、全体構造を全て書き出せないなどの問題がある。
(2)コンピュータ(プログラム)による従来技術の問題点
コンピュータを用いた従来技術として、非特許文献1〜2、特許文献1〜2が存在する。しかし、非特許文献1〜2には、出力の結果しか記載されておらず、特許請求の範囲を解析して描画(出力)に至るまでの方法は特に記載されていない。また、図に示される接続線は多くの箇所で折れ曲り、あるいは交差している。このような形式では、請求項数や引用関係が少ない場合にはそれなりに良いかも知れないが、請求項数が多くなり引用関係が複雑になるほど全体構成の把握が困難となることが考えられる。
コンピュータを用いた従来技術として、非特許文献1〜2、特許文献1〜2が存在する。しかし、非特許文献1〜2には、出力の結果しか記載されておらず、特許請求の範囲を解析して描画(出力)に至るまでの方法は特に記載されていない。また、図に示される接続線は多くの箇所で折れ曲り、あるいは交差している。このような形式では、請求項数や引用関係が少ない場合にはそれなりに良いかも知れないが、請求項数が多くなり引用関係が複雑になるほど全体構成の把握が困難となることが考えられる。
また、特許文献1には、特許請求の範囲から2階層構造(従属関係情報(特許文献1の図7))を抽出し、これを用いて特許文献1の図14のような出力をすることが記載されている(特許文献1の第[0081]〜[0099]段落参照)。しかし、結果図から全体構造を把握するには、接続点を判断するなど人がその出力表示を解読しながら見る必要がある。このため、解読に習熟するまでは把握が難しく、習熟しても見落としたり見誤ったりするなど間違って把握する可能性があるという問題が考えられる。
一方、特許文献2には、特許文献1のように特許請求の範囲の記載から2階層構造(特許文献2の階層関係管理表(図4))を取得し、これに基づいて特許文献2の図5〜6のように出力することが記載されている(特許文献2の第[0043]〜[0044]段落参照)。そして、出力結果の図6については、接続線が折れ曲がりあるいは交差して見えづらく、特許文献1と同様な問題がある。一方、図5の表現形式は従来から人手でも表現されていたものでもあり、分かりやすく好ましい。しかし、特許文献2には2階層構造をどのような方法で処理すれば、図5のように出力できるのか開示されていない。
(3)その他
クレーム全体構造は階層的であることから人手の方法のように引用関係を最後まで順に辿ることを繰り返す方法なども考えられるが、請求項同士は多重に引用されるのが通常であるから、場合によっては出力位置を修正するなどが必要な場合もあり、分岐の判断などアルゴリズムが複雑となる。
クレーム全体構造は階層的であることから人手の方法のように引用関係を最後まで順に辿ることを繰り返す方法なども考えられるが、請求項同士は多重に引用されるのが通常であるから、場合によっては出力位置を修正するなどが必要な場合もあり、分岐の判断などアルゴリズムが複雑となる。
そこで、上記のような問題に鑑み、本発明は、特許請求の範囲のような2階層構造を含む情報を解析し、解析結果に基づいてその全体構造を把握が容易な形式で出力するための方法、プログラム、装置を提供することを目的とする。
上記の課題を解決するために、本発明は、情報間の関連および該関連の順序関係を示す階層構造の1又は複数で構成される全体構造の出力方法であって、1又は複数の前記階層構造を含む入力情報を受け取る入力ステップ、該入力情報から1又は複数の前記階層構造を抽出して初期のルート情報の集合を生成するルート情報集合生成ステップ、該ルート情報の集合に基づいて、自己より前に関連する他の情報のない先頭の情報から自己より後に関連する他の情報のない末端の情報に至る1又は複数の情報が関連付けられた前記階層構造である完成ルート情報の、1又は複数で構成される完成ルート情報の集合を生成する完成ルート情報集合生成ステップ、該完成ルート情報の集合から得られる出力制御情報に基づいて全体構造を出力する出力ステップ、を備えることを特徴とする(請求項1、4)。
ここで、前記情報とは、例えば特許請求の範囲に記載された請求項を意味し、階層構造とは2つ、3つ、・・・nの情報間の関連を意味する。完成ルートとは、独立項から引用項を順番に経て、もう他の請求項から引用されることのない引用項(以下、「末端項」という。)までの全ての引用関係およびその順番を有するルートを意味する。なお、独立項を引用する請求項がない場合には独立項が末端項でもあり、また、完成ルート、完成していないルートを単にルートと称する。
そして、各請求項には該請求項(子)が引用する請求項(親)との関連およびその順序関係としての引用、被引用の関係(親子関係)が記載されており、親と子の2つの関係としての2階層構造がわかるので、最初にこの2階層分の関係を例えば全て抽出し、初期のルート情報の集合として保持する。つまり、初期のルート情報は、親子関係がその順番とともに表される1又は複数のルートをエントリとするルートの集合であり、該初期のルート情報に基づいて完成ルート情報の集合を生成し、これに基づいてルート間(1の親から分岐する複数の子の間)に必要なスペースや、出力空間全体の範囲などの出力を制御する出力制御情報を得て、出力する。
つまり、本発明は、入力情報である特許請求の範囲などを解析し、出力空間(スペース)のどの位置に請求項番号や接続線を出力するかなどクレーム全体構造を把握できる情報を抽出・生成した上で、請求項番号や接続線を出力するものである。これは、各請求項から分岐する1または複数の引用項を出力するに際して、その分岐する引用項間に必要なスペースを予め知って出力すれば、整然とした統一のある出力が可能であり、かつ、出力位置の修正などが不要となるなどの効果が得られるという着想に基づくものである。そして、この着想を実現するための具体的な手段が、上記の完成ルートの集合を生成し、これに基づいてクレーム全体構造を出力することである。例えば、請求項1から請求項2と4が直接分岐する場合、完成ルートの集合から請求項1と2で構成される2階層構造を含む完成ルートの数を求めることにより、請求項2と4の間に必要なスペースがわかるというように、完成ルート情報の集合に基づいて、ある請求項から分岐する2つのルートの間に必要なスペース求めることができる。
本発明は、より詳細には、前記完成ルート情報集合生成ステップは、前記ルート情報の集合から所定の条件で選択した一のルート情報を比較元ルート情報、1又は複数のルート情報を比較先ルート情報の集合として決定する比較対象決定ステップ、前記比較元ルート情報の一端から把握される前記情報を示す識別情報と、一の前記比較先ルート情報の前記一端とは逆の端である逆端から把握される前記情報を示す識別情報を比較し、該識別情報同士が一致すれば該ルート情報を関連付けることで新たなルート情報を生成する比較連結処理ステップ、該比較連結処理ステップを前記比較元ルート情報と前記比較先ルート情報の集合との間でそれぞれ行う比較元ルート単位の比較連結処理ステップ、該比較元ルート単位の比較連結処理を前記所定の条件を満たす全てのルート情報をそれぞれ比較元ルート情報として行う総当りの比較連結処理ステップを備え、さらに、
前記総当りの比較連結処理ステップの単位で完成ルート情報の集合を生成する総当り単位のループステップであって、総当りの比較連結処理ステップにより生成される前記新たなルート情報を含むルート情報の集合に対して、前記比較連結処理ステップによって関連付けられるルート情報がないことを確認できるまで総当りの比較連結処理ステップを繰り返し行う総当り単位のループステップ、あるいは、
前記比較元ルート単位の比較連結処理ステップの単位で完成ルートの集合を生成する比較元単位のループステップであって、前記比較元ルート単位の比較連結処理ステップによって生成される1又は複数の前記新たなルート情報の集合のそれぞれを比較元ルート情報とし、それぞれの該比較元ルート情報と前記初期のルート情報の集合から決定されたものである前記比較先ルート情報の集合を用いて比較元ルート単位の比較連結処理ステップを行うことを、前記比較連結処理ステップによって関連付けられるルート情報がないことを確認できるまで繰り返し行うことで1又は複数の完成ルート情報を生成する比較元単位のループステップ、のいずれか一方を備え、さらに、
前記比較元単位のループステップあるいは前記総当り単位のループステップの途中あるいは完了した後のルート情報の集合に完成ルート情報以外のルート情報が含まれる場合には、完成ルート情報のみ抽出する完成ルート情報抽出ステップを備えることがあることを特徴とする(請求項2、4)。
前記総当りの比較連結処理ステップの単位で完成ルート情報の集合を生成する総当り単位のループステップであって、総当りの比較連結処理ステップにより生成される前記新たなルート情報を含むルート情報の集合に対して、前記比較連結処理ステップによって関連付けられるルート情報がないことを確認できるまで総当りの比較連結処理ステップを繰り返し行う総当り単位のループステップ、あるいは、
前記比較元ルート単位の比較連結処理ステップの単位で完成ルートの集合を生成する比較元単位のループステップであって、前記比較元ルート単位の比較連結処理ステップによって生成される1又は複数の前記新たなルート情報の集合のそれぞれを比較元ルート情報とし、それぞれの該比較元ルート情報と前記初期のルート情報の集合から決定されたものである前記比較先ルート情報の集合を用いて比較元ルート単位の比較連結処理ステップを行うことを、前記比較連結処理ステップによって関連付けられるルート情報がないことを確認できるまで繰り返し行うことで1又は複数の完成ルート情報を生成する比較元単位のループステップ、のいずれか一方を備え、さらに、
前記比較元単位のループステップあるいは前記総当り単位のループステップの途中あるいは完了した後のルート情報の集合に完成ルート情報以外のルート情報が含まれる場合には、完成ルート情報のみ抽出する完成ルート情報抽出ステップを備えることがあることを特徴とする(請求項2、4)。
ここで、比較元ルートの一端とは例えば直線的なルート情報の右端あるいは左端、逆端とは左端あるいは右端であり、識別情報とは例えば請求項番号であり、関連付けは、例えば両ルートを連結することで行うことを意味する。また、比較元ルート単位の比較連結処理ステップという場合には比較連結処理ステップが含まれ、総当りの比較連結処理ステップという場合には比較元ルート単位の比較連結処理ステップと比較連結処理ステップが含まれる関係にある。
そして、上記の総当り単位のループステップは、入力情報から生成されたルート情報の集合である初期のルート情報の集合から、対象となる全てのルートを比較元ルートとするなどの所定の条件に基づいて選択された比較元ルートのぞれぞれに対して、ルート情報の集合のそれぞれのルートを比較先ルートとして比較連結処理し(総当たりの比較連結処理)、この総当たりの比較連結処理によって、上記の新たなルート情報(連結ルート)、完成ルート情報、連結ができなかったルート情報のいずれかあるいは全部で構成されることになるルートの集合を新たに生成する。そして、この新たなルートの集合に対し、比較対象決定ステップから再度実行して比較元ルート情報、比較先ルート情報を選択し、上記の総当たりの比較連結処理ステップを行うことを繰り返すことでルートの集合自体を更新していき、完成ルート情報の集合を生成する(後述の(3−1)で説明される実施例1)。
このような構成によれば、入力情報から生成されたルート情報の例えば比較元ルートであれば右端、比較先ルートであれば左端というように、ルート情報の片方向のみに対して比較連結処理を行えば良いため、処理が簡易であり、高速な処理が可能となる効果がある。
一方、比較元単位のループステップは、初期のルート情報の集合から所定の条件で比較元ルート情報を選択し、該比較元ルートに対して初期のルートの集合の例えば全てのルートを比較先ルートとして比較連結処理ステップを行う。これによって、該比較元ルートから1又は複数の新たなルート情報の集合が生成されるので、この新たなルート情報の集合のそれぞれのルート情報を比較元ルート情報、初期のルート情報の集合をそれぞれ比較先ルート情報として比較連結処理ステップを総当り的に行う。これを、関連付けられるルート情報がないことを確認できるまで繰り返し行うことで完成ルート情報の集合のうちの、初期のルートの集合から選択された該比較元ルートの階層構造(例えば2階層構造)を含む全ての完成ルート情報が生成できることになる。そして、この比較元ルート単位の比較連結処理を、初期のルート情報のうち所定の条件を満たす全てのルートのそれぞれを比較元ルートとして行うことで(総当りの比較連結処理ステップ)、完成ルート情報の集合を生成することを意味する(後述の(3−2)で説明される実施例2)。
ここで、上記の比較元ルートとして選択されるための所定の条件は、例えば、末端項(末端の情報)を有するルートのみを比較元ルートとして選択し、あるいは、独立項(先頭の情報)を有するルートのみを比較元ルートとして選択することである。このようにすれば、完成ルートは必ず末端項や独立項を含むので、全ての初期のルート情報の集合に対して比較元単位の比較連結処理を行う必要はなく、また比較連結処理は末端項から独立項あるいは独立項から末端項への一方向にのみ行えば良いため、処理が簡易であり高速化が可能である。なお、全てのルートを比較元ルートとして選択しても良いが、この場合は、階層構造の両方向に比較元単位の比較連結処理を行う必要がある。
このような構成によれば、完成ルート情報集合生成ステップにおける比較連結処理の対象となるルートの集合の数が発散することを軽減し、メモリの節約や処理の高速化などが可能となる効果がある。
そして、上記の各ループステップの途中あるいは後に、ルート情報の集合に他のルートに包含される関係にあるルートや重複するルート(以下、「包含ルート」という。)がある場合には、完成ルートのみを抽出し、包含ルートを削除するなどして完成ルートの集合を完成させる。包含ルートの排除処理はループステップが完了した後、すなわちルートの集合の中に完成ルートが全て存在する状態を生成した後に行うのが良く、完成ルートの消失を防ぐためである。そして、この完成ルート情報の集合によってクレーム全体構造を把握できるようになり、その後に完成ルート情報の集合に基づいて出力する。
なお、入力情報は、特許請求の範囲などの全体情報のうち、予め出力したい全体構造に絞って入力しても良いし、入力後に対象となる出力したい部分のみ処理対象として全体構造を出力しても良い。これは、複数の独立項がある場合に特に請求項1に係る全体構造を出力したい場合や、下位の引用項は出力する必要もない場合などの状況を想定したものである。対象の指定は予め指定するよう構成しても良いし、処理中に指定するように構成しても良い。
また、本発明は、前記完成ルート情報集合生成ステップにおいて、前記関連付けられたルート情報が完成ルート情報であるかを確認し、完成ルート情報である場合には前記比較連結処理ステップの対象から除くために、該完成ルート情報を別に保持する完成ルート情報一時保持ステップを備えることを特徴とする(請求項3、4)。
これは、完成ルート情報集合生成ステップの処理過程における比較連結処理によって順次生成されることになる完成ルートを、例えばファイルなどに別に保持しておくことで、比較連結処理の対象から除外することを意味し、これによって比較連結処理の対象となるルートの集合の規模が小さくなり、高速な処理が可能となる。この別に保持する処理は、比較連結処理ステップにより完成ルート情報が生成される毎、比較元ルート単位の比較連結処理ステップの前あるいは後、総当りの比較連結処理ステップの前あるいは後、各ループステップの前あるいは後など、いずれのタイミングで行っても良く、効率を考えて決定すれば良い。
本発明により、クレーム全体構造を、把握が容易となる形式で階層的に出力できる。すなわち、出力する対象となるクレームの全体構造を完成ルート情報として把握することで、請求項番号や接続線の位置を把握して出力できるので、整然とした統一のある出力が可能となる。
これによって、人手や従来技術とは異なり、請求項同士の関係を表す接続線を不必要に曲げるなどして出力する必要がなく、見やすく、出力後に出力内容の位置を移動するなどの補正をする必要もない。また、単純な処理の繰り返しにより行うことができるので、簡易で高速な処理が可能である。
以上、本発明は、出願、審査、特許権の評価の際など、クレームなどの全体構造を把握する必要のある、あらゆる場面に活用することで、的確、迅速に階層構造を含む入力情報を取り扱うことができるようになる。
本発明を、特許請求の範囲の全体構造の出力に適用した形態を説明する。本発明は図1に示すように、入力された特許請求の範囲における各請求項の記載から2階層の引用関係(階層構造)を抽出し(ステップ1−1)、これに基づいて初期のルートの集合を生成し(ステップ1−2)、このルートの集合に基づいて独立項から末端項に至る1又は複数の請求項及び順序を含む完成ルートで構成される完成ルートの集合を生成する(ステップ1−3)。そして、この完成ルートの集合に基づいてルート間の出力スペースおよび位置などを把握し、この把握した情報に基づいてクレーム全体構造を出力するものである(ステップ1−4)。
以下に、図2(a)のような特許請求の範囲の記載を例として、全体構造を出力するまでの処理を、図1の各ステップと対比しながら説明する。この処理の結果、図2(b)のような表示を出力することになる。
(1)階層構造(引用関係)の抽出(図1のステップ1−1)
図2(a)に示す特許請求の範囲の記載例を見ると、請求項1、7にはその他の請求項を引用する旨の記載がないため、請求項1、7は独立項である。また、請求項2は請求項1を引用することが記載されており、請求項1の引用項である。ここで、引用される請求項を親、引用する請求項を子とすると、請求項1には親がなく、請求項2(子)は請求項1を親としていることが分かる。同様にC3("C"は請求項の略)はC2を、C4はC1〜C3を、C5はC4を、C6はC4〜C5を、C8はC7をそれぞれ親とすることが分かる。また、C1とC7の独立項の数分の、それぞれの独立項に係るクレーム構造によって、クレーム全体構造が構成されることが分かる。
図2(a)に示す特許請求の範囲の記載例を見ると、請求項1、7にはその他の請求項を引用する旨の記載がないため、請求項1、7は独立項である。また、請求項2は請求項1を引用することが記載されており、請求項1の引用項である。ここで、引用される請求項を親、引用する請求項を子とすると、請求項1には親がなく、請求項2(子)は請求項1を親としていることが分かる。同様にC3("C"は請求項の略)はC2を、C4はC1〜C3を、C5はC4を、C6はC4〜C5を、C8はC7をそれぞれ親とすることが分かる。また、C1とC7の独立項の数分の、それぞれの独立項に係るクレーム構造によって、クレーム全体構造が構成されることが分かる。
このように、一つの請求項の記載内容に着目すると、その着目した請求項が他のどの請求項を親に持つか分かる。つまり、各請求項の記載を見れば、自請求項と自請求項が直接引用する請求項の関係が分かり、自請求項を中心とした親子関係(2階層構造)がわかることになる。この2階層構造をまとめたものが図3(a)である。
また、逆に、ある請求項がいずれの請求項を子に持つか(引用されるか)もわかる。例えば、着目している請求項の番号が、他の請求項中に記載されているか否かで判断できる。本実施例については請求項1に着目すると、他の請求項である請求項2、4に請求項1が記載されているため、請求項1は請求項2、4を子に持つことが分かる。請求項の子の数は、構造的に見るとその請求項から直接に分岐する分岐数であるから、請求項1からは直接2つの分岐があることとなる。各請求項についての子とその分岐数の関係をまとめると、図4のようになる。なお、末端項は、例えば他の請求項を引用するが、他の請求項から引用されないことを条件に判断ができる。
(2)初期のルート情報の集合の生成(図1のステップ1−2)
図3(a)の引用関係を、例えば"−"の記号を用いて連結(関連付け)することでルート情報を生成し、該ルート情報をエントリとしたルートの集合を生成する。そして、ルートの集合を例えばリスト化したもの(以下、「ルートリスト」という。)を、図3(b)に示す。このルートリストが初期のルート情報の集合に該当する。つまり、ルートリストは"1−0−"(No.1)、"2−1−0−"(No.2)、"3−2−"(No.3)、"4−1−0−"
(No.4)、"4−2−"(No.5)、"4−3−"(No.6)、"5−4−"(No.7)、"6−4−"(No.8)、"6−5−"(No.9)、"7−0−"(No.10)、"8−7−0−"(No.11)の11のルートで構成される。独立項にはそれより上位に連結可能な請求項はないので、"0−"の記号を付加して明示(終端)させている。
図3(a)の引用関係を、例えば"−"の記号を用いて連結(関連付け)することでルート情報を生成し、該ルート情報をエントリとしたルートの集合を生成する。そして、ルートの集合を例えばリスト化したもの(以下、「ルートリスト」という。)を、図3(b)に示す。このルートリストが初期のルート情報の集合に該当する。つまり、ルートリストは"1−0−"(No.1)、"2−1−0−"(No.2)、"3−2−"(No.3)、"4−1−0−"
(No.4)、"4−2−"(No.5)、"4−3−"(No.6)、"5−4−"(No.7)、"6−4−"(No.8)、"6−5−"(No.9)、"7−0−"(No.10)、"8−7−0−"(No.11)の11のルートで構成される。独立項にはそれより上位に連結可能な請求項はないので、"0−"の記号を付加して明示(終端)させている。
なお、本例では、階層構造を上記の通り、子、親の順に記載しているが親、子という逆の順序でも良く、この場合は、必要に応じて以下の説明中の左端、右端を逆に読み替えて考えれば良い。また、図3(b)の"2−1−0−"(No.2)、"4−1−0−"(No.4)、"8−7−0−"(No.11)で示されるルートは3階層まで生成されている。これは、図3(a)に示すように請求項1と7は独立項であるため連結できるものはなく、独立項であることを理由に予め"0−"を付加したものである。なお、請求項2が引用項の場合には必ず請求項1のみを引用するから、"3−2−"(No.3)、"4−2−"(No.5)のように請求項2を右端に持つルートに予め"1−0−"を付加して、"3−2−1−0−"、"4−2−1−0−"としておいても良い。これらの2階層ルートに対する前処理は、下記に説明する完成ルートの集合の生成処理での総当たりの比較連結処理などにおいて、ルートリストのエントリ数を減らすことによる高速化を期待して行うものである。このため、上記のような前処理を行わなくても、初期のルートリストの全エントリを2階層構造まで生成しておき、下記に説明する比較連結処理の結果として行われるように構成しても良い。
また、ルートが完成したと判断されるエントリを他の領域や別ファイルなどに一時的に別に保持し、完成ルートの集合の生成処理におけるループ処理の対象から外すよう構成しても良い。この場合には、ルートの右端が"0−"で左端が末端項であるルートをルートが完成したと判断でき、完成ルートの集合の生成処理での各総当たりの比較連結処理などに先立って予め別ファイルに一時的に保持すれば比較連結処理の対象となるエントリ(すなわち、ルート)の数が経るので、メモリの節約やループでの処理の高速化が実現できる。図3(b)の例においては、請求項6と請求項8が末端項であり、"8−7−0−"(No.11)のルートが完成ルートに該当する。
また、ルートリスト中の"0−"は連結ができないことを示すマークの例示であり、要はそのルートの先に他の請求項がないこと、すなわち、独立項であることが処理において容易に判別できるようになっていれば良い。また、番号間の関連付けに用いた"−"のマークは、これに換えて"+"、"、"、"・"記号など何でも良く、マークを用いず、請求項番号を格納するメモリ領域を分けて保持するものでの良い。要は、請求項の親子関係の累積がその順序も含めてわかるように関連付けられた構成であれば良い。さらに、末端項に上記の"0−"を付加しても良い。
(3)完成ルートの集合の生成(図1のステップ1−3)
以下に、図5〜8を参照して、完成ルートの集合(完成ルートリスト)の具体的な生成方法を説明する。これらの方法は、前述した全体構造を把握した上で出力するという本発明の思想を実現するための例示であり、完成ルートの集合の生成方法はどのような方法でも良く、生成方法を限定するものではない。完成ルートの集合は、ルートリストに下記の比較連結処理を基本とする処理を繰り返し適用し、ルートリストの各ルートを完成ルートとなる方向に更新することを通して生成する。初期のルートリストを便宜のためにルートリスト1と呼ぶ。
以下に、図5〜8を参照して、完成ルートの集合(完成ルートリスト)の具体的な生成方法を説明する。これらの方法は、前述した全体構造を把握した上で出力するという本発明の思想を実現するための例示であり、完成ルートの集合の生成方法はどのような方法でも良く、生成方法を限定するものではない。完成ルートの集合は、ルートリストに下記の比較連結処理を基本とする処理を繰り返し適用し、ルートリストの各ルートを完成ルートとなる方向に更新することを通して生成する。初期のルートリストを便宜のためにルートリスト1と呼ぶ。
(3−1)完成ルート情報の集合の生成例1
図5に完成ルート情報の集合を生成する実施例を記載する。まず最初に、入力情報から生成された初期のルートの集合から例えば全てなどの所定の条件を満たす1の比較元ルートと、初期のルートの集合の全部あるいは一部を比較先ルートの集合として選択し(ステップ5−1)、この比較元ルートと各比較先ルートを相互にそれぞれ比較し、可能な場合には比較対象のルート同士を連結するなど両ルートを関連付けて新しいルート(連結ルート)を生成(更新)し(ステップ5−2〜5−3)、ここまでの処理を上記の所定の条件を満たすものとして選択された全ての比較元ルートに対して行うことによって、新たなルートの集合を生成する(ステップ5−1〜ステップ5−4)。そして、このようなルート同士の総当たり的な比較連結処理の後あるいは前に、生成される新たな連結ルートがないことを確認するまで繰り返し行う(ステップ5−5でYES)。新たな連結ルートが一つでも生成される場合には、これらの連結ルートを含むルートの集合を新たなルートの集合として設定し(ステップ5−6)、この新たなルート集合に対して上記の比較元ルート、比較先ルートの選択(ステップ5−1)から再度行う。新たな連結ルートの生成のないことを確認の後(ステップ5−5でNO)、生成された全てのルートの集合のうちから同一を含め包含関係にあるルートを削除するなどして完成ルートのみ抽出する(ステップ5−7)。これによって、完成ルート情報の集合が生成される。
図5に完成ルート情報の集合を生成する実施例を記載する。まず最初に、入力情報から生成された初期のルートの集合から例えば全てなどの所定の条件を満たす1の比較元ルートと、初期のルートの集合の全部あるいは一部を比較先ルートの集合として選択し(ステップ5−1)、この比較元ルートと各比較先ルートを相互にそれぞれ比較し、可能な場合には比較対象のルート同士を連結するなど両ルートを関連付けて新しいルート(連結ルート)を生成(更新)し(ステップ5−2〜5−3)、ここまでの処理を上記の所定の条件を満たすものとして選択された全ての比較元ルートに対して行うことによって、新たなルートの集合を生成する(ステップ5−1〜ステップ5−4)。そして、このようなルート同士の総当たり的な比較連結処理の後あるいは前に、生成される新たな連結ルートがないことを確認するまで繰り返し行う(ステップ5−5でYES)。新たな連結ルートが一つでも生成される場合には、これらの連結ルートを含むルートの集合を新たなルートの集合として設定し(ステップ5−6)、この新たなルート集合に対して上記の比較元ルート、比較先ルートの選択(ステップ5−1)から再度行う。新たな連結ルートの生成のないことを確認の後(ステップ5−5でNO)、生成された全てのルートの集合のうちから同一を含め包含関係にあるルートを削除するなどして完成ルートのみ抽出する(ステップ5−7)。これによって、完成ルート情報の集合が生成される。
なお、ステップ5−2とステップ5−3で構成される処理が比較元ルート単位の比較連結処理を意味し、ステップ5−1からステップ5−4までで構成される処理が総当りの比較連結処理を意味し、ステップ5−1からステップ5−6で構成される処理が総当り単位のループステップを意味する。
より詳細には、比較連結処理は、選択された比較元ルート内の例えば親番号(ルートの最も右の番号)を比較元データとして抽出し、比較先ルートの逆側の子番号(ルートの最も左の番号)を比較先データとして抽出し、続いて上記の比較元データと比較先データを比較し、一致すれば連結して新たなルート(連結ルート)を生成する。そして、比較連結処理を上記の比較元ルートに対して、ルートリストの例えば全てのルートを比較先ルートとしてそれぞれ順に選択して行う(比較元単位の比較連結処理)。次に、例えば所定の条件をルートリストの全ルートとすると、この比較元単位の比較連結処理をルートリストの全ルートを順番に比較元ルートとして選択して行い、つまり、ルート同士を総当たり的に比較・連結する(総当たりの比較連結処理)。この処理の課程で連結して生成された連結ルートおよび連結ができなかった比較元ルートを次のルートリストとすることで、新たなルートリストを生成する。
そして、総当りの比較連結処理が終了した時点で、生成された連結ルートが一つでもあれば総当りの比較連結処理をこの新たなルートリストに対して行うことを繰り返し行い、連結されるルートが一つもなければルートリストの更新生成(ステップ5−1〜ステップ5−6)を完了する。なお、比較元単位の比較連結処理では、比較先ルートには比較元ルートを含めなくても良く、当然として比較連結処理において連結できないからである。
また、上記の総当たりの比較連結処理毎に生成される新たなルートリストは、連結ルート、比較元データが"0"であったルートで構成し、完成ルートは別に保持するよう構成しても良い。これらは、ルートリストのエントリ数が少ない方が処理が早くなるので、ルートの消失が起こらない範囲でエントリ数を少なくするのが趣旨であり、その他の方法で少なくしても良い。逆に、新たなルートリストは、前のルートリストに連結ルートを追加して生成するなど、冗長にルートを保持しても良い。
上記の総当りの比較連結処理を、図3(b)に示すルートリスト1のNo.11、10、・・・1の順で比較元ルートとして選択し、ルートリスト1の全てを比較先ルートとして選択する場合を例に具体的に説明する。No.11のルートは、右端が"0−"で左端が末端項なので完成ルートであり、No.10は右端が"0−"であるため、これらを比較元ルートとし、比較先ルートと比較連結処理をしても結果として連結されない。
引き続き、"6−5−"(No.9)を選択し、その右端番号の5を比較元データとして抽出する。次に、比較先ルートとしてNo.11、10、9、8、・・・1の順に選択していくが、No.11、10、9、8の左端番号はそれぞれ8、7、6、6であり、この左端番号を比較先データとして比較元データの5と比較すると一致しないので連結しない。次にNo.7で示すルートの左端番号5を比較先データとして、比較元データの5と比較すると一致するので連結し、"6−5−4−"という連結ルートを生成して次のルートリストとなるルートリスト2に加える。引き続き、No.6、5、・・・、1のルートを順に比較先ルートとして選択して同様に比較先データを抽出し、比較元データである5と比較しても一致しない。なお、比較先ルートとして、比較元ルート(この場合はNo.9)を選択しなくても良く、この場合、当然一致しないからであることは先に述べた通りである。
次に、No.8で示すルート"6−4−"を比較元ルートとして選択すると、比較元データは4である。次に、比較先データとしてNo.11、10、9・・・1というように順に選択していくと、No.6、5、4の左端番号(比較先データ)は4であるので、比較連結処理によって、それぞれ"6−4−3−"、"6−4−2−"、"6−4−1−0−"の連結ルートが生成されることになり、それ以外の比較先ルートの比較先データとは一致しないので生成されない。
このような要領で、比較元ルートをNo.11、10、・・・、1と順に選択し、該選択毎にその他の全てのルートを比較先ルートとして総当たり的に比較連結処理を行うことで、新たなルートリストを作る。なお、"0−"が比較元データとして選択された場合には、連結可能なルートがないのは明らかなので比較連結処理をスキップし、次のルートを比較元ルートとして高速化を図ることもできる。このような処理により、ルートリスト1(図3(b))を元に図6(a)の新たなルートリスト(ルートリスト2)を得る。ルートリストの中のルートの順番は説明のためのものであり、順番を限定するものではない。
ここで、各比較元ルートの右端が"0−"のものは連結できるルートがないことは明らかであるが、ルートリストから削除することなく新たなルートリストに加えることが重要である。後に生成される新たなルートリストでの比較連結処理で比較先ルートとして連結される可能性があるからであり、階層構造が消失することを防ぐためである。ルートリスト1(図3(b))の場合は、例えば、"1−0−"、"2−1−0−"、"4−1−0−"、"7−0−"、"8−7−0−"のルートが、このような理由で図6(a)のルートリスト2に加えられている。例えば、仮に、ルートリスト3に自ルートが比較元ルートとした場合に関連付けがなされないルートである"2−1−0−"が加えられていない場合、ルートリスト3を対象とした総当りの比較連結処理において、"6−5−4−3−2−"(No.1)のルートが完成しなくなってしまうことが分かる。
また、完成ルートを別に保持しておく場合には、例えばルートリスト2には、"6−4−1−0−"(No.4)、"8−7−0−"(No.15)は含まれないことになる。また、前述の前処理を行っていれば、その前処理の内容に応じて"2−1−0−"(No.12)、"1−0−"(No.13)、"7−0−"(No.14)は特にルートリストに含まれる必要はない。
上記の通り、ルートリスト1を対象に総当たりの比較連結処理を行った結果、連結できたルートは1以上であったので、引き続きルートリスト2(図6(a))をルートの集合として、ルートリスト1で行ったのと同様の総当たりの比較連結処理を行いルートリスト3(図6(b))を得る。その結果、連結できたルートは1以上であったので、ルートリスト3を対象に同様の総当たりの比較連結処理をすることでルートリスト4(図6(c))を得る。なお、新たなルートリストをルートの集合として総当りの比較連結処理を行うかは、新たなルートリストの右端が全て“0−”であるか否かで判断しても良い。
ルートリスト4の各ルートには全て右端に"0−"が付加されており、比較元の親と比較先の子を比較してもさらに連結することはできない状態になっている。このため、ルートリスト4を対象に総当りの比較連結処理を行っても連結ルートは一つもない。よって、ルートリストの更新生成はここで完了する。あるいは、このルートリスト4に対する総当りの比較連結処理に先立って、ルートリスト4の各ルートには全て右端に"0−"が付加されていることを確認できれば、ルートリストの更新生成を完了するとしても良い。要は、ルートリスト4の各ルートから連結ルートができないことを確認して完了すれば良い。なお、この状態では、図6(c)からわかるように独立項から個々の末端項までの全ルートが、包含関係にあるルートを有しながらもルートリスト4に含まれていることになっている。
(包含ルートの削除処理(図5のステップ5−7))
続いて、更新生成が完了したルートリスト(本例ではルートリスト4)から、完成ルートのみからなる集合を生成する処理を行う。なぜなら、上記のように、更新生成が完了したルートリストは完成ルートに包含されるルートを含む場合があり、これらの包含ルートを取り除いた完成ルートの集合を先に生成しておくことで、請求項番号や接続線の出力位置の判断を、容易に正しく行えるようになるからである。
続いて、更新生成が完了したルートリスト(本例ではルートリスト4)から、完成ルートのみからなる集合を生成する処理を行う。なぜなら、上記のように、更新生成が完了したルートリストは完成ルートに包含されるルートを含む場合があり、これらの包含ルートを取り除いた完成ルートの集合を先に生成しておくことで、請求項番号や接続線の出力位置の判断を、容易に正しく行えるようになるからである。
なお、この包含ルートの削除処理は必要に応じて行うものであり、生成された完成ルートは別に取っておくような場合などであって、完成ルートの集合に包含ルートがないことが明らかな場合にまで実行する必要はない。
ルートリスト4の例でいうと、例えば"6−5−4−1−0−"(No.3)は、"5−4−1−0−"(No.9)、"4−1−0−"(No.12)、"1−0−"(No.15)のルートを包含していることがわかる。このような関係を説明のためルートリスト4に併記する(図7(a))。そして、包含されるルートを削除あるいは完成ルートのみ抽出して生成したルートリストが、出力処理に用いるルートリスト(完成ルートリスト)である(図7(b))。すなわち、完成ルートリストは、"6−5−4−3−2−1"(No.1)、"6−5−4−2−1"(No.2)、"6−5−4−1"(No.3)、"6−4−3−2−1"
(No.4)、"6−4−2−1"(No.5)、"6−4−1"(No.6)、"8−7"(No.7)の7つのエントリ(ルート)で構成される。なお、上記の通り、"0−"は専らプログラム処理に利用するものであって表示する必要がないため、削除してある。
(No.4)、"6−4−2−1"(No.5)、"6−4−1"(No.6)、"8−7"(No.7)の7つのエントリ(ルート)で構成される。なお、上記の通り、"0−"は専らプログラム処理に利用するものであって表示する必要がないため、削除してある。
そして、この完成ルートリストにより、ある請求項から分岐する任意の2つのルートの間に、どの程度のスペースを設ける必要があるかを求めることができる。例えば、請求項1は、図4の通り請求項2と請求項4の2つの引用項を有するから、"1−2−・・・"というルートと"1−4−・・・"というルートの分岐があることになり、この2つの分岐間に必要なスペースを求める場合を考える。完成ルートリストを見ると、"1−2−"を含むルートは4つあるので、この4つのルートを出力する分のスペースが、"1−2−・・・"のルートと"1−4−・・・"のルートの間に必要となることが分かる。
(3−2)完成ルート情報の集合の生成例2
図8に完成ルート情報の集合を生成する実施例2を記載する。簡単に実施例1との違いを説明すると、実施例1はルートリスト1の全エントリを並行に処理していくのに対し、本実施例2ではルートリスト1の各エントリ毎にそのルートを発展させることで完成ルートを生成する点が異なる。また、実施例1では更新されたルートリストから比較元ルート、比較先ルートを選択するのに対し、実施例2では初期の比較元ルートや、比較先ルートの集合はルートリスト1から選択する点でも異なる。具体的な処理を以下に説明する。
図8に完成ルート情報の集合を生成する実施例2を記載する。簡単に実施例1との違いを説明すると、実施例1はルートリスト1の全エントリを並行に処理していくのに対し、本実施例2ではルートリスト1の各エントリ毎にそのルートを発展させることで完成ルートを生成する点が異なる。また、実施例1では更新されたルートリストから比較元ルート、比較先ルートを選択するのに対し、実施例2では初期の比較元ルートや、比較先ルートの集合はルートリスト1から選択する点でも異なる。具体的な処理を以下に説明する。
本実施例2では、初期のルートの集合(ルートリスト1)から所定の条件を満たす1の初期の比較元ルートと、初期のルートの集合の全部あるいは一部を比較先ルートの集合として選択する(ステップ8−1)。次に、比較元ルートをこの時点で空である連結ルートの集合に含める(ステップ8−2)。これは、初期の1の比較元ルートから1又は複数の完成ルートが生成されることを考慮したものであり、この時点での連結ルートの集合には初期の比較元ルートしかなく、プログラム上の配列変数のようなものと理解すると良い。
次に、この連結ルートの集合から1のルートを比較元ルートとして選択し(ステップ8−3)、ルートリスト1のルートをそれぞれ比較先ルートとして比較連結処理を実行し(ステップ8−4〜ステップ8−5)、この処理を連結ルートの集合の全てのルートを比較元ルートとして行う(ステップ8−6)。このような比較元ルート単位の比較連結処理を、該処理の後あるいは前に、生成される新たな連結ルートがないことを確認するまで繰り返し行う(ステップ8−7でYES)。新たな連結ルートが一つでも生成される場合には、これらの連結ルートを含むルートの集合を新たな連結ルートの集合として設定し(ステップ8−6)、再度この更新された連結ルートの集合からそれぞれ比較元ルートを選択する(ステップ8−3)ことから再度実行する。一方、新たな連結ルートの生成ないことを確認すると(ステップ8−7でYES)、初期のルートの集合(ルートリスト1)から既に選択したルート以外の所定の条件を満たす1の初期の比較元ルートと比較先ルートの集合を選択するところ(ステップ8−1)から実行する。そして、初期の比較元ルートから所定の条件を満たす全てのルートに対して上記の処理(ステップ8−1〜ステップ8−8)を実行した後に(ステップ8−9でYES)、全てのルートの集合のうちから同一を含め包含関係にあるルートを削除するなどして完成ルートのみ抽出することにより完成ルートリストが生成される(ステップ8−10)。包含ルートの削除処理は実施例1と同じである。
なお、ステップ8−3〜ステップ8−6で構成される処理が比較元ルート単位の比較連結処理を意味し、ステップ8−3からステップ8−8までで構成される処理が比較元ルート単位のループステップを意味し、ステップ8−1からステップ8−9で構成される処理が総当りの比較連結処理を意味する。
ここで、上記の所定の条件とは、ルートリスト1の中の各ルートのうち末端項を含むルート、あるいは独立項を含むルートを比較元ルートとして選択することである。これは、生成すべき完成ルートは必ず末端項と独立項を含むため、これらのいずれかを含むルートを初期の比較元ルートとして発展させていけば、ルートの一端のみを比較のために確認するのみで、初期に比較元ルートとして選択した階層構造を含む全ての完成ルートが得られるためである。また、初期の比較元ルートとして選択すべきルート数が減るため、処理時間が短縮できる。
より詳細には、所定の条件を末端項を含むルートとした場合、まず最初にルートリスト1から末端項を含むルートを探して初期の比較元ルートとして選択する。次に、初期の比較元ルートに対して、ルートリスト1の全てのルートを比較先ルートとしてそれぞれ比較連結処理を行う。これによって、その初期の比較元ルートから1又は複数の連結ルートが新たに生成されることになる。次に、この新たな連結ルートの集合の各ルート(比較元ルート)に対し、ルートリスト1の全ルートを比較先ルートとしてそれぞれ比較連結処理を行って各ルートを発展更新させていくことを、連結ルートの集合のルートの右端が全て"0−"となって連結できるルートがなくなるまで繰り返し行う(比較元ルート単位の比較連結処理)。そして、ルートリスト1の中の末端項を含む全てのルートをそれぞれ初期の比較元ルートとして、各初期の比較元ルートに対してルートリスト1のルートのそれぞれを比較先ルートとして上記の処理(比較元ルート単位の比較連結処理)を行う(総当りの比較連結処理)。このように処理することで、完成ルートリストを生成する。
なお、所定の条件として、ルートリスト1の全てのルートをそれぞれ比較元ルートとしても良い。この場合は、ルートリスト1から選択された初期の比較元ルートの右端に対して比較元ルート単位のループステップを、連結ルートの全ての各比較元ルートの右端が"0−"になるまで、ルートリスト1を比較先ルートとして繰り返し行い、ルートの右端を完成させる。次に、この右端が完成した連結ルートの集合の左端を完成させるために、これらの各連結ルートの左端を比較元データとし、比較元データが全て末端項になるまで、同様に比較元ルート単位のループステップを行う。このような処理によって、完成ルートの集合を生成することになる。つまり、ルートリスト1の各ルートに対し、ルートの両方向からルートを生成更新していく。
本実施例2の方法は、ルートリスト1の各ルート毎に完成ルートに発展させていくので、上記の実施形態に比べてルートリストのエントリ数が発散することがなく、メモリの節約などが可能となるという効果がある。また、末端項あるいは独立項を含むことを比較元ルートの選択の条件とすれば、処理が簡易で短時間で実行できる効果がある。
なお、各初期のルートに基づいて、それぞれ1又は複数の完成ルートを生成するため、比較元ルート単位の比較連結処理の単位で包含ルートの排除を行っても良い。なお、完成ルートを別ファイルに格納しておくことなど、実施例1で記載した同様のオプションを必要に応じて適用することができる。
(4)出力処理(図1のステップ1−4)
次に、完成ルートリストを用いて、クレーム全体構造を階層的に出力する。この出力処理は、出力の際に完成ルートリストに基づいてルート間のスペース(行間など)などの出力を制御するための情報を取得し、そのスペース分の出力空間を移動するなどして出力する処理である。なお、図9〜12を参照して具体的に説明するが、これらの方法は、前述の全体構造を把握した上で出力するという本発明の思想を実現するため出力方法の例示であり、出力処理はどのような方法でも良く、出力方法を限定するものではない。
次に、完成ルートリストを用いて、クレーム全体構造を階層的に出力する。この出力処理は、出力の際に完成ルートリストに基づいてルート間のスペース(行間など)などの出力を制御するための情報を取得し、そのスペース分の出力空間を移動するなどして出力する処理である。なお、図9〜12を参照して具体的に説明するが、これらの方法は、前述の全体構造を把握した上で出力するという本発明の思想を実現するため出力方法の例示であり、出力処理はどのような方法でも良く、出力方法を限定するものではない。
(4−1)出力処理の実施例1
図9に完成ルート情報の集合を生成する実施例を記載する。本実施例は、図9に示すように、特許請求の範囲の独立項を最初に出力し(ステップ9−1)、次に、この独立項を親をとして、その直接の1又は複数の引用項を、完成ルートリストに基づいて求めた引用項間に必要なスペース分だけ出力空間を移動した位置に順番に出力する(ステップ9−2)。次にこの出力済みの各引用項を親として、その直接の1又は複数の引用項(子)を同様に必要なスペースを求めながら出力していく、という動作を末端項を出力するまで、言い換えると全ての親に子がなくなるまで繰り返し行うことによって(ステップ9−3〜ステップ9−4)、クレーム全体構造を出力する処理である。子である引用項が2以上ある場合に、その出力順序は任意である。図2(b)には、請求項番号の小さい方から順に、全ての子が同一列となるように出力する例を示してある。
図9に完成ルート情報の集合を生成する実施例を記載する。本実施例は、図9に示すように、特許請求の範囲の独立項を最初に出力し(ステップ9−1)、次に、この独立項を親をとして、その直接の1又は複数の引用項を、完成ルートリストに基づいて求めた引用項間に必要なスペース分だけ出力空間を移動した位置に順番に出力する(ステップ9−2)。次にこの出力済みの各引用項を親として、その直接の1又は複数の引用項(子)を同様に必要なスペースを求めながら出力していく、という動作を末端項を出力するまで、言い換えると全ての親に子がなくなるまで繰り返し行うことによって(ステップ9−3〜ステップ9−4)、クレーム全体構造を出力する処理である。子である引用項が2以上ある場合に、その出力順序は任意である。図2(b)には、請求項番号の小さい方から順に、全ての子が同一列となるように出力する例を示してある。
出力(描画)の形式は見やすいようであればどのような形態でも良いが、表計算ソフトやHTMLの表のように出力空間を行列形式で管理し、このマトリクス上に出力する場合を例に説明する。マトリクスの1単位をセルと称すと、マトリクスは縦と横にある長さを持つセル(セルの大きさは全て同じでなくても良い)の集まりである。そして、図11に説明のために示すように、セル単位にマトリクス上の位置座標を管理するが、原点からの距離(μm、mm、cmなど)を単位として位置座標で管理しても良い。セル単位の座標を(行、列)、すなわち(x、y)形式で表すことにすると、クレーム全体構造の出力空間であるマトリクスは座標(0、0)が原点であり、原点から下方向、右方向がそれぞれ正の値となる。また、請求項番号および接続線のそれぞれの出力は、セル単位に行うものとして説明する。
また、請求項を「C」(claimの略)と表示することにすると、特許請求の範囲に最初に記載される請求項1を表すC1の出力位置を原点とするが、マトリクス上に出願番号、公開番号などのユーザに伝える必要のある情報を出力(表示)するスペースを設ける場合には、マトリクス上の実際の原点からC1の原点位置を管理するために、行と列方向にオフセット値を設けて管理すると良い。なお、Cに代えて"請求項"などと出力しても良く、請求項番号のみ出力しても良い。
(特許請求の範囲に独立項が一つある場合の出力方法の説明)
以下、図2(a)の特許請求の範囲の内容を例に説明を行う。まず最初に、簡単のためにC1に係る階層構造である請求項1〜6のみを対象として出力処理を説明する。なお、図11を参照すると理解に良い。
以下、図2(a)の特許請求の範囲の内容を例に説明を行う。まず最初に、簡単のためにC1に係る階層構造である請求項1〜6のみを対象として出力処理を説明する。なお、図11を参照すると理解に良い。
独立項である請求項1は、クレーム全体構造を出力するスペースの任意の場所に書き出せるので、C1を任意のセルに出力でき、これを原点とする。その後に、C1を親とする直接の引用項(子)を出力する為に、まずはC1の出力位置(原点)から1セル右に移動し、分岐を表すための適切な接続線を判断してその位置に出力する。本例においては、C1はC2とC4の2つの子を持ち、2以上の子を持つので、C1から複数の分岐があると判断できる(図4)。つまり、C1からは、C1→C2、C1→C4という階層構造を含む2つのルートがあることがわかるので、横と下に接続がある旨を示す接続線(┬)を出力する。その後、さらに右方向に1セルだけ移動し、その位置である座標(0、2)にC2を出力する。C2とC4のうちC2を先に出力したのは、C2の方がC4よりも請求項の番号が小さいためである。
ここで、クレーム間を接続する接続線は、図11に例示されているように「─」、「┬」、「│」、「├」、「└」など引用関係(階層構造)に応じた種類があるが、各請求項からの分岐数は図4のように把握できるので、適切に選ぶことができる。本例においては、例えば、C1には複数の子があるのでC1とC2の間は「┬」で接続し、C3からの分岐数は1なのでC3とC4を「─」で接続する。また、C2とC4の間は下記に説明する通り例えば8行分のスペースが必要であるため、最初と最後以外は「│」で接続し、最後に「└」を用いる。なお、最初は上述の通り、「┬」である。仮に、親に対して子が3つある場合には、一番目の子は「┬」で接続し、二に番目の子は「├」で接続し、三番目の子は「└」で接続し、子の間は「│」で接続することになる。
次に、出力済みの引用項番号以外の番号のうち最も小さい引用項番号を出力する。本例においてはC4を出力する。ここで、C2とC4は同じ親をもつから同じ列に出力するが、仮にC4をC2からどの程度のスペース(行数)を開けて良いかわからずにC4を適当な位置に出力してしまうと、C1−C2を含むルートの数がC2とC4間の適当に設けられたスペースを越えた場合には、スペースが不足することにより出力できなくなる可能性がある。そして、この状況に対処するために、あとからこのC4の位置を修正し、表示を小さくし、あるいは、接続線をマトリクス上のスペースのあるところまで伸ばして出力するなどの特別な処理を行う必要が生じるなど、処理が複雑化してしまう。また、この状況に対処するために十分な余裕をもってC4を出力すると、逆にスペースが大きすぎるために出力空間を浪費してしまい、全体像が把握しずらく、また、紙に印刷する場合には紙の浪費となるなどの問題が生じてしまう。
そこで、前述しているように、C1→C2、C1→C4と繋がるルートの間に必要なスペース(行数)を完成ルートリストに基づいて取得することで、上記の問題を解決する。すなわち、完成ルートリストを見るとC1−C2を含むルートはNo.1、2、4、5の4ルートあるので、出力済みの"C1┬C2"のC2以降に4つのルート(分岐)があることが分かる。言い換えると、C1−C2を含む4つのルートが、C1−C4を含むルートが出力される位置より上に存在することになる。このため、C4を、出力したC2の行も含めて4つのルートが出力できる間隔分のスペース(行)を空けた位置であって、C2と同列の下方(X方向)に出力する。この処理によって、ルート間の空間として最適なスペースを設定でき、上述の問題が解決できる。
また、クレーム全体構造を見やすくするために、例えばルートとルートの間を1行分(任意の行数で良い。)だけ空けるようにする場合、C1−C2を含むルートは4つあるため、"C1┬C2"の出力行から8行目(=4ルート×2)にC4を上記のC2と同一列に出力しても良い。つまり、座標(8、2)で示される位置である(図11参照)。
また、複数の子の分岐構造を表す出力線は、子の出力位置へ移動するときに出力すると良い。本例では、C1とC2の間の接続線は出力済みであるから、この出力済みの出力線の位置と同一列であって1セル下から、出力済みの構造とC4を接続する「│」と「└」を出力する。仮に、C1に、C2、C4以外の他の引用項がある場合には、C4の出力後に同様にスペースを求めて移動して出力することになる。
次に、上記で出力が済んだC2、C4を新たな親として、この親の子をそれぞれ出力する。親に複数の子がある場合には完成ルートリストに基づいてスペースを求めることは上述の通りである。このため、座標(0、2)に出力済みのC2を親とした場合には、子がC3とC4の2つがあり、子C3が座標(0、4)に、子C4が座標(4、4)に出力される。"C1−C2−C3"を含むルートは、完成ルートリストから2ルートであることが分かるので、C3から4行目(=2ルート×2)にC4を出力するためである。
一方、座標(8、2)に出力済みのC4を親とした場合には、子C5が座標(8、4)に、子C6が座標(10、4)に出力される。次に、上記の親C2の子であるC3とC4、親C4の子であるC5、C6を新たな親として、その直接の引用項である子を出力する。親C3は子が一つであり、子C4が座標(0、6)に出力され、親C4からは子C5、C6がそれぞれ座標(4、6)、(6、6)に出力され、親C5からは子C6が座標(8、6)に出力され、親C6は末端項であるため子は出力されない。
次に、直前に出力されたこれらの子を新たな親とすると、座標(0、6)の親C4からは子C5、C6がそれぞれ座標(0、8)、(2、8)に出力され、座標(4、6)の親C5から子C6が座標(4、8)に出力され、残りの2つの親C6は末端項であるため、子は出力されない。次に同様に直前に出力された子を新たな親とすると、座標(0、8)の親C5から子C6が座標(0、10)に出力され、残りの2つの親C6は末端項であるため、子は出力されない。次に直前に出力された子を親とすると、座標(0、10)の親C6は末端項であるため子は出力されず、他に親はないため処理が完了する。なお、この新たな親の座標は子として出力されたときに記憶し、新たな親からの子を出力する時にその記憶している座標位置に戻って子の出力を行えば良い。上記なような処理を繰り返し行い、末端項まで行って出力する子がなくなるまで行うことで、クレーム構造全体が階層的に出力できることになる。
(特許請求の範囲に複数の独立項がある場合の出力方法の説明)
続いて、特許請求の範囲に複数の独立項が存在する場合を説明するが、独立項が一つの場合と基本的には同じである。出力済みの独立項以外の他の独立項を出力する場合も同様に完成ルートリストに基づいてスペースを求める。すなわち、最初に完成ルートリストから他の独立項のクレーム構造の一つ上方に位置する独立項を含むルートの数をカウントし、該独立項のためにその分のスペースを空けて、該他の独立項を出力する。さらに、見やすくするため、独立項に係るクレーム構造の間は2行空けるようにする場合には、その求めたスペースに2行を足した分を空けた行であって、C1などの他の独立項と同じ列座標に独立項を出力する。
続いて、特許請求の範囲に複数の独立項が存在する場合を説明するが、独立項が一つの場合と基本的には同じである。出力済みの独立項以外の他の独立項を出力する場合も同様に完成ルートリストに基づいてスペースを求める。すなわち、最初に完成ルートリストから他の独立項のクレーム構造の一つ上方に位置する独立項を含むルートの数をカウントし、該独立項のためにその分のスペースを空けて、該他の独立項を出力する。さらに、見やすくするため、独立項に係るクレーム構造の間は2行空けるようにする場合には、その求めたスペースに2行を足した分を空けた行であって、C1などの他の独立項と同じ列座標に独立項を出力する。
本例では、C1とC7が独立項であり、C7を出力するのに際して、C1が一つ上方に位置する独立項である。そこで、完成ルートリストを参照すると、C7の一つ上方であるC1を含むルートは6つあり、ルート間は1行空け、独立項間の階層構造間は2行空けるとすると、最終のルートの下にはスペースは必要ないから、他の独立項であるC7に係る構造のためにC1から13行(=6ルート×2−1+2)目のあって、C1と同じ列に独立項を出力する。つまり、図11に示すように座標(13、0)の位置にC7を出力する。
(4−2)出力処理の実施例2
上記のような出力済みの番号から階層構造を出力していく処理は、出力位置を記憶するのに代えて、マトリクス上の全セルを順に走査することによって行っても良い。すなわち、独立項を出力した後にマトリクス全体の走査を開始し、走査の過程で請求項番号が見つかればその番号を親とする子を出力することにより実現する。この走査処理は、原点から座標の行位置を増加更新、すなわち行方向(X方向)に移動しながら請求項番号を探し、最終行まで移動した後に座標の列位置を増加更新、すなわち列方向(Y方向)に移動して、再度行方向を移動しながら請求項番号を探すという動作を最終列まで行うことを意味する。あるいは、原点から列方向(Y方向)に移動しながら請求項番号を探し、最終列まで移動した後に行を移動(X方向に移動)して、再度列方向を移動しながら請求項番号を探すという動作を最終行まで行うことを意味する。このマトリクス全体についての走査を行うことで、全ての請求項について分岐構造を出力することができる。
上記のような出力済みの番号から階層構造を出力していく処理は、出力位置を記憶するのに代えて、マトリクス上の全セルを順に走査することによって行っても良い。すなわち、独立項を出力した後にマトリクス全体の走査を開始し、走査の過程で請求項番号が見つかればその番号を親とする子を出力することにより実現する。この走査処理は、原点から座標の行位置を増加更新、すなわち行方向(X方向)に移動しながら請求項番号を探し、最終行まで移動した後に座標の列位置を増加更新、すなわち列方向(Y方向)に移動して、再度行方向を移動しながら請求項番号を探すという動作を最終列まで行うことを意味する。あるいは、原点から列方向(Y方向)に移動しながら請求項番号を探し、最終列まで移動した後に行を移動(X方向に移動)して、再度列方向を移動しながら請求項番号を探すという動作を最終行まで行うことを意味する。このマトリクス全体についての走査を行うことで、全ての請求項について分岐構造を出力することができる。
なお、上述した複数の独立項を出力する場合、上記の他の独立項に関する構造を出力するタイミングはC1に関連する階層構造を全て出力した後でも良いし、C1を出力した後に他の独立項を順に全て出力した後に走査処理を行うようにしても良い。要は全体的な処理効率の観点からそのタイミングを決めれば良い。つまり、本例では、C1およびC1に関する階層構造を全て出力した後に、C7およびC7に関する階層構造を出力しても良く、C1、C7を出力し、その後にそれぞれの階層構造を並行して出力しても良い。
以下に、出力空間の走査により、複数の独立項を並行して出力する場合を図10を参照して説明する。各独立項に係る階層構造を並行して出力するために、まず最初に独立項のみ完成ルートリストに基づいてスペースを求めて全て出力する(ステップ10−1)。この処理は請求項1から順に独立項を探し、独立項が見つかるとその独立項を出力する位置の上方に必要なスペースを完成ルートリストに基づいて求め、そのスペースを空けた位置に独立項を出力する。なお、独立項が請求項1の場合は原点であるからスペースを求める必要はない。その後、原点(C1の出力位置)に戻る(ステップ10−2)。
次に、原点から行方向(X方向)に出力内容を走査し(ステップ10−3)、請求項番号が見つかれば、その座標を走査の再開のための再開座標位置として記憶し、その番号の引用構造を完成ルートリストに基づいてスペースを求めて出力する(ステップ10−4)。その後、再開座標位置に戻り、例えば1セルだけ行方向に移動した位置から走査を再開し(ステップ10−5)、その列の走査が終わらなければ当該列を引き続き走査し(ステップ10−6でNO)、終われば隣の列に移動して列の走査を繰り返し(ステップ10−6でYES、10−7でNO)、最終列の最終行まで走査した時点で終了する(ステップ10−7でYES)。なお、接続線も1セルに出力する場合には、接続線を出力する列に請求項番号がないことは明らかであるため、処理の効率化のため列方向(Y方向)に2セル移動しても良い。また、発見した請求項についての子を全て出力した後に、そのセルの行の位置を記憶しておき、走査の再開は走査再開座標の列であってこの記憶した行位置から行ってもよい。走査中の列のその記憶した行位置までは、請求項番号がないことは明らかなためである。
本例においては、原点(0、0)にC1を出力し、同一列の行間を13(=2×6ルート−1+2)行目である(13、0)にC7を出力する。その後に、原点(0、0)に戻ってから列と行の走査を開始すると、まずは原点にC1を見つけるので、C1を親とするC2、C4を出力する。つまり、座標(0、2)の位置にC2を出力し、(8、2)の位置にC4を出力する。続いて、座標(1、0)あるいは(9、0)に戻り走査を再開すると、座標(13、0)の位置にC7を見つけるので、C7を親とするC8を座標(13、2)に出力する。
最終行まで走査した後、列方向(Y方向)に移動することで座標(0、1)あるいは(0、2)に移動して再度列方向の走査を開始すると、次に出力済みのC2、C4、C8がこの順に見つかるので、それぞれを親とする子の階層構造を順次出力する。これを最終行まで繰り返すことで、クレーム全体構造の出力が完成する。すなわち、図12に示すような(1)〜(17)の順番で、クレーム全体構造が出力されることになる。
ここで、クレーム全体構造の出力空間であるマトリクスとして必要な行数および列数も、完成ルートリストに基づいて求めることができる。すなわち、完成ルートリストには全てのルートが記載されているのでそのエントリの数に基づいて行数を決めればよく、また、完成ルートリストのうち最も長いルートが記載されたルートに基づいて列数を決める。
本実施例の場合には、出力空間として必要な行数は、完成ルートリストのエントリ数は7なのでルート間を1行空けるとすれば、独立項が2であるため、14(=7×2+2−1×2)行があればよい。最後の徐算は各請求項に係る構造の最終のルートは一行あければよいことによる。また、必要な列数は、完成ルートリスト中の最も長いルートはNo.1の"6−5−4−3−2−1"なので、接続線の出力に1セル要する場合、合計11(=6×2−1)列分の出力空間を用意すればよいことが分かる。このように、完成ルートリストに基づいて予め出力空間の大きさも求めることができるため、走査する空間(領域)がわかり、メモリの節約、処理の高速化などが可能である。
一方、独立項に係る構造毎に出力する場合には、着目している独立項に関する階層構造に必要な行数は同様に完成ルートリストから分かるので、その範囲の行座標まで先に走査し、独立項に関する構造間に必要な行数を空けたところから、次の独立項に関する階層構造に必要な行数として求めた範囲までを走査処理の対象とすることで、同様に出力が可能である。
あるいは、基本的な出力処理は同じだが、走査処理の向きを変えても良い。すなわち、まずはC1を原点に出力する。その後、原点から順に列方向(Y方向)に走査し、最終列まで走査すると、次の行に移動して走査を続け、最終行の最終列まで走査すると処理を完了する。走査の際に請求項番号が見つかれば、上記と同様に分岐構造を出力する。この場合は、C1が最初に見つかるためC1を親とした子であるC2、C4が出力され、走査再開座標に戻って走査を再開すると次に子として出力されたC2が見つかるので、C2を親として子のC3、C4が出力されるといった具合に出力がなされていくことになる。そして、C1に係る構造が全て出力されると、今度はそれ以外の他の独立項の構造を出力し、これを繰り返すことでクレーム全体構造を完成させる。
なお、独立項からの引用項を出力する場合に、その直接の引用項のみならず、該独立項と直接の引用項である子を含む完成ルートを先に出力し、その後に走査し、請求項番号が見つかる度に、その番号を親とする子であってまだ出力されていない子を含むルート全体を出力するようにしても良い。
上記の実施例1〜2に説明したような方法により、接続線が不必要に交差させる必要もなく、出力後に位置を修正するなどの複雑な処理を不要とし、直感的に分かりやすいクレーム全体構成を出力することができる。
さらに、出力処理は、単純なループ構造の中で繰り返し同一の処理を行うという単純な処理構造により、特許請求の範囲の全体構成を出力することができる。
(5)システム構成
以上の通り、本発明に特徴的な処理方法は説明したので、これより以下は、全体のシステムについて簡単に説明する。本システムは図13に例示されるように、CPUなどの演算手段、メモリ、ハードディスクなどの記憶手段、キーボードやマウス、通信回線等の入力手段、ディスプレイやプリンタなどの出力手段、メインメモリなどの一時記憶手段により構成され、これらの各手段が相互に連携することによって、本発明を実現する。このようなハード構成は、デスクトップコンピュータ、ラップトップコンピュータなど周知であり、コンピュータであれば良い。また、ソフトウェアプログラムを主に想定しているが、本発明はロジック回路などのハードウェアとして構成しても良い。各手段は一つの装置上に実現しても良いし、例えば記憶手段をDBとして他の装置とするなど、一つまたは複数の手段を分散環境で実現しても良い。
以上の通り、本発明に特徴的な処理方法は説明したので、これより以下は、全体のシステムについて簡単に説明する。本システムは図13に例示されるように、CPUなどの演算手段、メモリ、ハードディスクなどの記憶手段、キーボードやマウス、通信回線等の入力手段、ディスプレイやプリンタなどの出力手段、メインメモリなどの一時記憶手段により構成され、これらの各手段が相互に連携することによって、本発明を実現する。このようなハード構成は、デスクトップコンピュータ、ラップトップコンピュータなど周知であり、コンピュータであれば良い。また、ソフトウェアプログラムを主に想定しているが、本発明はロジック回路などのハードウェアとして構成しても良い。各手段は一つの装置上に実現しても良いし、例えば記憶手段をDBとして他の装置とするなど、一つまたは複数の手段を分散環境で実現しても良い。
また、一時記憶手段には本発明の処理を制御する、例えば階層情報抽出部(モジュール、機能)、初期ルート集合生成部、完成ルート集合生成部、階層構造出力部があり、それぞれ上述の図1の処理に対応して説明した(1)〜(4)の処理を担当する。なお、モジュール構成は管理のし易いように分割すれば良く上記の構成に限定されない。これらの機能を有するプログラムは、記憶手段、ASP(application service provider)やWebサーバなどに保存されており、そこから、一時記憶手段にロードされても良い。
そして、上記のような構成において、記憶手段などからクレーム情報、制御情報を入力(インプット)し、各機能部や手段が連携することで、結果物であるクレーム全体構造を出力(アウトプット)する。
(6)プログラムによる処理フローの実施例
以下、図14〜図16を参照してプログラムによる処理フローを説明する。図14は全体処理フローを説明する図であり、処理の実行が指示されることにより、出力(描画)すべき特許請求の範囲の情報(以下、「クレーム情報」という。)および制御情報を入力情報として、開始される処理である。クレーム情報は、テキストボックス、ファイル、データベースなどシステムに応じた方法により入力される。また、制御情報もファイル、データベース、環境設定画面等で予め指定し、処理開始時に読み込まれる。
以下、図14〜図16を参照してプログラムによる処理フローを説明する。図14は全体処理フローを説明する図であり、処理の実行が指示されることにより、出力(描画)すべき特許請求の範囲の情報(以下、「クレーム情報」という。)および制御情報を入力情報として、開始される処理である。クレーム情報は、テキストボックス、ファイル、データベースなどシステムに応じた方法により入力される。また、制御情報もファイル、データベース、環境設定画面等で予め指定し、処理開始時に読み込まれる。
図14において、処理の実行が指示されると、制御情報を読み込む(S14−1)。次に、後述するメイン処理を実行(S14−2)し、正常終了する(S14−3でNO)。途中でなんらかのエラーが発生すれば(S14−3でYES)、エラーを表示し(S14−4)て異常終了する。
ここで制御情報は、例えば、特許請求の範囲のデータの入力方法、各請求項の記載箇所を判別する方法(例えば、すみつきかっこ、大かっこなど)、出力モード(ファイル、紙、ディスプレイ、メモリ等など)、出願番号、出願公開番号などの書誌的事項や出力日時などの出力(表示)の有無、カテゴリ表示の有無、クレーム情報に補正後あるいは補正前の両情報がある場合にはいずれの情報を解析・出力するか、ルートリストのエントリ数や出力時間に応じて処理を中断するか、出力処理に要する時間が長くなると予想される場合にはいずれの独立項の構造を表示するか、独立項に関する階層構造間のスペースのサイズ(行間)などの表示間隔を指定する情報、請求項番号の表示方法(例えば、「請求項1」、「C1」、単に「1」と表示するなど)、請求項番号の出力サイズ(各セルのサイズ)、ルート間の行数(例えば、1行)など、表示に関連する制御情報を想定している。
図15はメイン処理フロー(図14のS14−2)を説明する図である。まずは、クレーム情報を解析するのに必要な解析制御情報およびクレーム情報を読み込む(S15−1〜S15−2)。次に、解析制御情報およびクレーム情報に基づいて完成ルート情報を作成する(S15−3)。次に、該ルート情報に基づいて、クレーム全体構造を出力する(S15−4)。また、各ステップにおいてエラーが発生した場合には、処理を中断してエラー情報を作成して格納し(S15−5)、メイン処理を抜けて異常終了であることを示す。エラー発生時でも処理が継続可能であれば、警告、エラー情報の格納など適切に処理し、中断して終了しなくても良い。
ここで、各請求項には該請求項が引用する請求項が記載されているが、その表現形式は多様である。例えば、請求項1〜3を引用する場合の表現形式は、「請求項1ないし3」、「請求項1ないし請求項3」、「請求項1乃至3」、「請求項1〜3」、「請求項1、2〜3」など様々である。また、請求項を個別に表現する形式も、「請求項1又は2」、「請求項1または2に記載のいずれか1項」、「請求項1若しくは請求項2」、「請求項1、請求項2」など多様である。このように同一の内容に対して多様な表現形式があるので、これらの記載を全て判断し、正確に引用先の請求項を抽出する必要がある。
上記の解析制御情報は、例えば、このような多様な記載から1、2、3というような引用番号を判断するため情報である。例えば、上記の「ないし」、「乃至」、「〜」などの範囲を表す用語を解析制御情報として予め登録しておき、多様な表現を全て同一の記号(例えば、「〜」、「−」、「~」)に置き換えて、該記号に挟まれる数字を全て抽出する。また、請求項を個別に指定する表現形式に対しても同様に、「または」、「又は」、「若しくは」など個別に表す用語も予め解析制御情報として登録し、同一の記号(例えば、「、」など)に置き換え、それぞれ抽出する。これによって、統一された記号により判断できるので、引用番号を容易に抽出できる。
なお、上記の通りその記載方法は多様であり、将来どのように変わるかも分からない。このため、プログラムコードとして全て実装しても良いが、利用者が適時に改良していけるように、判断すべきキーワードを解析制御情報として設定画面上で容易に追加するようにすることもできる。
また、各請求項の記載を判断する方法はどのようなものでも良いが、請求項の記載を示すためのすみつきかっこの記号と"請求項"というワードに基づいて各請求項を判別することが考えられる。
一方、各請求項から引用する請求項番号を抽出する方法もどのようなものでも良いが、"請求項"というワードを手がかり(検索キー)にする方法が考えられる。ここで、上記の通り記載方法は多様であるため、例えば、「請求項1〜2」という場合の"2"のように必ずしも請求項という用語が数字の前に記載されていない場合がある。この場合には"請求項"というワードから、"〜"などのワードに基づいて上記の"2"を判断しても良い。また、引用される請求項番号は「請求項」のキーワードから遠く離れた位置にないと考えられるので、"請求項"というワードから予め指定されたある程度の範囲(10文字までなど)に存在する数値を請求項番号として判断することが考えられる。
ただし、後者については請求項という用語の以降どこまでの範囲内に請求項番号が記載されるかわからず、10文字以内など適当な範囲に限定すると請求項番号が正しく抽出されないという問題がある。また、「請求項」という検索キーも各請求項の先頭の方あるいは後の方に書かれる場合があり、特に請求項が先頭部分にある場合「請求項」という記載の後のどこまでの範囲に請求項番号が含まれるのかを判断するのが難しい。この問題に対処するために、仮に、「請求項」という用語の以降に現れる全ての数値を引用番号として抽出すると、途中に「第1の」などの数値が記載されている場合には、誤って請求項番号と判断されるという問題が生じてしまうので、「第1」など数値を含む表現を無視するようにしなければならない。
このため、予めこの「第1」や「いずれか1項」などの用語を解析制御情報として登録しておき、その登録のある用語は他の文字に置換するなどして、予め無視するように処理すると良い。第1、第2など全て登録するのも煩わしいので、第nとして登録しておき、nはプログラムで作り出せるようにしても良い。
また、このような記載は将来にわたって予測することは難しく、また、技術分野によってもまちまちであると考えられるため、ユーザが設定画面を通じて適時、容易に設定できるようにすると良い。このようにすると、プログラムコードとしては設定された各キーワードを無視するための処理を実装すれば、設定はユーザが必要な時に追加、削除、保存できるため、拡張性の優れたものとなる。なお、上記の方法を組合わせ、予め設定された範囲から抽出するが、その範囲を超えて認識された数値がある場合には、置換すると共に警告を出して注意を促しても良い。
図16は、入力データ構造の解析(図15のS15−3)を上述の(3−1)の実施例1を例として説明する図である。まずは処理を容易にするために、クレーム情報から図4のような管理制御情報を先に抽出して管理する。例えば、各請求項の番号に対応させて、独立項か引用項か末端項かの種別、該請求項を引用する請求項の数および引用項番号などを構造体などを用いて管理制御情報として抽出する(ステップ16−1)。発明のカテゴリも含めても良い。この際、請求項が番号順に記載されているか、引用される親請求項は該請求項より前に記載されているかなどの特許請求の範囲の記載要件の適合性をチェックし、違反がある場合にはエラー内容を表示すると良い(S16−2、16−9)。これによって、人がチェックする手間が省けるし、誤ったデータによる誤った結果を表示することも避けられる。
カテゴリの判断方法はどのような方法でも良く、例えば、拡張性、汎用性を高めるために、ユーザが任意に随時、装置、手段、媒体、ノード、プログラム、方法、ステップ、工程などのキーワードをカテゴリを判別するための解析制御情報として設定画面などを通じて設定できるようにしておき、各請求項中に現れるキーワードの頻度で判断したり、文末の一致するキーワードを優先してカテゴリを判断しても良い。該当した設定済みのキーワードをそのまま表示しても良いし、「物」、「方法」、「製造方法」などに集約して表示しても良い。
次に、前述のように完成ルート情報を生成し(S16−4〜8)、次に、出力処理の効率化のための情報である出力スペース全体の行数と列数などの情報を完成ルート情報に基づいて決定する(S16−8)。出力処理(図15のS15−4)は、前述の通りであるので省略する。
なお、解析すべき階層構造を有する入力情報は、当初から階層構造のみ抽出されたものを入力しても良い。また、特許請求の範囲以外の明細書等のその他の記載を一緒に入力しても良く、その場合には、全体の記載から解析すべき情報である特許請求の範囲を抽出して行うことになる。
(7)その他
その他の機能を以下に説明する。これらの機能を単体あるいは組み合わせることで、ユーザの利便性を向上させる効果がある。
その他の機能を以下に説明する。これらの機能を単体あるいは組み合わせることで、ユーザの利便性を向上させる効果がある。
(7−1)全体構造の分類機能
特許請求の範囲には、カテゴリが異なる点を除き、ほとんど同じ内容である複数の請求項が存在する場合が多く、実質的に同一と判断される請求項を出力した全体構造の上に明示したい場合がある。また、請求項の記載内容には、該請求項を特徴付けるキーワードが存在し、キーワードを有するか否かで分類したい場合もある。このような場合にこれらを出力済みの全体構造の上に表示できると便利である。そこで、指定されたキーワードや請求項番号を入力情報から検索して探し、全体構造の各請求項番号を色分けする機能が便利である。これによって人が入力情報を確認するよりも正確に、容易にチェックすることができる。なお、検索キーワードを出力済みの請求項番号に対応付けて表示したり、出力された請求項番号へ請求項に記載された内容をリンクし、吹き出しや別出力などで表示する機能を設けても良い。また、実質的に同一か否かは、人が判断しても良いし、カテゴリを表す用語(ステップ、機能部)などを除くなどした上で一致度を計算し、一致の割合によって実質的に同一と判断しても良い。
特許請求の範囲には、カテゴリが異なる点を除き、ほとんど同じ内容である複数の請求項が存在する場合が多く、実質的に同一と判断される請求項を出力した全体構造の上に明示したい場合がある。また、請求項の記載内容には、該請求項を特徴付けるキーワードが存在し、キーワードを有するか否かで分類したい場合もある。このような場合にこれらを出力済みの全体構造の上に表示できると便利である。そこで、指定されたキーワードや請求項番号を入力情報から検索して探し、全体構造の各請求項番号を色分けする機能が便利である。これによって人が入力情報を確認するよりも正確に、容易にチェックすることができる。なお、検索キーワードを出力済みの請求項番号に対応付けて表示したり、出力された請求項番号へ請求項に記載された内容をリンクし、吹き出しや別出力などで表示する機能を設けても良い。また、実質的に同一か否かは、人が判断しても良いし、カテゴリを表す用語(ステップ、機能部)などを除くなどした上で一致度を計算し、一致の割合によって実質的に同一と判断しても良い。
(7−2)部分的な階層構造の集約機能
クレーム全体構造において、ある引用項から末端項までの同一の階層構造が、全体構造中に多数現れる場合がある。例えば、図2の例においては"C4−C5−C6"と"C4−C6"による階層構造が、C1、C2、C3からそれぞれ分岐していることが分かる。このような場合に、これらの分岐する箇所に、この共通する階層構造を関連付ける記号を表示して繋がりを示しつつ、共通する階層構造を別のスペースに一つだけ表示するようにすれば、クレーム全体構造を出力するスペースを小さくすることができる。特に、ルート数が多い場合には見やすいなどの効果がある。このため、例えば、図2のC4の位置に下位の階層構造を特定する記号(例えば、(1)、[1]など)のみを出力し、C1に関する階層構造とは別に、上記の共通する階層構造を該記号と共に、例えば右隣に一つだけ出力しておくと良い。あるいはC4以降の接続線を"・・・(1)"など、別に出力したことを示す接続線と対応記号を表示しても良い。要は、分離して表示することになる共通する階層構造が、どのように連結しているのか分かる形で表示すれば良い。
クレーム全体構造において、ある引用項から末端項までの同一の階層構造が、全体構造中に多数現れる場合がある。例えば、図2の例においては"C4−C5−C6"と"C4−C6"による階層構造が、C1、C2、C3からそれぞれ分岐していることが分かる。このような場合に、これらの分岐する箇所に、この共通する階層構造を関連付ける記号を表示して繋がりを示しつつ、共通する階層構造を別のスペースに一つだけ表示するようにすれば、クレーム全体構造を出力するスペースを小さくすることができる。特に、ルート数が多い場合には見やすいなどの効果がある。このため、例えば、図2のC4の位置に下位の階層構造を特定する記号(例えば、(1)、[1]など)のみを出力し、C1に関する階層構造とは別に、上記の共通する階層構造を該記号と共に、例えば右隣に一つだけ出力しておくと良い。あるいはC4以降の接続線を"・・・(1)"など、別に出力したことを示す接続線と対応記号を表示しても良い。要は、分離して表示することになる共通する階層構造が、どのように連結しているのか分かる形で表示すれば良い。
このように処理するために、完成ルートリストの各ルートで末端項側から共通する構造を調べるなどすることで共通する階層構造がわかり、その共通する階層構造に代えて対応する記号を付加するなどして完成ルートリストを加工すれば、上述の方法と同じ要領でクレーム全体構造が出力できる。そして、共通する階層構造についても、この階層構造を完成ルートリストとして上述の方法と同じ要領で出力することで実現できる。
(7−3)多重クレームの判別、表示機能
アメリカや韓国など多重多数項引用が許容されない国になされる特許出願に対しては、上記に説明した、特許請求の範囲などの入力情報を受け取って初期のルート情報の集合を生成するために解析する際などに多重多数項引用をチェックし、発見すると出力された全体構造の該当部分を色分けするなどして表示し、ユーザに示す。これに応じて、ユーザが全体構造の出力表示を、画面上で操作して修正する。その後、プログラムなどが修正された全体構造を辿るなどすることで、請求項間の引用関係を修正された全体構造から抽出し、これに基づいて入力情報に含まれる引用関係を修正し、修正内容を反映して入力情報を出力するようにする。このようにすると、ユーザが視覚的に表示された全体構造を修正した結果が入力情報に反映されるので、人が入力情報を直接修正する必要がなく、ユーザの利便性が向上する。
アメリカや韓国など多重多数項引用が許容されない国になされる特許出願に対しては、上記に説明した、特許請求の範囲などの入力情報を受け取って初期のルート情報の集合を生成するために解析する際などに多重多数項引用をチェックし、発見すると出力された全体構造の該当部分を色分けするなどして表示し、ユーザに示す。これに応じて、ユーザが全体構造の出力表示を、画面上で操作して修正する。その後、プログラムなどが修正された全体構造を辿るなどすることで、請求項間の引用関係を修正された全体構造から抽出し、これに基づいて入力情報に含まれる引用関係を修正し、修正内容を反映して入力情報を出力するようにする。このようにすると、ユーザが視覚的に表示された全体構造を修正した結果が入力情報に反映されるので、人が入力情報を直接修正する必要がなく、ユーザの利便性が向上する。
なお、全体構造には上記の通り部分的な同一構造が含まれるので、全てを修正しなくても、抽出された引用関係のうち修正された内容を優先して入力情報に反映するようにしても良い。また、部分的な階層構造の集約機能と組み合わせて使用しても良い。
以上、本発明は、特許出願に添付される特許請求の範囲を取り扱う分野の全てに利用できる。また、出願は特許出願に限らず、同じく階層構造で記載される実用新案登録出願やPCT出願も同様に利用でき、日本国の出願のみならず特許請求の範囲に相当する書類を有する様々な国の出願に対しても利用できる。また、出願分割など出願の関連の出力にも利用できる。
さらに、出願関係に限らず、上述した2階層構造のような直接の親子関係からなるデータを有する、他のあらゆる技術分野の全体構造の出力にも適用できる。例えば、複数人による電子メールやメッセージのやり取りの履歴など、一つの事象から次々に分岐・連続するものや、例えばツリー状に関連するものの関係や、コンピュータプログラムにおける呼出元と呼出先の関数の関係を解析したい場合などにも利用できる。また、ツリー状に関連することに限定されず、スター状などの関連構造にも適用できる。この場合は、上記の通りツリー状に表示しても良いし、スター状に表示しても良い。スター状に表示するときは、中心からの距離と角度などのパラメータで出力位置やルート間の間隔などを得て出力しても良い。n次元空間への出力であっても良い。
また、逆に、システムにおける情報の管理に際して、少なくとも親がわかるように情報を管理するように構成すれば、本発明により提供された全体構造の出力方法、プログラム、装置などによって全体構造の解析および出力ができるので、管理情報の節約なども期待できる。
Claims (4)
- 情報間の関連および該関連の順序関係を示す階層構造の1又は複数で構成される全体構造の出力方法であって、1又は複数の前記階層構造を含む入力情報を受け取る入力ステップ、該入力情報から1又は複数の前記階層構造を抽出して初期のルート情報の集合を生成するルート情報集合生成ステップ、該ルート情報の集合に基づいて、自己より前に関連する他の情報のない先頭の情報から自己より後に関連する他の情報のない末端の情報に至る1又は複数の情報が関連付けられた前記階層構造である完成ルート情報の、1又は複数で構成される完成ルート情報の集合を生成する完成ルート情報集合生成ステップ、該完成ルート情報の集合から得られる出力制御情報に基づいて全体構造を出力する出力ステップ、を備えることを特徴とする全体構造の出力方法。
- 前記完成ルート情報集合生成ステップは、前記ルート情報の集合から所定の条件で選択した一のルート情報を比較元ルート情報、1又は複数のルート情報を比較先ルート情報の集合として決定する比較対象決定ステップ、前記比較元ルート情報の一端から把握される前記情報を示す識別情報と、一の前記比較先ルート情報の前記一端とは逆の端である逆端から把握される前記情報を示す識別情報を比較し、該識別情報同士が一致すれば該ルート情報を関連付けることで新たなルート情報を生成する比較連結処理ステップ、該比較連結処理ステップを前記比較元ルート情報と前記比較先ルート情報の集合との間でそれぞれ行う比較元ルート単位の比較連結処理ステップ、該比較元ルート単位の比較連結処理を前記所定の条件を満たす全てのルート情報をそれぞれ比較元ルート情報として行う総当りの比較連結処理ステップを備え、さらに、
前記総当りの比較連結処理ステップの単位で完成ルート情報の集合を生成する総当り単位のループステップであって、総当りの比較連結処理ステップにより生成される前記新たなルート情報を含むルート情報の集合に対して、前記比較連結処理ステップによって関連付けられるルート情報がないことを確認できるまで総当りの比較連結処理ステップを繰り返し行う総当り単位のループステップ、あるいは、
前記比較元ルート単位の比較連結処理ステップの単位で完成ルートの集合を生成する比較元単位のループステップであって、前記比較元ルート単位の比較連結処理ステップによって生成される1又は複数の前記新たなルート情報の集合のそれぞれを比較元ルート情報とし、それぞれの該比較元ルート情報と前記初期のルート情報の集合から決定されたものである前記比較先ルート情報の集合を用いて比較元ルート単位の比較連結処理ステップを行うことを、前記比較連結処理ステップによって関連付けられるルート情報がないことを確認できるまで繰り返し行うことで1又は複数の完成ルート情報を生成する比較元単位のループステップ、のいずれか一方を備え、さらに、
前記比較元単位のループステップあるいは前記総当り単位のループステップの途中あるいは完了した後のルート情報の集合に完成ルート情報以外のルート情報が含まれる場合には、完成ルート情報のみ抽出する完成ルート情報抽出ステップを備えることがあることを特徴とする、請求項1に記載の全体構造の出力方法。 - 前記完成ルート情報集合生成ステップにおいて、前記関連付けられたルート情報が完成ルート情報であるかを確認し、完成ルート情報である場合には前記比較連結処理ステップの対象から除くために、該完成ルート情報を別に保持する完成ルート情報一時保持ステップを備えることを特徴とする請求項2に記載の全体構造の出力方法。
- コンピュータに、請求項1〜3に記載された各ステップをそれぞれ実行させるように機能させることを特徴とする全体構造出力プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010166600A JP2012027743A (ja) | 2010-07-24 | 2010-07-24 | 階層構造の解析・出力方法、および、その情報処理装置、プログラム。 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010166600A JP2012027743A (ja) | 2010-07-24 | 2010-07-24 | 階層構造の解析・出力方法、および、その情報処理装置、プログラム。 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012027743A true JP2012027743A (ja) | 2012-02-09 |
Family
ID=45780585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010166600A Pending JP2012027743A (ja) | 2010-07-24 | 2010-07-24 | 階層構造の解析・出力方法、および、その情報処理装置、プログラム。 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012027743A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101774712B1 (ko) * | 2015-11-24 | 2017-09-05 | 윤정호 | 특허청구범위 분석 방법 및 그 장치 |
WO2018097365A1 (ko) * | 2016-11-25 | 2018-05-31 | 워트인텔리전스 | 특허청구범위 분석 방법 및 그 장치 |
JP2021082303A (ja) * | 2020-12-18 | 2021-05-27 | 特許業務法人Ipx | 書類 |
JP2021082183A (ja) * | 2019-11-22 | 2021-05-27 | 特許業務法人Ipx | 情報処理装置、情報処理方法、プログラム及び書類 |
-
2010
- 2010-07-24 JP JP2010166600A patent/JP2012027743A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101774712B1 (ko) * | 2015-11-24 | 2017-09-05 | 윤정호 | 특허청구범위 분석 방법 및 그 장치 |
WO2018097365A1 (ko) * | 2016-11-25 | 2018-05-31 | 워트인텔리전스 | 특허청구범위 분석 방법 및 그 장치 |
CN109997165A (zh) * | 2016-11-25 | 2019-07-09 | 韦尔特智力株式会社 | 专利权利要求范围分析方法及其装置 |
JP2019537184A (ja) * | 2016-11-25 | 2019-12-19 | ワート インテリジェンスWert Intelligence | 特許請求の範囲の分析方法及びその装置 |
JP2021082183A (ja) * | 2019-11-22 | 2021-05-27 | 特許業務法人Ipx | 情報処理装置、情報処理方法、プログラム及び書類 |
JP2021082303A (ja) * | 2020-12-18 | 2021-05-27 | 特許業務法人Ipx | 書類 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240028595A1 (en) | Editor for generating computational graphs | |
US7584189B2 (en) | Sentence classification device and method | |
CN112035667A (zh) | 一种知识图谱展示方法、装置及终端设备 | |
US20110137900A1 (en) | Method to identify common structures in formatted text documents | |
Ali et al. | Requirements traceability for object oriented systems by partitioning source code | |
JP5588811B2 (ja) | データ分析支援システム及び方法 | |
CN110362596A (zh) | 一种文本抽取信息结构化数据处理的控制方法及装置 | |
CN115358200A (zh) | 一种基于SysML元模型的模板化文档自动生成方法 | |
JP2012027743A (ja) | 階層構造の解析・出力方法、および、その情報処理装置、プログラム。 | |
JP2010061587A (ja) | 類似文書判定装置、類似判定方法およびそのプログラム | |
JP6043899B2 (ja) | 情報管理装置並びに情報検索方法 | |
US10360208B2 (en) | Method and system of process reconstruction | |
CN113722352A (zh) | 一种报审价方案的智能数据校验方法、系统及存储介质 | |
CN115617980A (zh) | 一种诉讼案例检索报告生成方法及系统 | |
JP2010170287A (ja) | データ抽出システム | |
JP2013149225A (ja) | 階層構造の解析・出力方法、および、その情報処理装置、プログラム。 | |
JP6948492B2 (ja) | 情報管理装置並びにファイル管理方法 | |
JP2010272006A (ja) | 関係抽出装置、関係抽出方法、及びプログラム | |
CN114676155A (zh) | 代码提示信息的确定方法、数据集的确定方法及电子设备 | |
WO2016190444A1 (ja) | 情報管理装置並びにファイル管理方法 | |
US20130262980A1 (en) | Information processing apparatus, history control method, and computer-readable recording medium | |
CN112749224A (zh) | 一种面向任务的可视化推荐方法及装置 | |
JP4951407B2 (ja) | コンテンツ部品検索方法及び装置 | |
JP6707410B2 (ja) | 文献検索装置、文献検索方法およびコンピュータプログラム | |
WO2021025091A2 (ja) | 情報管理装置並びにファイル管理方法 |