JPH1078959A - エッジデータ構造を統一する方法 - Google Patents
エッジデータ構造を統一する方法Info
- Publication number
- JPH1078959A JPH1078959A JP9164369A JP16436997A JPH1078959A JP H1078959 A JPH1078959 A JP H1078959A JP 9164369 A JP9164369 A JP 9164369A JP 16436997 A JP16436997 A JP 16436997A JP H1078959 A JPH1078959 A JP H1078959A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- data structure
- context
- graph
- copy
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/313—Logic programming, e.g. PROLOG programming language
- G06F8/3135—Unification or backtracking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Machine Translation (AREA)
Abstract
少して、自然言語処理を行う。 【解決手段】 コンテキストレジーコピーリンクとプロ
セッサを用いて2つのエッジデータ構造を単一化する方
法では、第1エッジデータ構造に関連するコンテキスト
レジーコピーリンクが単一化中に作動されるときにはい
つも、コンテキストレジーコピーリンクが拡大される。
まずプロセッサは、作動されたコンテキストレジーコピ
ーリンクのターゲット属性値ペアを識別する。プロセッ
サは次に、ターゲット属性値ペアの属性を第1エッジデ
ータ構造にコピーする。最後に、プロセッサは第1エッ
ジデータ構造にコピーされた属性からのコンテキストレ
ジーコピーリンクをターゲット属性値ペアの値に追加す
る。
Description
る自然言語処理に関する。より詳細には、本発明は、マ
シンの使用する特徴データ構造を単一化して、指数関数
的な時間をかけずに自然言語の部分を表現する方法に関
する。
急激な増加により、まだ実現されていない自然言語文書
の自動処理に対する要求が生まれた。このようなことが
できれば、自然言語インタフェースにより、データベー
ス、自然言語テキストの抜粋及び要約の自動作成、並び
に自然言語の自動翻訳及び解釈を行うことができる。こ
れらの技術の開発は、現代文法の形式の処理に必要な時
間により妨げられている。
造を使用して自然言語表現の文法構造を述べる。特徴構
造は、プロログ等の統一ベースのプログラミング言語が
あれば、理解及び実行が容易であるという利点を有す
る。しかし特徴構造は、結局は文法上の形式により理論
的にも実際的にも有効に解析されることが困難であり、
不利である。実際、形式によって指数関数的な時間がか
かる現象の整列はまれであるが、一般に単一化ベースの
パーサーが不調和であれば、適度に複雑な文を分解する
のに数分かかる。
関する処理時間を減少する別の方法である。レジーコピ
ーリンクは、単一化ベースのチャートパーサーにより必
要なコピーの量を減少することにより処理時間を減少す
る。
減少する別の方法である。文脈単一化は、由来する選言
肢を示す命題変数を用いて種々の選言肢を注釈すること
により選択的特徴構造を統合する方法である。
これらの異なるアプローチにもかかわらず、まだ特徴構
造の単一化にかかる全体的な時間を減少する必要があ
る。
ーリンクとプロセッサを用いて2つのエッジデータ構造
を単一化する方法を詳細に述べる。第1エッジデータ構
造に関連するコンテキストレジーコピーリンクが単一化
中に作動されるときにはいつも、コンテキストレジーコ
ピーリンクが拡張される。まずプロセッサは、作動され
たコンテキストレジーコピーリンクのターゲット属性値
ペアを識別する。プロセッサは次に、ターゲット属性値
ペアの属性を第1エッジデータ構造にコピーする。最後
に、プロセッサは第1エッジデータ構造にコピーされた
属性からのコンテキストレジーコピーリンクをターゲッ
ト属性値ペアの値に追加する。
ッジデータ構造を統一する方法であって、該プロセッサ
がメモリ中に格納された命令を実行することによりこの
方法を実行し、前記エッジデータ構造を統一する方法
が、a)第1エッジデータ構造を作成するステップを含
み、第1エッジデータ構造が複数の関連するサブツリー
を有し、第1エッジデータ構造が第1グラフデータ構造
を含み、第1グラフデータ構造が空であると共に複数の
コンテキストレジーコピーリンクを有し、各コンテキス
トレジーコピーリンクがサブツリーグラフデータ構造を
ポイントし、各サブツリーグラフデータ構造が複数の関
連するサブツリーのうちの1つと関連し、b)第1エッ
ジデータ構造を第2エッジデータ構造と統一するステッ
プを含み、c)第1エッジデータ構造と第2エッジデー
タ構造との統一中に第1グラフデータ構造と関連するコ
ンテキストレジーコピーリンクのうちの1つが作動され
ると、第2特徴構造に関連するコンテキストレジーコピ
ーリンクを拡大することにより、第1グラフデータ構造
を拡大するステップを含み、この第1グラフデータ構造
を拡大するステップが、1)第1グラフデータ構造に関
連するコンテキストレジーコピーリンクの中から選択コ
ンテキストレジーコピーリンクを選択するステップを含
み、2)選択コンテキストレジーコピーリンクによりポ
イントされるサブツリー特徴構造から選択属性を選択す
るステップを含み、選択された属性が選択属性値を有
し、3)選択属性のコピーを作成し、第1グラフデータ
構造において選択属性のコピーを第1属性として格納す
るステップを含み、4)第1属性からのコンテキストレ
ジーコピーリンクを選択属性値に追加するステップを含
む、ことを特徴とする。
ンピュータシステム30について考える。図1を参照す
ると、コンピュータシステム30は、コンピュータのユ
ーザに情報を視覚的にディスプレイするためのモニタ3
2を含む。コンピュータシステム30はまた、プリンタ
33を介してコンピュータユーザに情報を出力する。コ
ンピュータシステム30は、データを入力するための複
数の方法をユーザに提供する。キーボード34はマウス
35と同様に、コンピュータユーザがデータをマニュア
ル入力することを可能にする。コンピュータユーザはま
た、ペン38を用いて電子タブレット36に書き込むこ
とにより情報を入力することもできる。あるいは、コン
ピュータユーザは、ディスクをフロッピーディスクドラ
イブ42に挿入することにより、フロッピーディスク等
の機械可読形式の媒体に格納されたデータを入力するこ
とができる。光学文字認識ユニット(OCRユニット)
44により、ユーザはハードコピー自然言語文書46を
入力することができ、自然言語文書46はコード化され
た電子表現に変換され、この電子表現は情報交換用米国
標準コード(ASCII )であるのが典型的である。
30のオペレーションを制御、調整して、コンピュータ
ユーザのコマンドを実行する。プロセッサ48は、メモ
リ50又はディスクドライブ42内のフロッピーディス
ク40のいずれかのメモリ内に電子的に格納された命令
を実行することにより、各コマンドに応答して適切な動
作を決定し、実行する。典型的には、プロセッサ48の
動作命令は、ソリッドステートメモリ中に格納されてお
り、命令に頻繁且つ迅速にアクセスする。メモリ50は
また、節及び制限解を格納するためのキャッシュメモリ
を含む。メモリ50を実行するために使用されることの
できる半導体メモリデバイスは、読取り専用メモリ(R
OM)、ランダムアクセスメモリ(RAM)、ダイナミ
ックランダムアクセスメモリ(DRAM)、プログラマ
ブル読取り専用メモリ(PROM)、消去可能なプログ
ラマブル読取り専用メモリ(EPROM)、電子的に消
去可能なプログラマブル読取り専用メモリ(EEPRO
M)(フラッシュメモリ等)を含む。
は、単一化ベースで文法を解析する標準的なアプローチ
では、モデル化される言語現象が文脈自由となる力を有
する場合でさえ、指数関数的な時間がかかるという観察
結果を利用する。即ち、単純なフレーズ構造の規則を用
いて言語現象を表現することができることにより、フレ
ーズ構造のパーサーが文を解析するのにせいぜいO(n
3 )時間(ここでO(f(n))又はOf(n)は語数
nの関数f(n)に比例した時間を表す)しかかからな
いのに、標準的な単一化ベースの特徴構造パーサーが同
じ文をモデル化するにはO(2n )時間が必要である。
特徴構造を追加することにより、なぜ解析時間があまり
にも過激に増大するのかを理解することには、チャート
を用いて文脈自由文法を語数の3乗に比例した時間で如
何に解析できるかということと、標準的なアプローチを
使用した場合に特徴構造の追加により結果としてシステ
ムがなぜ指数関数的になるのかということを理解するこ
とが必要である。
に構成された要素を格納するためのデータ構造である。
チャートを有する主な利点は、パーサーが種々の方法で
文を解析しようとする時に既存の要素を再使用できるこ
とである。文法が文脈自由であれば、パーサーは要素が
どのように構成されるかを知る必要もなく、要素を構成
することができる。例えば、パーサーは5番目のワード
から10番目のワードにいたるNPが存在するかどうか
を知る必要はあるが、NPがその中にPPを有するかど
うかを知る必要はない。このため、長さnの文に対して
は、構成され得るO(Cn2 )個の異なる要素があるの
みである(ここで、Cは文法により可能となる異なるカ
テゴリーの数である)。n2 は、全ての可能なワードの
位置のクロスプロダクトに由来する。概念上、チャート
はまさに、左位置から始まって右位置で終わるカテゴリ
ータイプの要素があるかどうかを示す(カテゴリー、左
位置、右位置の)3次元アレイである。文の始まりで始
まり、文の終わりで終了するSカテゴリーがある場合に
は、文はフレーズを有する。チャートを充填する1つの
方法は、全ての1つの単語の要素から始めて、2つの単
語の要素の全てを構築し、次いで3つの単語、というよ
うに前のレベルの結果の上に各レベルでの構築を行うこ
とである。これは、CKYアルゴリズムと呼ばれる。ア
ルゴリズムがOn2 ではなくOn3 である理由は、各要
素が複数の方法で構築されることができるからである。
最悪のケースでは、大きさがOnである要素は、On個
の異なる方法で構築されるおそれがある。On2 の要素
をOnの方法で構築するには、On3 の時間が必要であ
る。CKYアルゴリズムは、小さいものから大きいもの
へと特定の順序で要素が構築されることを必要とする。
チャートを構成する、よりフレキシブルな方法は、処理
された要素のアジェンダを維持することである。要素は
一度に一つずつアジェンダから得られ、以下のように処
理される。各要素は、結合できる要素に対して左と右を
見る。結合される要素を見出せば、チャートをチェック
して、得られた要素がチャート中に存在しているかどう
かを調べる。結合される要素が見出されなければ、要素
はチャートに追加され、アジェンダに置かれる。次いで
プロセスは、アジェンダが空になるまで継続する。要素
が任意の順序でアジェンダから得られることができるの
で、アジェンダにより物事がよりフレキシブルになる。
このパーサーの種類は、「アクティブチャートパーサ
ー」と呼ばれる。
かを決定するだけであり、妥当な解析ツリー(解析木)
が何であるかを決定することはしない。しかし、この情
報はこれらのアルゴリズムに単純に追加することにより
得られることができる。要素がサブ要素から構成される
時にはいつも、構成は、構成された要素におけるローカ
ルサブツリーとして記録される。このようなサブツリー
により注釈されるチャートは、「解析フォレスト」と呼
ばれる。パーサーが実行されると、全体の文章にスパン
するS要素から開始し、1つのサブツリーをランダムに
取り出すことにより特定の解析ツリーが読み出される。
次いで、各子要素に対して、1つのサブツリーがランダ
ムに取得される。このプロセスは、ツリーが完全に特定
されるまで続けられる。一般に、このように完全に特定
されるツリーは指数関数的に多く存在するおそれがある
が、それらはコンパクトな表現で格納されるので、それ
らに対する解析フォレストは語数の3乗に比例した時間
で生成されることができる。
造の規則のバックボーンに特徴構造を追加する。文法に
依存して、文脈自由規則は明示的であり得る。
であるかにかかわらず、特徴構造を解析する標準的なア
プローチは、まず文脈自由フレーズ構造チャートを構築
し、次いでチャートデータ構造において第2のパスをな
し、特徴構造のボトム−アップを構築することである。
まず、与えられた特徴に従って語彙の項から特徴構造が
例示される。次いで、子要素に属する特徴構造のクロス
プロダクトを得ることにより、親要素の特徴構造が構成
される。一貫し得ない任意の組合せを取り除くために、
クロスプロダクトが得られる。得られるのは、このポイ
ントに対して一貫した特徴構造の集合である。子要素か
ら親要素を構成する方法が1つより多く存在すれば、全
ての解析から生成された特徴構造の集合が単一化され
る。このプロセスは、全ての要素の特徴構造が構成され
るまで、ボトム−アップを継続する。
プロダクトが発生するために最悪のケースでは指数関数
的である。例えば、各語彙のアイテムが2つの曖昧な方
法である場合に、フレーズ構造の文法が曖昧でなくて
も、トップの要素に対してO(2n )の異なる特徴構造
が存在し得る。有限の値の特徴のみが使用される場合に
は、パーサーは、語数の3乗に比例した時間で実行する
ように作成されることができる。なぜなら、有限数の特
徴構造のみが可能であり、各レベルにおいて、得られた
方法の全てを列挙することなくどれが可能であるかを追
跡するだけでよいからである。可能な特徴構造の数の上
限まで到達すると、各レベルにおける特徴構造の数は成
長を停止する。特徴値の全てがバイナリであれば、トッ
プレベルの要素は、せいぜいO(2k )個の異なる特徴
構造を有することができる(kは異なる特徴の数であ
る)。故に、有限特徴グラフのみを用いることにより、
文章の長さにおける指数関数を指数関数的な文法の定数
に変えることができる。不具合なことに、無限の特徴構
造を解析するのに必要な時間は、同じ方法では減少され
ることができない。
コピーリンクを導入することにより、解析及び生成中に
特徴構造を単一化するのに必要な時間を減少する。この
新たなタイプのレジーコピーリンクでは、複数の選択値
が複数のコンテキストレジーコピーリンクにより表現さ
れることができ、複数のコンテキストレジーコピーリン
クの各々は、それが妥当であるコンテキストにより注釈
されたものである。これらのコンテキストレジーコピー
リンクにより表現されるデータは、関連を持つようにな
り次第に拡張されて必要分のみの情報がコピーされるこ
とを保証されるまで、グラフデータ構造にコピーされな
い。コンテキスト単一化及び不透明なコンテキストと共
に使用されると、コンテキストレジーコピーリンクは、
特徴構造を単一化するのにかかる時間を減少する。従っ
て、語数の3乗に比例した時間で文脈自由特徴構造を単
一化する方法の一部として、図8及び図9を参照してこ
の方法を詳細に述べる。
の特徴構造のレジーコンテキスト単一化に対する命令6
0を概略的に示している。命令60は、ソリッドステー
トメモリ50又はフロッピーディスクドライブ40内に
置かれるフロッピーディスク42中で機械可読形式で格
納され得る。命令60は、任意のコンピュータ言語で行
われ得る。
2、104、106、108、110、112、114
及び116の階級的なセットとして組織化される。
データ構造、節データ構造及び解データ構造の4つのク
ラスのデータ構造を使用する。チャートデータ構造は、
エッジデータ構造とサブツリーデータ構造を含む。各エ
ッジデータ構造は、エッジを表すと共に、以下の情報を
含む。
を示す;例えばNP、S、VP等 subtrees(サブツリー):このエッジを作成する種々の
方法のリスト graph (グラフ):このエッジのグラフデータ構造に対
するポインタ]
標準形でのサブツリーを示し、以下の情報を含む。
rtial は、エッジの最も左のワードで始まり中央のどこ
かで終了する complete(完全):ルールの右の子をポイントし、comp
leteは、エッジの中央のどこかで始まりエッジの最も右
のワードで終了する constraint(制約):サブツリーを生成するためにpart
ial とcopmplete を如何に組み合わせるべきかを定義す
る graph (グラフ):このサブツリーのグラフデータ構造
に対するポインタ]
に文脈自由規則がサブツリー1つ当り任意の数の子を有
することができるとしても、2つのみの子、partial 及
びcompleteを含む。標準的な変換を文法に適用すること
により、全ての規則がバイナリである新たな文法が生成
される。例えば、ルールS→NP VP ADVにこの
変換を適用することにより、S→S1 ADVとS1→
NP VPという2つの規則が生成される。
Pair及びCVPairという3つのタイプを含む。各グラフデ
ータ構造は特徴構造及び関連情報を示し、以下の情報を
含む。
インタのリスト context (コンテキスト):このグラフが存在するコン
テキストを示し、同一のエッジに関連する他の妥当なサ
ブツリーとそれを見分けるためにサブツリーに割り当て
られた変数を対応させる nogood:この特徴データ構造が良くないかどうかを示す
ブール演算値 nogoods :nogoodであり、このグラフに関連する節のリ
スト edge(エッジ):このグラフに関連するエッジに対する
ポインタ disjunctive (論理和):グラフがORグラフ、即ち多
くの選択的なグラフを示す単一のグラフであるか否かを
示すブール演算値 clauses (節):このグラフに割り当てられた節のリス
ト disjunctions(論理和):局所的に例示された論理和の
リスト solutions (解):限定セットとそれらの解に対するポ
インタのリスト]
のペアを示し、以下の情報を含む。
するポインタのリスト equals:この属性に対する値を格納するCVPairデータ構
造に対するポインタのリスト;例えば、attrがNUMで
あれば、このフィールド内の値は値コンテキスト内のS
Gと別のコンテキスト内のPLにより格納され得る copies(コピー):このAVPairにコピーされた、又はこ
のAVPairからコピーされた値に対するコピーリンクを格
納するCVPairデータ構造に対するポインタのリスト contexts(コンテキスト):このAVPairが既に制約を有
するコンテキスト prefix(接頭辞):このAVPairを含むAVPairに対するポ
インタである。例えば、LFG項(↑SUBJ NUM)では、
NUM AVPairは、その接頭辞として(↑SUBJ)AVPairを有
する graph (グラフ):このAVPairが属する特徴データ構造
へのポインタ expanded:このAVPairに関連するコンテキストレジーリ
ンクが拡張されたかどうかを示すブール演算値]
を示し、以下の情報を含む。
してこの値に関連するコンテキスト又は節が真であれ
ば、任意の他の値はコンテキスト値を示す value (値):このCVPairに対するポインタがAVPairの
等しいフィールド又はコピーに格納されているかどうか
に依存して、別のAVPairデータ構造へのポインタ又は値
を含む。 lazy(レジー):value フィールドが配付先の正方向を
ポイントする正方向コピーリンクであるのか、又はソー
スの逆方向をポイントするレジーコピーリンクであるの
かを示すブール演算変数]
造がある。各節データ構造は節を示し、キャッシュアイ
テムのリストである、その独自の節キャッシュを有す
る。節データ構造は、以下の情報を含む。
の情報を含む。
テキスト arm1−第1選択コンテキスト(1つのみの場合) disj1 −第1選択論理和(1つより多い場合) arm2−第2選択コンテキスト(1つのみの場合) disj2 −第2選択論理和(1つより多い場合)]
及び内部解データ構造の3つのタイプの論理和データ構
造が存在する。各グラフは、グラフの3つの解データ構
造を格納するメモリ50内の解キャッシュを有する。
る節の集合を示し、以下の情報を含む。
解の獲得に与えられた節のリスト solutions (解):限定セットに対する限定された解の
データ構造に対するポインタのリスト]
る解を示し、以下の情報を含む。
えば、限定セットがa:1,b:0及び(a:0&b:
0)である場合には、解はb:0及び(a:0&b:
0)であり得る。これは限定セットのサブセットである
べきである。このフィールドにない限定セットに節があ
る場合には、その値は擬であると仮定される。 map (マップ):節フィールドにおいて解に対する数値
を求める内部解データ構造に対するポインタのリストで
ある。特定の限定セットに対しては、内部解の全てが正
確に1つの限定解のマップのメンバーでなければならな
い。各内部解は、各限定セット中に一度表れる。]
対する内部解を示し、以下の情報を含む。
るポインタ choices (選択)−局所論理和の局所選択のリスト partial (部分的)−部分的なエッジ、すなわち左の子
に対する解 complete(完全)−完全なエッジに対する解]
ト形式で示す。
と、プロセッサ48はステップ120で命令100を実
行する。プロセッサ48は、自然言語記号列に対して文
脈自由解析フォレスト、チャートを構築する。当業者に
知られている標準的な技術を用いて、チャートが構築さ
れる。チャートが構築されると、プロセッサ48はステ
ップ120を出る。
て、全体の自然言語記号列をスパンする記号列Sをチャ
ートが規定するかどうかを決定する。チャートが規定し
なければ、チャートは解を有さず、プロセッサ48はス
テップ124に分岐する。一方、全体の自然言語記号列
をスパンするSをチャートが規定すれば、チャートは解
を有し得る。それに応じてプロセッサ48はステップ1
26に進む。プロセッサ48は、使用されている文法に
関連する語彙及び文法上の制約をチャートに追加する。
チャートを装飾する標準的な方法が使用される。その
後、プロセッサ48はステップ128に進む。
処理102により、及びチャートに対するグラフデータ
構造を構築することにより、チャートのルートスパンエ
ッジに対する解を見出す。これらの回帰的な呼出しによ
り、プロセッサ48は、リーフに到達するまでチャート
を下り、そのポイントでプロセッサ48はグラフデータ
構造を構築し、チャートを逆進し始める。チャートに対
するグラフデータ構造が生成されると、プロセッサ48
はステップ130に進み、チャートに対する解を見出す
プロセスを開始する。プロセッサ48はエッジの解の獲
得104によりそれを実行する。プロセッサ48はチャ
ートを下り、対象とする不透明な(曖昧な)コンテキス
ト(opaque context)を通過することにより、葉に到達
するまでルートスパンエッジに対する解を見出す。その
ポイントで、プロセッサ48は、移入された不透明なコ
ンテキストに対する局所的な解を決定し、それらの解を
もってチャートを逆進し始める。これは、チャートのル
ートスパンエッジに対する解が見出されるまで継続す
る。
の文脈自由部分に対して語数の3乗に比例した時間で発
生する。文脈自由により、局所的なnogoods がよく因子
分解される。故に、解計算時間が不透明な変数の数Kに
おいて指数関数的であっても、経験により、実際に生成
される解の数は小さい傾向があることが示された。命令
104を実行した後、プロセッサ48はステップ124
に進み、自然言語記号列の完全な処理を行う。
本実施形態のエッジ制約処理の全容を示す)で示される
ように、エッジ制約処理102は、プロセッサ48が、
関連のあるエッジに対するポインタを与えられたエッジ
のグラフデータ構造を生成することを可能にする。
するポインタの受領に応答して、プロセッサ48はステ
ップ140で命令102を実行し始める。プロセッサ4
8は、今受け取ったポインタを調査することによりグラ
フデータ構造を構成する必要があるかどうかを決定す
る。ヌルポインタは、選択されたエッジが存在しないこ
とを示すが、それはおそらく、ヌルポインタが部分的な
エッジを有さないサブツリーに由来するからである。ヌ
ルエッジポインタに応答して、プロセッサ48はステッ
プ142に分岐する。プロセッサ48は、選択されたエ
ッジが真(TRUE)であることを示す;即ち、選択された
エッジデータ構造のグラフフィールド中に格納されたポ
インタをヌルの値にセットすることにより、任意の他の
エッジと結合されることができる。その後、プロセッサ
48は呼出しルーチンに戻る。
ッサ48はステップ150に進む。プロセッサ48は、
選択されたエッジのグラフデータ構造を構築することに
注目する。そうするために、プロセッサ48はまず、選
択されたエッジに関連する各サブツリーのグラフデータ
構造を生成する。故に、プロセッサ48はグラフデータ
構造が生成されるべきサブツリーがあるかどうかを決定
する。かかるサブツリーが存在すれば、プロセッサ48
はステップ152に進む。
て選択されるサブツリーとして、残りのサブツリーの1
つを選択し、ステップ154に進む。プロセッサ48
は、まず左の子と右の子の両方に対するグラフデータ構
造を作成することにより、選択されたサブツリーに対す
るグラフデータ構造を生成する。故にプロセッサ48
は、エッジ制約処理102に対する回帰的な呼出しと、
選択されたエッジとして左の子を示すことにより、選択
されたサブツリーの左の子に対するグラフデータ構造を
作成する。選択されたサブツリーの左の子に対するグラ
フデータ構造が生成されると、プロセッサ48はステッ
プ156に進む。
データ構造のnogoodフィールドを調査することにより、
又はグラフに対するポインタがNOGOOD値1であるかどう
かを調査することにより、左の子に対するグラフがnogo
odであるかどうかを決定する。グラフがnogoodである場
合には、選択されたサブツリーのグラフはnogoodであ
る。この場合には、プロセッサ48はステップ160に
進み、選択されたサブツリーに対するnogoodグラフデー
タ構造を生成する。それを実行すると、プロセッサ48
はステップ150に戻る。一方、左の子に対するグラフ
がnogoodでなければ、プロセッサ48は図5のステップ
162に進む。
テップ162において、選択されたサブツリーの右の子
に対するグラフデータ構造を生成することに注目する。
プロセッサ48はエッジ制約処理102を呼び出し、左
の子が選択されたエッジであることを示すことにより、
この作業を実行する。その後プロセッサ48は、ステッ
プ164においてグラフデータ構造がnogoodであるか否
かを決定する。nogoodであれば、プロセッサ48は図4
のステップ160に戻る。そうでなれば、プロセッサ4
8はステップ166に進行する。
両方に対してグラフデータ構造が生成されると、プロセ
ッサ48は、ステップ166において選択されたサブツ
リーに対するグラフデータ構造を構成するプロセスを開
始する。この試みでは、第1の作業は、選択されたサブ
ツリーに関連する文法法上の制約をグラフデータ構造に
変換することである。次にステップ168において、プ
ロセッサ48は、選択されたサブツリーのサブツリーデ
ータ構造のグラフフィールドに、今生成されたグラフデ
ータ構造に対するポインタを格納する。プロセッサ48
はステップ180に進行する。
される制約を、選択されたサブツリーに導入し始める。
プロセッサ48は、一度に1つのAVPairをコピーする
(後ほど詳細に説明する)AVPairコピー106を呼び出
すことによりそれを実行する。その後ステップ182に
おいて、プロセッサ48は、選択されたサブツリーのグ
ラフデータ構造がこれによりnogoodとなるかどうかを決
定する。nogoodであれば、プロセッサ48は図4のステ
ップ160に戻る。そうでない場合には、プロセッサ4
8はステップ184に進行する。
た制約を、選択されたサブツリーに導入する。プロセッ
サ48は、AVPairコピー106を再び呼び出すことによ
りそれを実行する。次いでプロセッサ48はステップ1
86において、これらの制約により、選択されたサブツ
リーのグラフがnogoodとなるかどうかを決定する。nogo
odである場合には、プロセッサ48は図4のステップ1
60に戻る。グラフがnogoodでない場合には、プロセッ
サ48はステップ186から図4のステップ150に戻
る。
連するサブツリーに対して生成されたグラフデータ構造
が存在する限りは、ステップ150〜186をループす
る。すべてのサブツリーグラフデータ構造が生成される
と、プロセッサ48は図4のステップ150を出て図6
のステップ188に渡り、そのnogoodでないサブツリー
の各々を示す選択されたエッジに対する単一のグラフデ
ータ構造を作成するプロセスを開始する。プロセッサ4
8はまず、ステップ188においてnogoodでないグラフ
を有する選択エッジに関連するサブツリーの数をカウン
トする。次いで、ステップ190において、プロセッサ
48は、nogoodでないグラフを有するサブツリーの数が
2つ以上であるかどうかを決定する。その数が2つ未満
であれば、プロセッサ48は、ステップ192において
nogoodでないグラフを有する少なくとも1つのサブツリ
ーが存在するかどうかを決定する。nogoodグラフを有す
るサブツリーが1つ存在する場合には、プロセッサ48
はステップ193に進み、選択されたエッジのエッジデ
ータ構造のグラフフィールド中に、良好な(nogoodでな
い)サブツリーに対するグラフデータ構造に対するポイ
ンタを格納する。一方、良好なグラフを有するサブツリ
ーが一つも存在しなければ、プロセッサ48はステップ
192を出てステップ194に進む。プロセッサ48は
選択されたエッジデータ構造のグラフフィールドを使用
して、ポインタ値1を格納することによりエッジがnogo
odであることを示す。ステップ194又は193におい
て選択されたエッジのグラフデータ構造の制約が完了す
ると、プロセッサ48はステップ144に進行する。
有するサブツリーの数が2つ以上であれば、ステップ1
96に進行する。この場合には、選択されたエッジのグ
ラフデータ構造は、複数の選択的なサブツリーを表すの
で、ORタイプである。故に、ステップ196において
プロセッサ48は、選択されたエッジデータ構造の論理
和フィールドを適切にセットすることにより、グラフを
ORタイプとしてマークする。これを実行すると、プロ
セッサ48はステップ196を出てステップ198に進
行する。
はステップ196で生成されたOR節に対する論理和デ
ータ構造を構築する。プロセッサ48は論理和データ構
造のカウントフィールドを、ステップ188においてカ
ウントされた良好なグラフの数にセットする。プロセッ
サ48が論理和データ構造の構成を完了すると、選択さ
れたエッジに関連する良好なサブツリーの各々を表すコ
ンテキスト変数が生成される。その後、プロセッサ48
はステップ200に進行する。
を選択されたエッジのグラフデータ構造に導入し始め
る。プロセッサ48は、全ての良好なサブツリーからの
情報が選択エッジデータ構造に導入されるまで、ステッ
プ200、210及び212をループする。ステップ2
12では、プロセッサ48は、nogoodでないグラフを有
するサブツリーのうちの1つを選択し、論理和データ構
造によりサブツリーと関連するコンテキストを見出す。
プロセッサ48は、AVPairコピー106を呼び出し、選
択された節を示すことにより、選択されたサブツリーか
らのデータ構造情報を選択エッジにコピーする。その
後、プロセッサ48はステップ200に戻る。選択され
たエッジに対するグラフデータ構造に良好なグラフを有
するサブツリーの全てからの情報がコピーされた後、プ
ロセッサ48はステップ144に戻る。
り、プロセッサ48はソースAVPiarデータ構造からの情
報を配付先AVPairデータ構造にコピーすることができ
る。命令106を使用して、子からの情報が親にコピー
されるばかりでなく、サブツリーからの情報が関連のあ
るエッジにコピーされる。
AVPairに対するポインタ、及び選択された節に応答して
命令106を実行し始める。ステップ230において、
プロセッサ48は、選択された節に対する2つのAVPair
の間にコンテキストコピーリンクがすでに存在している
かどうかを決定する。プロセッサ48は、ソースAVPair
及び配付先AVPairの両方のコピーフィールドを調査する
ことにより、この決定を行う。選択された節を有するコ
ピーリンクがソースか配付先かのいずれかに見出されれ
ば、さらなる実行の必要もなく、プロセッサ48はステ
ップ244に分岐することにより応答する。他方、選択
された節を有するコンテキストコピーリンクがソースAV
Pairと配付先AVPairの間に存在しない場合には、プロセ
ッサ48はステップ232に分岐する。
は、コンテキストレジーコピーリンクを介して配付先AV
PairにおいてソースAVPairを表すことができるかどうか
を決定する努力を始める。これは部分的に、配付先の他
のレジーコピーリンクがすでに拡張されたかに依存す
る。プロセッサ48は、配付先AVPairの拡張されたビッ
トを調査することにより、そうであるかどうか決定す
る。そのレジーコピーリンクが拡張されなかったことを
ビットが示す場合には、プロセッサ48は、オーバーラ
ップしたコンテキストにおいてそのリンクが配付先AVPa
irだけのレジーコピーリンクであれば、コンテキストレ
ジーコピーリンクを用いてソースAVPairを表現すること
ができる。プロセッサ48はステップ234において、
AVPairコピーフィールド中に存在するレジーコピーリン
クを列挙して、各レジーコピーリンクに対して、そのコ
ンテキストを選択されたコンテキストと結合することに
より、AVPairコピーに対する引数として与えられたコン
テキスト内の他のコンテキストレジーコピーリンクを配
付先のAVPairがすでに含んでいるかどうかを決定する。
論理積の全てがnogoodである場合には、プロセッサ48
はステップ236に進行する。他方、結合されたコンテ
キストのいずれかがnogoodでない場合には、プロセッサ
48は、ステップ238に進行する。
する全てのレジーコピーリンクが拡張される必要がある
場合には、ステップ234からステップ238に進む。
プロセッサ48は、レジーリンクの拡張108を呼び出
すことにより、ステップ238において、それらレジー
コピーリンクを拡張する。その後、プロセッサ48はス
テップ240に進行する。
コピーリンクにより配付先のAVPairで表されることがで
きない場合に、ステップ240に進む。配付先にコピー
されたことをソースAVPairにおいて示すために、プロセ
ッサ48は配付先をポイントする正方向コピーリンクを
ソースAVpairのコピーフィールドに追加する。次いでプ
ロセッサ48は、ファクトコピー110を呼び出すこと
により、配付先のAVpairにソースAVpairの制約をコピー
する。それを実行すると、プロセッサ48はステップ2
44に進行する。
により、プロセッサ48はコンテキストレジーコピーリ
ンクを、より詳細な1つのレベルと、そして必要であれ
ば、他のコンテキストレジーコピーリンクと取り替える
ことができる。ソース中の正方向コピーリンクを追加し
てレジーコピーリンクの拡張を記録した後、プロセッサ
48はファクトコピー110を呼び出すことにより関連
情報をコピーする。
コピーリンクを有する、選択されたAVPairへのポインタ
の受領に応答して、ステップ260で命令108を実行
し始める。ステップ260において、プロセッサ48
は、拡張ビットを調査することにより、選択されたAVPa
irのコンテキストレジーコピーリンクがすでに拡張され
たかどうかを決定する。選択されたAVPairに関連するコ
ンテキストレジーコピーリンクがすでに拡張されたこと
をそのビットが示せば、プロセッサ48はステップ27
6に進む。他方、コンテキストレジーコピーリンクが拡
張されていない場合には、プロセッサ48はステップ2
62に分岐する。
の値の拡張を示すようにセットすることにより、選択さ
れたAVPairのコンテキストレジーコピーリンクを拡張し
始める。その後、プロセッサ48はステップ264に進
行して、一度に一つずつコンテキストレジーコピーリン
クを拡張し始める。拡張されるべきコンテキストレジー
コピーリンクが残っている限りは、プロセッサ48はス
テップ266に進行する。プロセッサは、コピーフィー
ルド内の残りのコンテキストレジーコピーリンクを拡張
するものとして選択する。次にプロセッサ48はステッ
プ270に進行する。
コピーリンクによりポイントされるターゲットAVPair
も、拡張される必要があるとしてレジーコピーリンクに
より表される。かかる状況を見越して、ステップ270
においてプロセッサ48はレジーリンク拡張108を呼
び出して、選択されたコンテキストレジーコピーリンク
によりポイントされるレジーコピーリンクを拡張する。
ステップ272では、プロセッサ48は、選択されたAV
PairをポイントするターゲットAVPairからの正方向コピ
ーリンクを追加する。次にプロセッサ48はステップ2
74に進行する。
ッサ48はターゲットAVPairからの情報の1つのレベル
を選択されたAVPairにコピーすることにより、選択され
たレジーコピーリンクを拡張することができる。プロセ
ッサ48は、ファクトコピー110を呼び出すことによ
り、これを実行する。それを実行すると、プロセッサ4
8はステップ264に戻り、選択されたAVPairに関連す
る全てのコンテキストレジーコピーリンクが拡張される
まで、ステップ266、270、272、274及び2
64をループする。
ローチャートで示す。
AVPairに対するポインタと、配付先に関連する選択され
た節の受領に応答して、ステップ290において命令1
10を実行し始める。プロセッサ48は、任意のファク
トがコピーされる必要があるかどうかを決定することに
より、ステップ290で開始する。nogoodである節に関
連すれば、ファクトはコピーされる必要がない。プロセ
ッサ48は、節のnogoodフィールドを調査し、選択され
た節がnogoodである場合にはステップ292に進行す
る。
る属性を配付先AVPairにコピーする努力を始める。ステ
ップ292においてコピーされるべき属性が残っていれ
ば、プロセッサ48はステップ294で残りの属性の中
の1つを選択する。次に、プロセッサ48はステップ2
96で、選択された節を、選択された属性に関連する節
と結合する。プロセッサ48は、節の結合112を呼び
出すことにより結合を実行し、得られた節を戻す。得ら
れた節がnogoodでなければ、プロセッサ48はステップ
300に分岐する。
データ構造がもう存在しなければ、プロセッサ48は配
付先のAVPairへと逆にポイントするものを作成し、配付
先のAVPairのAttrs フィールドに、この新たなAVPairに
対するポインタを追加する。情報がコピーされることの
できるデータ構造が作成されると、プロセッサ48はス
テップ302に進行してAVPairコピーを呼び出す。AVPa
irコピーは、コンテキストレジーコピーリンク同士の間
に相互作用があるかどうかに依存して、ソースAVPairか
らの情報をコピーしたりしなかったりする。その後、プ
ロセッサ48はステップ292に戻る。
AVPairの関連のある属性全てに対して呼び出されるま
で、ステップ292〜302をループする。全てに対し
て呼び出されると、プロセッサ48はステップ304に
進行して、属性のコピーと略同じ形態でソースAVPairの
値を配付先のAVPairにコピーし始める。ソースAVPairに
関連する全てのコンテキスト値をコピーした後、プロセ
ッサ48はステップ320に進む。プロセッサ48は、
配付先のAVPairに課された新たな制約を調査し、可能で
あれば、新たなローカルnogoods を推論する。これを実
行すると、プロセッサ48はステップ322にリターン
する。
生成し、メモリ50の節キャッシュに格納する。
プローチとの間には2つの違いがある。まず、2つの節
を結合し始める前に、プロセッサ48は同じ2つの節を
含むエントリに対する節キャッシュを探索する。プロセ
ッサ48は、より高いidを有する節データ構造のキャ
ッシュフィールドを調査することにより、このような探
索を開始して、所望のオペレーション及びオペランドを
探索する。かかるエントリが見出されると、結合を行う
ことなく、以前に格納された結果を使用することがで
き、処理時間が削減される。
ーチとの第2の違いは、不透明な(曖昧な)節(opaque
clause )の使用である。図10のフローチャートは、
不透明な節を処理して単一化処理時間を減少する節の結
合112の部分を示している。2つの不透明な節が同一
グラフから移入されると、2つの不透明な節は解かれ
て、新たな節を生成するように結合され、この新たな節
が包まれて、新たな不透明節が生成され、そしてこれが
移入される。
12を実行し始める。プロセッサ48は、2つの不透明
な節が同一のグラフデータ構造に関連する場合にグラフ
同士の間に移入される命題変数の数を減少することがで
きる。プロセッサ48は、結合されるべき2つの節デー
タ構造である節1及び節2のグラフフィールドを調査す
ることにより、ステップ360においてこの可能性をチ
ェックする。両方の節が同一のグラフに関連する場合に
は、プロセッサ48はステップ360を出て、ステップ
362に分岐する。
UE)又はnogoodのようなより単純な節を生じ得ることが
できるので、プロセッサ48はステップ362において
節1及び節2の両方を「解く」。プロセッサ48は、各
不透明な節の移入フィールドを検索することにより、不
透明な節を解く。その後、プロセッサ48はステップ3
64において、節の結合112を呼び出すことにより、
2つの解かれた節を結合する。プロセッサ48は、ステ
ップ366において得られた節を調査して、それがnogo
odであるかどうかを決定する。nogoodである場合には、
プロセッサ48はステップ368に進行して、得られた
節がnogoodであることを示すポインタを戻す。一方、得
られた節がnogoodでない場合には、プロセッサ48はス
テップ370に分岐する。
ステップ370において節の移入116を呼び出すこと
により新たな不透明な節を移入する。次いでプロセッサ
48はステップ372に進む。
時間を使用しないようにするために、ステップ372に
おいて、プロセッサ48は節1及び節2を結合したもの
をメモリ50の節キャッシュに格納する。好ましくは、
節キャッシュ内の節は、idの高さに従ってインデック
スされ、格納される情報は、オペレータ、オペランド及
び得られた節のトリプルである。このケースでは、トリ
プルは、結合、節2、得られた節である。その後プロセ
ッサ48は、より高いidを有する節に対して、節デー
タ構造のキャッシュフィールドにおける節キャッシュ
に、このエントリに対するポインタを格納する。プロセ
ッサ48は、2つの節が結合されたり分離されたりする
場合にはいつも、それらが不透明であるか否かにはかか
わらず、ステップ372を実行する。節に関する全ての
オペレーションの結果を格納することにより、グラフデ
ータ構造を単一化する処理時間が減少される。
6をフローチャートで示す。これを実行する際に、プロ
セッサ48は新たな不透明節データ構造を作成して、移
入された節を「包む」。これにより、ルートスパンエッ
ジに対して生成されたグラフが、文脈自由に等しくなる
ことが保証され、これは複数の命題変数を単一の命題変
数と取り替えることにより可能となる。
入される節が選択されたグラフに既に移入されたかどう
かをステップ400で決定することにより、命令116
を実行し始める。プロセッサ48は、得られた節が選択
された節に等しいエントリに対して節キャッシュを探索
することにより、それを実行する。プロセッサ48がか
かるエントリを見出せば、選択された節は選択されたグ
ラフにすでに移出されており、これを実行する必要がな
くなる。これに応答して、プロセッサ48はステップ4
02に分岐して、移入節をリターンする。一方、選択さ
れた節が移出されたことを節キャッシュが示さない場合
には、プロセッサ48はステップ404に分岐する。
は新たな不透明節データ構造を作成して、移入フィール
ドに選択された節を格納する。その後ステップ406に
おいて、プロセッサ48は不透明変数が移入フィールド
に移出されたことを記録し、グラフフィールドにおいて
選択グラフに対するポインタを格納することにより、ど
のグラフに移出されたのかを示す。最後に、ステップ4
08においてプロセッサ48は、選択された節、不透明
節、新たな不透明節のトリプルを格納することにより、
メモリ50の節キャッシュにこのオペレーションの結果
を格納する。新たな不透明節が移入されると、プロセッ
サ11はステップ402に戻る。
図で本実施形態の解の獲得命令の全容を示す)は、選択
されたエッジに関連する全ての節に対して解が探索され
ていない可能性があるために、限定セットと呼ばれる解
が探索される節を与えられた選択エッジに対する解の獲
得命令104をフローチャートで示している。限定セッ
トが関連する選択エッジに対するポインタも、命令10
4に渡される。
る。ステップ450においてプロセッサ48は、選択エ
ッジに対する明白な解を探索し始める。3つのプロセス
がある。まず、プロセッサ48は選択エッジに対するポ
インタを調査する。ポインタがヌルであれば、選択エッ
ジが他の任意のエッジとうまく結合されることができる
ことを意味する。このような発見に応答して、プロセッ
サ48はステップ452に進み、選択されたエッジに対
する解が真(TRUE)であることを示す。プロセッサ48
はステップ454に戻る。一方、選択されたエッジに対
するポインタがヌルでなければ、プロセッサ48はステ
ップ460に分岐して、選択されたエッジに対する別の
明白な解を調査する。ステップ460において、プロセ
ッサ48は選択されたエッジデータ構造のグラフのnogo
odフィールドを調査して、選択されたエッジがnogoodで
あるかどうかを決定する。そうであれば、ステップ46
2においてプロセッサ48は選択されたエッジに対する
解をヌルにセットし、ステップ454に戻る。選択され
たエッジがnogoodのカテゴリーに分類されなければ、プ
ロセッサ48はステップ460を出て、最後の明白な解
を検索する。ステップ464において、プロセッサ48
は、この限定セットがすでに解決されたかどうかを調べ
るために、グラフの解キャッシュを探索する。解決の場
合には、プロセッサ48はステップ466において、も
しあれば解に対するポインタをリターンする。
ば、プロセッサ48はステップ468に進む。プロセッ
サ48は、解キャッシュにおける選択された節に対する
限定解データ構造を作成して、全てのフィールドをヌル
にセットする。これを実行すると、プロセッサ48はス
テップ470に進み、選択された限定セットに対する解
を求めて一度に1つのサブツリーずつ探索し始める。ス
テップ472において、プロセッサ48は、解を必要と
するサブツリーの1つを選択する。次にプロセッサ48
は、選択されたサブツリーのグラフデータ構造のnogood
フィールドを調査することにより、選択されたサブツリ
ーがnogoodであるかどうかを決定する。選択されたサブ
ツリーがnogoodである場合には、プロセッサ48はステ
ップ470に戻ることにより、他のサブツリーに注意を
向ける。一方、選択されたサブツリーのグラフがnogood
でなければ、プロセッサ48はステップ476に進行す
る。
は、選択されたサブツリーの左と右の子に対する解をま
ず見出すことが必要である。これは図12のステップ4
76から図13のステップ486において発生する。ま
ずプロセッサ48は、選択されたサブツリーの左の子か
らどのサブツリーグラフの節が移入されるかを決定し、
新たな限定セットを定義する。プロセッサ48はステッ
プ478でこの情報を用いて、エッジの解の獲得104
を呼び出すことにより、左の子に対する解を見出す。左
の子に対する解がない場合には、選択されたサブツリー
に対する解は存在できない。プロセッサ48は、ステッ
プ470に分岐することによりこの状況に対応し、別の
サブツリーに注目する。他方、左の子が解を有する場合
には、選択されたサブツリーは解を有し得る。それに応
答して、プロセッサ48はステップ482に分岐して、
選択されたサブツリーの右の子に対する解を識別する。
プロセッサ48は、サブツリーグラフのどの節が右の子
から移入されたかを識別することにより、開始する。こ
れにより新たな限定セットが定義され、プロセッサ48
は、ステップ484においてエッジ解の獲得104を呼
び出す時にこの限定セットを用いる。プロセッサ48
は、ステップ470に戻ることにより右の子が解を有さ
ないという見解に応答する。一方、右の子が解を有する
と、プロセッサ48はステップ490に分岐する。
解が得られると、ステップ490でプロセッサ48は選
択されたエッジに対する解を識別しようとし始める。こ
れらの解は、限定解データ構造により表される。ステッ
プ490において、プロセッサ48は、局所的な制約が
例示された時に導入された論理和に基づいて、局所的な
解を作成する。プロセッサ48は、局所的な解と左及び
右の子に対する解のクロスプロダクトをとって、選択さ
れたエッジに対する幾らかの候補内部解を生成する。プ
ロセッサ48は、その後のステップにおいて一度に一つ
ずつこれら候補内部解を調査する。
ステップ502において評価のために候補の内部解の1
つを選択し、ステップ504において局所的なnogood節
を用いてそれを評価し、選択された候補内部解節の妥当
性を決定する。プロセッサ48がステップ506におい
て選択された候補の内部解が妥当でないと決定すれば、
プロセッサ48は図13のステップ500に戻って、別
の候補の内部解を評価し始める。一方、選択された候補
の解が妥当であれば、プロセッサ48はステップ508
に進む。このステップにおいて、選択された候補の内部
解における節の各々は真であると仮定され、選択された
限定セットの節が調査されて、それらのどれが真である
かを決定される。プロセッサ48は、ステップ510に
おいて真であると評価された限定セットの節に注目し、
選択された限定セットに関連する限定された論理和デー
タ構造の節フィールド中にリストされるものとそれらを
比較する。限定セットに対する解に含まれていない場合
には、ステップ514においてプロセッサ48は注目し
た節を用いて新たな限定解を作成し、限定セットに対す
る解にそれを追加する。最後にステップ516におい
て、プロセッサ48は選択された候補の内部解に対する
データ構造に対するポインタを、限定解データ構造のマ
ップフィールドに追加する。
セッサ48は図13のステップ500に戻って、ステッ
プ502〜516を参照して説明されたように候補の内
部解の調査を継続して行う。選択されたサブツリーに対
する候補の内部解を調査した後、プロセッサ48はステ
ップ500から図12のステップ470に分岐する。選
択されたエッジに関連するサブツリーの全てを処理した
後、プロセッサ48はステップ454に戻り、任意の解
を限定セットに戻す。
示す。
の図である。
ャートである。
ャートである。
ャートである。
る。
である。
ある。
ーチャートである。
ーチャートである。
ーチャートである。
Claims (1)
- 【請求項1】 プロセッサを用いてエッジデータ構造を
統一する方法であって、該プロセッサがメモリ中に格納
された命令を実行することによりこの方法を実行し、前
記エッジデータ構造を統一する方法が、 a)第1エッジデータ構造を作成するステップを含み、
第1エッジデータ構造が複数の関連するサブツリーを有
し、第1エッジデータ構造が第1グラフデータ構造を含
み、第1グラフデータ構造が空であると共に複数のコン
テキストレジーコピーリンクを有し、各コンテキストレ
ジーコピーリンクがサブツリーグラフデータ構造を指
し、各サブツリーグラフデータ構造が複数の関連するサ
ブツリーのうちの1つと関連し、 b)第1エッジデータ構造を第2エッジデータ構造と統
一するステップを含み、 c)第1エッジデータ構造と第2エッジデータ構造との
統一中に第1グラフデータ構造と関連するコンテキスト
レジーコピーリンクのうちの1つが作動されると、第2
特徴構造に関連するコンテキストレジーコピーリンクを
拡大することにより、第1グラフデータ構造を拡大する
ステップを含み、この第1グラフデータ構造を拡大する
ステップが、 1)第1グラフデータ構造に関連するコンテキストレジ
ーコピーリンクの中から選択コンテキストレジーコピー
リンクを選択するステップを含み、 2)選択コンテキストレジーコピーリンクにより指し示
されるサブツリー特徴構造から選択属性を選択するステ
ップを含み、選択された属性が選択属性値を有し、 3)選択属性のコピーを作成し、第1グラフデータ構造
において選択属性のコピーを第1属性として格納するス
テップを含み、 4)第1属性からのコンテキストレジーコピーリンクを
選択属性値に追加するステップを含む、ことを特徴とす
るエッジデータ構造を統一する方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/668,988 US5819210A (en) | 1996-06-21 | 1996-06-21 | Method of lazy contexted copying during unification |
US668988 | 1996-06-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1078959A true JPH1078959A (ja) | 1998-03-24 |
JP4413286B2 JP4413286B2 (ja) | 2010-02-10 |
Family
ID=24684568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16436997A Expired - Lifetime JP4413286B2 (ja) | 1996-06-21 | 1997-06-20 | エッジデータ構造を統一する方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US5819210A (ja) |
EP (1) | EP0814418B1 (ja) |
JP (1) | JP4413286B2 (ja) |
DE (1) | DE69712411T2 (ja) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903860A (en) * | 1996-06-21 | 1999-05-11 | Xerox Corporation | Method of conjoining clauses during unification using opaque clauses |
US6498921B1 (en) * | 1999-09-01 | 2002-12-24 | Chi Fai Ho | Method and system to answer a natural-language question |
US5836771A (en) * | 1996-12-02 | 1998-11-17 | Ho; Chi Fai | Learning method and system based on questioning |
US6138098A (en) * | 1997-06-30 | 2000-10-24 | Lernout & Hauspie Speech Products N.V. | Command parsing and rewrite system |
US6330530B1 (en) * | 1999-10-18 | 2001-12-11 | Sony Corporation | Method and system for transforming a source language linguistic structure into a target language linguistic structure based on example linguistic feature structures |
DE19952070A1 (de) * | 1999-10-28 | 2001-06-28 | Kiwi Interaktive Medien Gmbh | Verfahren zur Erweiterung einer Datenbank |
US6714905B1 (en) * | 2000-05-02 | 2004-03-30 | Iphrase.Com, Inc. | Parsing ambiguous grammar |
US8478732B1 (en) | 2000-05-02 | 2013-07-02 | International Business Machines Corporation | Database aliasing in information access system |
US6711561B1 (en) * | 2000-05-02 | 2004-03-23 | Iphrase.Com, Inc. | Prose feedback in information access system |
US6704728B1 (en) * | 2000-05-02 | 2004-03-09 | Iphase.Com, Inc. | Accessing information from a collection of data |
US9699129B1 (en) | 2000-06-21 | 2017-07-04 | International Business Machines Corporation | System and method for increasing email productivity |
US8290768B1 (en) | 2000-06-21 | 2012-10-16 | International Business Machines Corporation | System and method for determining a set of attributes based on content of communications |
US6408277B1 (en) | 2000-06-21 | 2002-06-18 | Banter Limited | System and method for automatic task prioritization |
US7644057B2 (en) | 2001-01-03 | 2010-01-05 | International Business Machines Corporation | System and method for electronic communication management |
US7136846B2 (en) | 2001-04-06 | 2006-11-14 | 2005 Keel Company, Inc. | Wireless information retrieval |
US7165055B2 (en) * | 2002-02-14 | 2007-01-16 | Xerox Corporation | Systems and methods for solving nogood databases |
US7225121B2 (en) * | 2002-02-20 | 2007-05-29 | Palo Alto Research Center Incorporated | Generating with Lexical Functional Grammars |
US7302382B2 (en) * | 2002-02-20 | 2007-11-27 | Xerox Corporation | Generating with lexical functional grammars |
US7343372B2 (en) * | 2002-02-22 | 2008-03-11 | International Business Machines Corporation | Direct navigation for information retrieval |
US20040215634A1 (en) * | 2002-12-06 | 2004-10-28 | Attensity Corporation | Methods and products for merging codes and notes into an integrated relational database |
US7203668B2 (en) * | 2002-12-19 | 2007-04-10 | Xerox Corporation | Systems and methods for efficient ambiguous meaning assembly |
US7171403B2 (en) | 2003-01-09 | 2007-01-30 | Palo Alto Research Center Incorporated | Systems and methods for efficient conjunction of Boolean variables |
US20050187913A1 (en) | 2003-05-06 | 2005-08-25 | Yoram Nelken | Web-based customer service interface |
US8495002B2 (en) | 2003-05-06 | 2013-07-23 | International Business Machines Corporation | Software tool for training and testing a knowledge base |
US20040230415A1 (en) * | 2003-05-12 | 2004-11-18 | Stefan Riezler | Systems and methods for grammatical text condensation |
US7657420B2 (en) * | 2003-12-19 | 2010-02-02 | Palo Alto Research Center Incorporated | Systems and methods for the generation of alternate phrases from packed meaning |
US8244689B2 (en) | 2006-02-17 | 2012-08-14 | Google Inc. | Attribute entropy as a signal in object normalization |
US7769579B2 (en) | 2005-05-31 | 2010-08-03 | Google Inc. | Learning facts from semi-structured text |
US7392258B2 (en) * | 2005-02-25 | 2008-06-24 | International Business Machines Corporation | Method and computer program product for dynamic weighting of an ontological data model |
US7809754B2 (en) * | 2005-02-28 | 2010-10-05 | International Business Machines Corporation | Method and computer program product for generating a lightweight ontological data model |
US9208229B2 (en) | 2005-03-31 | 2015-12-08 | Google Inc. | Anchor text summarization for corroboration |
US7587387B2 (en) | 2005-03-31 | 2009-09-08 | Google Inc. | User interface for facts query engine with snippets from information sources that include query terms and answer terms |
US8682913B1 (en) | 2005-03-31 | 2014-03-25 | Google Inc. | Corroborating facts extracted from multiple sources |
US8996470B1 (en) * | 2005-05-31 | 2015-03-31 | Google Inc. | System for ensuring the internal consistency of a fact repository |
US7831545B1 (en) | 2005-05-31 | 2010-11-09 | Google Inc. | Identifying the unifying subject of a set of facts |
US8055608B1 (en) * | 2005-06-10 | 2011-11-08 | NetBase Solutions, Inc. | Method and apparatus for concept-based classification of natural language discourse |
US7606776B1 (en) | 2005-09-28 | 2009-10-20 | Actenum Corporation | Flexible constraint propagation engine for combinatorial optimization applications |
US7991797B2 (en) | 2006-02-17 | 2011-08-02 | Google Inc. | ID persistence through normalization |
US8260785B2 (en) | 2006-02-17 | 2012-09-04 | Google Inc. | Automatic object reference identification and linking in a browseable fact repository |
US8700568B2 (en) | 2006-02-17 | 2014-04-15 | Google Inc. | Entity normalization via name normalization |
RU2488735C2 (ru) * | 2006-08-21 | 2013-07-27 | Вестерн Пайпвей, Ллс | Системы и способ для восстановления трубопровода |
US8122026B1 (en) | 2006-10-20 | 2012-02-21 | Google Inc. | Finding and disambiguating references to entities on web pages |
US8347202B1 (en) | 2007-03-14 | 2013-01-01 | Google Inc. | Determining geographic locations for place names in a fact repository |
US8239350B1 (en) | 2007-05-08 | 2012-08-07 | Google Inc. | Date ambiguity resolution |
US7966291B1 (en) | 2007-06-26 | 2011-06-21 | Google Inc. | Fact-based object merging |
US7970766B1 (en) | 2007-07-23 | 2011-06-28 | Google Inc. | Entity type assignment |
US8738643B1 (en) | 2007-08-02 | 2014-05-27 | Google Inc. | Learning synonymous object names from anchor texts |
US8812435B1 (en) | 2007-11-16 | 2014-08-19 | Google Inc. | Learning objects and facts from documents |
US8676737B2 (en) * | 2009-10-05 | 2014-03-18 | International Business Machines Corporation | Detecting missing cases in business rules |
US9317595B2 (en) * | 2010-12-06 | 2016-04-19 | Yahoo! Inc. | Fast title/summary extraction from long descriptions |
US8819078B2 (en) * | 2012-07-13 | 2014-08-26 | Hewlett-Packard Development Company, L. P. | Event processing for graph-structured data |
US10657180B2 (en) * | 2015-11-04 | 2020-05-19 | International Business Machines Corporation | Building and reusing solution cache for constraint satisfaction problems |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5438511A (en) * | 1988-10-19 | 1995-08-01 | Xerox Corporation | Disjunctive unification |
US5727222A (en) * | 1995-12-14 | 1998-03-10 | Xerox Corporation | Method of parsing unification based grammars using disjunctive lazy copy links |
-
1996
- 1996-06-21 US US08/668,988 patent/US5819210A/en not_active Expired - Lifetime
-
1997
- 1997-06-19 DE DE69712411T patent/DE69712411T2/de not_active Expired - Lifetime
- 1997-06-19 EP EP97304335A patent/EP0814418B1/en not_active Expired - Lifetime
- 1997-06-20 JP JP16436997A patent/JP4413286B2/ja not_active Expired - Lifetime
-
1998
- 1998-06-18 US US09/100,269 patent/US6064953A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP4413286B2 (ja) | 2010-02-10 |
EP0814418A1 (en) | 1997-12-29 |
US6064953A (en) | 2000-05-16 |
EP0814418B1 (en) | 2002-05-08 |
US5819210A (en) | 1998-10-06 |
DE69712411D1 (de) | 2002-06-13 |
DE69712411T2 (de) | 2002-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4413286B2 (ja) | エッジデータ構造を統一する方法 | |
Wang et al. | A system for approximate tree matching | |
JP4140980B2 (ja) | プログラムツリーを表示するコンピュータプログラムの構文依存しない表示方法 | |
US5555408A (en) | Knowledge based information retrieval system | |
Murphy et al. | Lightweight lexical source model extraction | |
JP4656868B2 (ja) | 構造化文書作成装置 | |
US20020194223A1 (en) | Computer programming language, system and method for building text analyzers | |
US5438511A (en) | Disjunctive unification | |
JPS61103247A (ja) | 翻訳プログラム作成システム | |
JPH1049530A (ja) | データ処理方法 | |
JP2009521026A (ja) | 探索および置換入力の派生を活用する探索および置換機能でテキストを編集するための方法およびシステム | |
JP2005070911A (ja) | 構造化文書のデータを検索する装置および方法 | |
JPH10105551A (ja) | プロセッサを用いて第1グラフの単一化の一部として第1節と第2節を結合する方法 | |
JPH0567144A (ja) | 前編集支援方法およびその装置 | |
US8122431B2 (en) | Device for processing formally defined data | |
EP0779578B1 (en) | Method and apparatus for parsing unification based grammars using disjunctive lazy copy links | |
Beedkar et al. | A unified framework for frequent sequence mining with subsequence constraints | |
US5628012A (en) | Method and apparatus for querying a database containing disjunctive information | |
Grandi | ProbQL: A Probabilistic Query Language for Information Extraction from PDF Reports and Natural Language Written Texts | |
Nguyen | Statistical Models and Machine Learning to Advance Code Completion: Are We There Yet? | |
JP2005234800A (ja) | 用例機械翻訳装置及び用例翻訳コンピュータプログラム、並びに用例検索装置及び用例検索コンピュータプログラム | |
GOLOVESHKIN et al. | Program Systems: Theory and Applications | |
Marin-Castro et al. | VR-Tree: A novel tree-based approach for modeling Web Query Interfaces | |
Black | PPP: The Pan Program Presenter | |
EP0721165A2 (en) | System and method for data format modification and translator construction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040621 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060725 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061025 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061114 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070314 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070522 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20070601 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090518 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090521 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090917 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091118 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121127 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121127 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131127 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |