(57)【要約】      （修正有）【課題】老人ホームや独居宅における高齢者等の発言や思いに対して、その内容の具体性に応じて十分具体的に実時間で対応する方法、コンピュータプログラム及び装置を提供する。【解決手段】プログラムは、人間が、音声認識させたいパターンと対応する別のテキストとを関連づけて記憶させる認識パターン記憶ステップと、コンピュータが、音声認識した認識パターンと対応する該別のテキストに記載されたデジタル処理を実時間で行う認識対応処理ステップとを含む。遠隔のコンピュータが自分のコンピュータにおくるべきメッセージ集合と各対応する認識パターン集合とを、自分のコンピュータから動的に指定することができる。認識パターンをコンピュータが自動生成する。【選択図】図１
2018085002.tif 000002
【特許請求の範囲】
【請求項１】
人間が、音声認識させたい認識パターンと対応する別のテキストとを関連づけて記憶させる認識パターン記憶ステップと、
コンピュータが、音声認識した認識パターンと対応する該別のテキストに記載された処理を実時間で行う認識対応処理ステップと
を含む方法。
【請求項２】
前記別のテキストに記載された処理が、実時間で遠隔の特定の端末へ特定のメッセージを送信する処理である、
請求項１に記載の方法。
【請求項３】
前記テキストに記載された処理が、実時間で遠隔の特定の端末へ新しいメッセージを要求する処理である、
請求項１又は２に記載の方法。
【請求項４】
前記テキストに記載された処理が、遠隔の特定の端末からの未受信のメッセージを受信する処理である
請求項１又は２に記載の方法。
【請求項５】
前記テキストに記載された処理が、遠隔のすべての端末からの未受信のメッセージを受信する処理である
請求項１又は２に記載の方法。
【請求項６】
前記テキストに記載された処理が、特定の同一メッセージを、所定の周期で、繰り返し、特定の端末（一又は複数）に送信する処理である
請求項１又は２に記載の方法。
【請求項７】
前記テキストに記載された処理が、特定のメッセージを、所定の周期の配信分として他のメッセージと一緒にため込むようにしながら、該所定の周期に特定（一又は複数）の端末に送信する処理である
請求項１又は２に記載の方法。
【請求項８】
第一のコンピュータが、第二のコンピュータで認識（近傍の利用者の音声、タッチ選択、入力指定、等）させるための認識パターンと対応する第一のコンピュータへの送信メッセージに対応する情報とを第二のコンピュータに送信する自分宛送信定義ステップと、
第二のコンピュータが、第一のコンピュータへの送信メッセージを、自分宛送信定義ステップで送信された認識パターンと対応する送信メッセージに制限する制限ステップと
を含む方法。
【請求項９】
第二のコンピュータにおいて、どの端末へ送信されるメッセージかを表示する
請求項８に記載の方法。
【請求項１０】
第二のコンピュータにおいて、どのような認識パターンを認識するかを表示する
請求項８又は９に記載の方法。
【請求項１１】
複数の送信メッセージ種類に対応する複数の認識パターン種類を第一又は第二のコンピュータで自動生成又は自動選択する請求項１から１０に記載の方法。
【請求項１２】
第二のコンピュータにおいて複数の別のコンピュータからのメッセージを出力する場合に、
メッセージを出力するタイミングが重ならないように時間的な間をあけて出力すること、
その間において第二のコンピュータが音声認識した内容について直前に出力したメッセージを送信してきたコンピュータにのみ送信すること、
を特徴とする、請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
コンピュータが認識パターン（利用者がいうべきこと）と送る内容との対応を画面表示又は音声出力する
請求項１から１２のいずれか一項に記載の方法。
【請求項１４】
認識パターン（いうべきこと）と対応する別のテキストの解釈が、自然言語に変数を埋め込むことを許したリテラルを用いた論理プログラムの実行を含む、
請求項１から１２のいずれか一項に記載の方法。
【請求項１５】
請求項１から１４のいずれか一項に記載の方法を実施するためのコンピュータプログラム。
【請求項１６】
請求項１から１４のいずれか一項に記載の方法を実施するための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発言や思いに対しデジタルで実時間対応する方法、コンピュータプログラム及び装置に関する。
【背景技術】
【０００２】
老人ホームや独居宅における高齢者、一人でお留守番中の子供、等による具体的な話し相手（家族のだれか等）を想定した発言や、なんらかの思い（お茶が飲みたい、散歩したい、寒い、さびしい、等）を示す独り言に対して、その内容の具体的な相違に十分に対応した精度で自動／半自動の機械的対応を実時間で行うことは困難であった（これは、病院患者について、危険な実験を行っている研究員について、飼育している動物等の異常を察する必要がある場合について、等も、同様であった）。
そして、声というメディアがある程度以上の数のチャネルをアナログで多重化した場合（例えば、別の声が聞こえる複数のスピーカの出力を同時に聞いたり、ミキシングして聞いたりする場合）において重大メッセージの監視が難しくなるメディアであることや、口語でなされる音声の認識品質の確保が難しいこと、等から、重大メッセージの検索に便利なテキストでその記録を行うことやその声の主の要望等に実時間で自動対応を行うことが困難であった。
このため、多くの監視が動画や静止画等の画像ベース（合成されていないもの）となりがちであり、高齢者等の能動的な発言や質問や思いに対して、迅速にあるいは十分具体的に対応することが困難になっていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特願２０１３−０８７００８  多長一致のユニフィケーションと無限集合の制御等を行う基本特許
【特許文献２】特願２０１５−２１９００７  外部知識の動的取込方法
【特許文献３】特願２０１５−２３４３５６  人格を表現するための価値観の定義方法、尺度の比較方法
【特許文献４】特願２０１５−２４８０９１  論理プログラムの設問方法、プロモーション方法
【特許文献５】特願２０１６−００９３２７  対話エンジンと逆質問による動的な文脈追加
【特許文献６】特願２０１６−１９６０６９  読み上げ機能にかかわる各種の工夫
【特許文献７】特願２０１５−２３４３５６  キャッシュによる高速化（外部知識の動的取込にも対応）
【特許文献８】特願２０１６−１０３０１０  ＵＩにおける類推機能及び音声認識機能
【特許文献９】特願２０１６−２００６１８  グループ表現による難読対応／表記ゆれ対応
【特許文献１０】特願２０１６−２１００９６  人手による動的枝刈り方法
【特許文献１１】特願２０１６−２１６８２０  音声認識対象の文脈による絞り込み方法
【特許文献１２】特願２０１６−２２４５９６  人格対話内容読み上げシステムにおける広告方法
【特許文献１３】特許第５２４６６８０号  複数制作者による論理プログラムの相互活用
【特許文献１４】特許第６０２３９３７号  類似する知見集合を有する利用者同士の切磋琢磨方法
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、本発明が解決しようとする課題は、老人ホームや独居宅における高齢者等の発言や思いに対して、その内容の具体性に応じて十分具体的に実時間で対応する方法、コンピュータプログラム及び装置を提供することである。
【課題を解決するための手段】
【０００５】
かかる課題を解決するため、本発明の請求項１は、
人間が、音声認識させたい認識パターンと対応する別のテキストとを関連づけて記憶させる認識パターン記憶ステップと、
コンピュータが、音声認識した認識パターンと対応する該別のテキストに記載されたデジタル処理を実時間で行う認識対応処理ステップと
を含む方法
を提供する。
：認識パターンの例は、たとえば「how old are you ?」であり、別のテキストとは「僕は$X歳; voice "$X years old"; 」である。
＞これにより、英語や日本語の方言で利用者音声を認識した場合でも、それらの文法や単語を深く分析することなく、日本語のテキスト（例えば、「僕は１０歳」という一行）から答えを構成する部分（この例では「１０」）を抽出して、「１０ years old」等と、利用者の使用している言語に沿った回答をすることが可能になる。
＞また、自由な言語テキストの認識ではなく、所定の認識パターンの集合としてを絞り込むことにより、音声認識の品質も向上し、特に所定の言語的性質（例えば、語彙（特に固有名詞が特定の範囲に絞られることが多い）や文法の偏り）をもった高齢者等の発言や思いについて、検索しやすいテキストとして（５Ｗ２Ｈと紐づけて）記録することや、それら（発言等）にほぼ実時間で対応することも容易となる。
＞また、工場の機械音やペットの鳴き声等を、認識パターンとして表現した場合には、工場の機械の稼働・状態の管理やペットの行動・感情の管理等にも用いることができる。この場合の認識パターンは、通常の自然言語でなくてもよく、各種の発音記号に類する音素記号や、所定のサンプリングレートにもとづきサンプリングした数値を並べたものでもよい。
また、請求項２の発明は、
前記別のテキストに記載された処理が、実時間で遠隔の特定の端末へ特定のメッセージを送信する処理である、
請求項１に記載の方法を提供する。
：特定のメッセージは、特定の主旨、書式又は種類であればよく、メッセージごとに変わる部分（メッセージＩＤ，メッセージの主旨に付記する内容、認識時刻、等）が存在してもよい。
＞これにより、コミュニケーションの目的を良心的／良識的／無難なもの等に制限する等したい場合におけるリアルタイムコミュニケーションシステムの構築が容易となる。また、高齢者等がすこしぐらい発声内容を省略したりしても、内容が記録されやすく、かつ、伝わりやすくなる。
また、請求項３の発明は、
前記テキストに記載された処理が、実時間で遠隔の特定の端末へ新しいメッセージを要求する処理である、
請求項１又は２に記載の方法を提供する。
：要求する「新しいメッセージ」には、その遠隔の特定の端末のＧＰＳで計測した位置その他の環境情報、その端末の利用者からの音声応答／選択肢応答／テキスト応答／画像応答、等が含まれる。
＞これにより、遠隔の特定の端末の環境（とその利用者）に関するリアルタイムの情報を、対応する認識パターンの発音により取得しやすくなり、利便性が著しく向上する。例えば、認識パターンの長さが極めて短く（発声が短くてよく））、他の認識パターンとの間の識別性が十分高く、かつ、対応する前記別のテキストの示す内容が新しいメッセージについてのきわめて複雑かつ具体的な条件を規定するものになる場合には、発声によって新しいメッセージを要求する側の発声あたりの通信効率・人的消費エネルギー効率のきわめて高い通信システムとすることができる。
また、請求項４の発明は、
前記テキストに記載された処理が、遠隔の特定の端末からの未受信のメッセージを受信する処理である
請求項１又は２に記載の方法を提供する。
：遠隔の特定の端末からの未受信のメッセージは、実質的に特定の利用者又はグループからの未受信メッセージであってよい。
＞これにより、その特定の端末や利用者（／グループ）から受信したいタイミングで、その旨を発声して認識パターンに認識させられば、即座に内容を受信して聞くことができるので、都合のよいタイミング（気分、ＴＰＯ、等）で、気軽に聞いて理解することが可能になる。
また、請求項５の発明は、
前記テキストに記載された処理が、遠隔のすべての端末からの未受信のメッセージを受信する処理である
請求項１又は２に記載の方法を提供する。
：遠隔のすべての端末からの未受信のメッセージは、それを受信する利用者が、いずれからのメッセージでもよいのでそのタイミングで受信して処理したい旨等をシステムに示すものである。
＞これにより、いずれからでも受信したいタイミングで、その旨を発声して認識パターンに認識させられば、即座に内容を受信して聞くことができるので、都合のよいタイミング（気分、ＴＰＯ、等）で、気軽に聞いて理解することが可能になる。
また、請求項６の発明は、
前記テキストに記載された処理が、特定の同一メッセージを、所定の周期で、繰り返し、特定の端末（一又は複数）に送信する処理である
請求項１又は２に記載の方法を提供する。
：「特定の同一メッセージを、所定の周期で、繰り返し、特定の端末（一又は複数）に送信する処理」の目的の例としては、すぐに話したい旨のメッセージ、助けを必要とするなどＳＯＳを示すメッセージ、仕事等が終わり次第会いたい旨のメッセージ、株相場の上昇を予想し続ける旨のメッセージ、天気が晴れていることを示し続けるメッセージ、元気であること／おなかがすいていること等を示し続けるメッセージ、等、いろいろな用途が可能である。
＞これにより、たとえば、その同一メッセージを終了する旨の認識パターンが発声されるまで、継続的な状態とその変化を相手に気軽に通信することが可能になる。
また、請求項７の発明は、
前記テキストに記載された処理が、特定のメッセージを、所定の周期の配信分として他のメッセージと一緒にため込むようにしながら、該所定の周期に特定（一又は複数）の端末に送信する処理である
請求項１又は２に記載の方法を提供する。
：「特定のメッセージを、所定の周期の配信分として他のメッセージと一緒にため込むようにしながら、該所定の周期に特定（一又は複数）の端末に送信する処理」の例としては、１分、３分、５分、１０分、１５分、２０分、３０分、４５分、６０分、２時間、３時間、４時間、６時間、８時間、１２時間、１８時間、２４時間毎などに、各利用者に対してその利用者宛のメッセージをまとめて配信する所定のサーバーに対して、なんらかの送信することが挙げられる。
＞これにより、一定の間隔でされる一括連絡（音声読み上げ）により、一定の間隔ならば作業をじゃまされてもよいと考える相手に対して、迷惑にならない態様で、連続してメッセージ（同一又は変更あり）を送り続けることが可能となる。
また、請求項８の発明は、
第一のコンピュータが、第二のコンピュータで認識（近傍の利用者の音声、タッチ選択、入力指定、等）させるための認識パターンと対応する第一のコンピュータへの送信メッセージに対応する情報とを第二のコンピュータに送信する自分宛送信定義ステップと、
第二のコンピュータが、第一のコンピュータへの送信メッセージを、自分宛送信定義ステップで送信された認識パターンと対応する送信メッセージに制限する制限ステップと
を含む方法を提供する。
：「自分宛送信定義ステップで送信された認識パターンと対応する送信メッセージに制限する」ことは、送信された認識パターンだけを（又は送信された認識パターンを優先して）音声認識するように、音声認識パターンのリスト（コマンドリストと呼ばれることもある）を設定することにより実現してもよい。
＞これにより、音声認識の認識パターンが絞られて音声認識品質を維持しやすくなり、選択肢の表示領域も節約することができ、ユーザーインターフェースの効率や品質が改善される。
また、請求項９の発明は、
第二のコンピュータにおいて、どの端末へ送信されるメッセージかを表示する
請求項８に記載の方法を提供する。
：どの端末へ送信されるメッセージかの表示は、直前に音声でおこなってもよく（この場合、事前定義された送信相手巡回リストを所定の周期で走査して順番のめぐってきた相手に（すなわち周期的に）送ることにしてもよく）、所定の画面位置への表示によりおこなってもよく、ダイアログボックス等の表示によりおこなってもよい。
＞これにより、送信側が用事を依頼したり相談する相手を間違えないようにすることができる。
また、請求項１０の発明は、
第二のコンピュータにおいて、どのような認識パターンを認識するかを表示する
請求項８又は９に記載の方法を提供する。
：「どのような認識パターンを認識するかの表示」は、漢字を含むひらがなカタカナテキストで行ってもよく、表音文字列の表示でおこなってもよく、アイコンや絵や動画で行ってもよく、音声自体（発声すべき音声の例を示すこと）でおこなってもよい。
：例えば、送信側遠隔端末が音声認識の対象とする認識パターンを、受信側遠隔端末が所定の集合（文脈上適切な集合）へと制限し、その旨を、音声認識する送信側端末に、受信者の識別情報等とともに、選択肢として表示できる。
＞これにより、受信側が対処できる問題・課題集合を送信側にリアルタイムに示すことができ、解決にむすびつきにくい無駄なコミュニケーションが抑制される。
＞例として、第一のコンピュータに「お父さん、今晩食べる？ :# HNanq_send(U0001001001,今晩，る：食べる／ない：食べない);」というルールが登録されている場合を考える。この例の場合、第一のコンピュータの主な利用者はそのコンピュータが居間においてある家の主婦であり、帰りが遅くなって外で食べてかえる夫の携帯端末に対して問い合わせを行うためのルールとなる。このルールが存在することにより、その主婦が「お父さん、今夜食べる？」と発声することにより、第一のコンピュータがその発声された認識パターンを音声認識し、ルールの区切り（及び種類）を示す「:#」の右辺のテキスト（上記「別のテキスト」にあたる）「HNanq_send(U0001001001,今晩，食べる：る／食べない：ない);」を実行することになる。この右辺のテキストの意味は、U0001001001で示す利用者がログインしている遠隔端末に「今夜  食べる：る  食べない：ない」を表示しかつ同内容を発声（音声合成）させ、その後に、その遠隔端末（第二のコンピュータ）の利用者（夫）からの「る」又は「ない」のみの発声を応答として音声認識し、主婦の利用する第二のコンピュータに、「る」／「ない」に対応する正式内容である「食べる」／「食べない」を送信させ、第二のコンピュータにU0001001001（夫）からの応答として「食べる」／「食べない」を表示させかつ発声（音声合成）させるという命令である。
また、請求項１１の発明は、
複数の送信メッセージ種類に対応する複数の認識パターン種類を第一又は第二のコンピュータで自動生成又は自動選択する請求項１から１０に記載の方法を提供する。
：第一のコンピュータで自動生成又は自動選択する場合とは、例えば、第二のコンピュータで利用者が選択して発声する内容に対応する認識パターン集合を第一のコンピュータの利用者の都合で指定するメッセージ集合（例えば、その中から一を選択した答えが欲しいと考えている）から第一のコンピュータが逆算して生成（又は所定の集合から自動選択）する場合である。
：第二のコンピュータで自動生成又は自動選択する場合とは、例えば、第二のコンピュータで利用者が選択して発声する内容に対応する認識パターン集合を第一のコンピュータの利用者の都合で指定するメッセージ集合（例えば、その中から一を選択した答えが欲しいと考えている）から第二のコンピュータが逆算して生成（又は所定の集合から自動選択）する場合である。この場合には、第一のコンピュータに相当する立場の他のコンピュータからのメッセージ集合も参照しながら、互いに混同しにくい認識パターン集合を生成／選択することができる。最も単純には、ひらがな一文字又は二文字全体の集合等から、異なる宛先への異なるメッセージに対応するものが互いに重ならないように認識パターン集合として割り当てることができる。
端末５が音声認識することになる、ある時点での＜（自動選択された）認識パターン＞＜宛先端末＞＜メッセージ内容＞組の例
＝＝＝
＜認識パターン＞＜宛先端末＞＜メッセージ内容＞
あ              端末１      「明日ひまなのでピクニックに行きましょう」
い              端末１      「明日仕事なのであそべません」
う              端末２      「体調いいです」
え              端末２      「体調いまいちです」
お              端末３      「金沢は快晴です」
か              端末３      「金沢は曇りです」
き              端末３      「金沢は雪です」
＝＝＝
＞これにより、利用者やシステム担当者による認識パターンの設定の手間を省力化し、より手軽なコミュニケーションが可能になる、
また、請求項１２の発明は、
第二のコンピュータにおいて複数の別のコンピュータからのメッセージを出力する場合に、
メッセージを出力するタイミングが重ならないように時間的な間をあけて出力すること、
その間において第二のコンピュータが音声認識した内容について直前に出力したメッセージを送信してきたコンピュータにのみ
送信すること、
を特徴とする、請求項１から１１のいずれか一項に記載の方法を提供する。
：「直前に出力したメッセージを送信してきたコンピュータにのみ送信」は、直前に出力したメッセージを送信してきたコンピュータのＩＰアドレスやＩＤなどを記憶しておくことによって容易に実現できる。
＞これにより、実質複数同時の通信相手とではあっても、一人ひとりの相手とのコミュニケーションがシリアライズされた形で、上記したきわめて便利な（文脈を情報取得希望者にとって効果的なものだけに制限できるなどする）コミュニケーションを提供することができる。
また、請求項１３の発明は、
コンピュータが、認識パターン（利用者がいうべきこと）と送る内容との対応を画面表示又は音声出力する
請求項１から１２のいずれか一項に記載の方法を提供する。
：これは、例えば、以下の内容を画面表示したり、音声出力することにより、利用者に伝えたい宛先とメッセージに対応する「あ」〜「き」の発声を促すものである。
＜認識パターン＞＜宛先端末＞＜メッセージ内容＞
あ              端末１      「明日ひまなのでピクニックに行きましょう」
い              端末１      「明日仕事なのであそべません」
う              端末２      「体調いいです」
え              端末２      「体調いまいちです」
お              端末３      「金沢は快晴です」
か              端末３      「金沢は曇りです」
き              端末３      「金沢は雪です」
＝＝＝
＞これにより、送りたい内容と発声する内容の対応を利用者に知らせやすくなり、すでに知っている場合にもまちがえにくくなる。また、送りたい内容と対応する発声すべき内容を大胆に設計／設定することが可能になる。発声すべき内容の自然な選択肢が複数あり、互いに類似する場合に、それらを互いに類似性の少ない発声内容となるように発声内容の集合を設計／設定することができる。
また、請求項１４の発明は、
認識パターン（いうべきこと）と対応する別のテキストの解釈が、自然言語に変数を埋め込むことを許したリテラルを用いた論理プログラムの実行を含む、
請求項１から１２のいずれか一項に記載の方法を提供する。
：「自然言語に変数を埋め込むことを許したリテラルを用いた論理プログラムの実行」とは、例えば、下で引用した特許文献１、６に記載されるような実行である。
＞これにより、知識や価値観等を考慮したきわめて高度なコミュニケーションを、音声認識と結びつけて行うことが可能になる。、
また、請求項１５の発明は、
請求項１から１４のいずれか一項に記載の方法を実施するためのコンピュータプログラムを提供する。
また、請求項１６の発明は、
請求項１から１４のいずれか一項に記載の方法を実施するための装置を提供する。
【図面の簡単な説明】
【０００６】
【図１】本発明の方法によるコミュニケーションの実施例（発信側コンピュータに登録されたルールと音声認識によるコミュニケーション開始の場面）を示す図である。
【図２】本発明の方法によるコミュニケーションの実施例（相手側コンピュータに返信の選択肢が示された場面）を示す図である。
【図３】本発明の方法によるコミュニケーションの実施例（相手が返信の意思選択を発声した場面）を示す図である。
【図４】本発明の方法によるコミュニケーションの実施例（返信の内容が元の発信側に伝わった場面）を示す図である。
【発明を実施するための形態】
【０００７】
下記に説明するいくつかの実施例は、同一発明者による以下の特許明細書（上記、特許文献１および６からの抜粋）の実施の形態に、本発明に特有の上記機能を追加で実装することにより実施できる。また以下の、特許文献１および６の引用は、本明細者の実施可能性面、進歩性面の補足目的も含んだものである。
＝＝＝ 
＜特許文献１の課題＞ 自然言語に変数を埋め込む形式で表現した知識をコンピュータでＰＲＯＬＯＧ同様に自動処理することを実現可能にし、述語論理レベルの網羅的な演繹や解探索（自動単一化処理、自動導出処理、そのための後ろ向き推論、バックトラック）を実現すること。
変数が格構造に縛られない利点を十分に生かし、処理を高速化し、証明や学習等のため結果を見やすく表示すること。
＜特許文献１の解決手段（概要）＞
人間が、ＰＲＯＬＯＧにおける「事実」、「ルール」又は「ゴール」の入力にあたり、ＰＲＯＬＯＧにおける「リテラル」にあたる内容の定数部分と変数部分とを文字種、デリミタ又はエスケープ文字により区別してコンピュータに入力し、
コンピュータが、文の主部、述部等の境界をまたがりうるものとして変数を取扱いながら、その入力に含まれる文の自動単一化処理、自動導出処理又はその両方を行う。
変数を含みうる文であるパターンと、変数を含まない文である定数文字列との単一化を、パターンに最初に出現する変数の最長一致解を求めて、該最長一致解の文字列を後ろから空文字になるまで削る過程を該パターンに代入してできる
各新たなパターンについて、該新たなパターンができる前提となった削る過程の解の各状態をそれぞれ記憶しながら、再帰的に同様に変数がなくなるまで繰り返し、変数がなくなったときに単一化した各途中の解の状態を結合して各単一化の答えを得る。
パターン中の固定文字列が最長一致解を削る過程の文字列に含まれるか等を検出して高速化する。
パターン対パターンの単一化は語頭や語尾の一致に着目して高速化する。全探索の具体的手法も提供する。
＜特許文献１の解決手段（全文、ただし一部本発明と混同しないように加筆・修正）＞
（０００９）
本発明は、かかる課題に鑑みてなされたものであり、特許文献１の請求項１は、
コンピュータが、論理型プログラミング言語ＰＲＯＬＯＧの機能の一部又は全部を自動的に行う方法であって、
人間が、ＰＲＯＬＯＧにおける「事実」、「ルール」又は「ゴール」の入力にあたり、ＰＲＯＬＯＧにおける「リテラル」にあたる内容（以降、「文」と呼ぶ）の定数部分と変数部分とを文字種、デリミタ又はエスケープ文字により区別してコンピュータに入力すること、
コンピュータが、文の主部、述部、主語、述語、目的語、補語、連用修飾語、連体修飾語又は文の境界をまたがりうるものとして変数を取扱いながら、上記「事実」、「ルール」又は「ゴール」の入力に含まれる文の自動単一化処理、自動導出処理又はその両方を行うこと、
を特徴とする処理方法を提供する。
ここで、「人間が、・・・定数部分と変数部分とを文字種、デリミタ又はエスケープ文字により区別してコンピュータに入力する」とは、人間が本発明によるアプリケーションソフト（処理系）の入力欄内やコマンドプロンプト後等に（フロントエンドプロセッサ等を介して又は介さずに）直接入力すること、インターネットブラウザや文章編集ソフト等からコピーペーストやカットペーストすること、別途入力して保存してあったテキストファイル等を読み込んだり、引用したり、参照したりすること等を含む。
また、「コンピュータが、文の主部、述部、主語、述語、目的語、補語、連用修飾語、連体修飾語又は文の境界をまたがりうるものとして変数を取扱い」とは、日本語等の助詞等や英語等の前置詞等を介した明示的な区切りのある格構造（構文解析結果や意味解析結果の階層構造に該当するものを含みうる）の境界（明示的な区切り）をまたがりうるだけでなく、英語等の例えばＳＶ形式・ＳＶＯ形式・ＳＶＯＯ形式・ＳＶＯＣ形式のＳとＶの境界、ＶとＯの境界、ＶとＣの境界等をまたがり得、重文や複文の文の境界等をもまたがり得るものとして取り扱うモードを含む（逆に、取り扱わないモードがあってもよい）。これらの場合、変数に入り得る解候補として、文全体や、文全体を構成する文字列から文としての文法構造による区切りの単位を無視して任意の部分文字列を抽出したもの、さらには階層的な参照構造をもつ複文・重文やもっと長い論文等の全体や、さらにそれらの任意の部分文字列が対象となる（なお、「文の境界」をもまたがりうるものとして取り扱う場合であって、知識源の集合を扱う（例えば、ファイルにまとめた知識源の集合を一括して読み込む、書き込む、参照する、等する）場合には、文の境界「以外」に知識源どうしの区切りが必要となるため、このような区切りとして、例えば、改行コードやタブコード等を用いることができる）。
これにより、自然言語に変数を埋め込む形式で表現した知識や情報も、普通の文章形式の知識や情報も、それらの間での現実的な相互活用の可能性が十分に開けた一元的な知識源として、両者を特に区別せずにコンピュータで自動処理することが可能になる（上記「困難性Ａ」の克服）。
「現実的」な相互作用の可能性が「十分」に開けるためには、コンピュータによる自動処理が検索処理系として備えるべき１）検索式（パターンを指定する表現）の簡便性、２）十分な適合率（解の正確性）、３）十分な再現率（解候補を抽出する上での網羅性）を備えていなければならないが、本発明では、文中の自由な（すなわち、文法や意味の区切りに制限されない）場所に変数（複数種類でもよく複数回でもよい）の埋め込みを許容し（簡便性を確保し）つつも、ＰＲＯＬＯＧの知識処理手順（と内在する知識解釈方針）に基本的に沿うことにより、他の処理系におけるようなハイブリッドな知識処理手順（と、そのハイブリッドな処理手順に対応する複雑な知識解釈方針）によって起こりうる適合率（解の正確性）低下のリスクを回避しつつ、「文の主部、述部、主語、述語、目的語、補語、連用修飾語、連体修飾語又は文の境界をまたがりうるものとして変数を取扱」うことにより、自然言語の区切り表現（読点、句読点、カッコ、コンマ、ピリオド、等）や修飾的なフレーズ（形容詞句、副詞句、必須でない格の表現、等）による指定パターンの泣き別れ出現が原因となる不当な不一致（正規表現的なアンマッチ）を防ぎ、格構造の明示されない表層的な文字列表現間（検索式と知識源の間）での一定の再現性（解候補を抽出する上での網羅性）を確保可能としている。また、知識源となった自然言語の正確な文脈（前後の文字列）を損ないにくい一体的・連続的な引用・抽出（変数への解候補としての）も可能となり、結局、その透明性・単純性により推論の実質的な健全性（根拠や推論経緯の正当性）の確認・検証が手軽かつ容易となり、根拠がいつも明確であるという現実的な安心感を利用者にもたらし、全体として、変数が格構造に縛られない（さらに、格構造のルール（出現順序等）について知らなくてもよく、引数の順番が間違っているかもしれないという不安もない）という仕様の利点を十分に生かしきることを可能にする。
なお、本発明は日本語（一文字の情報量が多く、単語の間にスペースがない）を第一の対象にしているため、文字を処理単位、区切りの単位としている内容が多いが、英語等（一文字の情報量が少なく、一文の文字数は多いが、単語の間にスペースのあるもの）は、スペースで区切った単語を単位として同様の処理をすることも可能である。
（００１０）
また、特許文献１の請求項２は、
前記自動単一化処理において、
変数を含みうる文であるパターン（定数部分と変数部分とを文字種、デリミタ又はエスケープ文字により区別したもの）と、変数を含まない文である定数文字列との単一化を、
パターン（例：＄Ｘと＄Ｙは＄Ｚが好き）に最初（又は最後）に出現する変数（例：＄Ｘ）の最長一致解（例：太郎と次郎）を求めて、該最長一致解の文字列を後ろ（又は前）から空文字になるまで削る過程（例：太郎と次郎＞太郎と次＞太郎と＞太郎＞太＞空）を該パターンに代入してできる各新たなパターン（例：「太郎と次郎と＄Ｙは＄Ｚが好き」＞「太郎と次と＄Ｙは＄Ｚが好き」＞「太郎とと＄Ｙは＄Ｚが好き」＞「太郎と＄Ｙは＄Ｚが好き」＞「太と＄Ｙは＄Ｚが好き」＞「と＄Ｙは＄Ｚが好き」）について、該新たなパターンができる前提となった削る過程の解の各状態（＄Ｘ＝太郎と次郎＞太郎と次＞太郎と＞太郎＞太＞空）をそれぞれ記憶しながら、
再帰的に同様に変数がなくなるまで繰り返し、
変数がなくなったときに単一化した各途中の解の状態（例：真（＄Ｘ＝太郎と次郎，＄Ｙ＝三郎），真（＄Ｘ＝太郎，＄Ｙ＝次郎と三郎））を結合して各単一化の答え（例：答え１＝（＄Ｘ＝太郎と次郎，＄Ｙ＝三郎），答え２＝（＄Ｘ＝太郎，＄Ｙ＝次郎と三郎）を得ることを特徴とする
特許文献１の請求項１に記載の処理方法を提供する。
ここで、「（又は最後）」は「（又は前）」に対応しており、最後に出現する変数から代入するときは、削り始めが前からとなる必要があることを意味する。
これにより、最長一致解から最短一致解に至るすべての可能性について確実に網羅した各解候補の状態を検証し、網羅的な答え（さらに絞りこまれた解候補の集合）を提供することが可能になる。
（００１１）
また、特許文献１の請求項３は、
空文字になるまで徐々に削るかわりに、別途求めた最短一致解までしか徐々に削らないことを特徴とする
特許文献１の請求項２に記載の処理方法を提供する。
これにより、最短一致解未満の長さから「空」文字までの解探索の計算を節約することができ、自動処理の高速化が可能となる場合がある。
（００１２）
また、特許文献１の請求項４は、
空文字になるまで徐々に削る際、
パターン中で該変数が最初（又は最後）に出現した直後（又は直前）の固定文字である１文字Ｃ（直後（又は直前）が別の変数でその解が空文字でないときは該別の変数に解候補として代入されている解候補の最初（又は最後）の１文字Ｃ）が該最長一致解に含まれる場合に、
該最長一致解の文字列の最後（又は最初）からそのＣに最初にあたるまでの部分文字列をそのＣを含め削ることを特徴とする
特許文献１の請求項２又は３に記載の処理方法を提供する。
ここで、「（又は最後）」は「（又は直前）」に対応しており、最後に出現する変数から代入するときは、削り始めが前からとなる必要があることを意味する。
これにより、変数の直後（又は直前）の固定文字にマッチしない解候補の列挙とその解候補を前提とした探索を節約することができ、自動処理の高速化が可能となる場合がある。
（００１３）
また、特許文献１の請求項５は、
前記自動単一化処理又は自動導出処理において、
前記「ゴール」（「サブゴール」を含む。以下同じ）となる束縛情報を求める際、
該「ゴール」を構成する各文について独立して束縛情報を求め
各束縛情報の積集合が空でない場合に戻り値真とその積集合を返す
特許文献１の請求項１から４のいずれか一項に記載の処理方法を提供する。
ここで、束縛情報とは、各変数に同時にそのような解候補を代入してみたか／すべきかということを示す情報である。各変数への一つの束縛の仕方を示す束縛情報は、「，」をＡＮＤ結合と解釈することにより、「変数名１＝値１，変数名２＝値２，・・・，変数名Ｎ＝値Ｎ」といったリスト形式で表現することができる一方、複数の束縛の仕方は、そのようなリストの集合として、あるいは、「，」ではなくＡＮＤ／ＯＲ結合を明示して複数束縛間の共通部分をくくりだした形や、複数束縛の全体を標準化した連言標準形や選言標準形で表現することができる。
これにより、同時に満たすべきパターン（文）が複数あり、パターン（文）間で同名の変数には同じ解が入るべきとする問題形式の場合（例えば、ユーザからのそのようなＡＮＤ結合問合せや、ルールのボディ部に複数の文がある場合）に、ルールのより右側のパターンについて、より左側のパターンの各単一化結果ごとに多大な全文探索処理を無駄に繰り返す可能性がすくなくなり、ボディ部をバックトラックしながら深さ優先探索する非効率（変数を自然言語に埋め込む形式においてより顕著な非効率）を回避し、同時に満たすべき各パターンごとの処理を単純化することができる。また、推論過程の表示や検証（完全性や健全性）をわかりやすく、容易にする。また、ルールの意味として必要な直観にとって余計であり定義されるべきでなかった順序性（ボディ部の文間の）が推論過程に副作用を与えることを防ぐことができる。
（００１４）
また、特許文献１の請求項６は、
前記自動単一化処理又は自動導出処理において、
前記「ゴール」となる束縛情報を求める際、
既存の束縛情報を最初に空とし、
「ゴール」が含む文集合を、既存の束縛情報の適用下で該一文が真となりうるかと該なりうるための追加の束縛情報について自動計算して該追加の束縛情報を該既存の束縛情報に加えながら該一文を除いて再帰的に小さくしていき、
真となりうるまま該文集合が空集合になったときの既存の束縛情報を「ゴール」となる束縛情報とする
特許文献１の請求項１から４のいずれか一項に記載の処理方法を提供する。
ここで、「再帰的に小さくしていき」とは、再帰が深くなるほど文集合が小さくかつ束縛情報が複雑になる（より多くの変数が束縛され、束縛する値の範囲がより絞られる）よう、例えば、Ｃ言語で再帰呼び出しをする処理や、独自に宣言し定義した深さ優先探索用のスタック構造（構造体の配列とスタックポインタ等）によって同等の再帰的処理を実現することをいう。
これにより、変数を自然言語に埋め込む形式で表現された、同時に満たすべき複数パターンのＡＮＤ結合からなるオープンクエスチョンを自動処理する問題を、より単純かつ再帰的な同一構造を持つ部分問題へとシンプルに変換し、推論過程の表示や検証（完全性や健全性の）を容易にする。
（００１５）
また、特許文献１の請求項７は、
前記自動単一化処理又は自動導出処理において、
変数を含まないパターンと変数を含まない事実との単一化を行う場合、
パターンと事実が文字列として一致する場合に真を返す、又は
パターンと事実が文字列として一致しない場合に偽を返す
特許文献１の請求項１から６のいずれか一項に記載の処理方法を提供する。
これにより、シンプルかつ迅速に探索を行うことができる。
なお、「変数を含まない事実」が句点等で区切られた複数の文を含む場合。「文字列としての一致」は、パターンの文字列が事実の文字列の部分に一致することであってもよいとするモードを設けることもできる。
これにより、同型の複数の情報を一つの事実にまとめて表現して探索の対象とすることができる。また、複数要素間のなんらかの順序性（例えば、大きさ、貴重さ、古さ・・・等）も表現しやすくなる。
（００１６）
また、特許文献１の請求項８は、
前記自動単一化処理又は自動導出処理において、
変数を含まないパターンとホーン節の変数を含まないヘッド部との単一化を行う場合、
パターンとヘッド部が文字列として一致する場合に、該ホーン節のボディ部をサブゴールとして特許文献１の請求項５又は６に記載の処理方法を適用した結果を返し、
一致しない場合に偽を返す
特許文献１の請求項１から７のいずれか一項に記載の処理方法を提供する。
これにより、変数を自然言語に埋め込む形式で表現するルールのヘッドが変数を含まない場合の健全な機械的解釈と、シームレスでわかりやすくかつシンプルで統一的な処理メカニズムと、対応する推論過程の説明を与えることができる。
（００１７）
また、特許文献１の請求項９は、
前記自動単一化処理又は自動導出処理において、
変数を含まないパターンと変数を含むヘッド部をもつホーン節との単一化を行う場合、
特許文献１の請求項２から４のいずれか一項に記載の処理方法における「定数文字列」として当該パ
ターンを用いかつ同処理方法における「パターン」として当該ヘッド部を用いて処理して求めた各束縛情報について、
当該ホーン節のボディ部に適用したものを特許文献１の請求項５又は６に記載の処理方法の「サブゴ
ール」として処理した結果が真となるものが存在すれば真を返す、又は
存在しなければ偽を返す
特許文献１の請求項１から８のいずれか一項に記載の処理方法を提供する。
これにより、変数を自然言語に埋め込む形式で表現するルールのヘッドが変数を含み、このルールを起動したパターンが変数を含まない場合に、ボディ部の変数の束縛範囲を事前に制限して、真偽判断の処理を高速化することができる。
また、健全な機械的解釈と、シームレスでわかりやすくかつシンプルで統一的な処理メカニズムと、対応する推論過程の説明を与えることができる。
（００１８）
また、特許文献１の請求項１０は、
前記自動単一化処理又は自動導出処理において、
変数を含むパターンと変数を含まない事実との単一化を行う場合、
特許文献１の請求項２から４のいずれか一項に記載の処理方法における「パターン」として当該パタ
ーンを用いかつ同処理方法における「定数文字列」として当該事実を用いて処理した結果を返す、
特許文献１の請求項１から９のいずれか一項に記載の処理方法を提供する。
これにより、パターンと（静的な）事実との間のすべての解候補（格変数への）が洗い出されて「結果」として返されるため、上記「困難性Ａ」克服のための基礎的な機構をシンプルに与えることができ、推論過程の可視化や検証だけでなくさらにはルールの修正等といったユーザーの手を介した学習をも容易にする。
（００１９）
また、特許文献１の請求項１１は、
前記自動単一化処理又は自動導出処理において、
変数を含むパターンと変数を含まないヘッド部をもつホーン節との単一化を行う場合、
特許文献１の請求項２から４のいずれか一項に記載の処理方法における「パターン」として当該パタ
ーンを用いかつ同処理方法における「定数文字列」として当該ヘッド部を用いて処理した結果を真とする束縛情報（Ｃ）が存在する場合で、かつ、当該ホーン節のボディ部を請求項５又は６に記載の処理方法の「サブゴール」として処理した結果が真の場合に当該束縛情報（Ｃ）とともに真を返す、
特許文献１の請求項１から１０のいずれか一項に記載の処理方法を提供する。
これにより、変数を含むパターンと（変数を含まない静的な）ヘッドとの間のすべての解候補（各変数への）が洗い出されて「結果」として返されるため、上記「困難性Ａ」克服のための基礎的な機構をシンプルに与えることができ、推論過程の可視化や検証だけでなくさらにはルールの修正等といったユーザーの手を介した学習をも容易にする。
また、より単純かつ再帰的な（または相互再帰的な）同一構造を持つ部分問題へとシンプルに変換し、推論過程の表示や検証（完全性や健全性の）を容易にする。
また、変数を自然言語に埋め込む形式で表現するルールのヘッドが変数を含まない場合の健全な機械的解釈と、シームレスでわかりやすくかつシンプルで統一的な処理メカニズムと、これらに該当する推論過程の説明を与えることができる。
（００２０）
また、特許文献１の請求項１２は、
前記自動単一化処理又は自動導出処理において、
変数を含むパターンと変数を含むヘッド部をもつホーン節との単一化を行う場合、
パターンとヘッド部の頭、尾又は両方に存在する文字数分の固定文字が一致していない場合に偽を返す、
特許文献１の請求項１から１１のいずれか一項に記載の処理方法を提供する。
これにより、一律の探索に比して、明らかに大幅な計算量節約と処理速度向上が図れる。
（００２１）
また、特許文献１の請求項１３は、
前記自動単一化処理又は自動導出処理において、
変数を含む第一のパターンと変数を含むヘッド部をもつホーン節との単一化を行う場合、
パターンとヘッド部の頭及び尾に存在する文字数分の固定文字が一致している場合、 
特許文献１の請求項５又は６に記載の処理方法における「サブゴール」として当該ホーン節のボディ
部を適用した結果が真となる各束縛情報により当該ホーン節のヘッド部を束縛して得られる各第二のパターンについて、
第二のパターンが変数を含まない場合に、
特許文献１の請求項２から４のいずれか一項に記載の処理方法における「パターン」として第一の
パターンを用いかつ同処理方法における「定数文字列」として第二のパターンを用いて処理した結果を返す、
請求項１から１２のいずれか一項に記載の処理方法を提供する。
ここで、「第二のパターンが変数を含まない場合」とは、ホーン節（ルール）において、ヘッド部に含まれるすべての変数がボディ部「にも」含まれており、ボディ部のすべての変数が定数（固定文字列）で束縛された結果としてヘッド部のすべての変数も定数（固定文字列）で束縛（代入）されたことによりヘッド部の変数が消えてヘッド部が定数文字列と見なせるようになったことをいう。
これにより、変数を含むパターンと変数を含むヘッド部をもつホーン節（ルール）との単一化をシンプルな計算モデルにより、ユーザーがトレースしやすい流れで機械的・自動的に行うことができる。
すなわち、変数を含むパターンと変数を（各束縛情報により）含まなくなった（＝定数文字列化した）ヘッド部との間のすべての解候補（パターンの各変数へ代入すべきもの）を洗い出して「結果」として返す形に、元々のより複雑な問題（変数対変数の単一化）を帰着（問題を変換）させることにより、上記「困難性Ａ」克服のための基礎的な機構をシンプルに与え、思考プロセスとしても表現しやすいものにできている。また、この「帰着（問題の変換）」に当たって、より単純かつ再帰的な（または相互再帰的な）同一構造を持つ部分問題へとシンプルに変換しているため、推論過程の可視化や検証（完全性や健全性の）だけでなくルールの修正等といったユーザーの手を介した学習をも容易にする。   結局、変数を自然言語に埋め込む形式で表現するルールのヘッドが変数を含む場合の健全な機械的解釈と、シームレスでわかりやすくかつシンプルで統一的な処理メカニズムと、これらに該当する推論過程の説明を容易に与えることができる。
（００２２）
また、特許文献１の請求項１４は、
変数を含む事実が入力されることをコンピュータが制限することを特徴とする
特許文献１の請求項１から１３のいずれか一項に記載の処理方法を提供する。
ここで、変数を含む事実（ルールでない知識源）とは、例えば、「＄Ｘは＄Ｘである。」（トートロジー的に恒真となる事実）や「＄Ｘは＄Ｙである。」（表層的な文型だけが合致していれば真となってしまう根拠のない事実）等がある。
これらがコンピュータに入力されることを制限することにより、パターン（変数を含みうる文）と事実（変数を含まない文（＝固定文字列））との自動単一化処理の計算が単純になり、自動処理による高速な回答が可能となる。また、根拠のない事実を知識源に混入しにくくする。
（００２３）
また、特許文献１の請求項１５は、
前記ルールがいわゆるホーン節と同様の形式であり、ヘッド部がボディ部に出現しない変数を含むことをコンピュータが制限することを特徴とする
特許文献１の請求項１から１４のいずれか一項に記載の処理方法を提供する。
ここで、「ヘッド部がボディ部に出現しない変数を含むことをコンピュータが制限する」とは、ヘッド部が「＄Ｘは素敵」であり、ボディ部が「＄Ｙは強い，＄Ｙは＄Ｚに優しい，＄Ｚは子供，＄Ｙは賢い」といったように、ボディ部のすべての文中の変数（この例では、＄Ｙと＄Ｚ）が束縛（代入）されても、ヘッド部の変数（この例では、＄Ｘ）が束縛されないまま残るようなルールが知識源として入力されたり、記憶されたり、起動されたりすることをコンピュータが制限することをいう。このようなルールは、事実の場合と同様に、ヘッド部に束縛されない変数を残すことにつながるため、健全でない推論結果を生み出しやすく、推論のスピードをも低下させる原因となる。
こうしたルールがコンピュータに入力されることを制限することにより、パターン（変数を含みうる文）とヘッド部（特許文献１の請求項１３により変数を含まない文（＝固定文字列）の集
合に帰着可能）との自動単一化処理の計算が単純になり、自動処理による高速な回答が可能となる。また、根拠のない推論結果を生み出しにくくする。
（００２４）
また、特許文献１の請求項１６は、
前記自動単一化処理又は自動導出処理において、
束縛されない変数が互いに残っているパターンとヘッド部又は事実との自動単一化処理を、
固定文字列として極小となる解の集合を求めて返すことにより行うことを特徴する、 特許文献１の請求項１から１３のいずれか一項に記載の処理方法を提供する。
ここで、「固定文字列として極小となる解の集合」の例としては、「＄Ａは＄Ｂ」と「＄Ｃも＄Ｄ」との間の自動単一化の結果として、｛（＄Ａ＝”も”、＄Ｂ＝＜空＞、＄Ｃ＝＜空＞、＄Ｄ＝”は”），（＄Ａ＝空、＄Ｂ＝”も”、＄Ｃ＝”は”、＄Ｄ＝空）｝という２つの解を提供することがある。
これにより、無限個の解が存在する場合にも解の例（特に最小のシンプルな例）を提供することが可能になる。
（００２５）
また、特許文献１の請求項１７は、
前記自動単一化処理又は自動導出処理において、
束縛されない変数が互いに残っているパターンとヘッド部又は事実との自動単一化処理を、
変数を含む文字列として極小となる解の集合を求めて返すことにより行うことを特徴する、
特許文献１の請求項１から１３のいずれか一項に記載の処理方法を提供する。
ここで、「固定文字列として極小となる解の集合」の例としては、「＄Ａは＄Ｂ」と「＄Ｃも＄Ｄ」との間の自動単一化の結果として、｛（＄Ａ＝”＄Ｃも”、＄Ｂ＝＜自由＞、＄Ｃ＝＜自由＞、＄Ｄ＝”は＄Ｂ”），（＄Ａ＝＜自由＞、＄Ｂ＝”も＄Ｄ”、＄Ｃ＝”＄Ａは”、＄Ｄ＝＜自由＞）｝という２つの解を提供すること等がある。変数を束縛する値（変数に代入される値）の文字列長（ただし、変数が含まれる場合は変数の出現あたり１文字と見なす）の合計（解組みを通じた）が極小となるものと考えることができる。
これにより、無限個の解が存在する場合にも解の一般形を提供することが可能になる。
（００２６）
また、特許文献１の請求項１８は、
束縛されない変数が互いに残っているパターンとヘッド部又は事実との各文字列の頭及び尾に共通して存在する文字数分の固定文字が一致していない場合、
偽を返すことを特徴とする、
特許文献１の請求項１６又は１７に記載の処理方法を提供する。
これにより、単一化の可能性のない自動探索を節約し、自動処理を高速化することができる。
（００２７）
また、特許文献１の請求項１９は、
前記固定文字列又は変数を含む文字列として極小となる解の集合を求める際、
束縛されない変数が互いに残っているパターンとヘッド部又は事実とからなる両文字列（第一の文字列と第二の文字列とする）に含まれる各変数が、各文字列内では共通に束縛され、文字列間では独立に束縛されるものとしながら（あるいは、同名変数を共通に束縛するスコープを各文字列内のみ（あるいは、文字列間は変数のスコープ外）としながら）、
各変数に相手の文字列（第一の文字列中の変数には第二の文字列、第二の文字列中の変数には第一の文字列）のあらゆる部分文字列（＜空＞及び文字列全体も含む）又は自分自身を代入してみて両文字列が一致する場合を探す全探索により極小となる解の集合を求めることを特徴する、
特許文献１の請求項１６又は１７に記載の処理方法を提供する。
「又は自分自身を・・・代入」とは、文字列中の「＄Ｘ」には「＄Ｘ」そのものを代入することをいい、たまたま第一の文字列にも第二の文字列にも＄Ｘ（互いのスコープは異なっている）が含まれるときは、第一の文字列の＄Ｘと第二の文字列の＄Ｘをあえて区別できるように（例えば、「＄Ｘ１」と「＄Ｘ２」、等として）代入することによっても明らかに健全な計算を行うことができる。
これにより、健全性と停止性（計算の有限性）を確保しながら解集合の一定の網羅性（問題（パターン対）の性質によっては完全性）を確保することができる。
（００２８）
また、特許文献１の請求項２０は、
束縛されない変数が互いに残っているパターンとヘッド部又は事実とからなる両文字列そのものではなく、
束縛されない変数が互いに残っているパターンとヘッド部又は事実との各文字列の頭及び尾に共通して存在する文字数分の固定文字を両者から除いて残る二つの文字列に相当する両文字列について、
特許文献１の請求項１９に記載の処理をする処理方法を提供する。
これにより、解集合の一定の網羅性（場合によっては完全性）を保ちながら全探索の空間を小さくでき、処理が高速化される。
例えば、「石川の＄Ａは＄Ｂが好き。」と「石川の＄Ｃも＄Ｄアイスが好き。」との間の自動単一化の過程として、そのまま解を探すのではなく、頭尾の共通部分を削除して   ”＄Ａは＄Ｂ”
と
”＄Ｃも＄Ｄアイス”
とした上で、全探索により「＄Ａ」と「＄Ｂ」それぞれに、”＄Ｃも＄Ｄアイス”の全ての部分文字列（これは、＄Ｃや＄Ｄといった変数（＄｛・・・｝形式の変数も同じ）は１文字とすると、６文字であるため、６×（６＋１）／２＋１（＜空＞分）＋１（自分自身を代入分）＝２３通りある）を代入しつつ、同様に、「＄Ｃ」と「＄Ｄ」それぞれに”＄Ａは＄Ｂ”の全ての部分文字列（これは、同様に３文字であるため、３×（３＋１）／２＋１＋１＝８通りある）を代入してみてできる全ての両文字列（２３×２３×８×８通り）について、両文字列が一致した場合（例えば、（
”もはアイス”，
”はもアイス”，
”＄Ａはもアイス”，
”＄Ｃもはアイス”，
”＄Ａはも＄Ｄアイス”
※ちなみに”＄Ｃもは＄Ｂアイス”は一致しない
）となった場合の代入組の集合｛
（＄Ａ＝”も”、＄Ｂ＝”アイス”、＄Ｃ＝＜空＞、＄Ｄ＝”は”），
（＄Ａ＝＜空＞，＄Ｂ＝”もアイス”，＄Ｃ＝”は”，＄Ｄ＝＜空＞），
（＄Ａ＝”＄Ａ”，＄Ｂ＝”もアイス”，＄Ｃ＝”＄Ａは”，＄Ｄ＝＜空＞），
（＄Ａ＝”＄Ｃも”，＄Ｂ＝”アイス”，＄Ｃ＝”＄Ｃ”，＄Ｄ＝”は”），
（＄Ａ＝”＄Ａ”，＄Ｂ＝”も＄Ｄアイス”，＄Ｃ＝”＄Ａは”，＄Ｄ＝”＄Ｄ”） ｝又は、各代入組の部分的代入の集合（例えば｛
（＄Ａ＝”も”、＄Ｂ＝”アイス”），
（＄Ａ＝＜空＞，＄Ｂ＝”もアイス”），
（＄Ａ＝”＄Ａ”，＄Ｂ＝”もアイス”），
（＄Ａ＝”＄Ｃも”，＄Ｂ＝”アイス”），
（＄Ａ＝”＄Ａ”，＄Ｂ＝”も＄Ｄアイス”）
｝）
を解として答えることができる。
なお、＄Ａ＝”＄Ａ”や＄Ｂ＝”も＄Ｄアイス”は、＄Ａや＄Ｄが自由であり、そこにどのような文字列を代入しても単一化できる（すなわち、無限の解があるということと、その無限個の解（文字列）の制約（正規表現的な形）のあり方）を示すことができる。   （００２９）
また、特許文献１の請求項２１は、
各変数に相手の文字列のあらゆる部分文字列（＜空＞及び文字列全体も含む）又は自分自身を代入してみて両文字列が一致する場合を探す全探索により極小となる解の集合を求める際、
変数に代入する部分文字列に変数が含まれる場合に、当該部分文字列に含まれる変数を両文字列にそれまで存在しなかった新しい変数で置き換えながら、該新しい変数に対しての同様の代入も以後再帰的に行いながら両文字列が一致する場合を探す全探索を行うことを特徴とする
特許文献１の請求項１９又は２０に記載の処理方法を提供する。
これにより、自文字列内の固定文字を相手文字列内の変数を介して反射的に自文字列内の変数に代入した解をも探す必要のある性格の問題（例えば、両文字列＝｛”＄Ｘは＄Ｘ”，”い＄Ｙう”｝の場合では、解候補として（＄Ｘ＝”いう”，＄Ｙ＝”うはい”）を列挙できなければならない）について、解探索の健全性を維持したまま、解候補列挙の網羅性をより高めることができる。上の例では、両文字列（「パターン対」とも呼ぶ）＝｛”＄Ｘは＄Ｘ”，”い＄Ｙう”｝から（＄Ｘ＝”いう”，＄Ｙ＝”うはい”）という解候補を列挙できることを、本発明により再帰的に（＄Ｘ＝”い＄｛Ｙ１｝う”）⇒（＄｛Ｙ１｝＝＜空＞）⇒（＄Ｙ＝”うはい”）という探索枝（探索木の一部であり、本発明に沿った幅優先探索の場合は有限回で生成可能である）を生成しうることによって、示すことができる。
「再帰的に・・・全探索」とは、例えば、各変数への各ありうる代入（前の特許文献１の請求項と同
じ）を再帰的に繰り返す幅優先探索をしながら一致する代入系列（例えば、上記の（＄Ｘ＝”い＄｛Ｙ１｝う”）⇒（＄｛Ｙ１｝＝＜空＞）⇒（＄Ｙ＝”うはい”）、等）を列挙することである。最初の代入のバリエーションは、両文字列中の変数の種類がそれぞれ２個と３個であり文字列の長さがそれぞれ６字と７字（変数はまとめて１字と数える）であれば、２個×（７×（７＋１）／２＋１＋１）＋３個×（６×（６＋１）／２＋１＋１）＝６０＋６９＝１２９通りとなる。これらの枝から派生するさらなる枝の最長深さが均等になるように幅優先探索を行う場合、代入回数等によるリミッター（上限値と比較するプログラムステップ等）を設けることにより、一回一回の探索を適当な計算量に制限することができる（再帰性によって保証されなくなった停止性や応答速度の確保）。なお、深さ優先探索とした場合にも、深さの制限や代入回数等によって計算量を制限することができる。いずれも自己再帰や相互再帰による無限ループを、再帰的な関数の呼び出しを管理するスタック構造（構造体の配列）等を設けて、先祖（より根方向）となる枝の呼出しパラメータ（その代入系列（代入文脈）に応じた両文字列の状態表現を含んでいてもよい）を現在の呼出しパラメータと比較したりすることにより回避することができる。また、両文字列の頭尾に存在する固定文字列が共通して存在する文字数分一致しているかどうかなどにより、単一化しえない枝の枝刈りを行うこともできる。なお、制限した計算量（例えば代入百万回や探索深さ２０以内）の探索により解が見つからなかった場合に「解なし（精度：代入百万回かつ探索深さ２０以内）」として、見つかった場合に、「（＄Ｘ＝”いう”，＄Ｙ＝”うはい”），（・・・），・・・（但し、精度：代入百万回かつ探索深さ２０以内）」等として探索精度を明示しながらユーザに答えることもできる。また、代入の制限回数以内かつ制限探索深さ以内で明らかに全探索できた場合（完全性のある場合）には、その旨を「解なし（全探索済）」あるいは「（＄Ｘ＝”いう”，＄Ｙ＝”うはい”），（・・・），・・・（全探索済）」等と明示して、ユーザに答えることもできる。
（００３０）
また、特許文献１の請求項２２は、
変数に代入した結果についても、各文字列の頭及び尾に共通して存在する文字数分の固定文字を両者から除いて残る二つの文字列を、
「相手の文字列のあらゆる部分文字列（＜空＞及び文字列全体も含む）」の対象となるの「相手の文字列」として、探索が進むごとに、文字列の頭又は尾に存在する固定文字数が少なくすることを特徴とする、
特許文献１の請求項１９〜２１のいずれか一項に記載の処理方法を提供する。
これにより、探索を進めるごとに（先の枝にいくほど）枝の個数が少なくなり計算量を節約することができる。
（００３１）
また、特許文献１の請求項２３は、
前記固定文字列又は変数を含む文字列として極小となる解の集合を求める際、
束縛されない変数が互いに残っているパターンとヘッド部又は事実とからなる両文字列（第一の文字列と第二の文字列とする）に含まれる各変数が、各文字列内では共通に束縛され、文字列間では独立に束縛されるものとしながら（あるいは、同名変数を共通に束縛するスコープを各文字列内のみ（あるいは、文字列間は変数のスコープ外）としながら）、
各変数に、固定文字列（空文字を含む）又は変数を含む文字列を再帰的に代入してみて解の集合を求める処理方法であって、
代入してみる変数を相手文字列の頭又は尾が固定文字である自文字列の対応する頭又は尾の変数に限定し、
代入値を、該頭である場合には該頭の固定文字もしくは固定文字列に続く新しい変数又は＜空＞とし、該尾である場合には新しい変数に続く該尾の固定文字もしくは固定文字列又は＜空＞とし、
変数に代入した結果について、各文字列の頭及び尾に共通して存在する文字数分の固定文字を両者から除くことを繰り返す、
ことを特徴とする特許文献１の請求項１６又は１７に記載の処理方法を提供する。
これにより、頭及び尾の固定文字の存在に着目して解の列挙範囲を（探索の網羅性を損なわずに）大幅に制限すること可能になり、大幅な計算量節約と高速化が可能になる。   （００３２）
また、特許文献１の請求項２４は、
前記固定文字列又は変数を含む文字列として極小となる解の集合を求める際、
束縛されない変数が互いに残っているパターンとヘッド部又は事実とからなる両文字列（第一の文字列と第二の文字列とする）に含まれる各変数が、各文字列内では共通に束縛され、文字列間では独立に束縛されるものとしながら（あるいは、同名変数を共通に束縛するスコープを各文字列内のみ（あるいは、文字列間は変数のスコープ外）としながら）、
各変数に、固定文字列（空文字を含む）を再帰的に代入してみて解の集合を求める処理方法であって、
各文字列の頭及び尾に存在する文字数分の共通する固定文字を除いてできる両文字列中の固定文字種（変数の識別子やデリミタを除いた文字種）だけを用いてできる束縛情報を、束縛する値の文字列長の合計が小さいものから順に列挙していくことにより求める、   特許文献１の請求項１６又は１７に記載の処理方法を提供する。
これにより、一定の性質をもった問題については、効率よく解に到達し、列挙することもできる。
（００３３）
また、特許文献１の請求項２５は、
求めた「変数を含む文字列として極小となる解の集合」をもとに、
当該ホーン節の変数を当該変数を含む文字列で一時的に書き換えてできるホーン節により探索を継続する特許文献１の請求項１９〜２４に記載の処理方法を提供する。
これにより、パターンとホーン節（ルール）のヘッド部とが単一化するために必要であることが計算された制約（上記の例では、変数「＄Ｃ」が”＄Ａは”という形の文字列で束縛（代入）されることでしか単一化しえないという制約の働くような単一化方針（例えば、上記最後の代入組の場合）もある）を、そのホーン節のボディ部の探索プロセスに伝播することができ、探索を効率化することができる。
（００３４）
また、特許文献１の請求項２６は、
求めた「変数を含む文字列として極小となる解の集合」をもとに、
「変数を含む文字列」の変数部分に、当該「変数を含む事実」の解組の集合としてあらかじめ定義された固定文字列組の集合の各要素を代入してできる固定文字列組の集合を返す、
特許文献１の請求項１９〜２５のいずれか一項に記載の処理方法を提供する。
これにより、変数（一個又は複数）を含む事実とその変数に埋めうる適切な答え（又は仮説）の集合とをひもづけたデータベース（例えば、「言葉方程式（登録商標）」「ＶＬＡＮＫ（登録商標）」中の知識源）と効率的に連携した解探索を行うことができる。また、似た文型をもつ大量の事実を、本発明の枠組みと連携させて効率的に管理することができる。
（００３５）
また、特許文献１の請求項２７は、
前記自動単一化処理又は自動導出処理において、
変数を含む第一のパターンと変数を含む第二のパターンとの自動単一化を行う場合、 
両パターンの頭及び尾に存在する文字数分の固定文字が一致しており、かつ、同じ変数が各パターン内で一度しか出現しない場合、
無限個の解の存在を意味する情報を返す、
特許文献１の請求項１から２６のいずれか一項に記載の処理方法を提供する。
（００３６）
また、特許文献１の請求項２８は、
特許文献１の請求項１から２７のいずれか一項の方法を実行するための装置を提供する。
（００３７）
また、特許文献１の請求項２９は、
特許文献１の請求項１から２７のいずれか一項の方法をコンピュータに実行させるためのコンピュー
タプログラムを提供する。
（特許文献１の発明の効果）
（００３８）
本発明の効果は、各特許文献１の請求項について上述したとおりである。
（特許文献１の図面の簡単な説明）
（００３９）
（図１）図１は本発明を最も効果的に実施するネットワークシステムの全体図である
。（実施例１）
（図２）図２は本発明を実施するコンピュータのハードウエア構成を示した説明図で
ある。（実施例１）
（図３）図３は本発明を実施する端末における画面表示の例を示した説明図である。
（実施例１）
（特許文献１の発明を実施するための形態）
（００４０）
本発明は、ネットワークに接続された／接続されてないあらゆる種類のコンピュータ（クラウドサーバー、大型汎用機、デスクトップＰＣ、ノートＰＣ、携帯端末、本発明専用機）において実施することができるが、一般的なマルチタスク機能とウィンドウ機能をもちインターネットに接続されたＰＣにより実現した形態により説明する。
図１は本発明を最も効果的に実施するそのネットワークシステムの全体図であり、コンテンツ管理装置１は、利用者ＰＣ２又は利用者兼管理者ＰＣ２により、本発明で取り扱うコンテンツ（ルールや事実）の投稿を受け付け、所定のポリシーによって共有アクセス権やコンテンツ提供優先順位を制御しながらコンテンツを配信する公知のファイル共有サーバーでよい。利用者ＰＣ２は、その利用者ごとに、その信じる内容（や検討したい内容）を自然言語で表現したコンテンツ（ルールや事実）を本発明の方法に沿って入力して記憶し本発明の方法によって処理するコンピュータ、携帯端末等である。
図２は本発明で用いるコンピュータのハードウエア構成を示した説明図である。これは計算機の構成としては一般的なものであり、本発明の特徴は、不揮発性メモリ２ｈに記憶されたプログラム３及びコンテンツデータ４の指示や記載に従い自然法則を用いてＣＰＵ２ｅで処理される処理の内容、及び、利用者との対話プロトコル（書式）の在り方にある。
図３は本発明を実施する端末における画面表示の例を示した説明図である。図では「？＄Ａしない」という問い（オープンクエスチョン形式）に対して、図示しない記憶したリストＬの１行目の「されていやなことはなるべくしない」という事実を用いて「＄Ａ  ＝
されて嫌なことをなるべく／１／」という答えを列挙し、同様にリストＬの９行目の「いじめをしない」という事実を用いて「＄Ａ  ＝  いじめ／９／」と答えている。
（００４１）
このような実施形態においては、Ｃ＋＋言語等を介して製造されたコンピュータプログラムにより、コンピュータ（ＰＣ等）に可能なあらゆる動作を実施させることができる。したがって、自然法則を用いたコンピュータの公知の基本的な動作（レジスタやメモリやストレージへの記憶・取り出し、四則演算、比較、等）や既に開発環境等の標準ライブラリとなっている一般的な機能（変数やＮ次元配列への代入・比較・コピー、文字列や数値の操作／比較／表示、リスト構造・キュー構造・ハッシュ構造・ベクトル型等の操作、バイナリ―サーチやソート操作、正規表現によるパターンマッチ操作、ネットワーク通信操作、等）の実現方法については、本発明の本質（新規性や進歩性につながる独自の構成）とも異なり、当業者にもよく知られているので、詳述はしない。一方、このような一般的な機能を組み合わせて、本発明に固有の処理をどのような操作順序や記憶の仕方（アルゴリズムやデータ構造）で実現するかについては、以下に詳述する。このアルゴリズム等の説明、上記した課題解決手段の説明及び本発明の図面の説明を提供して開発の参考とさせることにより、標準レベルの職業的プログラマであれば、標準的なアプリケーションプログラム開発技法（Ｃ＋＋によるＧＵＩアプリケーション統合開発環境、等）を用いて、本発明の方法をコンピュータに実施させることが明らかに可能となり、また、この方法のための装置やプログラムを作成することも可能となる。
（００４２）
以下に示すアルゴリズムは、Ｃ言語／Ｃ＋＋言語等を用いて所望の「関数」を新たに定義した上で関数呼出しを行うという標準的な構造化プログラミングをベースにしたアルゴリズムであり、当業者は、下記各関数の機能分担に応じた入出力や機能切り分けを行いながら（或いは、下記に示した仕様に沿って関数群をそのままコーディングすることにより）、本発明の解決手段に相当する処理手段（プログラムや計算機）を実現することが可能となる。
（００４３）
■問い合わせＰに対する知識リストＬの処理アルゴリズム仕様
=====================================================================================================================
関数Ｑ１（Ｐ：変数を含みうるパターン，Ｌ：知識リスト）：★特許文献１の請求項に共通するメイン関数の特許文献１の実施例１★
｛
１．Ｌの最初の行の内容Ｂ（事実又はホーン節）を取り出す。
ただし、Ｌが空の場合（最初の行が取り出せなかった場合）、偽を出力して終了。
２．変数の束縛情報Ｃの初期値を空とし、下記関数Ｈ（Ｐ，Ｂ，Ｃ）を呼出し、真となる（＝マッチする）束縛情報（＝解集合）Ｃを出力。
真（＝マッチした）の場合
真（はい）を出力する（マッチした内容Ｂの行番号も添えて出力する）。
偽の場合
何もしない。
３．Ｌの次の行の内容Ｂ’が
ある場合
・Ｂ←Ｂ’とし、２に移動する。
ない場合
・２で真を一度も出力していない場合は偽（いいえ）を出力。
・終了。
｝
（００４４）
■問い合わせＰに対する知識リストＬの処理アルゴリズム仕様（事前固定文字列化版） =====================================================================================================================
関数Ｑ２（Ｐ：変数を含みうるパターン，Ｌ：知識リスト）：★特許文献１の請求項に共通するメイン関数の実施例２（事前固定文字列化版）★
｛
（事前の固定文字列化）
１．｛Ｌのみから演繹できるすべての文字列／その各文字列を演繹する根拠として用いたＬの行番集合｝を各行とする固定文字列テキストＴを求める。
具体的には、上記関数Ｑ１（”＄Ａ”，Ｌ）の出力系列（Ａ＝解１／根拠１，Ａ＝解２／根拠２，・・・）の要素を各行としてマージしたテキストＴを求める。
求める途中で無限ループになる場合について、明示的な呼出管理スタック等を用いた無限ループ検出機能により演繹を部分的に省略する。
・例えば、ホーン節の真偽の確認をある変数束縛条件下でコンピュータが行う途中で
同じホーン節の真偽を同じ変数束縛条件下で確認しようとしていないかを、
構造体（確認中のホーン節識別子，現在の変数束縛条件）をメンバーとする呼出管理スタックを管理し、
呼出し時にスタックの根に向かって同じ組み合わせがないかリニアサーチすることにより
無限ループを検出する。 
（固定文字列のみである故にＱ１よりシンプルな方法（関数Ｆ）で解集合を求める） 
２．テキストＴの各行ｔにつき、下記関数Ｆ（Ｐ，ｔ，Ｃ）が真となるＣをすべて出力する。
（最終結果の出力）
３．Ｃが一つでもあれば真を出力し、なければ偽を出力する。
｝
（００４５）
■問い合わせＰに対する、一の事実（固定文字列）又はホーン節Ｂ（但し、ヘッドに含まれるすべての変数がボディにも存在）の処理アルゴリズム仕様
=====================================================================================================================
関数Ｈ（Ｐ：変数を含みうるパターン，Ｂ：一の事実（固定文字列）又はホーン節，Ｃ：変数の束縛情報）：★特許文献１の請求項１〜１５の発明で使用する関数の特許文献１の実施例１−１★
｛
Ｐが変数を含まない場合｛
Ｂが事実である場合｛
Ｐ＝Ｂの場合は、真を返す。
そうでない場合は偽を返す。 
｝
Ｂがホーン節である場合｛
Ｂのヘッド部が変数を含まない場合｛
Ｐ＝Ｂのヘッド部の場合は、関数Ｄ（Ｂのボディ部，Ｅ）の真偽を返す。
そうでない場合は偽を返す。
｝
Ｂのヘッド部が変数を含む場合｛
Ｆ（Ｂのヘッド部，Ｐ，Ｃ１）を真とする各Ｃ１について、
関数Ｄ（Ｂのボディ部にＣ１を適用したもの，Ｅ）の結果が真となるＣ１があれば、 真を返す。
そうでない場合は偽を返す。
｝
｝
｝
Ｐが変数を含む場合｛
Ｂが事実である場合｛
Ｆ（Ｐ，Ｂ，Ｃ１）が真となるＣ１が存在すれば、そのようなすべてのＣ１をＣに加えて真を返す。
そのようなＣ１が存在しなければ、偽を返す。
｝
Ｂがホーン節である場合｛
Ｂのヘッド部が変数を含まない場合｛
Ｆ（Ｐ，Ｂのヘッド部，Ｃ１）を真とするＣ１が存在する場合で、かつ
関数Ｄ（Ｂのボディ部，Ｅ）が真であれば、そのようなすべてのＣ１をＣに加えて真を返す。
そうでない場合は偽を返す。 
｝
Ｂのヘッド部が変数を含む場合｛
★特許文献１の請求項１２の発明を実施する場合★
／／高速化の工夫（オプション）開始
ＰとＢのヘッド部の頭及び尾に存在する文字数分の固定文字が一致していない場合｛ 
偽を返す。
｝
／／高速化の工夫（オプション）終了
★特許文献１の請求項１３の発明の実施★
ＰとＢのヘッド部の頭及び尾に存在する文字数分の固定文字が一致している場合｛
関数Ｄ（Ｂのボディ部，Ｅ）の結果が真となるＥ中のいずれかの束縛情報Ｇについて、 関数Ｆ（Ｐ，Ｂのヘッド部をＧで束縛したもの（固定文字列になるはず），Ｃ１）を真とするＣ１があれば
そのようなすべてのＣ１をＣに加えて真を返す。
そのようなＣ１が存在しない場合は偽を返す。 
｝
｝
｝
｝
｝
（００４６）
■ホーン節のボディ部（又は変数を共有する重文の問い合わせ）の解集合の列挙アルゴリズム仕様
=====================================================================================================================
呼出例
→関数Ｄ（"$Aと$Bは友達だ,$Aは人間,$Bは人間", Ｅ);
戻り例
←真（Ｅ＝（（A=花子，B=太郎），（A=太郎，B=次郎），（A=次郎，B=三郎）））
=====================================================================================================================
関数Ｄ（Ｊ：ボディ部（又は変数を共有する重文の問い合わせ），Ｅ：解集合）：★特許文献１の請求項６の発明で使用する関数の特許文献１の実施例１−２Ａ★
※ただし、知識源全体Ｌはグローバル変数に格納して参照可能とする
｛
１．Ｊ中の最初の文Ｍを取り出す。最初の文が存在しない場合真を返す。
２．知識源全体Ｌに対して、前記関数Ｑ１（Ｍ，Ｌ）又はＱ２（Ｍ，Ｌ）を呼び出す。 
結果が偽のときは
偽を返す。
真のとき
Ｍが変数を含まない場合
何もしない。
Ｍが変数を含む場合
Ｍを真とするためにとりうる束縛情報の集合Ｃを記憶する。
※真とするために束縛不要の変数は、その旨を明示的に示すこともできる。
※束縛値が無限集合でありながら真とするために一定の条件を要求する場合は、その条件を付記することもできる。
３．Ｊ中の次の文Ｍ’を取り出す。存在しない場合、真（Ｅ＝束縛情報の集合Ｃ）を返す。
４．知識源全体Ｌに対して、前記関数Ｑ１（Ｍ’，Ｌ）又はＱ２（Ｍ’，Ｌ）を呼び出す。
結果が偽のときは
偽を返す。
真のとき
Ｍ’が変数を含まない場合
何もしない。
Ｍ’が変数を含む場合
Ｍ’を真とするためにとりうる束縛情報の集合Ｃ’と記憶してあった集合Ｃとの積集合を新たなＣとする。
但し、元々の集合Ｃが空集合でなく積集合をとって空集合となったときは偽を返す。 
※真とするために束縛不要の変数は、その旨を明示的に示すこともできる。
※束縛値が無限集合でありながら真とするために一定の条件を要求する場合は、その条件を付記することもできる。
５．３に戻る。
｝
関数Ｄ２（Ｊ：ボディ部（又は変数を共有する重文の問い合わせ），Ｅ：解集合）：★特許文献１の請求項６の発明で使用する関数の特許文献１の別の実施例１−２Ｂ（関数の再帰呼び出しを用い束縛情報を他の文に波及させることにより高速化を図ったもの）★
｛
１．Ｊ中の最初の文Ｍを取り出す。Ｍが存在しない場合真を返す。
２．知識源全体Ｌに対して、Ｑ１（Ｍ，Ｌ）又はＱ２（Ｍ，Ｌ）を呼び出す。
結果が偽のときは
偽を返す。
真のとき
Ｍが変数を含まない場合
Ｊの次の文がなければ真を返し
あれば次の文を新たなＭとし２に戻る。
Ｍが変数を含む場合
Ｊの次の文がなければ、とりうる束縛情報をＥに格納して真を返し
あればとりうる束縛情報を集合Ｃとして記憶する。
３．Ｅを空にし、集合Ｃ中の各束縛情報Ｋについて
再帰呼び出しＤ２（ＫによりＪの次の文以降を束縛してできるボディ部Ｊ’，Ｅ’）を実行する
結果が真のときは
Ｅに、真となったそのＫかつＥ’を加える
４．各Ｋについて一度も真となっていないときは偽を返し、一度でも真となっているときは真（Ｅ）を返す
｝
関数Ｄ３（Ｊ：ボディ部（又は変数を共有する重文の問い合わせ），Ｅ：解集合）：★特許文献１の請求項５の発明で使用する関数の特許文献１の実施例１−３★
｛
１．Ｊ中の最初の文Ｍ１を取り出す。最初の文が存在しない場合真を返す。
２．知識源全体Ｌに対して、Ｑ１（Ｍ１，Ｌ）又はＱ２（Ｍ１，Ｌ）を呼び出す。
結果が偽のときは
偽を返す。
真のとき
Ｍ１が変数を含まない場合
何もしない。
Ｍ１が変数を含む場合
とりうる束縛情報の集合Ｃ１を記憶する。
３．同様に、偽とならないうちはＭ２，Ｍ３・・・についてＣ２，Ｃ３・・・を求めていく。
偽となった場合は偽を返す。
４．残ったＣ１，Ｃ２，Ｃ３・・・Ｃｎについて積集合Ｃを求めて、真（Ｃ）を返す。
｝
（００４７）
■問い合わせＰに対する事実Ｓの多長一致解（複数も可）の列挙アルゴリズム仕様
=====================================================================================================================
呼出例
→関数Ｆ（"$Aと$Bは友達だ","太郎と次郎と三郎は友達だ", "");
関数Ｆ（Ｐ：変数を含みうるパターン，Ｓ：定数文字列，Ｃ：変数の束縛情報）：★特許文献１の請求項２の発明（ただし、「（又は最後）」と「又は前」を省いた実現例）で使用する関数の特許文献１の実施例１−４Ａ★
｛
（準備）
１．Ｐ中の変数の種類数Ｖと、出現する変数の名前Ｎ１，Ｎ２，・・・を出現順に求める
（Ｐがもともと変数を含まない場合への対応）
２．Ｖが０のときは、
⇒  Ｐ＝Ｓのとき、真を返して終了。
⇒  Ｐ≠Ｓのとき、偽を返して終了。
（出力）
３．Ｖが１のときは、Ｎ１がＰ中に何回出現しようとも、ＰとＳの単一化の解Ｒ１は１つしかないので、
⇒  マッチする場合、その唯一の解を「ＣかつＮ１＝Ｒ１」として出力して、真を返して終了。
⇒  マッチしない場合、偽を返して終了。
※単一化そのものは、正規表現とのマッチ（同じ変数が二度以上出現する場合は後置参照あり）として実施可能
４．Ｖが２以上のとき
変数Ｎ１についての最長一致解Ｒ１で、Ｐ中の全てのＮ１を埋めてできるＰ’について 再帰呼び出しＦ（Ｐ’，Ｓ，ＣかつＮ１＝Ｒ１）を実行
⇒  Ｎ１について最長一致解とした解集合が出力される
５．Ｒ１’←Ｒ１の最後の１文字を除いた文字列とし
Ｐ中の全てのＮ１をＲ１’で埋めてできるＰ’’について
再帰呼び出しＦ（Ｐ’’，Ｓ，ＣかつＮ１＝Ｒ１’）を実行
⇒  Ｎ１について、最長一致解より１文字除いた解候補Ｒ１’とした解集合が出力される
６．Ｒ１’が
１文字以上の場合、（★特許文献１の請求項３では最短一致解の文字数より大きい場合）
⇒Ｒ１←Ｒ１’として５に戻る。
０文字の場合、（★特許文献１の請求項３では最短一致解の文字数である場合）
終了。       
｝
（００４８）
関数Ｆ（Ｐ：変数を含みうるパターン，Ｓ：定数文字列，Ｃ：変数の束縛情報）：★請求項４の発明で使用する関数の実施例１−４Ｂ★
//Ｐ中で変数が最初に出現した直後の固定文字列の最初の文字Ｃに着目して高速化の工夫その１をした関数Ｆ
｛
（準備）
１．Ｐ中の変数の種類数Ｖと、出現する変数の名前Ｎ１，Ｎ２，・・・を出現順に求める
（Ｐがもともと変数を含まない場合への対応）
２．Ｖが０のときは、
⇒  Ｐ＝Ｓのとき、真を返して終了。
⇒  Ｐ≠Ｓのとき、偽を返して終了。
（出力）
３．Ｖが１のときは、Ｎ１がＰ中に何回出現しようとも、ＰとＳの単一化の解Ｒ１は１つしかないので、
⇒  マッチする場合、その唯一の解を「ＣかつＮ１＝Ｒ１」として出力して、ＴＲＵＥを返して終了。
⇒  マッチしない場合、偽を返して終了。
４．（高速化の工夫その２。この処理は５以降でカバーされるため省いてもよい。★この工夫２は、特許文献１の請求項にはしていない★）
Ｖが２以上のときで、
すべての変数（Ｎ１（＝Ｎ），Ｎ２，・・・）について最長一致モードでマッチしてみた解と
すべての変数（Ｎ１（＝Ｎ），Ｎ２，・・・）について最短一致モードでマッチしてみた解と
が同一（Ｎ１＝Ｒ１，Ｎ２＝Ｒ２，・・・）のとき
⇒  その唯一の解を「ＣかつＮ１＝Ｒ１かつＮ２＝Ｒ２かつ・・・」として出力して終了する
そもそもマッチしなかった場合、
⇒  偽を返して終了。
同一でないとき
⇒  ５に続く
５．Ｖが２以上のとき
変数Ｎ１についての最長一致解Ｒ１で、Ｐ中の全てのＮ１を埋めてできるＰ’について 再帰呼び出しＦ（Ｐ’，Ｓ，ＣかつＮ１＝Ｒ１）を実行
⇒  Ｎ１について最長一致解とした解集合が出力される
６．Ｐ中で変数Ｎ１の後すぐに変数Ｎ１（自分自身）が続くとき
⇒  ７以降で処理する
別の変数Ｎ２が続くとき
⇒  ７以降で処理する（ただし、７で１文字ＣはＮ２の解Ｒ２の最初の１文字とする）
固定文字が続くとき
⇒  ７以降で処理する
７．Ｐ中で変数Ｎ１が最初に出現した直後の固定文字である１文字Ｃ（直後が別の変数Ｎ２であるときはＲ２の最初の１文字Ｃ）が、
最長一致解Ｒ１に含まれる場合
⇒  １）Ｒ１’←Ｒ１の文字列の最後からそのＣにあたるまでの部分文字列を削除した文字列
⇒  ２）Ｐ’’←Ｒ１’でＰ中のすべてのＮを埋めてできるパターン
⇒  ３）再帰呼び出しＦ（Ｐ’’，Ｓ，ＣかつＮ１＝Ｒ１’）を実行
⇒Ｎ１について一段階だけ短めの解が存在すれば出力できるはず
最長一致解Ｒ１に含まれない場合
⇒  Ｎ１についてはより短い解の列挙が終わったので、終了。
８．Ｒ１←Ｒ１’として７に戻る。
｝
=====================================================================================================================
以上が、特許文献１（特願２０１４−０８７００８）からの抜粋である。
【０００８】
以下は、特許文献６（特願２０１６−１９６０６９）からの要約抜粋である。
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
特許文献６は、請求項１として、
テキスト読み上げ機能を有するコンピュータプログラムであって、
該コンピュータプログラムからアクセス可能なテキスト（文字列の集合。文字列間の順序性を問うものでもよく問わないものでもよい）と、
変数を含んだ文字列をリテラルとして許容しかつリテラルを真とするように変数を埋める文字列を答えとする質問文を含む論理式とから、
該論理式に応じた該質問文の答えとなる文字列を抽出又は合成して読み上げることを特徴とする
コンピュータプログラム、を提供する。
：ここで、「アクセス可能なテキスト」は、たとえば、自然言語で記述された事実の集合、及び、リテラルとして自然言語に変数を埋め込める形式を用いたＰＲＯＬＯＧのホーン節であるルール（推論規則）の集合であり、ルール（推論規則）を含んでいてもよく、含んでいなくてもよい。
：「変数を埋める文字列を答えとする質問文を含む論理式」は、そのような質問文以外の事実やルール（推論規則）を含んでいてもよく、含んでいなくてもよい。正規表現またはそのサブセットと等価なものさらにそれらを拡張したものであってもよい。
：「ルール（推論規則）」は、プロダクションルール、項書き換え規則、ＰＲＯＬＯＧのホーン節、等であってもよく、さらに、これらを文字列に変数を埋め込んだリテラルを許す形式に拡張したものであってよい。
＞これにより、自然言語テキストだけのときや、論理式だけのときよりも、論理の表現と（読み上げ機能のための）音声合成のための表層的自然言語表現とが一体となったテキスト形式の知識表現として、一元的に管理することができるようになり、知識の追加、編集、削除等が、一般的な論理型（宣言型）／手続型プログラミング言語（ＰＲＯＬＯＧ、ＡＷＫ、ＳＱＬ、ＰＥＲＬ、ＰＨＰ、Ｃ＋＋、ＪＡＶＡ（登録商標）、等）を知らない小学生でも気軽に実施可能となる。
＞また、変数を埋める文字列を答えとする質問文を含む論理式を用いることから、各答えを含む各文章全体や各文全体でなく、各答えのポイントとなる文字列のみ（共通部分が多い文字列の相違部分のみ）を、動的に（すなわち質問文の異なりに応じて）要領よく（退屈／冗長とならないように）抽出・合成して読み上げることが可能となる。
（０００６）
特許文献６は、請求項２として、
前記アクセス可能なテキストが推論規則を含んでいる
請求項１に記載のコンピュータプログラムを提供する。
：ここで、「推論規則」は、例えば、ＰＲＯＬＯＧのホーン節のリテラルとして、文字列に変数を含んだ形式を許し、「ご近所は＄Ｘ:-req "http://hoge.net/JP/ISHIKAWA/KOMATSU/BIRUGAWA.jpl"; ＄Ｘ;」等とすることができる。この意味は、「インターネットの所定ＵＲＬ（この例では、地域を階層的にフォルダ管理しているサイト）からBIRUGAWA.jplファイルを取得し、その各行を”ご近所は”に連接することにより得られる文字列の全体を真とする」である。
＞これにより、遠隔で更新されるインターネット上のローカルニュースのうち関心のあるファイルにのみアクセスして関心のある部分だけを（「＄Ｙと＄Ｚが結婚した」などと）抽出して（場合によってはさらに「＄Ｙと＄Ｚは新婚夫婦である」などとテキスト同士の新たな合成をもして）読み上げる等といった機能をモジュール定義して、動的にそのまま利用したり、あるいは静的に一部の機能だけを修正して再利用したり、さらに関連分野の分析・抽出用途に流用したりすることを容易にする。
（０００７）
特許文献６は、請求項３として、
前記論理式が事実を含んでいる
請求項１または２に記載のコンピュータプログラムを提供する。
：ここで、「事実を含む論理式」の簡単な例として”「今日は天気がよい」「太郎は趣味の＄Ｘに夢中になれる」”を挙げる。
：この場合、「今日は天気がよい」は事実であり、
推論規則を含むテキスト（例えば、
「太郎は趣味の釣りに夢中になれる：−今日は天気がよい；」
「太郎は趣味の読書に夢中になれる：−今日は天気が悪い；」
「太郎は好きな仕事に夢中になれる」
）に、
この事実（「今日は天気がよい」）を付加した上で
「太郎は趣味の＄Ｘに夢中になれる」の「＄Ｘ」を埋められる解（この場合「釣り」）を求めることになる。
＞これにより、動的に（質問時に、一時的に）成立しうるルールとそうでないルールを切り分けたり、論理式内の質問文に答えるヒントを自ら提供したり、問題や解の範囲を広げたり制限したりすることが可能になる。
（０００８）
特許文献６は、請求項４として、
前記論理式が推論規則を含んでいる
請求項１から３のいずれか一項に記載のコンピュータプログラムを提供する。
：ここで「推論規則を含む論理式」は、例えば、”「小松市小１算数は＄Ｘ:-req "http://hoge.net/JP/ISHIKAWA/KOMATSU/ELEMENTARY/1/ARITH.jpl"; ＄Ｘ;」「小松市＄Ｘ？」”等であってもよい。
＞これにより、動的に（質問時に、一時的に）適用したい（解釈、書き換え、等のための）ルールを質問ごとに付記することができるようになる。また、その解釈の真偽を通じて、事実の場合と同様に、成立しうるルールとそうでないルールを切り分けたり、論理式内の質問文に答えるヒントを自ら提供したり、問題や解の範囲を広げたり制限したりすることが可能になる。
（０００９）
特許文献６は、請求項５として、
前記アクセス可能なテキストを、
予め限った選択肢（テキスト集合）の中から
利用者が選択するユーザーインターフェースを有する
請求項１から４のいずれか一項に記載のコンピュータプログラムを提供する。
：このようなインターフェースは、ハードウエアとしてのドラムロール、ジョグダイアル、ソフトウエアコントロールとしてのリストボックス（Ｎ段組み形式でもよい）、コンボボックス、ラジオボタン等、または、それらを組み合わせて表現したコンピュータグラフィック、等とすることができる。
：テキスト集合は、例えば、ローカルファイルへのパスの集合、社内ＬＡＮ共有フォルダへのパスの集合、インターネットファイルへのＵＲＬ／ＵＲＩパスの集合、メモリ内のテキストへのポインタ、又はそれらの組み合わせとすることができる。
＞これにより、小中学生を含めた未成年教育用途などの場合に、コンテンツを制限することができる。また、科目ごとに対象とするテキストを分けて低学年や高齢者でも効率的にアクセス・編集・管理することができる。
（００１０）
特許文献６は、請求項６として、
アクセス可能なテキスト毎にテキストと対応する論理式集合を関連づけて記憶し、
アクセスしているテキストと対応する論理式集合から論理式を利用者が選択するユーザーインターフェースを有する
請求項１から５のいずれか一項に記載のコンピュータプログラムを提供する。
：「論理式集合」の要素はアクセス可能なテキスト毎にひとつでもよい。
：「テキストと対応する論理式」とは、過去にそのテキストに対して問われた論理式、そのテキストに対して有用なことがわかっている論理式、そもそもそのテキストに問われることを想定して（用語等が）設計された論理式、等である。
＞これにより、コンピュータや論理式に慣れていないユーザー（小学生、高齢者、等）でも、補助者なしで、ワンクリックで簡単に実質的な対話等が可能となる。
＞「テキストと対応する論理式」は、アクセス可能なテキストに所定の書式により一つ又は複数埋め込んで管理するのが好ましい。以下の例では、２つのボタンから選択するだけで、問い合わせをすることができる。以下の例では「：＆」は選択ボタンとしてヘッドを表示するという意味である。
＝＝＝
私の父は７８歳
私の母は７３歳
私の妹は４５歳
私の妹は４３歳
私の男の家族の年令は＄Ｘ歳  :& 私の男の家族は＄Ｘ歳; //１つ目の選択ボタン
私の男の家族は＄Ｘ歳 :- 私の父は＄Ｘ歳;
私の男の家族は＄Ｘ歳 :- 私の祖父は＄Ｘ歳;
私の男の家族は＄Ｘ歳 :- 私の兄は＄Ｘ歳;
私の男の家族は＄Ｘ歳 :- 私の弟は＄Ｘ歳;
私の男の家族は＄Ｘ歳 :- 私の息子は＄Ｘ歳;
私の女の家族の年令は＄Ｘ歳  :& 私の女の家族は＄Ｘ歳;  //２つ目の選択ボタン
私の男の家族は＄Ｘ歳 :- 私の母は＄Ｘ歳;
私の男の家族は＄Ｘ歳 :- 私の祖母は＄Ｘ歳;
私の男の家族は＄Ｘ歳 :- 私の姉は＄Ｘ歳;
私の男の家族は＄Ｘ歳 :- 私の妹は＄Ｘ歳;
私の男の家族は＄Ｘ歳 :- 私の娘は＄Ｘ歳;
＝＝＝
：この場合、データの前半を外部ファイルから動的に読み込むようにプログラムすることができ（Ｃ言語の#includeやＰＨＰのrequire_onceなどと類似する機能をもった組み込み関数による）、その場合は外部ファイルの更新（社外のニュース配信会社、社内の知識編集者、家族内のＩＴ担当者、等による）に応じて答えを更新することができる。
：アクセス可能なテキストがローカルファイル（共有設定もされていない）の場合には自分のみが更新するファイルという運用になる。共有ファイルの場合やインターネット公開ファイルの場合にはそれぞれのアクセス権をもった担当者が更新するファイルという運用になる。
：選択するためのボタンは、Ｎ段組みのリストボックスや、それをレンガ式にずらして並べたものや、ボタンを代表する漢字一字のラベルを平面や疑似３Ｄに配置したものや、使用頻度に応じて大きさの異なる円内に論理式の内容や要約を記載したもの、等とすることができる。
：なお、ボタンコントロールをマウス押下できない利用者や、より簡便に利用したい利用者向けに、各ボタンに対応する論理式の内容を音声認識や目線認識で選択するように構成してもよい（このような認識のための要素技術は現在では自明のための詳述はしない）。また、本質的にＮ個から１個を選択できるインターフェースであれば、ボタン式に限るものではなく、ドラムロール式タッチ式、脳波測定選択式など、種々の方法を利用することができる。
：また、従業員の顔認識センサーと連動させるときは、従業員ごとによく押下するボタンをコンピュータに記憶させたり、管理者側が従業員毎に覚えさせたい内容（ルール、専門知識、最新情報、英単語、連絡事項など）を表す論理式をコンピュータに記憶させたりして、従業員が近づいて認識されたときに、ボタンを押さなくても、その従業員に知らせる／勉強させるべき内容を音声等で出力することができる。
：また、高齢者については、分野別に整理された身近な内容（友達一覧、親戚一覧、買い物先一覧、電話先一覧・・・を示す各ボタン）により物忘れの防止にも用いることもできる。
：また、学校では、その学校で遵守させたい道徳やルール（携帯してはいけないもの一覧、服装規則一覧、等）、覚えてほしい先生の名前一覧、地域の身近な知識一覧（周辺の歴史、地理など）、学年ごとに覚えてほしい英単語や古語や年表や定理の一覧、等の体系的な列挙にも用いることができる。
（００１１）
特許文献６は、請求項７として、
抽出又は合成して読み上げる質問文の答えとなる文字列が複数存在する場合、
乱数生成アルゴリズムを用いてランダムな順序で読み上げることを特徴とする
請求項１から６のいずれか一項に記載のコンピュータプログラムを提供する。
＞これにより、記憶する必要のない知識間の順序性を排して、それぞれを独立した知識として認識させることが容易になる。
（００１２）
特許文献６は、請求項８として、
抽出又は合成して読み上げる質問文の答えとなる文字列が複数存在する場合であって、
一以上の文字列を読み上げた後に読み上げを中断して再開した場合、
中断までにまだ読み上げていない文字列を優先して読み上げることを特徴とする
請求項１から７のいずれか一項に記載のコンピュータプログラムを提供する。
＞これにより、中断に左右されずに、満遍なく答えのすべてをもれなくだぶりなく伝えることが可能となる。
（００１３）
特許文献６は、請求項９として、
抽出又は合成して読み上げる質問文の答えとなる文字列が複数存在する場合、
該複数存在する文字列の間又は該複数存在する文字列を抽出するテキストの間に比率を設定し、
該設定した比率に沿った頻度割合で該複数存在する文字列を繰り返し読み上げることを特徴とする
請求項１から８のいずれか一項に記載のコンピュータプログラムを提供する。
＞これにより、重点的に覚えるべきものとそうでないものとをバランスよく暗記するときに用いることなどが可能となる。
（００１４）
特許文献６は、請求項１０として、
更新されるテキストを、
所定の時刻または頻度で所定の場所から自動ロードして
前記アクセス可能なテキストとし、
所定の論理式に応じた質問文の答えとなる文字列を、
該アクセス可能なテキストから自動的に抽出又は合成して読み上げることを特徴とする
請求項１から９のいずれか一項に記載のコンピュータプログラムを提供する。
＞これにより、ニュースサイトが更新するインターネット上のＨＴＭＬテキストを「更新されるテキスト」としていた場合には、論理式でフィルタしたニュースのみを所定の時刻や頻度でチェックすることも可能になる。
＞また、複数のコンテンツを組み合わせることにより、例えば、目覚まし勉強＆ニュースチェック機能が提供できる。
＞また、更新されるテキストが社内外のインターフェースとして指定された基幹業務系のドキュメントやデータベースカラムである場合には、さらにテンプレートエンジン等と連携させることにより、タイムリーな自動業務文書作成なども容易となる。
（００１５）
特許文献６は、請求項１１として、
所定の時刻または頻度で、
所定の論理式に応じた質問文の答えとなる文字列を、
所定のアクセス可能なテキストから自動的に抽出又は合成して読み上げることを特徴とする
請求項１から９のいずれか一項に記載のコンピュータプログラムを提供する。
：自動読み上げの時刻又は頻度は、例えば、日ごと時刻設定、時ごと分設定、分ごと秒設定、日時指定、曜日指定など種々の指定方法があってもよい。
＞これにより、社内ルールなど不正確な記憶となりがちな知識をくりかえしにより正確に覚えさせることができる。
（００１６）
特許文献６は、請求項１２として、
前記アクセス可能なテキストを、
不特定多数の利用者からの投稿に応じて追加することを特徴とする、
請求項１から１１のいずれか一項に記載のコンピュータプログラムを提供する。
：投稿への対応は、所定の共有フォルダやインターネットサイトへの投稿を検知する形でもよく、不特定のインターネットサイトへの投稿をいわゆるクローラーが収集する形でもよい。
＞これにより、勉強用のテキストや業務用／趣味用の情報の収集・交換・共有・相互ブラッシュアップ等が可能となる。
（００１７）
特許文献６は、請求項１３として、
前記アクセス可能なテキストを、
不特定多数の利用者からの投稿に応じて編集することを特徴とする、
請求項１から１２のいずれか一項に記載のコンピュータプログラムを提供する。
：投稿への対応は、所定の共有フォルダやインターネットサイトへの編集による更新投稿を検知する形でもよく、不特定のインターネットサイトへの編集による更新投稿をクローラーが収集する形でもよい。
＞これにより、勉強用のテキストや業務用／趣味用の情報の相互補完・相互チェック等が可能となる。
（００１８）
特許文献６は、請求項１４として、
前記投稿をテーマのカテゴリ階層を明確にして行い、
答えとなる文字列の抽出又は合成に用いるアクセス可能なテキストのユーザー又は論理式による絞り込みを
該階層を指定して行うことを特徴とする
請求項１２又は１３に記載のコンピュータプログラムを提供する。
：投稿は、以下の内容を明確にしながら行われることが好ましい。
・サーバー
・ファイル名
・タイトル
・バージョン番号
・テキストの内容
・テーマの階層的分類（ツリー状のテーマ）
：カテゴリ（分類）の例としては、以下のようなものが挙げられる。
・地域ニュースツリー（地域による細分）
・研究専門分野ツリー（研究分野による細分）
・イベントツリー（イベント分野による細分（音楽、リサイクル、スポーツ、等））
（００１９）
特許文献６は、請求項１５として、
前記答えとなる文字列に応じた画像または音声を
文字列と同時に又は文字列の代わりに出力（遠隔の複数のコンピュータからなるシステムで機能分割する場合又は同一コンピュータにおいて機能分割する場合には送信であってもよい）することを特徴とする請求項１から１４のいずれか一項に記載のコンピュータプログラムを提供する。
：この「音声」は動的な合成音声ではなく事前録音した音声などとすることができる。
：画像は動画であってもよい。
＞これにより、論理式に応じたテーマの答えの集合やテキストの内容をより具体的に臨場感をもって表現することができる。
（００２０）
特許文献６は、請求項１６として、
前記答えとなる文字列のみ（一又は複数）、又は、論理式によってはアクセス可能なテキスト自体（一又は複数の組み合わせ）を
端末（スマートフォンであってよい）、又は、該端末のためのアプリケーションソフト宛てに送信し、
該端末又は該アプリケーションソフトにより出力を行うことを特徴とする請求項１から１５のいずれか一項に記載のコンピュータプログラムを提供する。
：端末は携帯端末であることが有利であり、このようにして行われる文字列やテキスト自体は、電車やすきま時間での勉強のため、あるいは、ビジネスの現場での情報・知識共有のために使用できる。
＞これにより、より自由により適した態様で答えやテキストを提供することが可能となる。
（００２１）
特許文献６は、請求項１７として、
前記抽出、合成又は送信を、中継するコンピュータ経由で行う
請求項１６に記載のコンピュータプログラム。
＞これにより、複数の利用者に配信しやすくなり、配信もコントロールしやすくなり、コンテンツの配信順を制御したり、コンテンツに広告を挿入したりでき、広告モデルでの安価な提供も可能となる。
＞また、発信端末側に複雑な論理演算を用いた抽出や合成や音声合成の機能をもたせる必要がなくなり、発信端末をスマートフォン等の携帯端末とすることが容易となり、投稿（発信）数の向上を期待でき、携帯端末において特に重要な電力の消耗やメモリの使用を減らすことが可能となる。
＞また、発信と出力をいずれも同一利用者のスマートフォンとすること等により、（自分や他人の過去の）読み上げを楽しみながら、さらに追加や変更の候補を中継するコンピュータに投稿するスパイラルを楽しむことも容易となる。
（００２２）
特許文献６は、請求項１８として、
前記中継するコンピュータが複数の利用者の端末に配信するように構成した
請求項１７に記載のコンピュータプログラム。
：この場合、配信内容に目印をつけるなどすることにより、発信した利用者以外の利用者にのみ配信するように設定することもできる。
：また、配信することを契約した利用者にのみ、あるいは、配信する利用者の数の制限内の利用者にのみ配信するように構成することもできる。
：契約した制限内の数の利用者にのみ配信する場合であって、中継するコンピュータが複数の端末からの要求に応じて配信する場合、ＩＤとパスワードによる認証の他、端末のＭＡＣアドレスやその他の端末・利用者属性の組み合わせを（傍受した人が再現できない）ハッシュ値に変換して送信するように端末用アプリケーションソフトをプログラムすることができ、配信要求とともに端末から中継コンピュータに送信されるハッシュ値の種類によって、何台の端末が配信を要求しているかを（たとえ、利用者間で共通のＩＤ／パスワードを採用している場合でも）、中継コンピュータが計算することができ、配信数を抑制する等することができる。
＞これにより、答えやテキストを、それを必要とする可能性の大きい複数の利用者にタイミングよく配信することが可能となる。
（００２３）
特許文献６は、請求項１９として、
前記中継するコンピュータが、
該中継するコンピュータに新しく送信されたコンテンツからそれ以前に配信されたコンテンツへと
さかのぼるように、
配信を要求した端末または利用者に対して、
内容を送信する
請求項１７又は１８に記載のコンピュータプログラム。
：ここでコンテンツとは、ひとかたまりの内容をいい、例えば、論理式に応じた複数の解が存在するときはこうした複数の解をまとめて一つのコンテンツとすることができ、一つのニュース記事を構成する複数の文（もともとその順序にも意味がある）はまとめて一つのコンテンツとなる。
＞これにより、新しい（多くの場合にその利用者にとってより重要な）コンテンツにより早く触れることが可能となる。
（００２４）
特許文献６は、請求項２０として、
同一の利用者ＩＤまたは利用者グループが所属しているグループチャンネルについて
新しいコンテンツが関係する利用者から中継するコンピュータに送信された場合に
前記さかのぼる制御をリセットして当該新しいコンテンツを先頭として再度さかのぼるように制御する
請求項１９に記載のコンピュータプログラム。
＞これにより、新しいニュースなどにより敏感に反応して情報共有を行うことができる。
（００２５）
特許文献６は、請求項２１として、
質問文を含む論理式も出力することを特徴とする
請求項１から２０のいずれか一項に記載のコンピュータプログラムを提供する。
＞これにより、読み上げる順序における各順番の意味や位置づけを簡潔に表示することが可能になる。
＞また、中継コンピュータ等においてクイズ形式のコンテンツを生成したり、各端末でクイズ形式のコンテンツを実施することが容易になる。
＞答えとなる文字列と論理式との組み合わせは、「テーマが何か」とその「答え（解）」を、共通部分と差異部分（複数解のときは複数）として、メリハリのある、しかも少ない通信量／表示量／発話量で最終利用者に伝えることが可能となる。関連したメール配信／連絡等も同じ契機で実施する場合にはパケット量の節約等にもつながる。
（００２６）
特許文献６は、請求項２２として、
出力する答えを導くために用いたテキストまたはその一部も出力することを特徴とする
請求項１から２１のいずれか一項に記載のコンピュータプログラムを提供する。
＞これにより、答えだけでなく、根拠も憶えたり確認したりすることが可能となる。
＞また、論理的思考力の醸成につながる。
（００２７）
特許文献６は、請求項２３として、
出力する答えを指定する変数（または可変領域）が一種類（例えば、「＄Ｘは＄Ｙが好き」ではなく「＄Ｘは花子が好き」のように主語のみのとき、等）の場合に、
項目名を省略して出力することを特徴とする
請求項１から２２のいずれか一項に記載のコンピュータプログラム。
＞これにより、区別する必要もなく本質的でもない変数名などを伝えてしまうコスト（時間、通信、電気、メモリなど）を省略することができる。
（００２８）
特許文献６は、請求項２４として、
出力する答えを指定する変数（または可変領域）が英文アルファベット１文字以外（例えば、「＄｛主語｝は＄｛目的語｝が好き」等）の場合に、
項目名を省略せずに出力することを特徴とする
請求項１から２３のいずれか一項に記載のコンピュータプログラム。
＞これにより、複数のフィールドからなる答えのフィールドの位置づけを間違う可能性を減らすことができる。
（００２９）
特許文献６は、請求項２５として、
前記答えとなる文字列もしくはアクセス可能なテキスト自体と、
質問文を含む論理式とから、
前記発信するコンピュータ、前記中継するコンピュータ、又は、前記中継するコンピュータから配信されたコンピュータが、
クイズ形式のコンテンツを生成し、
いずれかのコンピュータで実施することを特徴とする
請求項２１に記載のコンピュータプログラムを提供する。
：ここで、もっとも単純なクイズ生成方法は、質問文を自然言語に機械的におきなおし（自然言語を機械生成し）、「答えとなる文字列」をそのクイズの答えとすることである。
：出力する答えを導くために用いたテキストまたはその一部を参照できるときは、それを答えの参考情報として加えることができ、参照できないときは、アクセス可能なテキスト（一つ又は組み合わせ）自体を参考情報として加えることもできる。
＞これにより、身近な情報（山田さんの家のポチが子犬を２匹生んだ、等）を蓄積したテキストと身近な質問文を含む論理式（「＄Ｘが＄Ｙを生んだ」、等）とから、身近なクイズ問題を簡易に自動生成することができ、例えば、中継するコンピュータの利用者ＩＤを共有する老人ホームの入居者や特定の学級の生徒が、それらの「内輪ネタ」等を継続的にクイズコンテンツ（例えば、｛クイズ問題例１：□が子犬を２匹生んだ，答え：山田さんの家のポチ｝、等）にして楽しむことが可能になる。この場合、中継するコンピュータにＷＥＢサーバー機能をもたせ、利用者ＩＤを共有する範囲の端末に対して、生成されたクイズコンテンツをレンダリングするようにしてもよい。
：なお、スクリーンセーバー形式で必要な知識を覚えたり情報を伝達したりするアプリケーションソフトに対して穴埋め形式のコンテンツを提供する場合も同様である。
（００３０）
特許文献６は、請求項２６として、
前記中継するコンピュータが、
配信する前に、
コンテンツに所定の広告を挿入する
請求項２１に記載のコンピュータプログラムを提供する。
：テキストに対しては広告テキストだけでなく広告画像や広告音声へのリンクを挿入することができ、音声や動画についてはそれらを挿入したり合成することができる。
＞これにより、広告モデルのマネタイズが可能となり、一般消費者に対してより安価に答えやテキストを提供することが可能となる。
（００３１）
特許文献６は、請求項２７として、
前記論理式が前向き推論のための式を含み、
閾値以上になった項目を読み上げた上で閾値以下に戻す
ことを特徴とする請求項１から２６のいずれか一項に記載のコンピュータプログラム。
：前向き推論のための式とは、例えばＰＲＯＬＯＧのassert文である。変数を文字列に埋め込んだ形式のリテラルを許容する処理系でも、同様のassert文を定義し実施することができる。また別の論理式の例として、「”＄Ａ地方で風がふく”―＞”＄Ａ地方の桶屋が儲かる”：０．６」等と確信度を導入して、所定の命題”北陸地方で風がふく”が真となったときに別の命題”北陸地方の桶屋が儲かる”の当初確信度０．２を０．６８（＝０．２＋０．６−０．２×０．６）などと更新してもよい。別の例では、条件側の確信度が１．０（真）でなく所定閾値０．５のときにも、Ｋ←Ｋ×０．５として、新しい確信度＝０．４４（＝０．２＋０．３−０．２×０．３）とすることにしてもよい。また、条件となる命題やリテラルを複数にして前向き推論を行ってもよく、各条件について確信度が各所定閾値以上の場合に条件を満たすことにしてもよい。
：命題等の真をトリガーとする場合には、テキストを新たにロードしたときに元々真である命題等および直後に真であることが証明できる命題等について前向き推論の論理式を適用することができ、真の命題等に変更（追加、削除など）があったときに確信度をリセットして最初から再適用することなどが可能である。
：確信度が不要なとき（assert文とその逆の文のみのとき）は従来のＰＲＯＬＯＧ動作時と同様のメモリ構成で対応できるが、確信度を設けるときはクローズドハッシュ等専用のメモリ領域を設けることが好ましい。assertして付け加えられた内容や確信度は論式による問い合わせごと又は利用者によるセッションごとにリセットされるように構成してもよい。
：また、前記ボタン（複数ある）は、前向き推論により又はよらずに、特定の命題を真としたり偽としたり設定できるように定義づけられていることが好ましい。
＞これにより、社員や生徒の、影響連鎖についての判断力を強化したり学習させたりさせることができる（単純な前向き推論論理式や複数の条件を含む前向き推論論理式による）。
＞また、ニュースとその影響の仮説を自動生成したり、自動判断／自動分析をすることが容易になる。
（００３２）
特許文献６は、請求項２８として、
請求項１から２７のいずれか一項に記載のコンピュータプログラムを含む装置を提供する。
（００３３）
特許文献６は、請求項２９として、
請求項１から２７のいずれか一項に記載のコンピュータプログラムを用いた方法を提供する。
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
以上が特許文献６（特願２０１６−１９６０６９）の概要抜粋である。
【０００９】
かかる特許文献で示したそれぞれの技術内容や、引用している要素技術の内容は、本願でも用いることができる。ただし、本発明の主眼でないものについては、本明細書において詳述しない。
【実施例】
【００１０】
本発明の一実施例を図を用いて説明する。
図１は、本発明の方法によるコミュニケーションの一実施例を示す説明図である。第一のコンピュータ（１）には、認識パターン「おとうさんよるは」と対応する処理を示すデジタルテキスト「Anq(U001,夜ご飯は家で, 食べる:る／食べない:ない）;」とからなるコミュニケーションルールが１つのみ登録されており、利用者U002（妻）（１ａ）が、「おとうさんよるは」と発声して第一のコンピュータ（１）に音声認識させることにより利用者U001（夫）（２ａ）に対して新しいコミュニケーションを起動しようとしたところである。
図２は、図１から、音声認識した第一のコンピュータ（１）が、コミュニケーションルールの認識パターン「おとうさんよるは」を音声認識して、利用者U001（夫）（２ａ）にアンケートを行うコミュニケーションパターン（この例では、Anq(...)に該当するもの）が起動されて、第二のコンピュータ（２）にメッセージサーバー（３）を介してその旨が通信され、第二のコンピュータ（２）において関連情報と選択肢（この例では２つだが、別の実施例ではもっと多くてもよい）が利用者U001（夫）（２ａ）に対して表示されるとともに、夫（２ａ）に返信を促す内容「よるごはんはいえで」が第二のコンピュータ（２）において音声合成されて夫（２ａ）に対して発声される様子を示す説明図である。
図３は、図２から、画面を確認しかつ合成音声「よるごはんはいえで」を聞いた利用者U001（夫）（２ａ）が、「る」という認識パターンに該当する発声を行って、「家で食べる」というアンケートの選択肢を第二のコンピュータ（２）の音声認識により送り主である利用者U002（妻）（１ａ）に回答しようとしたところを示す説明図である。このとき、妻（１ａ）側の第一のコンピュータ（１）の画面には問い合わせ中である旨が表示されている。
図４は、図３から、「家で食べる」という選択肢が第二のコンピュータ（２）で音声認識されて、その旨のメッセージ（デジタルテキスト）がもともとの発信先である第一のコンピュータ（１）に対して、メッセージサーバー（３）を介して伝わり、第一のコンピュータ（１）に結果が表示されかつ対応する音声合成も行われている様子を示す説明図である。
このコミュニケーションは、妻がはじめてから終了するまで、夫妻がそばにいる場合の実際の会話とあまりかわらない時間（実時間）で終了することが可能である。
遠隔のコンピュータ（１）が自分のコンピュータ（１）に別のコンピュータ（２）がおくるべきメッセージ集合（食べる、食べない）と各対応する認識パターン集合（る、ない）とを、自分のコンピュータ（１）から動的に指定することができる。この実施例では、ルールとして登録した上で、音声認識させて起動しているが、図示しない別の実施例では、第一のコンピュータにインストールした本発明によるアプリケーションのコマンドプロンプト等から処理コマンドとなるデジタルテキスト「Anq(U001,夜ご飯は家で, 食べる:る／食べない:ない）;」を利用者が都度動的にタイプ入力して起動できるように構成してもよい。
またさらに別の実施例では、第二のコンピュータが、複数の第一のコンピュータ（図示しない）からのコミュニケーションを、必要に応じてシリアライズしたりしなかったりしながらほぼ同時に処理するため、要求される返信内容（とひもづく返信先も）に対応する複数の選択肢の（利用者発声等による）選択が互いに混同しにくいような認識パターン集合を、第一のコンピュータが（認識パターンの）指定を省略した場合や指定がバッティングした場合等に、第二のコンピュータが自動生成することもできる。このような自動生成は、単純には、互いに混同しにくいことがわかっている所定の認識パターン集合（たとえば、３文字以上の動物の名前（この場合は、通信内容のその音声空間における暗号化機能も備わる））から必要に応じて割り当てたり、該当するコミュニケーションが終了して不要になった認識パターンのみを認識パターン集合にもどしたりすること（再利用できるようにすること）により実現することができる。シリアライズするか否かについては、送信側が送信時にメッセージ内のフラグや引数として明示的に指定した内容と、受信側が設定ファイル等に明示的に指定した受信シリアライズポリシーとの調整によって決定するようにしている。
【産業上の利用可能性】
【００１１】
本発明の対象となる方法の産業上の利用可能性（あらゆる場面でのコミュニケーションと自動処理）は明らかである。
【符号の説明】
【００１２】
１  第一ののコンピュータ
１ａ  第一のコンピュータの利用者
２  第二のコンピュータ
１ａ  第二のコンピュータの利用者
３  メッセージサーバー
【図１】
2018085002.tif 000003
【図２】
2018085002.tif 000004
【図３】
2018085002.tif 000005
【図４】
2018085002.tif 000006