(57)【要約】【課題】自然言語テキストを利用してＰＲＯＬＯＧ同様の推論を行う。【解決手段】変数付自然言語文（ＶＬＡＮＫ文）について、シンボル同士の相対的位置関係の存在の類似性や位置関係の存在の結束性等、パターンとしての類似性により文間の論理的類似性を計算機により評価してＰＲＯＬＯＧ同様の推論ないし手続き的解釈を行う。ファクトの集合（知識源）、ルール、および、問い合わせ（実行命令）において、述語ないし関数とパラメータ（引数）とが区別されず、いずれもがユニフィケーション等において変数に代入されうる。ＶＬＡＮＫ文間のユニフィケーション（代入組）候補が複数存在する場合、各ユニフィケーション候補の有望度を、ユニフィケーションによりできる（ＰＲＯＬＯＧでは右辺の）ＶＡＬＮＫ文（ないしはＶＬＡＮＫ文集合）と知識源内の１以上の文（離散的であってもよく情報源が別であってもよい）とのパターンとしての類似性により計算する。【選択図】図１
2006024045.tif 000002
【特許請求の範囲】
【請求項１】
ＰＲＯＬＯＧ等に存在する述語、定数（アトム、リスト、構造体も含みうる）、変数、関数、パラメータその他のリテラルに相当するものの種類、関係ないし構造が、コンマや大中小括弧のネストといった所定の予約されたデリミタや形式的配置により明示されることを要しない、自然言語等の文であって０種類以上の各０回以上出現する変数とそれ以外のシンボルとは区別できる文（以降、ＶＬＡＮＫ文と呼ぶ）について、ＶＬＡＮＫ文内の、シンボル同士の相対的位置関係の存在の類似性や該位置関係の存在の結束性等、パターンとしての類似性によりＶＬＡＮＫ文間の論理的類似性を電子計算機により評価して、後向き推論、前向き推論および手続き的解釈、又はこれらのいずれかを行うことを特徴とする処理方法。
【請求項２】
シンボル間の、定義された意味的類似性もしくは所定のアルゴリズムより計算される意味的類似性により、シンボル選択による表記のゆらぎ等を吸収して前記ＶＬＡＮＫ文間の論理的類似性の計算をより頑強にした請求項１に記載の処理方法。
【請求項３】
前記ＶＬＡＮＫ文を対象に、ＰＲＯＬＯＧと同様の記法（ホーン節、カットオペレータ、not等）および処理（知識解釈）手順を適用して、ＰＲＯＬＯＧにおけると同様の後向き推論、（（確信度つきまたは付加要件付）assert等の）前向き推論、および（ユーザー問い合わせ、経過・結果の出力、他言語処理系（perl等）の起動等）手続き的解釈、又はこれらのいずれかを行う、請求項１又は２に記載の処理方法。
【請求項４】
ファクトの集合（インターネット上の複数のサイトに分散格納された知識源等）、ルール（ホーン節等）、および、問い合わせ（実行命令等）において、述語ないし関数とパラメータ（引数）とが区別されず、いずれもがユニフィケーション等において変数に代入されうる、請求項１から３のいずれか一項に記載の処理方法。
【請求項５】
ＶＬＡＮＫ文間（例えば、（１）ホーン節左辺の文「Ｘはカレーライスが好き。」と問い合わせ文「太郎はＹが好き。」との文間、（２）ホーン節左辺の文「ＸはＹが好き。」と問い合わせ文「太郎はカレーライスが、次郎はラーメンが好き。」との文間）のユニフィケーション（代入組）候補が複数（すなわち代入組候補の集合が）存在する場合（例えば上記（２）では、ユニフィケーション候補α（Ｘ＝「太郎」，Ｙ＝「カレーライスが、次郎はラーメン」）と、ユニフィケーション候補β（Ｘ＝「太郎はカレーライスが、次郎」，Ｙ＝「ラーメン」）と、がある）、
各ユニフィケーション候補の有望度を、ユニフィケーションによりできる（ホーン節では右辺の）ＶＡＬＮＫ文（ないしはＶＬＡＮＫ文集合）（例えば、（２）のホーン節右辺が「ＸとＹはいつも一緒。」，「Ｙは食べ物である。」のとき、ユニフィケーション候補αでは「太郎とカレーライスが、次郎はラーメンはいつも一緒。」，「カレーライスが、次郎はラーメンは食べ物である。」となる一方、ユニフィケーション候補βでは「太郎はカレーライスが、次郎とラーメンはいつも一緒。」，「ラーメンは食べ物である。」となる）と、知識源内の１以上の文（離散的であってもよく情報源が別であってもよい）（例えば「ラーメンこそ食べ物である。」）との、文内シンボル同士の相対的位置関係の存在の類似性や該位置関係の存在の結束性等、パターンとしての類似性により（総合的に）計算することを特徴とする、請求項１から４のいずれか一項に記載の処理方法。
【請求項６】
前記有望度をユーザーに示すことを特徴とする、請求項５に記載の処理方法。
【請求項７】
前記有望度により枝刈を行い、一部のユニフィケーション候補（例えば前記ユニフィケーション候補α）については、
再帰的なユニフィケーション（ユニフィケーション候補によりできるＶＬＡＮＫ文（集合の要素文）への別のホーン節（ルール）の適用ないしはできるＶＬＡＮＫ文内に残った変数へのシンボル（列）の全体的又は部分的代入）を行わないことことを特徴とする、請求項５に記載の処理方法。
【請求項８】
いわゆるバックトラック（ホーン節右辺の最左の文からの深さ優先探索のユニフィケーション等）を行わない一方、
（文間・変数間においては平等な（すなわち、どの文ないし変数から始めたものも同一の処理文脈で（下で定義する）解モデル候補となる））
（再帰的）ユニフィケーション（すなわち変数への全体的又は部分的代入（（中央への）部分的代入により変数の識別子を増やすように構成した場合（Ｘ（元の変数識別子）＝＞Ｘ１（新しい変数識別子）；ｗ（定数）；Ｘ２（別の新しい変数識別子）等）も含む））
ないし
（再帰的な）ホーン節の適用
によって各処理文脈でホーン節右辺により生成ないし追加されるＶＬＡＮＫ文集合を、一体となった解モデル候補として記憶し、
有望度の高い文集合から構成される（総合的に）有望な解モデル候補を、
（当該親の解モデル候補（ないし、最初のルート解モデル候補（すなわち（単数又は複数のＶＬＡＮＫ文からなる）ユーザー問い合わせ自体））と併せて、（親子の関係を問わず）一括して有望度の比較および枝刈の対象とする等）幅優先探索する、
ことを特徴とする、請求項５に記載の処理方法。
【請求項９】
（再帰的）ユニフィケーションないし（再帰的な）ホーン節の適用の結果、既に親の解モデル候補に存在するＶＬＡＮＫ文と同じＶＬＡＮＫ文（特に変数の識別子も同じもの）が解モデル候補の要素文（一要件）として追加されそうになったときは、これを追加しないことを特徴とする、請求項１から８のいずれか一項に記載の処理方法。
【請求項１０】
前記解モデル候補内の（複数の文において複数回登場する同一の）変数の全体又は部分を、（特にインターネットに存在する）（非定型の）知識源中の同一のシンボル（ただし以降定数と識別されるもの）により（同時に）埋めて生成しうる解モデル候補も、前記探索の対象とすることを特徴とする、請求項８に記載の処理方法。
【請求項１１】
前記（再帰的）ユニフィケーションにおいて、変数（として識別されるシンボル）を含むシンボル列を、別の変数へ代入してできる、文ないし解モデル候補をも探索の対象とすることを特徴とする、請求項５から１０のいずれか一項に記載の処理方法。
【請求項１２】
ホーン節等のルール自体もインターネット上等オープンな知識源から検索して適用し、生成される解モデル候補を一括して幅優先探索の対象とする、請求項８から１１のいずれか一項に記載の処理方法。
【請求項１３】
前記処理方法の一部又は全部をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特にインターネットの自然言語テキストや自然言語で記述されたルールを知識源として推論を行うため方法に関する。
【背景技術】
【０００２】
自然言語等で非定型に記憶されたネット上の知識や情報等などを損失なく推論や検索に生かすべく、人間が問題を入力しやすくかつコンピュータ側でも問題の焦点を把握しやすい「ネット穴埋め問題」として問題を定式化し、その問題の解法や問題表現能力の改善を目指し、特開平１０−３０７７２４、特開平１１−２５００６２、特開２００３−２５６４２６などの研究成果を得てきた。
【０００３】
しかし、特に特開２００３−２５６４２６におけるような、複数の異なる変数を複数の文や型定義に振り分ける問題表現のしかたは、複雑な問題を入力するユーザーに多大な負荷をかけることになってしまう。
【０００４】
また、問題表現文内の語順を知識源（例えば、下記非特許文献１）内の語順に一致しやすいように用いてくれるとは限らず、変数の型制約（ユーザー側からの制約）に相当する文（特に、問い合わせ文集合のデリミタで区切られた要素文（下記特許文献３を参照））においても必ずしも知識源（やはり、例えば、下記非特許文献１）内の型定義の用語に一致しやすい用語をもちいてくれるとは限らない。
【０００５】
【特許文献１】特開１０−３０７７２４号公報
【特許文献２】特開１１−２５００６２号公報
【特許文献３】特開２００３−２５６４２６号公報
【非特許文献１】ホームページ「ＶＬＡＮＫ」http://www.vlank.com/
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、以上の問題を解決して、インターネット上の非定型の自然言語テキストを用いたＰＲＯＬＯＧレベルの高度な推論や検索、ひいては登録などのトランザクションを実用的に行うため、問い合わせを簡易に省力化するとともに、問い合わせやファクト（記事）に多少の表記ゆれがあったとしてもロバストに推論できる処理方法、システムないしコンピュータプログラムを提供することである。
【課題を解決するための手段】
【０００７】
本発明は、以上の課題を解決するため、ＰＲＯＬＯＧ等に存在する述語、定数（アトム、リスト、構造体も含みうる）、変数、関数、パラメータその他のリテラルに相当するものの種類、関係ないし構造が、コンマや大中小括弧のネストといった所定の予約されたデリミタや形式的配置により明示されることを要しない、自然言語等の文であって０種類以上の各０回以上出現する変数とそれ以外のシンボルとは区別できる文（以降、ＶＬＡＮＫ文と呼ぶ）について、ＶＬＡＮＫ文内の、シンボル同士の相対的位置関係の存在の類似性や該位置関係の存在の結束性等、パターンとしての類似性によりＶＬＡＮＫ文間の論理的類似性を電子計算機により評価して、後向き推論、前向き推論および手続き的解釈、又はこれらのいずれかを行う処理方法を提供する。
これにより、問い合わせ文、ルール（ホーン節など）、ファクトについて、使用できる述語の表現方法や変数の個数などをあまり気にせずに、とりあえず入力して記憶することができ、ＰＲＯＬＯＧのような高度な自動推論（一階述語論理レベル）を一般の人が手軽に使える（さらにルールやファクトの登録もできる）ようになり、社会的な推論に利用できる知識の量が増大し、ひいては知識獲得のボトルネックが解消する。
たとえば、文間の論理的類似性の評価は、上記特許文献１、２ないし３に記載された方法を用いることができ、ファクトの登録は上記非特許文献１のような方法を用いることで、ファクトの検索を効率化することもできる。なお、ＰＲＯＬＯＧ処理系の実装および類似性評価アルゴリズムの実装については、公知の文献や上記特許文献を参照することにより、当業者が容易に行うことができ、ここでは詳述しない。
【０００８】
本発明の処理方法では、シンボル間の、定義された意味的類似性もしくは所定のアルゴリズムより計算される意味的類似性により、シンボル選択による表記のゆらぎ等を吸収して前記ＶＬＡＮＫ文間の論理的類似性の計算をより頑強にすることができる。
これにより、ちょっとした用語選択の表記ゆれによる知識適用の失敗を更に精度よく回避することができる。
たとえば、各用語について類義語とその類似度の組からなるリストへのポインタを記憶した辞書をメモリに格納することにより実現することができる。詳細な例、計算方法などは、上記特許文献１、３を参照されたい。
【０００９】
本発明の処理方法では、前記ＶＬＡＮＫ文を対象に、ＰＲＯＬＯＧと同様の記法（ホーン節、カットオペレータ、not等）および処理（知識解釈）手順を適用して、ＰＲＯＬＯＧにおけると同様の後向き推論、（（確信度つきまたは付加要件付）assert等の）前向き推論、および（ユーザー問い合わせ、経過・結果の出力、他言語処理系（perl等）の起動等）手続き的解釈、又はこれらのいずれかを行うことができる。
これにより、完全性、健全性、停止性等のすでに証明された有利な枠組みを援用することが可能になり、さらには、他のアプリケーションとのトランザクションによるリンクなどが可能となる。しかも、非定型のＶＬＡＮＫ文という気軽なインターフェイスによって行えるようになるため、ＰＲＯＬＯＧで実現可能であった推論のクラス（一階述語論理の一部）およびこれと連動したアプリケーションサービスなどの利用を多くの人が手軽に行えるようになる。
たとえば、前記文間の論理的類似性をＰＲＯＬＯＧにおける述語の一致とおきかえることにより、健全性の一部は失われるが、一定の信頼性をもって可能となる。ただし、多段階に定義（算出）した文間の論理的類似度を、再帰的に継承することにより、ユーザーに提示した結果（ＴＲＵＥやＦＡＬＳＥ、変数Ｘ、Ｙの値の組の集合等）の信頼性の度合いを提示することが可能となり、健全性をある程度補償することができる。
【００１０】
本発明の処理方法では、ファクトの集合（インターネット上の複数のサイトに分散格納された知識源等）、ルール（ホーン節等）、および、問い合わせ（実行命令等）において、述語ないし関数とパラメータ（引数）とが区別されず、いずれもがユニフィケーション等において変数に代入することができる。
これにより、問い合わせやルールにおける述語や格要素の全体的・部分的な欠如を自動で補完することができ、さらに使い勝手がよくなり、推論系としての完全性ないし検索系の網羅性（再現率）が向上する。
たとえば、ある文ａの変数Ｘに、その文ａとユニフィケーションしようとする別の文ｂの一部を代入してできる候補をピックアップする場合には、その変数Ｘに代入できる候補を公知の正規表現ライブラリなどにより容易に抽出することができる。ただし、後述するように文ｂに変数Ｙ等が含まれる場合でも変数Ｙ（ないしその前後の定数シンボル）ごと変数Ｘに代入してもよく、ついで再帰的に（ただし、特に変数Ｙが埋められてない候補と同水準の有望度競合候補として）変数Ｙを埋める候補を同様に抽出することもできる。なお、変数Ｙに代入するべき値が明らかな場合等は、同一の処理文脈（枝狩りが介在しない単一フェーズ）内で、文ａと文ｂとで双方向に繰り返しマッチングをとることにより探索を効率化することができる。また、埋める（代入）の候補が複数残る場合には、いずれも記憶して、後述する有望度の計算、枝刈、および再帰的なホーン節の適用ないしユニフィケーションの対象とすることができる。なお、かかる有望度の計算および枝刈の手法については、上記特許文献１を参考にされたい。
【００１１】
本発明の処理方法では、ＶＬＡＮＫ文間（例えば、（１）ホーン節左辺の文「Ｘはカレーライスが好き。」と問い合わせ文「太郎はＹが好き。」との文間、（２）ホーン節左辺の文「ＸはＹが好き。」と問い合わせ文「太郎はカレーライスが、次郎はラーメンが好き。」との文間）のユニフィケーション（代入組）候補が複数（すなわち代入組候補の集合が）存在する場合（例えば上記（２）では、ユニフィケーション候補α（Ｘ＝「太郎」，Ｙ＝「カレーライスが、次郎はラーメン」）と、ユニフィケーション候補β（Ｘ＝「太郎はカレーライスが、次郎」，Ｙ＝「ラーメン」）と、がある）、
各ユニフィケーション候補の有望度を、ユニフィケーションによりできる（ホーン節では右辺の）ＶＡＬＮＫ文（ないしはＶＬＡＮＫ文集合）（例えば、（２）のホーン節右辺が「ＸとＹはいつも一緒。」，「Ｙは食べ物である。」のとき、ユニフィケーション候補αでは「太郎とカレーライスが、次郎はラーメンはいつも一緒。」，「カレーライスが、次郎はラーメンは食べ物である。」となる一方、ユニフィケーション候補βでは「太郎はカレーライスが、次郎とラーメンはいつも一緒。」，「ラーメンは食べ物である。」となる）と、知識源内の１以上の文（離散的（例えば別の段落）であってもよく情報源が別（サイトＡとサイトＢ）であってもよい）（例えば「ラーメンこそ食べ物である。」）との、文内シンボル（字や形態素、自立語等）同士の相対的位置関係の存在の類似性や該位置関係の存在の結束性（同一の格構造内、文内、段落内、情報源内）等、パターンとしての類似性により（総合的に）計算することができる。
これにより、知識源、情報源内の情報を損失なく頑強にいかしながら、より適した解（ユニフィケーション候補）を優先的に探索することができる。
たとえば、評価しようとする文と情報源のファクトとなる文とのパターンとしての類似度の、各文にわたる最小値や平均値や積等を、文集合（後述する解モデル候補）としての総合的な有望度とすることができる。
【００１２】
また、前記有望度をユーザーに示すことができる。
これにより、先に説明したとおり、健全性の欠如をある程度補完して、ユーザーが有望な解から順番に自分で検証したりするのを補助することができる。
ユーザーへの有望度の表示は、推論の途中でもよく、ユーザーが手動で枝狩りを制御したりするのを助けることもできる。また、抽出したユニフィケーションをもとにシェルコマンドなどを起動して外部のアプリケーションにリンクする場合にも、有望度を添付することができ、また、起動に際して有望度をユーザーに表示して起動するかどうかを確認することもできる。
【００１３】
また、前記有望度により枝刈を行い、一部のユニフィケーション候補（例えば前記ユニフィケーション候補α）については、再帰的なユニフィケーション（ユニフィケーション候補によりできるＶＬＡＮＫ文（集合の要素文）への別のホーン節（ルール）の適用ないしはできるＶＬＡＮＫ文内に残った変数へのシンボル（列）の全体的又は部分的代入）を行わないようにすることができる。
これにより、解の探索を効率化することができ、また、本発明によるロバストシステムへの一定の停止性の導入（例えば、探索経路の記憶と再帰的ユニフィケーション（ないしホーン節の適用）への敷居値の設定による）を可能にする。
【００１４】
すなわち、また、本発明の処理方法では、いわゆるバックトラック（ホーン節右辺の最左の文からの深さ優先探索のユニフィケーション等）を行わない一方、（文間・変数間においては平等な（すなわち、どの文ないし変数から始めたものも同一の処理文脈で（下で定義する）解モデル候補となる））
（再帰的）ユニフィケーション（すなわち変数への全体的又は部分的代入（（中央への）部分的代入により変数の識別子を増やすように構成した場合（Ｘ（元の変数識別子）＝＞Ｘ１（新しい変数識別子）；ｗ（定数）；Ｘ２（別の新しい変数識別子）等）も含む））
ないし
（再帰的な）ホーン節の適用
によって各処理文脈でホーン節右辺により生成ないし追加されるＶＬＡＮＫ文集合を、一体となった解モデル候補として記憶し、有望度の高い文集合から構成される（総合的に）有望な解モデル候補を、
（当該親の解モデル候補（ないし、最初のルート解モデル候補（すなわち（単数又は複数のＶＬＡＮＫ文からなる）ユーザー問い合わせ自体））と併せて、（親子の関係を問わず）一括して有望度の比較および枝刈の対象とする等）幅優先探索する、ことができる。
これにより、停止性が保証されない場合でも一定の完全性を与えることができ、有望な解の集合をある程度網羅的にユーザーに提供することができる。
たとえば、幅優先探索は、解モデル候補とその総合的有望度と展開したかどうかを示すフラグとからなる３つ組を文字列の形式で記憶し、ユーザー問い合わせからはじまる各展開（ユニフィケーションないしホーン節の適用）によってできるすべての解モデル候補を一展開ごとに連続した順序で再帰的に展開されるよう（ＦＩＦＯキューなどの形式で）記憶することにより実現できる。なお、上述したように、展開の前に解モデル候補の有望度の評価を行い再帰的展開をやめる（枝狩りする）ことなども明らかに可能である。
【００１５】
また、（再帰的）ユニフィケーションないし（再帰的な）ホーン節の適用の結果、既に親の解モデル候補に存在するＶＬＡＮＫ文と同じＶＬＡＮＫ文（特に変数の識別子も同じもの）が解モデル候補の要素文（一要件）として追加されそうになったときは、これを追加しないようにすることができる。
これにより、無用な有望度の評価をさけ、応答時間を短縮するとともに、停止性の保証が容易になる。
【００１６】
また、前記解モデル候補内の（複数の文において複数回登場する同一の）変数の全体又は部分を、（特にインターネットに存在する）（非定型の）知識源中の同一のシンボル（ただし以降定数と識別されるもの）により（同時に）埋めて生成しうる解モデル候補も、前記探索の対象とすることができる。
これにより、用語が後ろ向き推論におけるサブゴールの用語と直接マッチしない等の場合でも、前述したロバスト性確保の仕組みにより、インターネット中の知識（シンボルの並びの存在）を推論に生かすことができる。
なお、インターネット中のすべてのシンボルがわかっている場合には、すべてのシンボルを１シンボルづつ、変数の全体ないしは部分として代入し有望な解モデル候補のみを残すようにしてもよい。
【００１７】
また、前にもふれたとおり、前記（再帰的）ユニフィケーションにおいて、変数（として識別されるシンボル）を含むシンボル列を、別の変数へ代入してできる、文ないし解モデル候補をも探索の対象とすることができる。
これにより、本発明によるパターンとしてのユニフィケーションのアルゴリズムが容易になる。
【００１８】
また、本発明による処理方法では、ホーン節等のルール自体もインターネット上等オープンな知識源から検索して適用し、生成される解モデル候補を一括して幅優先探索の対象とすることができる。
これにより、多くの知識提供者の知識を一括して推論に用いて競争力のある解を捻出することができ、周囲や社会のために問題を発見した人が報われやすくなる。
たとえば、インターネット上にちらばったテキスト形式のホーン節をＨＴＴＰなどで必要に応じて集めてキャッシュし現在の処理文脈に適用することができる。
【００１９】
また、本発明は、前記処理方法の一部又は全部をコンピュータに実行させるためのコンピュータプログラムを提供する。
【発明の効果】
【００２０】
インターネット上にちらばった非定型の自然言語文など知識・情報源として用いてロバストな推論を行うことを可能にする。また、その問い合わせのためのユーザーの入力が省力化される。網羅的に解を探索するための必要な問題の展開（ブレークダウン）や置き換えが自動的に行われる。
【発明を実施するための最良の形態】
【００２１】
最良の実施形態では、クライアントサーバー形式のインターネット推論サービスとして実現する。
また、上記特許文献３で示したように、互いに疎な（ユニフィケーションされることのない変数を含む）解モデル候補を部分問題として、複数のサーバーに下請けさせて分散処理するように構成されている。
各サーバーはインターネット上のテキストを周期的に大量にあつめてキーワードによってインデックスをつけて管理している。
【００２２】
また、どこのサイトのどのドキュメントのどの段落からあつめたかを更新日付と併せて記憶しており、一定の信頼度しかないことを別途定義したサイトや古いドキュメントからあつめたファクトやルールについては、それを根拠とした解モデル候補の有望度が信頼度の低さに応じて低くなるようにプログラミングされている。
また、同一の段落から集めた複数の文を根拠とする解モデル候補のほうが、異なる段落、異なるドキュメント、異なるサイトから集めた複数の文を根拠とする解モデル候補よりも有望度が高くなるようにプログラミングされている。
また、そもそも、ユーザー問い合わせ自体や環境変数により、知識源のロケーション指定を行うことができ、推論に使用するネットワーク知識源（メモリ、インターネット）を指定ないし限定することもできるようになっている。
また、結束要求子を、ホーン節における右辺の文の連結の前に記載することができ、ファクトやルールを参照する際のそれらの結束性を要求することができる。この結合子で結合される文を中括弧「｛｝」などでネストさせて、結束性の要求を階層的に定義することも可能にしている。たとえば、ホーン節の右辺が、Ｄ｛文ａ,文ｂ,Ｓ｛文ｃ，文ｄ｝｝である場合、右辺が成立するためには、文ａ、ｂ、ｃ、ｄが同一ドキュメントに結束して存在していなければならず、しかもｃとｄは同一段落中に結束して存在してなければならない。
【００２３】
また、ａｓｓｅｒｔ文に信頼度が定義できるようになっており、一定のファクトから一定の上記信頼度を有する別のファクトが、ホーン節の手続き的解釈による前向き推論により自動生成されるようになっている。この場合、ａｓｓｅｒｔ文に定義された信頼度のほか、ヘッドと単一化されたファクト自体の信頼度もかけあわされて前向き推論によって生成されるファクトの信頼度が計算される。
また、問い合わせを、小前提（重文でもよい）と、質問とに分けて入力することができ、小前提とこの小前提から前記ａｓｓｅｒｔ文により生成されたファクトも知識源として問いに答えるようにプログラミングされている。
なお、問い合わせは、真偽を問う定数であってもよく、解の存在を問う変数入りのものであってもよい。いずれの問いあわせにも、ファクトのほか、「変数入り」のＶＬＡＮＫ文がヘッド部となったホーン節が適用され、ユニフィケーション（単一化）される。
【００２４】
表記ゆれを吸収するための、簡便な記法として「；」（セミコロン）がＯＲをあらわすように定義されていおり、同意語の言葉の集合を一つの言葉に標準化するような基礎ルールが存在する。
また、文中の格要素等の順序のゆれを吸収するため、上記特許文献３で示したと同様の「（）」のネスト表記がおこなわれ、自動展開してユニフィケーションが行われる。
また、上記特許文献１で示した反意語の影響によって解モデル候補の有望度を下げる仕組みが導入されている。
【００２５】
また、ホーン節右辺の各文につき、ファクトのマッチング（ユニフィケーション）だけでなく、他のホーン節のヘッドとのマッチング（ユニフィケーション）が不完全（変数が残るだけでなく、ユニフィケーションしえないもの）であっても、その不完全な度合いを計算して、その度合いと当該別のホーン節の右辺とを関連づけて、新しい右辺とするようにプログラミングされており、その度合いが解モデル候補としての有望度に反映されるようになっている。たとえば、問い合わせ「？ａ」、ホーン節「ａ：−ｂ，ｃ．」、ホーン節「ｃ’：−ｄ，ｅ．」があり、ｃとｃ’が単一化しえないときでも、その一致度（例えば８０％）に応じて「ｂ，ｄ（８０％），ｅ（８０％）」という解モデル候補が生成され得、この８０％がこの解モデル候補の有望度の計算に反映される。
【実施例１】
【００２６】
図１は、本発明の処理方法の一実施形態を示した説明図である。自然言語による一つの問いと、ＶＬＡＮＫ文によって構成された５つのホーン節と、異なるサイト（インターネット情報源）に異なる著者によって記載された３つの自然言語知識とを略記している。
【００２７】
従来の方法（上記特許文献１、２等）では、この問いの内容は、３つのネット情報源の自然言語文と比較されて、似たパターンが存在しない場合、「偽」という答えないしは０．００００３３といった「偽」の意味に近い有望度が、推論（検索）システムによって返された。また、上記特許文献３では、規則１の右辺をユーザーが手入力しなければならなかった。
しかし、本発明による処理方法では、ネット情報源１、２、３とのパターンマッチの結果が所定の敷居値以下であるため失敗した後、規則１のホーン節のヘッド部と単一化（ユニフィケーション）されて、ボディ部のＸとＹにそれぞれ「晃生」と「圭介」が代入され、
------
解モデル候補１：１００％「晃生はＺの子である。，Ｚと圭介は兄弟又は姉妹である。，晃生は男性である。．」
------
という解モデル候補が生成される。さらにこれは、再帰的な規則適用の対象となり、
------
解モデル候補２：１００％「｛晃生はＹの息子である。；晃生はＹの娘である。｝，Ｚと圭介は兄弟又は姉妹である。，晃生は男性である。．」
解モデル候補３：１００％「晃生はＺの子である。，｛Ｚと圭介は兄弟である。；圭介とＺは兄弟である；Ｚと圭介は姉妹である。；圭介とＺは姉妹である。｝，晃生は男性である。．」
解モデル候補４：１００％「晃生はＺの子である。，Ｚと圭介は兄弟又は姉妹である。，｛晃生は男の子である。；晃生はＹの息子である。；晃生はおじいちゃんである。｝．」（なお、ホーン節の適用において、変数名（識別）がかさなるときは公知技術により別名にエスケープされる）
・・・
------
等が同時に生成されて、幅優先探索の対象となり有望度が計算され枝刈（ＯＲ「；」の縮約も含む）が行われる。
この場合、結局、解モデル候補２に、ネット情報源１、ネット情報源３、規則４（＋ネット情報源３）が適用されて、最も有望な解モデル候補Ｎ「晃生は栄美子の息子である。，栄美子と圭介は兄弟である。」が探索され、システムは問いに対して「真」を返す。
【００２８】
図２は、本発明の処理方法の一実施形態を示した説明図である。この例では、問いについて表記ゆれ（下線）が生じている。また、規則は、格要素の語順のゆれを吸収するためネストした括弧による記法を採用している。
【００２９】
この場合、解モデル候補の集合は図１と異なり、表記ゆれによるパターンのマッチ度の不十分さが反映された、以下のような解モデル候補が生成される。
------
解モデル候補１：８０％「晃生はＺの子である。，Ｚと圭介は兄弟又は姉妹である。，晃生は男性である。．」
解モデル候補２：８０％「｛晃生はＹの息子である。；晃生はＹの娘である。｝，Ｚと圭介は兄弟又は姉妹である。，晃生は男性である。．」
解モデル候補３：８０％「晃生はＺの子である。，｛Ｚと圭介は兄弟である。；圭介とＺは兄弟である；Ｚと圭介は姉妹である。；圭介とＺは姉妹である。｝，晃生は男性である。．」
解モデル候補４：８０％「晃生はＺの子である。，Ｚと圭介は兄弟又は姉妹である。，｛晃生は男の子である。；晃生はＹの息子である。；晃生はおじいちゃんである。｝．」（なお、ホーン節の適用において、変数名（識別）がかさなるときは公知技術により別名にエスケープされる）
．．．
------
すなわち、今後の再帰的なユニフィケーション等によっても有望度は８０％に抑えられるが、完全にマッチした場合と同様に再帰的な推論が可能であり、完全にマッチしてできた解モデル候補と同一の土俵で有望度評価および枝刈がなされ、ロバストな推論が可能となる。
この場合、図１の場合と同様の規則およびネット情報源が適用されて、８０％という有望度が返される。なお、推論の経路をトレースしておいて結果（有望度）と同時に示すことも当然可能であり、この場合、ユーザーはこの経路の情報から、問いの答えを「真」と判断することができる。
【００３０】
図３は、本発明の処理方法の一実施形態を示した説明図である。この例では、問い自体が最初から変数（Ｘ）を含んだＶＬＡＮＫ文である。この場合は、ＰＲＯＬＯＧにおけると同様に、Ｘに代入できる適切な値があれば、そのすべての値をユーザーに示すことがこの推論システムの処理内容となる。なお、表示方法自体については、上記特許文献１を参照さたい。
【００３１】
この場合、図１、２の場合と同様に規則１が適用されるが、規則１の右辺のＸには「晃生」が、Ｙには変数「Ｘ」が代入されることになる。この場合はＸが「晃生」による全体代入によりすでに消えているため、Ｙに代入される「Ｘ」は「Ｘ１」などとエスケープされることはない。ただし、Ｘに「晃Ｘ」などと部分代入（上記特許文献１を参照）される場合には、「Ｘ１」「Ｘ２」などとエスケープされる必要がある。
【００３２】
生成される解モデル候補の集合は、図２の場合とほとんど同じであるが、システムは、ユニフィケーションにあたって、どの変数にどの値を代入したかを、再帰的に記憶しており、最も有望な解モデル候補Ｎ：８０％「晃生は栄美子の息子である。，栄美子と圭介は兄弟である。」の生成にあたり、Ｘに「圭介」が代入されたことをメモリに記憶しており、この記憶から、８０％「Ｘ＝圭介」という解を、ユーザーに返すことができる。
【産業上の利用可能性】
【００３３】
本発明はインターネット中の知識を対象とした一般ユーザーによる推論、検索に利用することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の処理方法の一実施形態を示した説明図である。
【図２】本発明の処理方法の一実施形態を示した説明図である。
【図３】本発明の処理方法の一実施形態を示した説明図である。
【符号の説明】
【００３５】
問い  ユーザーの入力内容
規則１、規則２、規則３、規則４、規則５  本発明の一実施例によるホーン節
ネット情報源１、ネット情報源２、ネット情報源３  インターネット上の複数のサイトに分散された知識
【図１】
2006024045.tif 000003
【図２】
2006024045.tif 000004
【図３】
2006024045.tif 000005