JP2018072784A - Voice recognition method, computer program, and device - Google Patents

Voice recognition method, computer program, and device Download PDF

Info

Publication number
JP2018072784A
JP2018072784A JP2016216820A JP2016216820A JP2018072784A JP 2018072784 A JP2018072784 A JP 2018072784A JP 2016216820 A JP2016216820 A JP 2016216820A JP 2016216820 A JP2016216820 A JP 2016216820A JP 2018072784 A JP2018072784 A JP 2018072784A
Authority
JP
Japan
Prior art keywords
information
computer
information module
variable
recognition
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
Application number
JP2016216820A
Other languages
Japanese (ja)
Other versions
JP6895037B2 (en
Inventor
中村圭介
Keisuke Nakamura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nareru System Co Ltd
Original Assignee
Nareru System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nareru System Co Ltd filed Critical Nareru System Co Ltd
Priority to JP2016216820A priority Critical patent/JP6895037B2/en
Publication of JP2018072784A publication Critical patent/JP2018072784A/en
Application granted granted Critical
Publication of JP6895037B2 publication Critical patent/JP6895037B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide large-scale content that satisfies users while mainly providing a voice interface that can be easily handled by the elderly.SOLUTION: In a plurality of information modules containing information (also containing information on one or more recognition patterns) for a computer to perform one or both of transition of a user variable and output (text, voice, image, etc.) to a user in accordance with that the computer voice-recognizes user's voice as having a predetermined recognition pattern, a first information module contains information (URI, in-memory pointer, index of structure array, etc.) for the computer to refer to a second information module. When the computer refers to the second information module on the basis of the information to refer of the first information module, the computer performs voice recognition giving priority to the information on the recognition pattern contained in the second information module over the information on the recognition pattern contained in the first information module.SELECTED DRAWING: Figure 1

Description

本発明は、音声認識方法、コンピュータプログラム及び装置に関する。   The present invention relates to a speech recognition method, a computer program, and an apparatus.

変数を含んだ文字列をリテラルとして許容する論理プログラムとその処理系が当該発明者によって研究開発されている(特許文献1〜8)。これは従来のPROLOG等に比べて自然言語に近い表現を、知識源(ルールや事実)としても質問文(変数を含むリテラル)としてもそのまま取り扱えるため、小中学生や高齢者にも格段に利用しやすくなっている。
高齢者が利用する際のもっとも効果的な用途は、実際の配偶者や旅行ガイドの人格を知識として表現した情報モジュール(論理プログラム/思考プログラム)等との音声を主とした対話である。
しかし、現状の音声認識の技術レベルについていえば、特に短文の認識パターンについては、音声認識しなければならないそのような認識パターンの種類が多くなればなるほど認識品質が低下するため、認識パターンの種類が多い大規模なコンテンツを開発しにくくなっていた。このため、音声インターフェースに頼って利用者の満足するコンテンツを提供していくことが困難となっていた。
A logical program that allows a character string including a variable as a literal and its processing system have been researched and developed by the inventor (Patent Documents 1 to 8). This means that expressions close to natural language compared to conventional PROLOG can be used as knowledge sources (rules and facts) and question sentences (literals containing variables) as they are. It has become easier.
The most effective use when used by the elderly is a dialogue mainly using voice with an information module (logical program / thinking program) that expresses the personality of an actual spouse or travel guide as knowledge.
However, with regard to the current level of speech recognition technology, especially for short-speech recognition patterns, the more types of such recognition patterns that must be recognized, the lower the recognition quality. It has become difficult to develop large-scale content with a lot of content. For this reason, it has been difficult to provide content that satisfies the user by relying on the voice interface.

特願2013−087008Japanese Patent Application No. 2013-087008 特願2015−219007Japanese Patent Application No. 2015-219007 特願2016−009327Japanese Patent Application No. 2006-009327 特願2016−103010Japanese Patent Application No. 2016-103010 特願2015−234356Japanese Patent Application No. 2015-234356 特願2016−196069Japanese Patent Application No. 2006-196069 特願2016−200618Japanese Patent Application No. 2016-200618 特願2016−210096Japanese Patent Application No. 2006-210096

したがって、本発明が解決しようとする課題は、高齢者でも気軽に扱える音声インターフェースを主としつつ、利用者の満足するような大規模なコンテンツを提供できるようにすることであり、そのための多くの認識パターンの種類について、認識品質を落とさずに対処できるようにすることである。   Therefore, the problem to be solved by the present invention is to be able to provide a large-scale content satisfying the user while mainly providing an audio interface that can be handled easily even by elderly people. It is to be able to cope with the types of recognition patterns without reducing the recognition quality.

かかる課題を解決するため、本発明の請求項1は、
コンピュータが利用者と相互作用する方法であって、
コンピュータが利用者(人に限らない。以下、同じ)の声又は環境音を所定の認識パターンであると音声認識することに応じて利用者変数の遷移、利用者への出力(テキスト、音声、画像等)又はその両方をコンピュータが行うための情報(一以上の認識パターンの情報も含む)を含んだ複数の情報モジュールについて、
第一の情報モジュールがコンピュータに第二の情報モジュールを参照させるための情報(URI、メモリ内ポインタ、構造体配列のインデックス、等)を含んでおり、
コンピュータが第一の情報モジュールの該参照させるための情報に基づいて第二の情報モジュールを参照したときに、
コンピュータが第一の情報モジュールに含まれる認識パターンの情報よりも第二の情報モジュールに含まれる認識パターンの情報を優先して音声認識を行うようにした方法を提供する。
:ここで「優先して」とは、第二の情報モジュールに含まれる認識パターンとの一致度閾値を第一のモジュールに含まれる認識パターンに比して下げたりするだけでなく、第一の情報モジュールに含まれる認識パターンの情報を全く無効化すること(例えば、いわゆる「コマンドリスト」(音声認識する文字列の集合)から削除したり、一時的にマスクしたりすること)も含む。
>このようにすることにより、システムとして音声認識すべきコマンド(文字列)の種類が非常に多い(例えば、インターネットで相互される情報モジュール集合が不特定多数の利用者によってアップロードされる場合は時間を経るごとに大きくなり続ける)場合でも、利用者との対話の文脈や状況ごとに認識が必要な文字列(コマンド)のみをコマンドリストに登録する等することができ、(通常はコマンド種類が多くなるにつれてコマンド間の差異が小さくなり)誤認識しがちになる音声認識の品質を維持しやすくなる。

また、請求項2は、
コンピュータが、前記参照させるための情報により、情報モジュール(たとえば、URIが指す静的ファイルや動的生成ファイル)間を移動して、認識パターンの情報以外の情報も第二の情報モジュールの情報を優先するようにした
請求項1に記載の方法を提供する。
:ここで、例えば、<URI>で指定できる情報モジュールをインターネットページとみなして移動するルールは「<認識パータン>/<認識パターン表示条件>:#<変数(グローバル/ローカル)の変動>;<演出スクリプト>;moveto "";」等と人間が記載するようにコーディング規則を設け、情報モジュールの解釈プログラムがそのコーディング規則に依存して解釈するようにすることができる。
>これにより、インターネットページの編集アップロード/ダウンロード表示と同様の作法/プロトコルにより、コンテンツを編集/実行することが可能となり、コンテンツの運用が容易になる。

また、請求項3は、
コンピュータが、前記参照させるための情報により、情報モジュール(たとえば、URIが指す静的ファイルや動的生成ファイル)間をサブルーチン呼び出しして戻るまでの間、認識パターンの情報以外の情報も第二の情報モジュールの情報を優先するようにした
請求項1に記載の方法を提供する。
:ここで、例えば、<URI>で指定できる情報モジュールをインターネットページとみなして移動するルールは「<認識パータン>/<認識パターン表示条件>:#<変数(グローバル/ローカル)の変動>;<演出スクリプト>;call "";」等と人間が記載するようにコーディング規則を設け、情報モジュールの解釈プログラムがそのコーディング規則に依存して解釈するようにすることができる。
>これにより、インターネットページの編集アップロード/ダウンロード表示と同様の作法/プロトコルにより、コンテンツを編集/実行することが可能となり、コンテンツの運用が容易になる。
:サブルーチンの呼び出し関係の管理は、スタック配列等公知の手法で明らかに行うことができる。
>これにより、呼び出した後の最終的な遷移先である呼び出し元をスタック配列等として簡潔に管理することができ、階層構造化したメニュー情報や樹系図的なまとまりのあるストーリー制御情報の管理・運用が容易となる。

また、請求項4は、
コンピュータが、
前記サブルーチン呼び出しのその時点での呼び出し関係の連鎖上にある情報モジュールに含まれる認識パターンの情報のみを用いて音声認識をするようにした
請求項3に記載の方法を提供する。
>これにより、元の認識パターンにも対応しながら、より具体的な状況の進展に応じた新しい認識パターンにも対応する場合に、認識パターンの拡大と縮小の範囲の決定と制御を簡潔に行うことができる。
>特に、階層のトップからは、認識品質を保ちながら、すべてのページにたどりやすくなる。

また、請求項5は、
コンピュータが、
前記サブルーチン呼び出しのその時点での呼び出し関係の連鎖の先端にある情報モジュールに含まれる認識パターンの情報のみを用いて音声認識をするようにした
請求項4に記載の方法を提供する。
>これにより、階層的に構成したコマンドメニュー等に応じて、認識パターンも移動した階層のものに変更することや、任意の状態から一つ上の階層にもどる(したがって認識パターン集合も元にもどる)ように状態遷移することも容易となる。

また、請求項6は、
前記サブルーチン呼び出しのその時点での呼び出し関係を戻るための固定の認識パターン
を情報モジュールにかかわらずにもつようにした
請求項4又は5に記載の方法を提供する。
:「固定の認識パターン」の例としては、「前に戻る」「リターン」「元のページへ」等が考えられる。
>これにより、利用者が、どの情報モジュールに遷移しても、より状況の適した元の場所まで戻れるという安心感をもって音声認識をさせることが可能になる。

また、請求項7は、
前記サブルーチン呼び出しのその時点での呼び出し関係をすべて清算して戻るための固定の認識パターン
を情報モジュールにかかわらずにもつようにした
請求項4又は5に記載の方法を提供する。
:「清算して戻る」先の例としては、アプリケーションの環境変数やレジストリに所定の「ホーム」として指定されたページやURIを指定してアクセスしたページ等を挙げることができる。
:「固定の認識パターン」の例としては、「オールキャンセル」「ホームへ戻る」「トップへ」「最初からやりなおし」等が考えられる。
>これにより、利用者が、どの情報モジュールに遷移しても元に戻れるという安心感をもって音声認識をさせることが可能になる。

また、請求項8は、
認識されるパターンが所定時間存在しないときに
コンピュータが、
前記サブルーチン呼び出しのその時点での呼び出し関係を
自動で戻るようにプログラムした
請求項4又は5に記載の方法を提供する。
>これにより、慣れていない利用者でも、しばらくだまっていさえすれば元のホームメニュー等に自然にもどることができ、前とは別のメニューを試したり(つまり発声したり)して、自分の行いたい命令や質問に、時間をかければたどりつくことができる可能性が高まる。

また、請求項9は、
コンピュータが、
音声認識しなければならない認識パターンが多い場合に、
その一部のみを画面表示した上で、
所定の認識パターンに応じて画面スクロール又は画面切り替えを行う
請求項1から8のいずれか一項に記載の方法を提供する。
:「所定の認識パターン」の例としては、「右」(右スクロール)、「左」(左スクロール)、「上」(上スクロール)、「下」(下スクロール)、「トップ」(最左又は最上位までスクロール)、「ボトム」(再右又は最下位までスクロール)などが挙げられる。
>これにより、音声認識のみにより選択肢のすべてを確認することが容易になる。

また、請求項10は、
コンピュータが、
表示できている認識パターンのみを音声認識の対象にする
請求項9に記載の方法を提供する。
>これにより、選択肢を網羅しながらの、さらなる認識パターンの絞り込みによる認識品質改善が可能になる。

また、請求項11は、
コンピュータが、
前記一部のみを画面表示する際に、
音声認識で混同しにくいもの同士をグループ化して
グループ化してできた複数のグループにわたって画面スクロール又は画面切り替えを行う
請求項9又は10に記載の方法を提供する。
:音声認識で混同しにくいもの同士のグループ化は、たとえば認識パターンを表現したテキスト(又はその音素列を表現したテキスト)間の編集距離を計算して、距離の近いもの同士を別グループにするようにして実現することができる。
:また、画面スクロールを部分的に(すなわち表示されている認識パターンの一部のみについて)行う場合は、スクロールアウトする認識パターン集合に含まれない認識パターンのうち、スクロールアウトされずに残るいずれの認識パターンにも編集距離が近くない(例えば、所定の閾値以上の)認識パターンであって、まだ表示(初期表示又はスクロールイン)されたこともなくスクロールアウトされたこともない認識パターンを優先的にスクロールインするようにプログラムすることができる。
>これにより、スクロールや画面切り替えの効率が向上する。

また、請求項12は、
コンピュータが、
音声認識する認識パターンの範囲を、
利用者が直前に音声指定した状況ごとに変更できる
請求項1から11のいずれか一項に記載の方法を提供する。
:以下に、「直前に音声指定した状況」(「状況イコール○○」と音声指定する場合)と、対応する「認識パターンの範囲」(集合)の例を示す。

===
状況イコール「連絡」
・本日の作業無事終了
・予定より遅れている
・応援頼む
===
状況イコール「お天気調査」
・金沢
・小松
・東京
===
状況イコール「現在」
・時刻は?
・ドル相場は?
===
>これにより、状況に応じた適切な認識パターンのしぼりこみと認識品質の向上が可能となる。しぼりこみは、人間があらかじめ列挙したり、品詞などの型を定義してしぼりこんでおいたり、PROLOG等を用いて動的にしぼりこんでおいてもよい。

また、請求項13は、
コンピュータが、
音声認識する認識パターンの範囲を、
利用者が直前に音声指定又は音声によりコンピュータに自動推測させた
文章タイプ又は格もしくは格の値(深層格、表層格、など)ごとに変更する
請求項1から12のいずれか一項に記載の方法を提供する。
:以下に、プログラミング担当者が会社にヒアリングして「ホームメニュー」の下の「通信メニュー」として情報モジュールを設定した例を示す。

===
(とある会社社長の「ホームメニュー」の下の「通信メニュー」の認識パターン集合)
・タイプは自発報告
・タイプは報告依頼
・タイプは打ち合わせ
・タイプはプレゼン申込
・タイプはメールによる商談申込
・タイプは電話による商談申込
・タイプははがきによる商談申込
===
主体は(コンピュータが自動プロンプトする。「タイプは電話による商談申込」であったことに依存して表示されかつ認識パターンとなる集合。担当者が事前にコンピュータに設定する等する。以下同じ)
・僕
・秘書
・営業部長
・製造部長
・「キャンセル」(通信メニュー配下で用いる)→ホームの下の通信メニューに戻る
・「オールキャンセル」(どのような状況・文脈でも常に存在する)→ホームメニューに戻る
−−−
相手は(コンピュータが自動プロンプトする。「タイプは電話による商談」「(主体は)営業部長」であったことに依存して表示されかつ認識パターンとなる集合)
・○○工業
・□□商会
・△△鉄工所
−−−
商品は(コンピュータが自動プロンプトする。「タイプは電話による商談」「(主体は)営業部長」「(相手は)○○工業」であったことに依存して表示されかつ認識パターンとなる集合)
・原料A
・製品B
・メンテナンスC
===

また、請求項14は、
複数の前記情報モジュールを、
該情報モジュールに関連する実際の緯度、経度もしくは高度、又は、仮想の座標に関係づけて記憶し、
利用者の指定した座標範囲内に位置する情報モジュールに含まれる認識パターンの情報のみを
音声認識可能にする
請求項1から13のいずれか一項に記載の方法を提供する。
:「情報モジュールに関連する」とは、たとえば情報モジュールが住民人格に似せたAIと対話するための情報モジュールの場合は、その住民の住所の緯度・経度・高度等であり、情報モジュールが移動体(たとえば実際の旅人やロールプレイングゲーム内の仮想のモンスター等)と対話するための情報モジュールの場合は、その現在位置の座標等である。
>これにより、「注目する場所付近に大声で呼びかけてみる」ことに相当する機能をコンピュータ上で果たすことができる。
>この方法においては、緯度、経度、高度や仮想座標等を連続的に移動しながら地域や仮想空間を探索する旅のような感覚を利用者に味わっていただくようにユーザーインターフェイスを構成することも有利であり、移動が不自由な高齢者等が生まれ故郷付近を探訪したい欲求等をかなえることができ、幅広い層のQOLが劇的に向上する。
>また、散策コンテンツやアドベンチャーゲームと連動するマルチメディアコンテンツ(音声だけでなく画像も表示してもよい)として構成する場合には、緯度・経度上の特定の方角を前進後退したり、左右に方向転換(30度単位、45度単位、90度単位など)したりできるようにUIを構成することもでき、散策やゲーム自体にふくらみを持たせるのに役立てることができる。

また、請求項15は、
複数の前記情報モジュールを、
該情報モジュールの内容に関連する階層的なテーマタグ(地域階層、勉強分野階層、機能分野階層、等)に関係づけて記憶し、
利用者の指定したテーマタグ配下に位置する情報モジュールに含まれる認識パターンの情報のみを
音声認識可能にする
請求項1から14のいずれか一項に記載の方法を提供する。
:階層的なテーマタグの例を以下に示す。この例では、利用者が松村を指定したときは「日本>石川>金沢>松村>1丁目」のディレクトリに配置された情報モジュール(又は「日本>石川>金沢>松村>1丁目」というテーマタグを含む情報モジュール)だけでなく「日本>石川>金沢>松村>2丁目」のディレクトリに配置された情報モジュール(又は「日本>石川>金沢>松村>2丁目」というテーマタグを含む情報モジュール)の認識パターン情報も同時に音声認識することになる。

===
日本
東京
石川
金沢
松村
1丁目
2丁目
・・・
小松
白山
・・・
===
勉強
国語
文法
語彙
・・・
算数
四則演算
ツルカメ算
===
機能
安全
QOL向上
安心
衛生
自己実現
・・・
===
>これにより、さまざまな粒度の範囲指定が簡単になる。

また、請求項16は、
同一の認識パターンが、コンピュータが行う複数の出力に関連づけられているとき
乱数を用いて一の出力だけを実行する
請求項1から15のいずれか一項に記載の方法を提供する。
>これにより、何度も同じことを発声する意味とコンテンツの深みが出てくることになり、再訪などを促すことができる。

また、請求項17は、
所定の情報モジュールに値が固定された変数をもたせ、
利用者が該情報モジュールを読み込んだときに該変数と該固定された値を記憶し、
他の情報モジュールを優先して参照した場合にも
該変数と該固定された値は該他の情報モジュールから参照はできるが変更や削除はできないように
構成した
請求項1から16のいずれか一項に記載の方法を提供する。
:例えば、あるリッチクライアントを用いたある処理系において、利用者ごとのホームとなる情報モジュール内の「&&」ではじまる変数や事実やルールは、その利用者固有のものなので、そのリッチクライアントのカレントURI(現在最も優先している情報モジュール)が、ホームとなる情報モジュール(PC内の所定のローカルファイルとして設定している)から、他のどの情報モジュール(URIで示す他のローカルファイルやネットページ等)に移動してもかわらないし、追加されたり削除されたり更新されたりすることもなく、ただし他の情報モジュールから参照だけはされるように構成することができる。これは、例えば、リッチクライアント内外にそのリッチクライアントのみが参照できるグローバルメモリ領域又は環境変数と同様の仕組みを設けることにより実現することができる。リッチクライアントがプログラムリストとして情報モジュールを読み込めるようにする場合には、プログラムの最初に、&&ではじまる変数や、PROLOGで用いるような事実やルール(ただし、&&ではじまるものに限る)が常に残るようにしてもよい。
>これにより、どのような情報モジュールに移動等しても、その利用者が好む特定の認識パターンを認識させて処理すること等が可能になる。

また、請求項18は、
所定の情報モジュールに静的又はグローバルである旨を指定した変数をもたせ、
利用者が該情報モジュールを読み込んだときに該変数をグローバルに宣言かつ定義し、
他の情報モジュールを優先して参照した場合にも
該変数を該他の情報モジュールから参照、変更又は削除できるようにプログラムした
請求項1から17のいずれか一項に記載の方法。
:例えば、あるリッチクライアントを用いたある処理系において、情報モジュール内の「&」ではじまる変数や事実やルールは、静的又はグローバルであり、そのリッチクライアントのカレントURI(現在最も優先している情報モジュール)が、他のどの情報モジュール(URIで示す他のローカルファイルやネットページ等)に移動しても維持され、その静的な値をもつ変数(例えば&${所持金}=100000000円)を、その新しい情報モジュール内で明示的に参照したり更新したり削除したりすることもできる。
>これにより、情報モジュールを移動しても維持されるべき値や属性を維持することができ、文脈の整合性が高いアドベンチャーゲームや情報モジュール間のコミュニケーションの実現が可能になる(参照範囲を一律に制限することの弊害の除去)。
:上の例では、緯度・経度の近いページへ方向転換と前進で移動したときに、&ではじまる変数が残り蓄積されていく。緯度・経度が近い移動だけでなく、新幹線や飛行機で移動する旨の認識パターン「東京へ新幹線で移動」に対してはそのような遷移、たとえば、「{&${所持金}=&${所持金}−21000};VLOAD http://humanote.xyz/jploc_kkh/0234/8562/56/東京駅.jpl;」といった情報モジュール内処理スクリプトを充てることができる。

また、請求項19は、
音声認識する認識パターンの集合を変化する毎に
コンピュータが
その旨を音声又は画面表示により示すようにプログラムした
請求項1から18のいずれか一項に記載の方法。
:ここで、「その旨を示す」例としては、「動物園の情報モジュール(ページ)に入りました(仮想散策ゲーム内)」として大きな区切りを示してもよく、「魔法使いが近くにいなくなりました(仮想アドベンチャーゲーム内)」や「英語の質問をすることができるようになりました(地域散策コンテンツ内)」等と選択肢の差分を示してもよく、変化後のすべての選択肢(認識パターンの集合)を逆にコンピュータが読み上げ、読み上げの途中や読み上げた直後に「それをお願い」と利用者が言った認識パターンに紐づく処理を行うようにしてもよい。
>これにより、音声の場合は音声のみでのコミュニケーションが可能になり、ドライブ中でも複雑な内容をより効果的に伝達しあうことが可能になる。
:ここで出力する音声は、明らかに、自動推論等により動的に生成したテキストからの音声合成(読み上げ音)だけでなく、現地ライブ音声(play http://hoge.jp/aa.live)や録音音声も再生(play http://hoge.jp/aa.mp3)することができる。これにより、音声だけでコミュニケーションを行いたい場面や利用者層に対して、より臨場感の高い仮想アドベンチャーゲームや地域散策コンテンツの提供することが可能となる。

また、請求項20は、
当該方法に関連して
音声認識させるために利用者が発話しコンピュータが受話した内容及び認識パターンにより認識した結果とを
コンピュータが蓄積して、
利用者の行動、傾向又は実績(発音上達度を除く。除いたもの以外は、勉強カリキュラムや業務ノルマ等の消化度や消化範囲等も含む)を分析又は評価することを特徴とする
請求項1から19のいずれか一項に記載の方法を提供する。
:なお、ここでは、利用者の発話行動に関連づけて日時(クライアント又はサーバーが管理する時計における)や場所(情報モジュールのURI、利用者端末のGPS位置、等)も蓄積することが、精密な分析や評価にとって有利である。

また、請求項21は、
同一の情報モジュール又は座標の近接した情報モジュール集合を同時にアクセスしている利用者の集合が
テキスト、音声又は音声動画によるグループ通信をできるようにプログラムした
請求項1から20のいずれか一項に記載の方法を提供する。
>これにより、仮想アドベンチャーコンテンツや散策コンテンツとして、特に音声に頼る利用者からの満足度が、他の利用者とのコミュニケーション機会、コンテンツの価値を自らの情報補足等により向上させる機会、等により、向上する。
:なお、ここで用いられる利用者の識別は、通常のIDとは異なるIDが示されることが有利である。
:このグループ通信は、明示的に開始しなくても、現実世界と同様に、抑制しないかぎり(抑制オプションなどをチェックしない限り)利用者のリッチクライアントに自然と表示されたり音声として流れてくることが有利である。
:ただし、音声認識させるための自分の発言とは区別されないといけないので、「雑談開始」と「コマンド開始」という予約語の音声認識により、周囲の人と雑談するモードと、コンピュータに音声認識させるモードとを切り替えて使用するようにしてもよい。
:なお、座標が近接した情報モジュールとして、テーマ(地域、勉強、機能)の階層における枝が近いものも含めることもできる。

また、請求項22は、
音声以外のコンテンツ(画像表示、現在のグローバル変数の状態、現在参照している情報モジュールが示す状況テキスト)にそれぞれフォーカスするための予約語を用意した
請求項1から21のいずれか一項に記載の方法を提供する。
>これにより音声以外のコンテンツの出力を確認することが容易になる。

また、請求項23は、
請求項1から22のいずれか一項に記載の方法を実施するためのコンピュータプログラムを提供する。

また。請求項24は、
請求項1から22のいずれか一項に記載の方法を実施するための装置を提供する。
In order to solve this problem, claim 1 of the present invention provides:
A way for a computer to interact with a user,
When the computer recognizes the voice or environmental sound of the user (not limited to humans, the same applies hereinafter) as a predetermined recognition pattern, the user variable transitions and the output to the user (text, voice, Multiple information modules that contain information (including information on one or more recognition patterns) for the computer to do (such as images) or both,
The first information module contains information (URI, pointer in memory, structure array index, etc.) for making the computer refer to the second information module,
When the computer refers to the second information module based on the information to be referred to in the first information module,
Provided is a method in which a computer performs speech recognition by giving priority to information on a recognition pattern included in a second information module over information on a recognition pattern included in a first information module.
: Here, “prioritize” not only lowers the matching threshold with the recognition pattern included in the second information module compared to the recognition pattern included in the first module, but also the first It also includes completely invalidating the information of the recognition pattern included in the information module (for example, deleting it from the so-called “command list” (a set of character strings for speech recognition) or temporarily masking it).
> By doing this, there are a great many types of commands (character strings) that should be recognized as speech by the system (for example, when a set of information modules exchanged over the Internet is uploaded by an unspecified number of users, Even if it continues to grow, it is possible to register only the character strings (commands) that need to be recognized for each context or situation of the dialogue with the user, etc. As the number increases, the difference between commands becomes smaller.) It is easy to maintain the quality of voice recognition that tends to be erroneously recognized.

Claim 2
The computer moves between information modules (for example, a static file or a dynamically generated file pointed to by the URI) according to the information to be referred to, and information other than the recognition pattern information also includes information of the second information module. A method as claimed in claim 1 is provided.
: Here, for example, a rule for moving an information module that can be specified by <URI> as an Internet page is “<recognition pattern> / <recognition pattern display condition>: # <variable (global / local) variation>;< It is possible to provide a coding rule such that a human script describes a production script>; moveto "";"and the like, and the information module interpretation program interprets it depending on the coding rule.
As a result, content can be edited / executed by the same manner / protocol as the edit upload / download display of the Internet page, and the operation of the content is facilitated.

In addition, claim 3
Until the computer calls a subroutine between information modules (for example, a static file or a dynamically generated file pointed to by a URI) based on the information to be referred to, information other than the recognition pattern information is also the second information. The method according to claim 1, wherein priority is given to information in the information module.
: Here, for example, a rule for moving an information module that can be specified by <URI> as an Internet page is “<recognition pattern> / <recognition pattern display condition>: # <variable (global / local) variation>;< It is possible to provide a coding rule so that a human being describes the production script>; call "";", etc., and the information module interpretation program interprets it depending on the coding rule.
As a result, content can be edited / executed by the same manner / protocol as the edit upload / download display of the Internet page, and the operation of the content is facilitated.
: Subroutine call relations can be clearly managed by a known method such as a stack arrangement.
> This makes it possible to manage the caller, which is the final transition destination after the call, in a simple manner as a stack array, etc., and to manage hierarchical menu information and tree-structured story control information. Operation becomes easy.

In addition, claim 4
Computer
The method according to claim 3, wherein speech recognition is performed using only information of recognition patterns included in an information module on a chain of call relationships at the time of the subroutine call.
> This makes it easy to determine and control the range of enlargement and reduction of the recognition pattern when dealing with the new recognition pattern corresponding to the progress of more specific situations while also supporting the original recognition pattern. be able to.
> In particular, from the top of the hierarchy, it is easy to follow all pages while maintaining the recognition quality.

In addition, claim 5
Computer
5. The method according to claim 4, wherein speech recognition is performed using only information on a recognition pattern included in an information module at a tip of a call-related chain at that time of the subroutine call.
> In this way, the recognition pattern can be changed to a moved layer according to a hierarchically configured command menu, etc., or the state can be returned to an upper level from an arbitrary state (therefore, the recognition pattern set is also restored). It is also easy to make a state transition.

In addition, claim 6
The method according to claim 4 or 5, wherein a fixed recognition pattern for returning a calling relation at the time of the subroutine calling is provided regardless of an information module.
: Examples of “fixed recognition pattern” include “return to previous”, “return”, “to original page”, and the like.
As a result, it is possible to perform voice recognition with a sense of security that the user can return to the original place where the situation is more suitable, regardless of which information module the user transitions to.

In addition, claim 7
6. The method according to claim 4, wherein a fixed recognition pattern for clearing and returning all the calling relationships at the time of the subroutine call is provided regardless of the information module.
: As an example of “return after returning”, there may be a page designated as a predetermined “home” in an environment variable or registry of the application, a page accessed by designating a URI, or the like.
: Examples of “fixed recognition pattern” include “all cancel”, “return to home”, “to top”, “redo from the beginning”, and the like.
As a result, it is possible to perform voice recognition with a sense of security that the user can return to the original information regardless of which information module is transitioned to.

In addition, claim 8
When the recognized pattern does not exist for a predetermined time,
6. A method according to claim 4 or 5, wherein the method is programmed to automatically return the current call relationship of the subroutine call.
> This makes it possible for even an unfamiliar user to return to the original home menu, etc. if he / she is fooled for a while, try a different menu from the previous one (ie, speak), and If you take the time to get the instructions and questions you want to do, you are more likely to be able to reach them.

In addition, claim 9
Computer
If there are many recognition patterns that must be recognized,
After only a part of it is displayed on the screen,
The method according to claim 1, wherein screen scrolling or screen switching is performed according to a predetermined recognition pattern.
: Examples of “predetermined recognition pattern” are “right” (right scroll), “left” (left scroll), “up” (up scroll), “down” (down scroll), “top” (leftmost) Or scroll to the top), “bottom” (re-right or scroll to the bottom), and the like.
> This makes it easy to confirm all of the options by voice recognition alone.

In addition, claim 10
Computer
The method according to claim 9, wherein only recognition patterns that can be displayed are targeted for speech recognition.
As a result, it is possible to improve recognition quality by further narrowing down recognition patterns while covering options.

In addition, claim 11
Computer
When displaying only a part of the screen,
The method according to claim 9 or 10, wherein screen scrolling or screen switching is performed over a plurality of groups formed by grouping things that are difficult to confuse in voice recognition.
: Grouping things that are difficult to confuse in speech recognition is calculated by, for example, calculating the edit distance between texts that express recognition patterns (or texts that express phoneme strings), and those that are close to each other are grouped together. In this way, it can be realized.
: In addition, when performing screen scrolling partially (that is, for only a part of the displayed recognition pattern), any of the recognition patterns that are not included in the recognition pattern set to be scrolled out and remain without being scrolled out Priority is given to recognition patterns whose edit distance is not close to the recognition pattern (for example, greater than or equal to a predetermined threshold) that has not yet been displayed (initial display or scrolled in) and has not been scrolled out. Can be programmed to scroll in.
> This improves the efficiency of scrolling and screen switching.

In addition, claim 12
Computer
The range of recognition patterns for voice recognition
The method according to any one of claims 1 to 11, wherein the method can be changed for each situation that the user has designated voice immediately before.
: The following shows an example of “situation designated voice immediately before” (when voice is designated as “situation equal OO”) and corresponding “recognition pattern range” (set).

===
Situation equal "contact"
・ Today's work was completed safely.
Situation “Weather Survey”
・ Kanazawa, Komatsu, Tokyo ===
Situation equals "current"
・ What is the time?
・ What is the dollar exchange rate?
===
As a result, it is possible to reduce the recognition pattern appropriate for the situation and improve the recognition quality. The squeezing may be enumerated in advance by humans, or may be squeezed by defining a type such as part of speech, or may be squeezed dynamically using PROLOG or the like.

In addition, claim 13
Computer
The range of recognition patterns for voice recognition
It changes for every sentence type or case value or case value (deep case, surface case, etc.) that the user has made an automatic guess by voice designation or voice immediately before. Provide a method.
: The following shows an example in which an information module is set as a “communication menu” under a “home menu” by a person in charge of programming who interviewed a company.

===
(A certain company president's "Communication menu" recognition pattern set under "Home menu")
・ Type is a spontaneous report ・ Type is a report request ・ Type is a meeting ・ Type is a presentation application ・ Type is a negotiation application by telephone ・ Type is a negotiation application by telephone ・ Type is a negotiation application by postcard ===
Subject (automatically prompted by the computer. A set that is displayed and becomes a recognition pattern depending on the type being a business negotiation application by telephone. The person in charge sets the computer in advance. The same applies hereinafter)
・ I / Secretary / Sales Manager / Manufacturing Manager / Cancel (used under the communication menu) → Return to the communication menu under the home / All Cancel (always present in any situation / context) → Home menu Return to
The other party (the computer automatically prompts. “Type is a business negotiation by phone” and “(subject is) the sales manager”)
・ ○○ Industrial ・ □□ Shokai ・ △△ Iron Works ---
Products (automatically prompted by the computer. “Type is a business negotiation by phone”, “(Subject is) Sales Manager” and “(Partner) is XX Industrial”)
・ Raw material A
・ Product B
・ Maintenance C
===

In addition, claim 14
A plurality of the information modules;
Store in relation to the actual latitude, longitude or altitude associated with the information module, or virtual coordinates;
The method according to any one of claims 1 to 13, wherein only the information of the recognition pattern included in the information module located within the coordinate range specified by the user can be recognized by voice.
: “In relation to the information module” means, for example, in the case of an information module for the information module to interact with an AI that resembles the resident personality, it is the latitude, longitude, altitude, etc. of the address of the resident, and the information module is moved In the case of an information module for interacting with a body (for example, an actual traveler or a virtual monster in a role-playing game), it is the coordinates of the current position.
As a result, a function equivalent to “call out loudly near the place of interest” can be performed on the computer.
> In this method, the user interface can be configured so that the user can experience the sensation of a trip to explore a region or virtual space while continuously moving latitude, longitude, altitude, virtual coordinates, etc. It is advantageous, and elderly people who are unable to move can be born, and the desire to explore the neighborhood of their homes can be fulfilled, and the QOL of a wide range of people is dramatically improved.
> In addition, when constructing as multimedia content (not only audio but also images may be displayed) linked with walking contents and adventure games, a specific direction on latitude and longitude may be moved forward and backward, The UI can be configured so that the direction can be changed (30 degree unit, 45 degree unit, 90 degree unit, etc.), which can be useful for taking a walk or having a bulge in the game itself.

In addition, claim 15
A plurality of the information modules;
Store in relation to hierarchical theme tags (regional hierarchy, study field hierarchy, functional field hierarchy, etc.) related to the contents of the information module,
The method according to any one of claims 1 to 14, wherein only a recognition pattern information included in an information module located under a theme tag designated by a user can be recognized by speech.
: An example of a hierarchical theme tag is shown below. In this example, when the user designates Matsumura, the information module (or “Japan>Ishikawa>Kanazawa>Matsumura> 1chome” theme tag arranged in the directory “Japan>Ishikawa>Kanazawa>Matsumura> 1chome”). As well as an information module located in the directory “Japan>Ishikawa>Kanazawa>Matsumura> 2-chome” (or an information module containing the theme tag “Japan>Ishikawa>Kanazawa>Matsumura> 2-chome”) This recognition pattern information is also recognized at the same time.

===
Japan Tokyo Ishikawa Kanazawa Matsumura 1-chome 2-chome ...
Komatsu Hakusan ...
===
Studying Japanese Grammar Vocabulary ...
Arithmetic Arithmetic operation Turtle calculation ===
Function Safety QOL Improvement Safety Hygiene Self-fulfillment ・ ・ ・
===
> This makes it easy to specify a range of various granularities.

In addition, claim 16
The method according to any one of claims 1 to 15, wherein only one output is performed using a random number when the same recognition pattern is associated with a plurality of outputs performed by a computer.
> This will bring out the meaning and depth of the content to speak the same thing over and over, and encourage revisiting.

In addition, claim 17
Give a given information module a variable with a fixed value,
Storing the variable and the fixed value when the user reads the information module;
The variable and the fixed value can be referred to from the other information module but cannot be changed or deleted even when the other information module is referenced preferentially. A method according to paragraph is provided.
: For example, in a processing system using a rich client, the variables, facts, and rules that begin with “&&” in the information module that is the home for each user are unique to the user, so the current of the rich client The URI (currently prioritized information module) is the home information module (set as a predetermined local file in the PC) to any other information module (other local files or netpages indicated by the URI). Etc.) and can be configured so that it is not added, deleted or updated, but is only referenced from other information modules. This can be realized, for example, by providing a mechanism similar to a global memory area or environment variable that can be referred to only by the rich client inside and outside the rich client. When a rich client can load an information module as a program list, variables that begin with && and facts and rules used in PROLOG (but only those that begin with &&) always remain at the beginning of the program. It may be.
This makes it possible to recognize and process a specific recognition pattern preferred by the user regardless of the information module to be moved.

In addition, claim 18
Give a given information module a variable that specifies static or global,
Declare and define the variable globally when the user loads the information module,
The method according to any one of claims 1 to 17, wherein the variable is programmed so that the variable can be referred to, changed, or deleted from the other information module even when the other information module is referenced preferentially.
: For example, in a processing system using a certain rich client, variables, facts and rules beginning with “&” in the information module are static or global, and the current URI of the rich client (currently has the highest priority) The information module is maintained even if it is moved to any other information module (other local file or netpage indicated by URI), and a variable having a static value (for example, & $ {possession}) = 100000000 yen ) Can also be explicitly referenced, updated, or deleted in the new information module.
> This makes it possible to maintain values and attributes that should be maintained even if the information module is moved, and to realize communication between adventure games and information modules with high consistency of context (the reference range is uniform). Eliminating the harmful effects of restricting to
: In the above example, when moving to a page with a closer latitude / longitude by changing direction and moving forward, the variable starting with & will be accumulated. For the recognition pattern “move to Tokyo by Shinkansen” as well as movement with close latitude / longitude, for example, “{& $ {money}} = & $ { In-information module processing script such as “carrying money} −21000}; VLOAD http://humanote.xyz/jploc_kkh/0234/8562/56/Tokyo station.jpl;” can be used.

In addition, claim 19
The method according to any one of claims 1 to 18, wherein the computer is programmed so that each time the set of recognition patterns for voice recognition is changed, the fact is indicated by voice or screen display.
: Here, as an example of “indicating that”, you may indicate a big break as “entered the zoo information module (page) (in the virtual walk game)”, and “the wizard is no longer nearby. ”(In virtual adventure game)” or “You can now ask questions in English (in the local walk content)”, etc., and the difference between the options may be shown. On the other hand, the computer may read out the information, and the processing associated with the recognition pattern said by the user as “Please request it” may be performed during or immediately after the reading.
As a result, in the case of voice, it is possible to communicate only by voice, and it is possible to more effectively transmit complex contents even during driving.
: The voice output here is obviously not only the voice synthesis (reading sound) from the text dynamically generated by automatic reasoning, but also the local live voice (play http://hoge.jp/aa.live) And recorded audio can also be played (play http://hoge.jp/aa.mp3). Thereby, it becomes possible to provide a virtual adventure game and a local walk content with higher realism to scenes and user groups that want to communicate only by voice.

In addition, claim 20
The computer accumulates the content that the user uttered and the result recognized by the recognition pattern in order to make speech recognition related to the method,
2. Analyzing or evaluating user's behavior, tendency or performance (excluding the degree of pronunciation improvement. Except for excluding those, including digestion degree and digestion range of study curriculum and work quota etc.) To 19. A method according to any one of 1 to 19 is provided.
: Note that the date and time (in the clock managed by the client or server) and location (URI of the information module, GPS location of the user terminal, etc.) are also stored in association with the user's speech behavior. It is advantageous for analysis and evaluation.

In addition, claim 21
21. The program according to any one of claims 1 to 20, wherein a set of users simultaneously accessing the same information module or a set of adjacent information modules of coordinates is programmed so as to perform group communication by text, audio or audio-video. Provide a way.
> As a result, the satisfaction from users who rely on audio, especially as virtual adventure content and walk-through content, is improved through opportunities to communicate with other users, the value of the content by supplementing their own information, etc. improves.
Note that the identification of the user used here is advantageously an ID different from a normal ID.
: Even if this group communication does not start explicitly, it will be displayed naturally as a rich client's rich client or will flow as audio unless it is suppressed (unless you check the suppression option, etc.), as in the real world. Is advantageous.
: However, since it must be distinguished from your own speech for voice recognition, the voice recognition of the reserved words “start chat” and “command start” allows the computer to recognize the voice and the mode for chatting with people around you. You may make it switch and use a mode.
: Note that information modules with close coordinates can include those with close branches in the theme (region, study, function) hierarchy.

In addition, claim 22
The reserved word for each focusing on contents (image display, the state of the current global variable, the status text which the information module currently referred to which is referring now) other than an audio | voice is prepared respectively. Provide a way.
> This makes it easy to check the output of content other than audio.

In addition, claim 23 is
A computer program for carrying out the method according to any one of claims 1 to 22 is provided.

Also. Claim 24
An apparatus for carrying out the method according to any one of claims 1 to 22 is provided.

本発明の方法による複数の情報モジュールの参照の連鎖(メニュー階層の段階的操作)の例を示す説明図である。It is explanatory drawing which shows the example of the chain | linkage (step operation of a menu hierarchy) of the reference of several information module by the method of this invention.

下記に説明するいくつかの実施例は、同一発明者による以下の特許明細書(上記、特許文献1および6からの抜粋)の実施の形態に、本発明に特有の上記機能を追加で実装することにより実施できる。また以下の、特許文献1および6の引用は、本明細者の実施可能性面、進歩性面の補足目的も含んだものである。

===
<特許文献1の課題> 自然言語に変数を埋め込む形式で表現した知識をコンピュータでPROLOG同様に自動処理することを実現可能にし、述語論理レベルの網羅的な演繹や解探索(自動単一化処理、自動導出処理、そのための後ろ向き推論、バックトラック)を実現すること。
変数が格構造に縛られない利点を十分に生かし、処理を高速化し、証明や学習等のため結果を見やすく表示すること。
<特許文献1の解決手段(概要)>
人間が、PROLOGにおける「事実」、「ルール」又は「ゴール」の入力にあたり、PROLOGにおける「リテラル」にあたる内容の定数部分と変数部分とを文字種、デリミタ又はエスケープ文字により区別してコンピュータに入力し、
コンピュータが、文の主部、述部等の境界をまたがりうるものとして変数を取扱いながら、その入力に含まれる文の自動単一化処理、自動導出処理又はその両方を行う。
変数を含みうる文であるパターンと、変数を含まない文である定数文字列との単一化を、パターンに最初に出現する変数の最長一致解を求めて、該最長一致解の文字列を後ろから空文字になるまで削る過程を該パターンに代入してできる
各新たなパターンについて、該新たなパターンができる前提となった削る過程の解の各状態をそれぞれ記憶しながら、再帰的に同様に変数がなくなるまで繰り返し、変数がなくなったときに単一化した各途中の解の状態を結合して各単一化の答えを得る。
パターン中の固定文字列が最長一致解を削る過程の文字列に含まれるか等を検出して高速化する。
パターン対パターンの単一化は語頭や語尾の一致に着目して高速化する。全探索の具体的手法も提供する。
<特許文献1の解決手段(全文、ただし一部本発明と混同しないように加筆・修正)>
(0009)
本発明は、かかる課題に鑑みてなされたものであり、特許文献1の請求項1は、
コンピュータが、論理型プログラミング言語PROLOGの機能の一部又は全部を自動的に行う方法であって、
人間が、PROLOGにおける「事実」、「ルール」又は「ゴール」の入力にあたり、PROLOGにおける「リテラル」にあたる内容(以降、「文」と呼ぶ)の定数部分と変数部分とを文字種、デリミタ又はエスケープ文字により区別してコンピュータに入力すること、
コンピュータが、文の主部、述部、主語、述語、目的語、補語、連用修飾語、連体修飾語又は文の境界をまたがりうるものとして変数を取扱いながら、上記「事実」、「ルール」又は「ゴール」の入力に含まれる文の自動単一化処理、自動導出処理又はその両方を行うこと、
を特徴とする処理方法を提供する。
ここで、「人間が、・・・定数部分と変数部分とを文字種、デリミタ又はエスケープ文字により区別してコンピュータに入力する」とは、人間が本発明によるアプリケーションソフト(処理系)の入力欄内やコマンドプロンプト後等に(フロントエンドプロセッサ等を介して又は介さずに)直接入力すること、インターネットブラウザや文章編集ソフト等からコピーペーストやカットペーストすること、別途入力して保存してあったテキストファイル等を読み込んだり、引用したり、参照したりすること等を含む。
また、「コンピュータが、文の主部、述部、主語、述語、目的語、補語、連用修飾語、連体修飾語又は文の境界をまたがりうるものとして変数を取扱い」とは、日本語等の助詞等や英語等の前置詞等を介した明示的な区切りのある格構造(構文解析結果や意味解析結果の階層構造に該当するものを含みうる)の境界(明示的な区切り)をまたがりうるだけでなく、英語等の例えばSV形式・SVO形式・SVOO形式・SVOC形式のSとVの境界、VとOの境界、VとCの境界等をまたがり得、重文や複文の文の境界等をもまたがり得るものとして取り扱うモードを含む(逆に、取り扱わないモードがあってもよい)。これらの場合、変数に入り得る解候補として、文全体や、文全体を構成する文字列から文としての文法構造による区切りの単位を無視して任意の部分文字列を抽出したもの、さらには階層的な参照構造をもつ複文・重文やもっと長い論文等の全体や、さらにそれらの任意の部分文字列が対象となる(なお、「文の境界」をもまたがりうるものとして取り扱う場合であって、知識源の集合を扱う(例えば、ファイルにまとめた知識源の集合を一括して読み込む、書き込む、参照する、等する)場合には、文の境界「以外」に知識源どうしの区切りが必要となるため、このような区切りとして、例えば、改行コードやタブコード等を用いることができる)。
これにより、自然言語に変数を埋め込む形式で表現した知識や情報も、普通の文章形式の知識や情報も、それらの間での現実的な相互活用の可能性が十分に開けた一元的な知識源として、両者を特に区別せずにコンピュータで自動処理することが可能になる(上記「困難性A」の克服)。
「現実的」な相互作用の可能性が「十分」に開けるためには、コンピュータによる自動処理が検索処理系として備えるべき1)検索式(パターンを指定する表現)の簡便性、2)十分な適合率(解の正確性)、3)十分な再現率(解候補を抽出する上での網羅性)を備えていなければならないが、本発明では、文中の自由な(すなわち、文法や意味の区切りに制限されない)場所に変数(複数種類でもよく複数回でもよい)の埋め込みを許容し(簡便性を確保し)つつも、PROLOGの知識処理手順(と内在する知識解釈方針)に基本的に沿うことにより、他の処理系におけるようなハイブリッドな知識処理手順(と、そのハイブリッドな処理手順に対応する複雑な知識解釈方針)によって起こりうる適合率(解の正確性)低下のリスクを回避しつつ、「文の主部、述部、主語、述語、目的語、補語、連用修飾語、連体修飾語又は文の境界をまたがりうるものとして変数を取扱」うことにより、自然言語の区切り表現(読点、句読点、カッコ、コンマ、ピリオド、等)や修飾的なフレーズ(形容詞句、副詞句、必須でない格の表現、等)による指定パターンの泣き別れ出現が原因となる不当な不一致(正規表現的なアンマッチ)を防ぎ、格構造の明示されない表層的な文字列表現間(検索式と知識源の間)での一定の再現性(解候補を抽出する上での網羅性)を確保可能としている。また、知識源となった自然言語の正確な文脈(前後の文字列)を損ないにくい一体的・連続的な引用・抽出(変数への解候補としての)も可能となり、結局、その透明性・単純性により推論の実質的な健全性(根拠や推論経緯の正当性)の確認・検証が手軽かつ容易となり、根拠がいつも明確であるという現実的な安心感を利用者にもたらし、全体として、変数が格構造に縛られない(さらに、格構造のルール(出現順序等)について知らなくてもよく、引数の順番が間違っているかもしれないという不安もない)という仕様の利点を十分に生かしきることを可能にする。
なお、本発明は日本語(一文字の情報量が多く、単語の間にスペースがない)を第一の対象にしているため、文字を処理単位、区切りの単位としている内容が多いが、英語等(一文字の情報量が少なく、一文の文字数は多いが、単語の間にスペースのあるもの)は、スペースで区切った単語を単位として同様の処理をすることも可能である。
(0010)
また、特許文献1の請求項2は、
前記自動単一化処理において、
変数を含みうる文であるパターン(定数部分と変数部分とを文字種、デリミタ又はエスケープ文字により区別したもの)と、変数を含まない文である定数文字列との単一化を、
パターン(例:$Xと$Yは$Zが好き)に最初(又は最後)に出現する変数(例:$X)の最長一致解(例:太郎と次郎)を求めて、該最長一致解の文字列を後ろ(又は前)から空文字になるまで削る過程(例:太郎と次郎>太郎と次>太郎と>太郎>太>空)を該パターンに代入してできる各新たなパターン(例:「太郎と次郎と$Yは$Zが好き」>「太郎と次と$Yは$Zが好き」>「太郎とと$Yは$Zが好き」>「太郎と$Yは$Zが好き」>「太と$Yは$Zが好き」>「と$Yは$Zが好き」)について、該新たなパターンができる前提となった削る過程の解の各状態($X=太郎と次郎>太郎と次>太郎と>太郎>太>空)をそれぞれ記憶しながら、
再帰的に同様に変数がなくなるまで繰り返し、
変数がなくなったときに単一化した各途中の解の状態(例:真($X=太郎と次郎,$Y=三郎),真($X=太郎,$Y=次郎と三郎))を結合して各単一化の答え(例:答え1=($X=太郎と次郎,$Y=三郎),答え2=($X=太郎,$Y=次郎と三郎)を得ることを特徴とする
特許文献1の請求項1に記載の処理方法を提供する。
ここで、「(又は最後)」は「(又は前)」に対応しており、最後に出現する変数から代入するときは、削り始めが前からとなる必要があることを意味する。
これにより、最長一致解から最短一致解に至るすべての可能性について確実に網羅した各解候補の状態を検証し、網羅的な答え(さらに絞りこまれた解候補の集合)を提供することが可能になる。
(0011)
また、特許文献1の請求項3は、
空文字になるまで徐々に削るかわりに、別途求めた最短一致解までしか徐々に削らないことを特徴とする
特許文献1の請求項2に記載の処理方法を提供する。
これにより、最短一致解未満の長さから「空」文字までの解探索の計算を節約することができ、自動処理の高速化が可能となる場合がある。
(0012)
また、特許文献1の請求項4は、
空文字になるまで徐々に削る際、
パターン中で該変数が最初(又は最後)に出現した直後(又は直前)の固定文字である1文字C(直後(又は直前)が別の変数でその解が空文字でないときは該別の変数に解候補として代入されている解候補の最初(又は最後)の1文字C)が該最長一致解に含まれる場合に、
該最長一致解の文字列の最後(又は最初)からそのCに最初にあたるまでの部分文字列をそのCを含め削ることを特徴とする
特許文献1の請求項2又は3に記載の処理方法を提供する。
ここで、「(又は最後)」は「(又は直前)」に対応しており、最後に出現する変数から代入するときは、削り始めが前からとなる必要があることを意味する。
これにより、変数の直後(又は直前)の固定文字にマッチしない解候補の列挙とその解候補を前提とした探索を節約することができ、自動処理の高速化が可能となる場合がある。
(0013)
また、特許文献1の請求項5は、
前記自動単一化処理又は自動導出処理において、
前記「ゴール」(「サブゴール」を含む。以下同じ)となる束縛情報を求める際、
該「ゴール」を構成する各文について独立して束縛情報を求め
各束縛情報の積集合が空でない場合に戻り値真とその積集合を返す
特許文献1の請求項1から4のいずれか一項に記載の処理方法を提供する。
ここで、束縛情報とは、各変数に同時にそのような解候補を代入してみたか/すべきかということを示す情報である。各変数への一つの束縛の仕方を示す束縛情報は、「,」をAND結合と解釈することにより、「変数名1=値1,変数名2=値2,・・・,変数名N=値N」といったリスト形式で表現することができる一方、複数の束縛の仕方は、そのようなリストの集合として、あるいは、「,」ではなくAND/OR結合を明示して複数束縛間の共通部分をくくりだした形や、複数束縛の全体を標準化した連言標準形や選言標準形で表現することができる。
これにより、同時に満たすべきパターン(文)が複数あり、パターン(文)間で同名の変数には同じ解が入るべきとする問題形式の場合(例えば、ユーザからのそのようなAND結合問合せや、ルールのボディ部に複数の文がある場合)に、ルールのより右側のパターンについて、より左側のパターンの各単一化結果ごとに多大な全文探索処理を無駄に繰り返す可能性がすくなくなり、ボディ部をバックトラックしながら深さ優先探索する非効率(変数を自然言語に埋め込む形式においてより顕著な非効率)を回避し、同時に満たすべき各パターンごとの処理を単純化することができる。また、推論過程の表示や検証(完全性や健全性)をわかりやすく、容易にする。また、ルールの意味として必要な直観にとって余計であり定義されるべきでなかった順序性(ボディ部の文間の)が推論過程に副作用を与えることを防ぐことができる。
(0014)
また、特許文献1の請求項6は、
前記自動単一化処理又は自動導出処理において、
前記「ゴール」となる束縛情報を求める際、
既存の束縛情報を最初に空とし、
「ゴール」が含む文集合を、既存の束縛情報の適用下で該一文が真となりうるかと該なりうるための追加の束縛情報について自動計算して該追加の束縛情報を該既存の束縛情報に加えながら該一文を除いて再帰的に小さくしていき、
真となりうるまま該文集合が空集合になったときの既存の束縛情報を「ゴール」となる束縛情報とする
特許文献1の請求項1から4のいずれか一項に記載の処理方法を提供する。
ここで、「再帰的に小さくしていき」とは、再帰が深くなるほど文集合が小さくかつ束縛情報が複雑になる(より多くの変数が束縛され、束縛する値の範囲がより絞られる)よう、例えば、C言語で再帰呼び出しをする処理や、独自に宣言し定義した深さ優先探索用のスタック構造(構造体の配列とスタックポインタ等)によって同等の再帰的処理を実現することをいう。
これにより、変数を自然言語に埋め込む形式で表現された、同時に満たすべき複数パターンのAND結合からなるオープンクエスチョンを自動処理する問題を、より単純かつ再帰的な同一構造を持つ部分問題へとシンプルに変換し、推論過程の表示や検証(完全性や健全性の)を容易にする。
(0015)
また、特許文献1の請求項7は、
前記自動単一化処理又は自動導出処理において、
変数を含まないパターンと変数を含まない事実との単一化を行う場合、
パターンと事実が文字列として一致する場合に真を返す、又は
パターンと事実が文字列として一致しない場合に偽を返す
特許文献1の請求項1から6のいずれか一項に記載の処理方法を提供する。
これにより、シンプルかつ迅速に探索を行うことができる。
なお、「変数を含まない事実」が句点等で区切られた複数の文を含む場合。「文字列としての一致」は、パターンの文字列が事実の文字列の部分に一致することであってもよいとするモードを設けることもできる。
これにより、同型の複数の情報を一つの事実にまとめて表現して探索の対象とすることができる。また、複数要素間のなんらかの順序性(例えば、大きさ、貴重さ、古さ・・・等)も表現しやすくなる。
(0016)
また、特許文献1の請求項8は、
前記自動単一化処理又は自動導出処理において、
変数を含まないパターンとホーン節の変数を含まないヘッド部との単一化を行う場合、
パターンとヘッド部が文字列として一致する場合に、該ホーン節のボディ部をサブゴールとして特許文献1の請求項5又は6に記載の処理方法を適用した結果を返し、
一致しない場合に偽を返す
特許文献1の請求項1から7のいずれか一項に記載の処理方法を提供する。
これにより、変数を自然言語に埋め込む形式で表現するルールのヘッドが変数を含まない場合の健全な機械的解釈と、シームレスでわかりやすくかつシンプルで統一的な処理メカニズムと、対応する推論過程の説明を与えることができる。
(0017)
また、特許文献1の請求項9は、
前記自動単一化処理又は自動導出処理において、
変数を含まないパターンと変数を含むヘッド部をもつホーン節との単一化を行う場合、
特許文献1の請求項2から4のいずれか一項に記載の処理方法における「定数文字列」として当該パ
ターンを用いかつ同処理方法における「パターン」として当該ヘッド部を用いて処理して求めた各束縛情報について、
当該ホーン節のボディ部に適用したものを特許文献1の請求項5又は6に記載の処理方法の「サブゴ
ール」として処理した結果が真となるものが存在すれば真を返す、又は
存在しなければ偽を返す
特許文献1の請求項1から8のいずれか一項に記載の処理方法を提供する。
これにより、変数を自然言語に埋め込む形式で表現するルールのヘッドが変数を含み、このルールを起動したパターンが変数を含まない場合に、ボディ部の変数の束縛範囲を事前に制限して、真偽判断の処理を高速化することができる。
また、健全な機械的解釈と、シームレスでわかりやすくかつシンプルで統一的な処理メカニズムと、対応する推論過程の説明を与えることができる。
(0018)
また、特許文献1の請求項10は、
前記自動単一化処理又は自動導出処理において、
変数を含むパターンと変数を含まない事実との単一化を行う場合、
特許文献1の請求項2から4のいずれか一項に記載の処理方法における「パターン」として当該パタ
ーンを用いかつ同処理方法における「定数文字列」として当該事実を用いて処理した結果を返す、
特許文献1の請求項1から9のいずれか一項に記載の処理方法を提供する。
これにより、パターンと(静的な)事実との間のすべての解候補(格変数への)が洗い出されて「結果」として返されるため、上記「困難性A」克服のための基礎的な機構をシンプルに与えることができ、推論過程の可視化や検証だけでなくさらにはルールの修正等といったユーザーの手を介した学習をも容易にする。
(0019)
また、特許文献1の請求項11は、
前記自動単一化処理又は自動導出処理において、
変数を含むパターンと変数を含まないヘッド部をもつホーン節との単一化を行う場合、
特許文献1の請求項2から4のいずれか一項に記載の処理方法における「パターン」として当該パタ
ーンを用いかつ同処理方法における「定数文字列」として当該ヘッド部を用いて処理した結果を真とする束縛情報(C)が存在する場合で、かつ、当該ホーン節のボディ部を請求項5又は6に記載の処理方法の「サブゴール」として処理した結果が真の場合に当該束縛情報(C)とともに真を返す、
特許文献1の請求項1から10のいずれか一項に記載の処理方法を提供する。
これにより、変数を含むパターンと(変数を含まない静的な)ヘッドとの間のすべての解候補(各変数への)が洗い出されて「結果」として返されるため、上記「困難性A」克服のための基礎的な機構をシンプルに与えることができ、推論過程の可視化や検証だけでなくさらにはルールの修正等といったユーザーの手を介した学習をも容易にする。
また、より単純かつ再帰的な(または相互再帰的な)同一構造を持つ部分問題へとシンプルに変換し、推論過程の表示や検証(完全性や健全性の)を容易にする。
また、変数を自然言語に埋め込む形式で表現するルールのヘッドが変数を含まない場合の健全な機械的解釈と、シームレスでわかりやすくかつシンプルで統一的な処理メカニズムと、これらに該当する推論過程の説明を与えることができる。
(0020)
また、特許文献1の請求項12は、
前記自動単一化処理又は自動導出処理において、
変数を含むパターンと変数を含むヘッド部をもつホーン節との単一化を行う場合、
パターンとヘッド部の頭、尾又は両方に存在する文字数分の固定文字が一致していない場合に偽を返す、
特許文献1の請求項1から11のいずれか一項に記載の処理方法を提供する。
これにより、一律の探索に比して、明らかに大幅な計算量節約と処理速度向上が図れる。
(0021)
また、特許文献1の請求項13は、
前記自動単一化処理又は自動導出処理において、
変数を含む第一のパターンと変数を含むヘッド部をもつホーン節との単一化を行う場合、
パターンとヘッド部の頭及び尾に存在する文字数分の固定文字が一致している場合、
特許文献1の請求項5又は6に記載の処理方法における「サブゴール」として当該ホーン節のボディ
部を適用した結果が真となる各束縛情報により当該ホーン節のヘッド部を束縛して得られる各第二のパターンについて、
第二のパターンが変数を含まない場合に、
特許文献1の請求項2から4のいずれか一項に記載の処理方法における「パターン」として第一の
パターンを用いかつ同処理方法における「定数文字列」として第二のパターンを用いて処理した結果を返す、
請求項1から12のいずれか一項に記載の処理方法を提供する。
ここで、「第二のパターンが変数を含まない場合」とは、ホーン節(ルール)において、ヘッド部に含まれるすべての変数がボディ部「にも」含まれており、ボディ部のすべての変数が定数(固定文字列)で束縛された結果としてヘッド部のすべての変数も定数(固定文字列)で束縛(代入)されたことによりヘッド部の変数が消えてヘッド部が定数文字列と見なせるようになったことをいう。
これにより、変数を含むパターンと変数を含むヘッド部をもつホーン節(ルール)との単一化をシンプルな計算モデルにより、ユーザーがトレースしやすい流れで機械的・自動的に行うことができる。
すなわち、変数を含むパターンと変数を(各束縛情報により)含まなくなった(=定数文字列化した)ヘッド部との間のすべての解候補(パターンの各変数へ代入すべきもの)を洗い出して「結果」として返す形に、元々のより複雑な問題(変数対変数の単一化)を帰着(問題を変換)させることにより、上記「困難性A」克服のための基礎的な機構をシンプルに与え、思考プロセスとしても表現しやすいものにできている。また、この「帰着(問題の変換)」に当たって、より単純かつ再帰的な(または相互再帰的な)同一構造を持つ部分問題へとシンプルに変換しているため、推論過程の可視化や検証(完全性や健全性の)だけでなくルールの修正等といったユーザーの手を介した学習をも容易にする。 結局、変数を自然言語に埋め込む形式で表現するルールのヘッドが変数を含む場合の健全な機械的解釈と、シームレスでわかりやすくかつシンプルで統一的な処理メカニズムと、これらに該当する推論過程の説明を容易に与えることができる。
(0022)
また、特許文献1の請求項14は、
変数を含む事実が入力されることをコンピュータが制限することを特徴とする
特許文献1の請求項1から13のいずれか一項に記載の処理方法を提供する。
ここで、変数を含む事実(ルールでない知識源)とは、例えば、「$Xは$Xである。」(トートロジー的に恒真となる事実)や「$Xは$Yである。」(表層的な文型だけが合致していれば真となってしまう根拠のない事実)等がある。
これらがコンピュータに入力されることを制限することにより、パターン(変数を含みうる文)と事実(変数を含まない文(=固定文字列))との自動単一化処理の計算が単純になり、自動処理による高速な回答が可能となる。また、根拠のない事実を知識源に混入しにくくする。
(0023)
また、特許文献1の請求項15は、
前記ルールがいわゆるホーン節と同様の形式であり、ヘッド部がボディ部に出現しない変数を含むことをコンピュータが制限することを特徴とする
特許文献1の請求項1から14のいずれか一項に記載の処理方法を提供する。
ここで、「ヘッド部がボディ部に出現しない変数を含むことをコンピュータが制限する」とは、ヘッド部が「$Xは素敵」であり、ボディ部が「$Yは強い,$Yは$Zに優しい,$Zは子供,$Yは賢い」といったように、ボディ部のすべての文中の変数(この例では、$Yと$Z)が束縛(代入)されても、ヘッド部の変数(この例では、$X)が束縛されないまま残るようなルールが知識源として入力されたり、記憶されたり、起動されたりすることをコンピュータが制限することをいう。このようなルールは、事実の場合と同様に、ヘッド部に束縛されない変数を残すことにつながるため、健全でない推論結果を生み出しやすく、推論のスピードをも低下させる原因となる。
こうしたルールがコンピュータに入力されることを制限することにより、パターン(変数を含みうる文)とヘッド部(特許文献1の請求項13により変数を含まない文(=固定文字列)の集
合に帰着可能)との自動単一化処理の計算が単純になり、自動処理による高速な回答が可能となる。また、根拠のない推論結果を生み出しにくくする。
(0024)
また、特許文献1の請求項16は、
前記自動単一化処理又は自動導出処理において、
束縛されない変数が互いに残っているパターンとヘッド部又は事実との自動単一化処理を、
固定文字列として極小となる解の集合を求めて返すことにより行うことを特徴する、 特許文献1の請求項1から13のいずれか一項に記載の処理方法を提供する。
ここで、「固定文字列として極小となる解の集合」の例としては、「$Aは$B」と「$Cも$D」との間の自動単一化の結果として、{($A=”も”、$B=<空>、$C=<空>、$D=”は”),($A=空、$B=”も”、$C=”は”、$D=空)}という2つの解を提供することがある。
これにより、無限個の解が存在する場合にも解の例(特に最小のシンプルな例)を提供することが可能になる。
(0025)
また、特許文献1の請求項17は、
前記自動単一化処理又は自動導出処理において、
束縛されない変数が互いに残っているパターンとヘッド部又は事実との自動単一化処理を、
変数を含む文字列として極小となる解の集合を求めて返すことにより行うことを特徴する、
特許文献1の請求項1から13のいずれか一項に記載の処理方法を提供する。
ここで、「固定文字列として極小となる解の集合」の例としては、「$Aは$B」と「$Cも$D」との間の自動単一化の結果として、{($A=”$Cも”、$B=<自由>、$C=<自由>、$D=”は$B”),($A=<自由>、$B=”も$D”、$C=”$Aは”、$D=<自由>)}という2つの解を提供すること等がある。変数を束縛する値(変数に代入される値)の文字列長(ただし、変数が含まれる場合は変数の出現あたり1文字と見なす)の合計(解組みを通じた)が極小となるものと考えることができる。
これにより、無限個の解が存在する場合にも解の一般形を提供することが可能になる。
(0026)
また、特許文献1の請求項18は、
束縛されない変数が互いに残っているパターンとヘッド部又は事実との各文字列の頭及び尾に共通して存在する文字数分の固定文字が一致していない場合、
偽を返すことを特徴とする、
特許文献1の請求項16又は17に記載の処理方法を提供する。
これにより、単一化の可能性のない自動探索を節約し、自動処理を高速化することができる。
(0027)
また、特許文献1の請求項19は、
前記固定文字列又は変数を含む文字列として極小となる解の集合を求める際、
束縛されない変数が互いに残っているパターンとヘッド部又は事実とからなる両文字列(第一の文字列と第二の文字列とする)に含まれる各変数が、各文字列内では共通に束縛され、文字列間では独立に束縛されるものとしながら(あるいは、同名変数を共通に束縛するスコープを各文字列内のみ(あるいは、文字列間は変数のスコープ外)としながら)、
各変数に相手の文字列(第一の文字列中の変数には第二の文字列、第二の文字列中の変数には第一の文字列)のあらゆる部分文字列(<空>及び文字列全体も含む)又は自分自身を代入してみて両文字列が一致する場合を探す全探索により極小となる解の集合を求めることを特徴する、
特許文献1の請求項16又は17に記載の処理方法を提供する。
「又は自分自身を・・・代入」とは、文字列中の「$X」には「$X」そのものを代入することをいい、たまたま第一の文字列にも第二の文字列にも$X(互いのスコープは異なっている)が含まれるときは、第一の文字列の$Xと第二の文字列の$Xをあえて区別できるように(例えば、「$X1」と「$X2」、等として)代入することによっても明らかに健全な計算を行うことができる。
これにより、健全性と停止性(計算の有限性)を確保しながら解集合の一定の網羅性(問題(パターン対)の性質によっては完全性)を確保することができる。
(0028)
また、特許文献1の請求項20は、
束縛されない変数が互いに残っているパターンとヘッド部又は事実とからなる両文字列そのものではなく、
束縛されない変数が互いに残っているパターンとヘッド部又は事実との各文字列の頭及び尾に共通して存在する文字数分の固定文字を両者から除いて残る二つの文字列に相当する両文字列について、
特許文献1の請求項19に記載の処理をする処理方法を提供する。
これにより、解集合の一定の網羅性(場合によっては完全性)を保ちながら全探索の空間を小さくでき、処理が高速化される。
例えば、「石川の$Aは$Bが好き。」と「石川の$Cも$Dアイスが好き。」との間の自動単一化の過程として、そのまま解を探すのではなく、頭尾の共通部分を削除して ”$Aは$B”

”$Cも$Dアイス”
とした上で、全探索により「$A」と「$B」それぞれに、”$Cも$Dアイス”の全ての部分文字列(これは、$Cや$Dといった変数(${・・・}形式の変数も同じ)は1文字とすると、6文字であるため、6×(6+1)/2+1(<空>分)+1(自分自身を代入分)=23通りある)を代入しつつ、同様に、「$C」と「$D」それぞれに”$Aは$B”の全ての部分文字列(これは、同様に3文字であるため、3×(3+1)/2+1+1=8通りある)を代入してみてできる全ての両文字列(23×23×8×8通り)について、両文字列が一致した場合(例えば、(
”もはアイス”,
”はもアイス”,
”$Aはもアイス”,
”$Cもはアイス”,
”$Aはも$Dアイス”
※ちなみに”$Cもは$Bアイス”は一致しない
)となった場合の代入組の集合{
($A=”も”、$B=”アイス”、$C=<空>、$D=”は”),
($A=<空>,$B=”もアイス”,$C=”は”,$D=<空>),
($A=”$A”,$B=”もアイス”,$C=”$Aは”,$D=<空>),
($A=”$Cも”,$B=”アイス”,$C=”$C”,$D=”は”),
($A=”$A”,$B=”も$Dアイス”,$C=”$Aは”,$D=”$D”) }又は、各代入組の部分的代入の集合(例えば{
($A=”も”、$B=”アイス”),
($A=<空>,$B=”もアイス”),
($A=”$A”,$B=”もアイス”),
($A=”$Cも”,$B=”アイス”),
($A=”$A”,$B=”も$Dアイス”)
})
を解として答えることができる。
なお、$A=”$A”や$B=”も$Dアイス”は、$Aや$Dが自由であり、そこにどのような文字列を代入しても単一化できる(すなわち、無限の解があるということと、その無限個の解(文字列)の制約(正規表現的な形)のあり方)を示すことができる。 (0029)
また、特許文献1の請求項21は、
各変数に相手の文字列のあらゆる部分文字列(<空>及び文字列全体も含む)又は自分自身を代入してみて両文字列が一致する場合を探す全探索により極小となる解の集合を求める際、
変数に代入する部分文字列に変数が含まれる場合に、当該部分文字列に含まれる変数を両文字列にそれまで存在しなかった新しい変数で置き換えながら、該新しい変数に対しての同様の代入も以後再帰的に行いながら両文字列が一致する場合を探す全探索を行うことを特徴とする
特許文献1の請求項19又は20に記載の処理方法を提供する。
これにより、自文字列内の固定文字を相手文字列内の変数を介して反射的に自文字列内の変数に代入した解をも探す必要のある性格の問題(例えば、両文字列={”$Xは$X”,”い$Yう”}の場合では、解候補として($X=”いう”,$Y=”うはい”)を列挙できなければならない)について、解探索の健全性を維持したまま、解候補列挙の網羅性をより高めることができる。上の例では、両文字列(「パターン対」とも呼ぶ)={”$Xは$X”,”い$Yう”}から($X=”いう”,$Y=”うはい”)という解候補を列挙できることを、本発明により再帰的に($X=”い${Y1}う”)⇒(${Y1}=<空>)⇒($Y=”うはい”)という探索枝(探索木の一部であり、本発明に沿った幅優先探索の場合は有限回で生成可能である)を生成しうることによって、示すことができる。
「再帰的に・・・全探索」とは、例えば、各変数への各ありうる代入(前の特許文献1の請求項と同
じ)を再帰的に繰り返す幅優先探索をしながら一致する代入系列(例えば、上記の($X=”い${Y1}う”)⇒(${Y1}=<空>)⇒($Y=”うはい”)、等)を列挙することである。最初の代入のバリエーションは、両文字列中の変数の種類がそれぞれ2個と3個であり文字列の長さがそれぞれ6字と7字(変数はまとめて1字と数える)であれば、2個×(7×(7+1)/2+1+1)+3個×(6×(6+1)/2+1+1)=60+69=129通りとなる。これらの枝から派生するさらなる枝の最長深さが均等になるように幅優先探索を行う場合、代入回数等によるリミッター(上限値と比較するプログラムステップ等)を設けることにより、一回一回の探索を適当な計算量に制限することができる(再帰性によって保証されなくなった停止性や応答速度の確保)。なお、深さ優先探索とした場合にも、深さの制限や代入回数等によって計算量を制限することができる。いずれも自己再帰や相互再帰による無限ループを、再帰的な関数の呼び出しを管理するスタック構造(構造体の配列)等を設けて、先祖(より根方向)となる枝の呼出しパラメータ(その代入系列(代入文脈)に応じた両文字列の状態表現を含んでいてもよい)を現在の呼出しパラメータと比較したりすることにより回避することができる。また、両文字列の頭尾に存在する固定文字列が共通して存在する文字数分一致しているかどうかなどにより、単一化しえない枝の枝刈りを行うこともできる。なお、制限した計算量(例えば代入百万回や探索深さ20以内)の探索により解が見つからなかった場合に「解なし(精度:代入百万回かつ探索深さ20以内)」として、見つかった場合に、「($X=”いう”,$Y=”うはい”),(・・・),・・・(但し、精度:代入百万回かつ探索深さ20以内)」等として探索精度を明示しながらユーザに答えることもできる。また、代入の制限回数以内かつ制限探索深さ以内で明らかに全探索できた場合(完全性のある場合)には、その旨を「解なし(全探索済)」あるいは「($X=”いう”,$Y=”うはい”),(・・・),・・・(全探索済)」等と明示して、ユーザに答えることもできる。
(0030)
また、特許文献1の請求項22は、
変数に代入した結果についても、各文字列の頭及び尾に共通して存在する文字数分の固定文字を両者から除いて残る二つの文字列を、
「相手の文字列のあらゆる部分文字列(<空>及び文字列全体も含む)」の対象となるの「相手の文字列」として、探索が進むごとに、文字列の頭又は尾に存在する固定文字数が少なくすることを特徴とする、
特許文献1の請求項19〜21のいずれか一項に記載の処理方法を提供する。
これにより、探索を進めるごとに(先の枝にいくほど)枝の個数が少なくなり計算量を節約することができる。
(0031)
また、特許文献1の請求項23は、
前記固定文字列又は変数を含む文字列として極小となる解の集合を求める際、
束縛されない変数が互いに残っているパターンとヘッド部又は事実とからなる両文字列(第一の文字列と第二の文字列とする)に含まれる各変数が、各文字列内では共通に束縛され、文字列間では独立に束縛されるものとしながら(あるいは、同名変数を共通に束縛するスコープを各文字列内のみ(あるいは、文字列間は変数のスコープ外)としながら)、
各変数に、固定文字列(空文字を含む)又は変数を含む文字列を再帰的に代入してみて解の集合を求める処理方法であって、
代入してみる変数を相手文字列の頭又は尾が固定文字である自文字列の対応する頭又は尾の変数に限定し、
代入値を、該頭である場合には該頭の固定文字もしくは固定文字列に続く新しい変数又は<空>とし、該尾である場合には新しい変数に続く該尾の固定文字もしくは固定文字列又は<空>とし、
変数に代入した結果について、各文字列の頭及び尾に共通して存在する文字数分の固定文字を両者から除くことを繰り返す、
ことを特徴とする特許文献1の請求項16又は17に記載の処理方法を提供する。
これにより、頭及び尾の固定文字の存在に着目して解の列挙範囲を(探索の網羅性を損なわずに)大幅に制限すること可能になり、大幅な計算量節約と高速化が可能になる。 (0032)
また、特許文献1の請求項24は、
前記固定文字列又は変数を含む文字列として極小となる解の集合を求める際、
束縛されない変数が互いに残っているパターンとヘッド部又は事実とからなる両文字列(第一の文字列と第二の文字列とする)に含まれる各変数が、各文字列内では共通に束縛され、文字列間では独立に束縛されるものとしながら(あるいは、同名変数を共通に束縛するスコープを各文字列内のみ(あるいは、文字列間は変数のスコープ外)としながら)、
各変数に、固定文字列(空文字を含む)を再帰的に代入してみて解の集合を求める処理方法であって、
各文字列の頭及び尾に存在する文字数分の共通する固定文字を除いてできる両文字列中の固定文字種(変数の識別子やデリミタを除いた文字種)だけを用いてできる束縛情報を、束縛する値の文字列長の合計が小さいものから順に列挙していくことにより求める、 特許文献1の請求項16又は17に記載の処理方法を提供する。
これにより、一定の性質をもった問題については、効率よく解に到達し、列挙することもできる。
(0033)
また、特許文献1の請求項25は、
求めた「変数を含む文字列として極小となる解の集合」をもとに、
当該ホーン節の変数を当該変数を含む文字列で一時的に書き換えてできるホーン節により探索を継続する特許文献1の請求項19〜24に記載の処理方法を提供する。
これにより、パターンとホーン節(ルール)のヘッド部とが単一化するために必要であることが計算された制約(上記の例では、変数「$C」が”$Aは”という形の文字列で束縛(代入)されることでしか単一化しえないという制約の働くような単一化方針(例えば、上記最後の代入組の場合)もある)を、そのホーン節のボディ部の探索プロセスに伝播することができ、探索を効率化することができる。
(0034)
また、特許文献1の請求項26は、
求めた「変数を含む文字列として極小となる解の集合」をもとに、
「変数を含む文字列」の変数部分に、当該「変数を含む事実」の解組の集合としてあらかじめ定義された固定文字列組の集合の各要素を代入してできる固定文字列組の集合を返す、
特許文献1の請求項19〜25のいずれか一項に記載の処理方法を提供する。
これにより、変数(一個又は複数)を含む事実とその変数に埋めうる適切な答え(又は仮説)の集合とをひもづけたデータベース(例えば、「言葉方程式(登録商標)」「VLANK(登録商標)」中の知識源)と効率的に連携した解探索を行うことができる。また、似た文型をもつ大量の事実を、本発明の枠組みと連携させて効率的に管理することができる。
(0035)
また、特許文献1の請求項27は、
前記自動単一化処理又は自動導出処理において、
変数を含む第一のパターンと変数を含む第二のパターンとの自動単一化を行う場合、
両パターンの頭及び尾に存在する文字数分の固定文字が一致しており、かつ、同じ変数が各パターン内で一度しか出現しない場合、
無限個の解の存在を意味する情報を返す、
特許文献1の請求項1から26のいずれか一項に記載の処理方法を提供する。
(0036)
また、特許文献1の請求項28は、
特許文献1の請求項1から27のいずれか一項の方法を実行するための装置を提供する。
(0037)
また、特許文献1の請求項29は、
特許文献1の請求項1から27のいずれか一項の方法をコンピュータに実行させるためのコンピュー
タプログラムを提供する。
(特許文献1の発明の効果)
(0038)
本発明の効果は、各特許文献1の請求項について上述したとおりである。
(特許文献1の図面の簡単な説明)
(0039)
(図1)図1は本発明を最も効果的に実施するネットワークシステムの全体図である
。(実施例1)
(図2)図2は本発明を実施するコンピュータのハードウエア構成を示した説明図で
ある。(実施例1)
(図3)図3は本発明を実施する端末における画面表示の例を示した説明図である。
(実施例1)
(特許文献1の発明を実施するための形態)
(0040)
本発明は、ネットワークに接続された/接続されてないあらゆる種類のコンピュータ(クラウドサーバー、大型汎用機、デスクトップPC、ノートPC、携帯端末、本発明専用機)において実施することができるが、一般的なマルチタスク機能とウィンドウ機能をもちインターネットに接続されたPCにより実現した形態により説明する。
図1は本発明を最も効果的に実施するそのネットワークシステムの全体図であり、コンテンツ管理装置1は、利用者PC2又は利用者兼管理者PC2により、本発明で取り扱うコンテンツ(ルールや事実)の投稿を受け付け、所定のポリシーによって共有アクセス権やコンテンツ提供優先順位を制御しながらコンテンツを配信する公知のファイル共有サーバーでよい。利用者PC2は、その利用者ごとに、その信じる内容(や検討したい内容)を自然言語で表現したコンテンツ(ルールや事実)を本発明の方法に沿って入力して記憶し本発明の方法によって処理するコンピュータ、携帯端末等である。
図2は本発明で用いるコンピュータのハードウエア構成を示した説明図である。これは計算機の構成としては一般的なものであり、本発明の特徴は、不揮発性メモリ2hに記憶されたプログラム3及びコンテンツデータ4の指示や記載に従い自然法則を用いてCPU2eで処理される処理の内容、及び、利用者との対話プロトコル(書式)の在り方にある。
図3は本発明を実施する端末における画面表示の例を示した説明図である。図では「?$Aしない」という問い(オープンクエスチョン形式)に対して、図示しない記憶したリストLの1行目の「されていやなことはなるべくしない」という事実を用いて「$A =
されて嫌なことをなるべく/1/」という答えを列挙し、同様にリストLの9行目の「いじめをしない」という事実を用いて「$A = いじめ/9/」と答えている。
(0041)
このような実施形態においては、C++言語等を介して製造されたコンピュータプログラムにより、コンピュータ(PC等)に可能なあらゆる動作を実施させることができる。したがって、自然法則を用いたコンピュータの公知の基本的な動作(レジスタやメモリやストレージへの記憶・取り出し、四則演算、比較、等)や既に開発環境等の標準ライブラリとなっている一般的な機能(変数やN次元配列への代入・比較・コピー、文字列や数値の操作/比較/表示、リスト構造・キュー構造・ハッシュ構造・ベクトル型等の操作、バイナリ―サーチやソート操作、正規表現によるパターンマッチ操作、ネットワーク通信操作、等)の実現方法については、本発明の本質(新規性や進歩性につながる独自の構成)とも異なり、当業者にもよく知られているので、詳述はしない。一方、このような一般的な機能を組み合わせて、本発明に固有の処理をどのような操作順序や記憶の仕方(アルゴリズムやデータ構造)で実現するかについては、以下に詳述する。このアルゴリズム等の説明、上記した課題解決手段の説明及び本発明の図面の説明を提供して開発の参考とさせることにより、標準レベルの職業的プログラマであれば、標準的なアプリケーションプログラム開発技法(C++によるGUIアプリケーション統合開発環境、等)を用いて、本発明の方法をコンピュータに実施させることが明らかに可能となり、また、この方法のための装置やプログラムを作成することも可能となる。
(0042)
以下に示すアルゴリズムは、C言語/C++言語等を用いて所望の「関数」を新たに定義した上で関数呼出しを行うという標準的な構造化プログラミングをベースにしたアルゴリズムであり、当業者は、下記各関数の機能分担に応じた入出力や機能切り分けを行いながら(或いは、下記に示した仕様に沿って関数群をそのままコーディングすることにより)、本発明の解決手段に相当する処理手段(プログラムや計算機)を実現することが可能となる。
(0043)
■問い合わせPに対する知識リストLの処理アルゴリズム仕様
=====================================================================================================================
関数Q1(P:変数を含みうるパターン,L:知識リスト):★特許文献1の請求項に共通するメイン関数の特許文献1の実施例1★

1.Lの最初の行の内容B(事実又はホーン節)を取り出す。
ただし、Lが空の場合(最初の行が取り出せなかった場合)、偽を出力して終了。
2.変数の束縛情報Cの初期値を空とし、下記関数H(P,B,C)を呼出し、真となる(=マッチする)束縛情報(=解集合)Cを出力。
真(=マッチした)の場合
真(はい)を出力する(マッチした内容Bの行番号も添えて出力する)。
偽の場合
何もしない。
3.Lの次の行の内容B’が
ある場合
・B←B’とし、2に移動する。
ない場合
・2で真を一度も出力していない場合は偽(いいえ)を出力。
・終了。

(0044)
■問い合わせPに対する知識リストLの処理アルゴリズム仕様(事前固定文字列化版) =====================================================================================================================
関数Q2(P:変数を含みうるパターン,L:知識リスト):★特許文献1の請求項に共通するメイン関数の実施例2(事前固定文字列化版)★

(事前の固定文字列化)
1.{Lのみから演繹できるすべての文字列/その各文字列を演繹する根拠として用いたLの行番集合}を各行とする固定文字列テキストTを求める。
具体的には、上記関数Q1(”$A”,L)の出力系列(A=解1/根拠1,A=解2/根拠2,・・・)の要素を各行としてマージしたテキストTを求める。
求める途中で無限ループになる場合について、明示的な呼出管理スタック等を用いた無限ループ検出機能により演繹を部分的に省略する。
・例えば、ホーン節の真偽の確認をある変数束縛条件下でコンピュータが行う途中で
同じホーン節の真偽を同じ変数束縛条件下で確認しようとしていないかを、
構造体(確認中のホーン節識別子,現在の変数束縛条件)をメンバーとする呼出管理スタックを管理し、
呼出し時にスタックの根に向かって同じ組み合わせがないかリニアサーチすることにより
無限ループを検出する。

(固定文字列のみである故にQ1よりシンプルな方法(関数F)で解集合を求める)
2.テキストTの各行tにつき、下記関数F(P,t,C)が真となるCをすべて出力する。
(最終結果の出力)

3.Cが一つでもあれば真を出力し、なければ偽を出力する。

(0045)
■問い合わせPに対する、一の事実(固定文字列)又はホーン節B(但し、ヘッドに含まれるすべての変数がボディにも存在)の処理アルゴリズム仕様
=====================================================================================================================
関数H(P:変数を含みうるパターン,B:一の事実(固定文字列)又はホーン節,C:変数の束縛情報):★特許文献1の請求項1〜15の発明で使用する関数の特許文献1の実施例1−1★

Pが変数を含まない場合{
Bが事実である場合{
P=Bの場合は、真を返す。
そうでない場合は偽を返す。

Bがホーン節である場合{
Bのヘッド部が変数を含まない場合{
P=Bのヘッド部の場合は、関数D(Bのボディ部,E)の真偽を返す。
そうでない場合は偽を返す。

Bのヘッド部が変数を含む場合{
F(Bのヘッド部,P,C1)を真とする各C1について、
関数D(Bのボディ部にC1を適用したもの,E)の結果が真となるC1があれば、 真を返す。
そうでない場合は偽を返す。



Pが変数を含む場合{
Bが事実である場合{
F(P,B,C1)が真となるC1が存在すれば、そのようなすべてのC1をCに加えて真を返す。
そのようなC1が存在しなければ、偽を返す。

Bがホーン節である場合{
Bのヘッド部が変数を含まない場合{
F(P,Bのヘッド部,C1)を真とするC1が存在する場合で、かつ
関数D(Bのボディ部,E)が真であれば、そのようなすべてのC1をCに加えて真を返す。
そうでない場合は偽を返す。


Bのヘッド部が変数を含む場合{
★特許文献1の請求項12の発明を実施する場合★
//高速化の工夫(オプション)開始
PとBのヘッド部の頭及び尾に存在する文字数分の固定文字が一致していない場合{
偽を返す。

//高速化の工夫(オプション)終了

★特許文献1の請求項13の発明の実施★
PとBのヘッド部の頭及び尾に存在する文字数分の固定文字が一致している場合{
関数D(Bのボディ部,E)の結果が真となるE中のいずれかの束縛情報Gについて、 関数F(P,Bのヘッド部をGで束縛したもの(固定文字列になるはず),C1)を真とするC1があれば
そのようなすべてのC1をCに加えて真を返す。
そのようなC1が存在しない場合は偽を返す。





(0046)
■ホーン節のボディ部(又は変数を共有する重文の問い合わせ)の解集合の列挙アルゴリズム仕様
=====================================================================================================================
呼出例
→関数D("$Aと$Bは友達だ,$Aは人間,$Bは人間", E);
戻り例
←真(E=((A=花子,B=太郎),(A=太郎,B=次郎),(A=次郎,B=三郎)))
=====================================================================================================================
関数D(J:ボディ部(又は変数を共有する重文の問い合わせ),E:解集合):★特許文献1の請求項6の発明で使用する関数の特許文献1の実施例1−2A★
※ただし、知識源全体Lはグローバル変数に格納して参照可能とする

1.J中の最初の文Mを取り出す。最初の文が存在しない場合真を返す。
2.知識源全体Lに対して、前記関数Q1(M,L)又はQ2(M,L)を呼び出す。
結果が偽のときは
偽を返す。
真のとき
Mが変数を含まない場合
何もしない。
Mが変数を含む場合
Mを真とするためにとりうる束縛情報の集合Cを記憶する。
※真とするために束縛不要の変数は、その旨を明示的に示すこともできる。
※束縛値が無限集合でありながら真とするために一定の条件を要求する場合は、その条件を付記することもできる。
3.J中の次の文M’を取り出す。存在しない場合、真(E=束縛情報の集合C)を返す。
4.知識源全体Lに対して、前記関数Q1(M’,L)又はQ2(M’,L)を呼び出す。
結果が偽のときは
偽を返す。
真のとき
M’が変数を含まない場合
何もしない。
M’が変数を含む場合
M’を真とするためにとりうる束縛情報の集合C’と記憶してあった集合Cとの積集合を新たなCとする。
但し、元々の集合Cが空集合でなく積集合をとって空集合となったときは偽を返す。
※真とするために束縛不要の変数は、その旨を明示的に示すこともできる。
※束縛値が無限集合でありながら真とするために一定の条件を要求する場合は、その条件を付記することもできる。
5.3に戻る。


関数D2(J:ボディ部(又は変数を共有する重文の問い合わせ),E:解集合):★特許文献1の請求項6の発明で使用する関数の特許文献1の別の実施例1−2B(関数の再帰呼び出しを用い束縛情報を他の文に波及させることにより高速化を図ったもの)★

1.J中の最初の文Mを取り出す。Mが存在しない場合真を返す。
2.知識源全体Lに対して、Q1(M,L)又はQ2(M,L)を呼び出す。
結果が偽のときは
偽を返す。
真のとき
Mが変数を含まない場合
Jの次の文がなければ真を返し
あれば次の文を新たなMとし2に戻る。
Mが変数を含む場合
Jの次の文がなければ、とりうる束縛情報をEに格納して真を返し
あればとりうる束縛情報を集合Cとして記憶する。
3.Eを空にし、集合C中の各束縛情報Kについて
再帰呼び出しD2(KによりJの次の文以降を束縛してできるボディ部J’,E’)を実行する
結果が真のときは
Eに、真となったそのKかつE’を加える
4.各Kについて一度も真となっていないときは偽を返し、一度でも真となっているときは真(E)を返す


関数D3(J:ボディ部(又は変数を共有する重文の問い合わせ),E:解集合):★特許文献1の請求項5の発明で使用する関数の特許文献1の実施例1−3★

1.J中の最初の文M1を取り出す。最初の文が存在しない場合真を返す。
2.知識源全体Lに対して、Q1(M1,L)又はQ2(M1,L)を呼び出す。
結果が偽のときは
偽を返す。
真のとき
M1が変数を含まない場合
何もしない。
M1が変数を含む場合
とりうる束縛情報の集合C1を記憶する。
3.同様に、偽とならないうちはM2,M3・・・についてC2,C3・・・を求めていく。
偽となった場合は偽を返す。
4.残ったC1,C2,C3・・・Cnについて積集合Cを求めて、真(C)を返す。


(0047)
■問い合わせPに対する事実Sの多長一致解(複数も可)の列挙アルゴリズム仕様
=====================================================================================================================
呼出例
→関数F("$Aと$Bは友達だ","太郎と次郎と三郎は友達だ", "");
関数F(P:変数を含みうるパターン,S:定数文字列,C:変数の束縛情報):★特許文献1の請求項2の発明(ただし、「(又は最後)」と「又は前」を省いた実現例)で使用する関数の特許文献1の実施例1−4A★

(準備)
1.P中の変数の種類数Vと、出現する変数の名前N1,N2,・・・を出現順に求める

(Pがもともと変数を含まない場合への対応)
2.Vが0のときは、
⇒ P=Sのとき、真を返して終了。
⇒ P≠Sのとき、偽を返して終了。

(出力)
3.Vが1のときは、N1がP中に何回出現しようとも、PとSの単一化の解R1は1つしかないので、
⇒ マッチする場合、その唯一の解を「CかつN1=R1」として出力して、真を返して終了。
⇒ マッチしない場合、偽を返して終了。
※単一化そのものは、正規表現とのマッチ(同じ変数が二度以上出現する場合は後置参照あり)として実施可能

4.Vが2以上のとき
変数N1についての最長一致解R1で、P中の全てのN1を埋めてできるP’について 再帰呼び出しF(P’,S,CかつN1=R1)を実行
⇒ N1について最長一致解とした解集合が出力される

5.R1’←R1の最後の1文字を除いた文字列とし
P中の全てのN1をR1’で埋めてできるP’’について
再帰呼び出しF(P’’,S,CかつN1=R1’)を実行
⇒ N1について、最長一致解より1文字除いた解候補R1’とした解集合が出力される

6.R1’が
1文字以上の場合、(★特許文献1の請求項3では最短一致解の文字数より大きい場合)
⇒R1←R1’として5に戻る。
0文字の場合、(★特許文献1の請求項3では最短一致解の文字数である場合)
終了。


(0048)
関数F(P:変数を含みうるパターン,S:定数文字列,C:変数の束縛情報):★請求項4の発明で使用する関数の実施例1−4B★
//P中で変数が最初に出現した直後の固定文字列の最初の文字Cに着目して高速化の工夫その1をした関数F

(準備)
1.P中の変数の種類数Vと、出現する変数の名前N1,N2,・・・を出現順に求める

(Pがもともと変数を含まない場合への対応)
2.Vが0のときは、
⇒ P=Sのとき、真を返して終了。
⇒ P≠Sのとき、偽を返して終了。

(出力)
3.Vが1のときは、N1がP中に何回出現しようとも、PとSの単一化の解R1は1つしかないので、
⇒ マッチする場合、その唯一の解を「CかつN1=R1」として出力して、TRUEを返して終了。
⇒ マッチしない場合、偽を返して終了。

4.(高速化の工夫その2。この処理は5以降でカバーされるため省いてもよい。★この工夫2は、特許文献1の請求項にはしていない★)
Vが2以上のときで、
すべての変数(N1(=N),N2,・・・)について最長一致モードでマッチしてみた解と
すべての変数(N1(=N),N2,・・・)について最短一致モードでマッチしてみた解と
が同一(N1=R1,N2=R2,・・・)のとき
⇒ その唯一の解を「CかつN1=R1かつN2=R2かつ・・・」として出力して終了する
そもそもマッチしなかった場合、
⇒ 偽を返して終了。
同一でないとき
⇒ 5に続く

5.Vが2以上のとき
変数N1についての最長一致解R1で、P中の全てのN1を埋めてできるP’について 再帰呼び出しF(P’,S,CかつN1=R1)を実行
⇒ N1について最長一致解とした解集合が出力される

6.P中で変数N1の後すぐに変数N1(自分自身)が続くとき
⇒ 7以降で処理する
別の変数N2が続くとき
⇒ 7以降で処理する(ただし、7で1文字CはN2の解R2の最初の1文字とする)
固定文字が続くとき
⇒ 7以降で処理する

7.P中で変数N1が最初に出現した直後の固定文字である1文字C(直後が別の変数N2であるときはR2の最初の1文字C)が、
最長一致解R1に含まれる場合
⇒ 1)R1’←R1の文字列の最後からそのCにあたるまでの部分文字列を削除した文字列
⇒ 2)P’’←R1’でP中のすべてのNを埋めてできるパターン
⇒ 3)再帰呼び出しF(P’’,S,CかつN1=R1’)を実行
⇒N1について一段階だけ短めの解が存在すれば出力できるはず
最長一致解R1に含まれない場合
⇒ N1についてはより短い解の列挙が終わったので、終了。

8.R1←R1’として7に戻る。

=====================================================================================================================
以上が、特許文献1(特願2014−087008)からの抜粋である。
In some embodiments described below, the above-described functions specific to the present invention are additionally implemented in the embodiments of the following patent specifications (excerpts from Patent Documents 1 and 6 above) by the same inventor. Can be implemented. In addition, the following citations of Patent Documents 1 and 6 include supplementary purposes for the feasibility and inventive aspects of the present inventors.

===
<Problem of Patent Document 1> It is possible to automatically process knowledge expressed in the form of embedding variables in a natural language in the same manner as PROLOG, and comprehensive deduction and solution search (automatic unification processing) at the predicate logic level , Automatic derivation process, backward reasoning, backtracking).
Make full use of the advantage that variables are not bound by case structure, speed up processing, and display results for proof and learning.
<Solution means (outline) of Patent Document 1>
When inputting “facts”, “rules”, or “goals” in PROLOG, humans input the constant part and variable part of the content corresponding to “literal” in PROLOG by distinguishing them by character type, delimiter or escape character, and input them to the computer.
The computer performs automatic unification processing, automatic derivation processing, or both of the sentence included in the input while handling the variable as being able to cross the boundary between the main part and the predicate of the sentence.
Unification of a pattern that can contain a variable and a constant character string that is a sentence that does not contain a variable, finds the longest matching solution of the variable that first appears in the pattern, and sets the character string of the longest matching solution For each new pattern created by substituting the process of cutting from the back to the empty character into the pattern, recursively in a similar manner while storing each state of the solution of the cutting process that was the premise that the new pattern was created Iterate until there are no more variables, and when there are no more variables, combine the intermediate solution states that are unified to obtain the answer for each unification.
The speed is increased by detecting whether or not the fixed character string in the pattern is included in the character string in the process of cutting the longest matching solution.
Pattern-to-pattern unification is accelerated by focusing on the coincidence of the beginning and end of the word. A specific method for full search is also provided.
<Solutions for Patent Document 1 (full text, but some corrections / corrections not to be confused with the present invention)>
(0009)
This invention is made | formed in view of this subject, Claim 1 of patent document 1 is
A method in which a computer automatically performs part or all of the functions of a logic programming language PROLOG,
When a human inputs "facts", "rules", or "goals" in PROLOG, the constant part and the variable part of the content (hereinafter referred to as "sentence") in PROLOG are referred to as the character type, delimiter or escape character. According to the input to the computer,
While the computer treats the variable as a sentence main part, predicate, subject, predicate, object, complement, conjunctive modifier, conjunctive modifier, or something that can cross sentence boundaries, the above "facts", "rules" or Performing automatic unification processing, automatic derivation processing, or both of sentences included in the input of “goal”;
A processing method is provided.
Here, “a human being inputs a constant part and a variable part into a computer by distinguishing them by a character type, a delimiter or an escape character” means that a human is in an input field of application software (processing system) according to the present invention. Input directly after command prompt (via or without front-end processor), copy paste or cut paste from internet browser or text editing software, etc. Including reading, quoting, referencing, etc.
In addition, “the computer treats variables as if they can cross the sentence main part, predicate, subject, predicate, object, complement, continuous modifier, joint modifier, or sentence boundary” It can only cross the boundaries (explicit delimiters) of case structures with explicit delimiters via prepositions such as particles and English (including those that fall under the hierarchical structure of syntax analysis results and semantic analysis results) Instead, it can cross the boundary between S and V in English, for example, SV format, SVO format, SVOO format, and SVOC format, V and O boundaries, V and C boundaries, etc. Includes a mode that is handled as possible (in contrast, there may be a mode that is not handled). In these cases, as candidate solutions that can be included in a variable, an arbitrary partial character string is extracted by ignoring the delimiter unit by the grammatical structure as a sentence from the whole sentence or the character string that constitutes the whole sentence, and the hierarchy The entire compound sentence / heavy sentence with a typical reference structure, a longer paper, etc., and any substrings of those are also targeted (note that it is treated as something that can straddle a sentence boundary, When handling a set of knowledge sources (for example, reading, writing, referencing, etc., a set of knowledge sources collectively in a file), it is necessary to separate the knowledge sources at a boundary other than the sentence boundary Therefore, for example, a line feed code or a tab code can be used as such a delimiter).
As a result, knowledge and information expressed in the form of embedding variables in natural language as well as knowledge and information in ordinary sentence format are fully integrated with the possibility of practical interoperability between them. As a source, it is possible to perform automatic processing by a computer without particularly distinguishing between the two (overcoming of the above “difficulty A”).
In order to open the possibility of “realistic” interaction “sufficiently”, automatic processing by a computer should be provided as a search processing system 1) simplicity of a search expression (expression specifying a pattern), 2) sufficient The accuracy (accuracy of the solution) and 3) sufficient reproducibility (exhaustiveness in extracting solution candidates) must be provided, but in the present invention, free (ie, grammar and meaning Basically in the PROLOG knowledge processing procedure (and the underlying knowledge interpretation policy) while allowing the embedding of variables (which may be multiple types or multiple times) in places (not limited to delimiters) By doing so, the risk of precision (solution accuracy) degradation that can be caused by hybrid knowledge processing procedures (and complex knowledge interpretation policies corresponding to the hybrid processing procedures) as in other processing systems is reduced. Avoiding natural language delimiters by handling variables as "sentences, predicates, subjects, predicates, objects, complements, collocation modifiers, collocation modifiers or sentences that can cross sentence boundaries" Unfair disagreement (regular expression) caused by crying appearance of specified patterns by expressions (reading marks, punctuation marks, parentheses, commas, periods, etc.) and modifier phrases (adjective phrases, adverb phrases, non-essential case expressions, etc.) (Unmatched), and a certain level of reproducibility (exhaustiveness in extracting solution candidates) between superficial character string expressions (between search formulas and knowledge sources) with no case structure specified. Yes. In addition, integrated and continuous citation and extraction (as candidate solutions to variables) that make it difficult to damage the exact context (character strings before and after) of the natural language that became the source of knowledge are possible. Simplicity makes it easy and easy to check and verify the substantial soundness of reasoning (the basis and justification of reasoning), and provides users with a real sense of security that the basis is always clear. Take full advantage of the specifications that variables are not bound to case structure (and you don't have to know about case structure rules (appearance order, etc., and there is no fear that the order of arguments may be wrong)) It is possible to come.
Since the present invention is primarily intended for Japanese (the amount of information for one character is large and there is no space between words), there are many contents that use characters as processing units and delimiters. (The amount of information of one character is small, the number of characters of one sentence is large, but there is a space between words), the same processing can be performed in units of words separated by spaces.
(0010)
Further, claim 2 of Patent Document 1
In the automatic unification process,
Unification of a pattern that can contain variables (constant part and variable part separated by character type, delimiter or escape character) and constant string that is a sentence that does not contain variables.
Find the longest matching solution (eg Taro and Jiro) of the variable (eg $ X) that appears first (or last) in the pattern (eg $ X and $ Y like $ Z) Each new pattern (eg, Taro and Jiro> Taro and Next> Taro and>Taro>Taro> Sky) is substituted into the pattern by cutting the character string from the back (or front) until it becomes an empty character (example: : "Taro and Jiro and $ Y like $ Z">"Taro and next and $ Y like $ Z">"Taro and $ Y like $ Z">"Taro and $ Y like $ Z ”>“ Thick and $ Y like $ Z ”and“ and $ Y like $ Z ”), each state of the solution of the scraping process ($ X = Taro and Jiro> Taro and Next> Taro and>Taro>Tha> Sky)
Repeat recursively until there are no more variables,
The state of each intermediate solution that is unified when there are no more variables (eg, true ($ X = Taro and Jiro, $ Y = Saburo), true ($ X = Taro, $ Y = Jiro and Saburo)) Combined to obtain each unification answer (example: answer 1 = ($ X = Taro and Jiro, $ Y = Saburo), answer 2 = ($ X = Taro, $ Y = Jiro and Saburo)) A processing method according to claim 1 of Patent Document 1 is provided.
Here, “(or last)” corresponds to “(or previous)”, and means that when starting from the variable that appears last, it is necessary that the beginning of cutting be from the front.
In this way, it is possible to verify the status of each candidate solution that covers all the possibilities from the longest match solution to the shortest match solution, and to provide a comprehensive answer (a set of narrower solution candidates). It becomes possible.
(0011)
Further, claim 3 of Patent Document 1
A processing method according to claim 2 of Patent Document 1 is provided, in which, instead of gradually cutting until an empty character, only the shortest matching solution obtained separately is gradually cut.
As a result, it is possible to save the calculation of the solution search from the length less than the shortest matching solution to the “empty” character, and it may be possible to speed up the automatic processing.
(0012)
Further, claim 4 of Patent Document 1
When scraping gradually until it becomes an empty character,
1 character C (immediately after (or immediately before)) is another variable immediately after (or immediately before) the variable appears first (or last) in the pattern. When the first (or last) character C) of the solution candidate assigned as the solution candidate is included in the longest matching solution,
The processing method according to claim 2 or 3, wherein the partial character string from the last (or first) of the character string of the longest matching solution to the first C is deleted including the C. provide.
Here, “(or last)” corresponds to “(or immediately preceding)”, and means that when starting from the last appearing variable, it is necessary to start from the front.
This saves enumeration of solution candidates that do not match a fixed character immediately after (or immediately before) a variable and a search based on the solution candidates, and may speed up automatic processing.
(0013)
Further, claim 5 of Patent Document 1
In the automatic unification process or automatic derivation process,
When obtaining binding information for the “goal” (including “subgoal”, the same applies hereinafter)
The binding information is obtained independently for each sentence constituting the “goal”, and the return value true and the product set are returned when the product set of the binding information is not empty. The processing method described in the section is provided.
Here, the binding information is information indicating whether or not such a solution candidate is assigned to each variable at the same time. Binding information indicating one binding method for each variable is obtained by interpreting “,” as an AND combination, “variable name 1 = value 1, variable name 2 = value 2,..., Variable name N = While it can be expressed in the form of a list such as “value N”, multiple binding methods can be expressed as a set of such lists, or by specifying an AND / OR combination instead of “,”. It can be expressed in the form of enclosing and the conjunction standard form or disjunctive standard form that standardizes the whole of multiple bindings.
Thereby, there are a plurality of patterns (sentences) to be satisfied at the same time, and in the case of a problem form that the same solution should enter the same name variable between patterns (sentences) (for example, such an AND join query from the user, When there is more than one sentence in the body of the rule), it is unlikely that the full-text search process for the pattern on the right side of the rule is wastefully repeated for each unification result of the pattern on the left side. It is possible to avoid the inefficiency of depth-first search while backtracking the part (more remarkable inefficiency in the form of embedding variables in a natural language), and to simplify the processing for each pattern to be satisfied at the same time. In addition, display and verify the inference process (completeness and soundness) in an easy-to-understand manner. Further, it is possible to prevent the orderness (between sentences in the body part), which is unnecessary for the intuition necessary for the meaning of the rule and should not be defined, from giving side effects to the inference process.
(0014)
Further, claim 6 of Patent Document 1
In the automatic unification process or automatic derivation process,
When seeking binding information to be the “goal”,
Empty the existing binding information first,
The sentence set included in the “goal” is automatically calculated with respect to whether or not the sentence can be true under the application of the existing binding information, and additional binding information for the sentence, and the additional binding information is converted into the existing binding information. While adding this sentence, recursively reduce it,
Provided is the processing method according to any one of claims 1 to 4 of Patent Document 1, wherein the existing binding information when the sentence set becomes an empty set while being true is used as binding information that becomes a "goal". To do.
Here, “recursively reduce” means that as the recursion becomes deeper, the sentence set becomes smaller and the binding information becomes more complex (more variables are bound and the range of values to be bound is narrowed down). For example, equivalent recursive processing is realized by processing for recursively calling in C language or a stack structure for depth-first search (structure array and stack pointer, etc.) declared and defined independently.
This simplifies the problem of automatically processing open questions consisting of AND combinations of multiple patterns that should be satisfied at the same time, expressed in the form of embedding variables in natural language, into simpler and recursive partial problems with the same structure. Transform and facilitate inference process display and verification (completeness and soundness).
(0015)
Further, claim 7 of Patent Document 1
In the automatic unification process or automatic derivation process,
If you want to unify a pattern that does not contain a variable with a fact that does not contain a variable,
Return true when the pattern and fact match as a character string, or return false when the pattern and fact do not match as a character string. The processing method according to any one of claims 1 to 6 of Patent Document 1. provide.
Thereby, it can search simply and rapidly.
Note that “facts that do not include variables” include multiple sentences separated by punctuation marks. The “matching as a character string” may be provided with a mode in which the character string of the pattern may match the portion of the actual character string.
As a result, a plurality of pieces of information of the same type can be expressed together as one fact and can be searched. Moreover, it becomes easy to express some sort of order (for example, size, preciousness, oldness, etc.) between a plurality of elements.
(0016)
Further, claim 8 of Patent Document 1
In the automatic unification process or automatic derivation process,
When unifying a pattern that does not include a variable and a head that does not include a horn clause variable,
When the pattern and the head portion are matched as a character string, the result of applying the processing method according to claim 5 or 6 of Patent Document 1 using the body portion of the horn clause as a subgoal,
Return false when they do not match. A processing method according to any one of claims 1 to 7 of Patent Document 1 is provided.
As a result, sound mechanical interpretation when the head of a rule that expresses variables in a form embedded in natural language does not include variables, a seamless, easy-to-understand, simple and uniform processing mechanism, and explanation of the corresponding inference process Can be given.
(0017)
Further, claim 9 of Patent Document 1
In the automatic unification process or automatic derivation process,
When unifying a pattern that does not contain a variable and a horn clause that has a head that contains a variable,
The pattern is used as the “constant character string” in the processing method according to any one of claims 2 to 4 of Patent Document 1, and the head unit is used as the “pattern” in the processing method. For each binding information
Returns true if there is a result that is true as a result of processing as a “sub-goal” of the processing method according to claim 5 or 6 of Patent Document 1 applied to the body part of the horn clause, or exists If not, false is returned. The processing method according to any one of claims 1 to 8 of Patent Document 1 is provided.
As a result, if the head of a rule that expresses a variable in the form of embedding it in a natural language includes a variable, and the pattern that triggered this rule does not include a variable, the bound range of the variable in the body part is limited in advance, and true It is possible to speed up the process of false determination.
It can also provide a sound mechanical interpretation, a seamless, easy-to-understand, simple and uniform processing mechanism, and an explanation of the corresponding inference process.
(0018)
Further, claim 10 of Patent Document 1
In the automatic unification process or automatic derivation process,
When unifying a pattern that contains a variable with a fact that does not contain a variable,
The result of processing using the pattern as the “pattern” in the processing method according to any one of claims 2 to 4 of Patent Document 1 and using the fact as the “constant character string” in the processing method is as follows: return,
The processing method as described in any one of Claim 1 to 9 of patent document 1 is provided.
As a result, all the solution candidates (to the case variable) between the pattern and the (static) fact are identified and returned as “results”, so that the basics for overcoming the above “difficulty A” This makes it easy not only to visualize and verify the inference process, but also to facilitate learning through the user's hand, such as rule correction.
(0019)
Further, claim 11 of Patent Document 1
In the automatic unification process or automatic derivation process,
When unifying a pattern containing a variable and a horn clause with a head that does not contain a variable,
Results of processing using the pattern as a “pattern” in the processing method according to any one of claims 2 to 4 of Patent Document 1 and using the head unit as a “constant character string” in the processing method If there is binding information (C) that is true, and if the result of processing the body part of the horn clause as a “subgoal” of the processing method according to claim 5 or 6 is true, the binding information Return true with (C),
The processing method as described in any one of Claim 1 to 10 of patent document 1 is provided.
As a result, all the solution candidates (to each variable) between the pattern including the variable and the head (static including no variable) are identified and returned as a “result”. "The basic mechanism for overcoming can be provided simply, and not only visualization and verification of the inference process, but also learning through the user's hand, such as rule correction, is facilitated.
In addition, it is simply converted into a partial problem with the same structure that is simpler and more recursive (or mutually recursive), facilitating the display and verification (completeness and soundness) of the inference process.
In addition, a sound mechanical interpretation when the head of a rule expressing variables embedded in a natural language does not include a variable, a seamless, easy-to-understand, simple and unified processing mechanism, and the inference process corresponding to these An explanation can be given.
(0020)
Further, claim 12 of Patent Document 1
In the automatic unification process or automatic derivation process,
When unifying a pattern containing variables and a horn clause with a head containing variables,
Returns false if the pattern does not match the number of fixed characters in the head, head or both of the head part,
The processing method as described in any one of Claim 1 to 11 of patent document 1 is provided.
As a result, the calculation amount can be significantly reduced and the processing speed can be improved as compared with the uniform search.
(0021)
Further, claim 13 of Patent Document 1
In the automatic unification process or automatic derivation process,
When unifying the first pattern containing variables and the horn clause with the head containing variables,
If the pattern and the fixed characters for the number of characters in the head and tail of the head part match,
Each obtained by constraining the head part of the horn node by each constraining information in which the result of applying the body part of the horn node as a “subgoal” in the processing method according to claim 5 or 6 of Patent Document 1 is true. For the second pattern,
If the second pattern contains no variables,
The first pattern is used as the “pattern” in the processing method according to any one of claims 2 to 4 of Patent Document 1, and the second pattern is used as the “constant character string” in the processing method. Return the result,
A processing method according to any one of claims 1 to 12 is provided.
Here, “when the second pattern does not include a variable” means that in the horn clause (rule), all the variables included in the head part are also included in the body part “all”. As a result of the variable being bound with a constant (fixed character string), all the variables in the head part are also bound (assigned) with the constant (fixed character string), so the head part variable disappears and the head part becomes a constant character string. It means that it can be considered.
As a result, unification of a pattern including a variable and a horn clause (rule) having a head including a variable can be mechanically and automatically performed by a simple calculation model in a flow that is easy for a user to trace.
That is, all the solution candidates (those that should be assigned to each variable of the pattern) between the pattern including the variable and the head portion (= constant character string) that no longer includes the variable (by each binding information) are identified. The basic mechanism for overcoming the above “Difficulty A” is simplified by reducing (transforming the problem) the original more complex problem (unification of variables vs. variables) into a form that is returned as a “result”. It is made easy to express as a thought process. In addition, in this “reduction (transformation of problem)”, since it is simply transformed into a partial problem with the same structure that is simpler and recursive (or mutually recursive), visualization and verification of the inference process (completely) (Such as sexuality and soundness) as well as learning through the user's hands, such as modifying rules. After all, sound mechanical interpretation when the head of a rule that expresses variables in the form of embedding them in natural language includes variables, seamless, easy-to-understand, simple and unified processing mechanism, and explanation of the inference process corresponding to these Can be given easily.
(0022)
Further, claim 14 of Patent Document 1
The processing method according to any one of claims 1 to 13 of Patent Document 1, wherein a computer restricts input of facts including variables.
Here, the facts including variables (knowledge sources that are not rules) are, for example, “$ X is $ X” (a fact that is tautologically true) or “$ X is $ Y” ( There is a fact that there is no reason to be true if only the superficial sentence pattern matches.
By restricting these to be input to the computer, calculation of automatic unification processing of patterns (statements that can include variables) and facts (statements that do not include variables (= fixed character strings)) is simplified. Fast response by automatic processing is possible. It also makes it difficult to mix unfounded facts into knowledge sources.
(0023)
Further, claim 15 of Patent Document 1
The rule is in the same form as a so-called horn clause, and the computer restricts that the head part includes a variable that does not appear in the body part. Claim 1 to Claim 14 characterized by the above-mentioned. A processing method as described is provided.
Here, “the computer restricts that the head part includes a variable that does not appear in the body part” means that the head part is “$ X is nice” and the body part is “$ Y is strong, $ Y is $ Even if the variables ($ Y and $ Z in this example) are bound (assigned) in all sentences in the body part, such as "Z-friendly, $ Z is a child, $ Y is smart" (In this example, it means that the computer restricts a rule such that $ X) remains unbound from being input, stored, or activated as a knowledge source. As in the case of the fact, such a rule leads to leaving a variable that is not bound to the head part, so that an unreasonable inference result is likely to be generated, and the inference speed is reduced.
By restricting the input of such rules to the computer, a pattern (a sentence that can include a variable) and a head part (a sentence that does not include a variable (= fixed character string) according to claim 13 of Patent Document 1) are combined. Calculation of the automatic unification process is possible, and a high-speed answer by the automatic process becomes possible. It also makes it difficult to produce unreasonable inference results.
(0024)
Further, claim 16 of Patent Document 1
In the automatic unification process or automatic derivation process,
Automatic unification of patterns and heads or facts with unbound variables remaining in each other,
The processing method according to any one of claims 1 to 13 of Patent Document 1, wherein the processing method is performed by obtaining and returning a set of minimal solutions as a fixed character string.
Here, as an example of “a set of solutions that are minimal as fixed character strings”, as a result of automatic unification between “$ A is $ B” and “$ C is also $ D”, {($ A = ”also”, $ B = <empty>, $ C = <empty>, $ D = ”is“) ”($ A = empty, $ B =“ also ”, $ C =” is ”, $ D = Empty)} may be provided.
This makes it possible to provide an example of a solution (particularly the smallest simple example) even when an infinite number of solutions exist.
(0025)
Further, claim 17 of Patent Document 1
In the automatic unification process or automatic derivation process,
Automatic unification of patterns and heads or facts with unbound variables remaining in each other,
It is performed by obtaining and returning a minimal solution set as a character string including variables,
The processing method as described in any one of Claim 1 to 13 of patent document 1 is provided.
Here, as an example of “a set of solutions that are minimal as fixed character strings”, as a result of automatic unification between “$ A is $ B” and “$ C is also $ D”, {($ A = “$ C”, $ B = <free>, $ C = <free>, $ D = “$ B”), ($ A = <free>, $ B = “$ D”, $ C = “$ A is”, $ D = <freedom>)}, and so on. It is considered that the sum of the string length of the value that binds the variable (the value assigned to the variable) (however, if the variable is included, one character per occurrence of the variable) (through the assembly) is minimized be able to.
This makes it possible to provide a general form of a solution even when an infinite number of solutions exist.
(0026)
Further, claim 18 of Patent Document 1
If the fixed characters for the number of characters that exist in common at the beginning and tail of each character string in the pattern and the head part or the fact that the unbound variables remain in each other do not match,
It is characterized by returning false,
The processing method of Claim 16 or 17 of patent document 1 is provided.
Thereby, it is possible to save the automatic search without the possibility of unification and to speed up the automatic processing.
(0027)
Further, claim 19 of Patent Document 1
When obtaining a set of solutions that are minimal as a character string including the fixed character string or variable,
Variables included in both character strings (the first character string and the second character string) consisting of the pattern and the head part or the fact that unbound variables remain in each other are commonly bound in each character string. And while being bound independently between strings (or while the scope that binds the same name variable in common is only within each string (or between the strings is outside the scope of the variable))
For each variable, any substring (<empty>) and the other character string (the second character string for the variable in the first character string, the first character string for the variable in the second character string) (Including the entire character string), or by substituting itself and searching for a case where both character strings match, a search for a minimal solution is obtained by a full search,
The processing method of Claim 16 or 17 of patent document 1 is provided.
“Or substitute yourself” means that “$ X” itself is assigned to “$ X” in the character string, and happens to be in both the first and second character strings. When $ X (the scopes of each other are different) is included, the $ X of the first character string and the $ X of the second character string can be distinguished from each other (for example, “$ X1” and “$$”). Substantial calculations can also be done by substituting (as X2 ", etc.).
As a result, it is possible to ensure a certain level of completeness of the solution set (completeness depending on the nature of the problem (pattern pair)) while ensuring soundness and stopping properties (finiteness of calculation).
(0028)
Further, claim 20 of Patent Document 1
It is not both strings consisting of patterns and heads or facts where unbound variables remain in each other,
Both character strings corresponding to the two character strings remaining after removing the fixed characters corresponding to the number of characters existing in common at the head and tail of each character string of the pattern and the head part or the fact that the variables that remain unbound remain. about,
A processing method for performing the processing according to claim 19 of Patent Document 1 is provided.
As a result, the space for the entire search can be reduced while maintaining a certain level of completeness (in some cases, completeness) of the solution set, and the processing speed is increased.
For example, as a process of automatic unification between "Ishikawa's $ A likes $ B" and "Ishikawa's $ C likes $ D ice", instead of searching for a solution as it is, Delete the common part of "$ A is $ B"
And "$ C is also $ D ice"
In addition, all the partial character strings of “$ C and $ D ice” for each of “$ A” and “$ B” by full search (this is a variable such as $ C or $ D ($ {•• .} Variable is also the same as 6 characters, so 6 × (6 + 1) / 2 + 1 (<empty> minutes) +1 (substituting itself) = 23 types) Similarly, all the partial character strings of “$ A is $ B” for each of “$ C” and “$ D” (since this is also three characters, 3 × (3 + 1) / 2 + 1 + 1 = 8 ways When all the character strings (23 × 23 × 8 × 8) that can be obtained by substituting (A) are matched (for example, (
"Momo ice",
"Hamo ice",
"$ A is also iced",
"$ C is ice cream",
"$ A is $ D ice"
* By the way, “$ C is not the same as $ B ice”))
($ A = ”also”, $ B = “ice”, $ C = <empty>, $ D = ”is”),
($ A = <empty>, $ B = “also ice”, $ C = ”is”, $ D = <empty>),
($ A = “$ A”, $ B = “also ice”, $ C = “$ A is”, $ D = <empty>),
($ A = "$ C", $ B = "ice", $ C = "$ C", $ D = "")
($ A = “$ A”, $ B = “also $ D ice”, $ C = “$ A is“, $ D = ”$ D”)} or a set of partial assignments of each assignment pair (for example, {
($ A = "" and $ B = "ice"),
($ A = <empty>, $ B = "also ice"),
($ A = “$ A”, $ B = “also ice”),
($ A = "$ C", $ B = "ice"),
($ A = "$ A", $ B = "also $ D ice")
})
Can be answered as a solution.
Note that $ A = “$ A” and $ B = “$ D ice” are free to $ A and $ D, and can be unified by substituting any character string (that is, It is possible to show that there is an infinite solution and the constraint (regular expression form) of the infinite number of solutions (character strings). (0029)
Further, claim 21 of Patent Document 1
Substitute all the substrings (including <empty> and the whole string) of the other party's character string for each variable, or try to find a case where both character strings match, and find a minimal set of solutions by full search When seeking
When a variable is included in a substring to be assigned to a variable, the same assignment to the new variable is performed while replacing the variable included in the substring with a new variable that did not exist in both strings. In addition, the processing method according to claim 19 or 20 of the patent document 1 is provided in which a full search for searching for a case where both character strings match is performed recursively thereafter.
As a result, it is necessary to search for a solution in which a fixed character in the own character string is reflexively assigned to a variable in the own character string via a variable in the partner character string (for example, both character strings = { In the case of “$ X is $ X” and “$ Y”, it is necessary to be able to enumerate solution candidates ($ X = “say”, $ Y = “Yes”)). The completeness of enumerating solution candidates can be further improved while maintaining soundness. In the above example, both character strings (also referred to as “pattern pairs”) = {“$ X is $ X”, “yes $ Y”} ($ X = “say”, $ Y = ”yes”) That the solution candidates can be listed recursively according to the present invention ($ X = ”$$ {Y1}”) → ($ {Y1} = <empty>) → ($ Y = “Yes”) It can be shown by being able to generate branches (which are part of the search tree and can be generated in a finite number of times in the case of breadth-first search according to the present invention).
“Recursively ... full search” means, for example, a series of substitutions that match while performing a breadth-first search that recursively repeats each possible substitution to each variable (same as the claim of the previous patent document 1). (E.g., ($ X = “yes $ {Y1}”) → ($ {Y1} = <empty>) → ($ Y = “yes”), etc.)). Variations of the first assignment are 2 and 3 variable types in both strings, respectively, and the string length is 6 and 7 characters respectively (variables are counted as 1 character) 2 × (7 × (7 + 1) / 2 + 1 + 1) + 3 × (6 × (6 + 1) / 2 + 1 + 1) = 60 + 69 = 129. When a breadth-first search is performed so that the longest depths of further branches derived from these branches are equal, a limiter based on the number of substitutions (program step for comparing with the upper limit value, etc.) is provided, so that each search is performed once. Can be limited to an appropriate amount of computation (ensuring stoppage and response speed that are no longer guaranteed by recursiveness). Even in the case of depth-first search, the amount of calculation can be limited by depth limitation, the number of substitutions, and the like. In each case, an infinite loop due to self-recursion or mutual recursion, a stack structure (array of structures) that manages recursive function calls, etc. are provided, and call parameters for the branches that are ancestors (more root direction) (its substitution series) This may be avoided by comparing the state expression of both character strings according to (assignment context) with the current call parameter. Further, depending on whether or not the fixed character strings existing at the head and tail of both character strings match the number of characters existing in common, it is possible to perform pruning of branches that cannot be unified. If no solution is found by searching for a limited amount of calculation (for example, substitution 1 million times or search depth 20 or less), it is found as “no solution (accuracy: substitution 1 million times and search depth 20 or less)”. "($ X =" say ", $ Y =" yes "), (...), ... (however, accuracy: millions of substitutions and search depth within 20)" etc. It is also possible to answer the user while specifying the search accuracy. In addition, when the full search can be clearly performed within the limited number of substitutions and within the limited search depth (when there is completeness), “no solution (all searched)” or “($ X =”) It can also be answered to the user by clearly saying “, $ Y =“ Yes ””, (...),.
(0030)
Further, claim 22 of Patent Document 1
As for the result assigned to the variable, the two character strings remaining by removing the fixed characters corresponding to the number of characters existing in common at the head and tail of each character string,
Each time the search progresses, it is present at the head or tail of the character string as the “other character string” that is the target of “any substring of the other character string (including <empty>” and the entire character string). Featuring fewer fixed characters,
The processing method as described in any one of Claims 19-21 of patent document 1 is provided.
As a result, the number of branches is reduced each time the search is advanced (as it goes to the previous branch), and the calculation amount can be saved.
(0031)
Further, claim 23 of Patent Document 1
When obtaining a set of solutions that are minimal as a character string including the fixed character string or variable,
Variables included in both character strings (the first character string and the second character string) consisting of the pattern and the head part or the fact that unbound variables remain in each other are commonly bound in each character string. And while being bound independently between strings (or while the scope that binds the same name variable in common is only within each string (or between the strings is outside the scope of the variable))
A processing method for obtaining a set of solutions by recursively assigning a fixed character string (including an empty character) or a character string including a variable to each variable,
Limit the variable to be substituted to the corresponding head or tail variable of the subject string whose head or tail is a fixed character,
The substitution value is a new variable or <empty> following the initial fixed character or fixed character string if it is the head, or the fixed character or fixed character string following the new variable if it is the tail. Or <empty>
For the result of assigning to the variable, it is repeated to remove the fixed number of characters common to the head and tail of each character string from both,
A processing method according to claim 16 or 17 of Patent Document 1 is provided.
This makes it possible to significantly limit the enumeration range of solutions (without impairing the comprehensiveness of search) by focusing on the presence of fixed characters at the head and tail, enabling significant computational savings and speedup. Become. (0032)
Further, claim 24 of Patent Document 1
When obtaining a set of solutions that are minimal as a character string including the fixed character string or variable,
Variables included in both character strings (the first character string and the second character string) consisting of the pattern and the head part or the fact that unbound variables remain in each other are commonly bound in each character string. And while being bound independently between strings (or while the scope that binds the same name variable in common is only within each string (or between the strings is outside the scope of the variable))
A processing method for recursively assigning a fixed character string (including an empty character) to each variable to obtain a set of solutions,
Binds binding information that can be generated using only fixed character types (character types excluding variable identifiers and delimiters) in both character strings that can be generated by removing common fixed characters for the number of characters existing at the beginning and tail of each character string. A processing method according to claim 16 or 17 of Patent Document 1 is provided, which is obtained by listing in order from the smallest character string length of values.
As a result, problems with a certain property can be efficiently reached and enumerated.
(0033)
Further, claim 25 of Patent Document 1
Based on the calculated “a set of solutions that are minimal as strings containing variables”
A processing method according to claims 19 to 24 of Patent Document 1 is provided in which a search is continued by a horn clause that can be temporarily rewritten by a character string including the variable.
As a result, the constraint calculated in order to unify the pattern and the head part of the horn clause (rule) (in the above example, the variable “$ C” is in the form of “$ A is”). There is also a unification policy (for example, in the case of the last assignment set above) that can be unified only by being bound (assigned) with a character string. It can be propagated to the search process, and the search can be made efficient.
(0034)
Further, claim 26 of Patent Document 1
Based on the calculated “a set of solutions that are minimal as strings containing variables”
A set of fixed character string sets made by substituting each element of the set of fixed character string sets defined in advance as a set of solution sets of the “facts including variables” to the variable portion of “character strings including variables” return,
The processing method as described in any one of Claims 19-25 of patent document 1 is provided.
Thus, a database (for example, “word equation (registered trademark)”, “VLANK (registered trademark)) that associates a fact including variable (s) and a set of appropriate answers (or hypotheses) that can be embedded in the variable. It is possible to perform a solution search efficiently linked with the knowledge source in “ In addition, a large number of facts having similar sentence patterns can be efficiently managed in cooperation with the framework of the present invention.
(0035)
Further, claim 27 of Patent Document 1
In the automatic unification process or automatic derivation process,
When performing automatic unification of a first pattern containing variables and a second pattern containing variables:
If the fixed characters for the number of characters in the head and tail of both patterns match and the same variable appears only once in each pattern,
Returns information indicating the existence of an infinite number of solutions,
The processing method as described in any one of Claims 1 to 26 of patent document 1 is provided.
(0036)
Further, claim 28 of Patent Document 1 is
An apparatus for performing the method according to any one of claims 1 to 27 of Patent Document 1 is provided.
(0037)
In addition, claim 29 of Patent Document 1
A computer program for causing a computer to execute the method according to any one of claims 1 to 27 of Patent Document 1 is provided.
(Effect of the invention of Patent Document 1)
(0038)
The effects of the present invention are as described above for the claims of each Patent Document 1.
(Brief description of the drawings of Patent Document 1)
(0039)
FIG. 1 is an overall view of a network system that most effectively implements the present invention. Example 1
(FIG. 2) FIG. 2 is an explanatory diagram showing the hardware configuration of a computer that implements the present invention. Example 1
(FIG. 3) FIG. 3 is an explanatory view showing an example of screen display in a terminal embodying the present invention.
Example 1
(Mode for carrying out the invention of Patent Document 1)
(0040)
The present invention can be implemented in any kind of computer (cloud server, large general-purpose machine, desktop PC, notebook PC, portable terminal, dedicated machine of the present invention) connected / not connected to the network. A description will be given of a mode realized by a PC connected to the Internet having a multitask function and a window function.
FIG. 1 is an overall view of the network system that most effectively implements the present invention. A content management apparatus 1 is used for content (rules and facts) handled by a user PC 2 or a user / manager PC 2 in the present invention. It may be a known file sharing server that accepts posts and distributes content while controlling sharing access rights and content provision priority according to a predetermined policy. For each user, the user PC 2 inputs and stores contents (rules and facts) expressing the believed contents (or contents to be examined) in a natural language according to the method of the present invention, and stores them. A computer to be processed, a portable terminal, and the like.
FIG. 2 is an explanatory diagram showing the hardware configuration of a computer used in the present invention. This is a general computer configuration, and the feature of the present invention is that the CPU 2e uses natural laws in accordance with instructions and descriptions of the program 3 and content data 4 stored in the nonvolatile memory 2h. And the way of the interaction protocol (format) with the user.
FIG. 3 is an explanatory view showing an example of screen display in a terminal embodying the present invention. In the figure, in response to the question “?? $ A do not do” (open question format), “$ A == does not do as much as possible” in the first line of the stored list L not shown.
In the same way, the answer of “1/1” as much as possible is enumerated, and similarly, “$ A = bullying / 9 /” is answered using the fact that “not bullying” in the ninth line of list L.
(0041)
In such an embodiment, the computer (manufactured by a PC, etc.) can perform all possible operations by a computer program manufactured via a C ++ language or the like. Therefore, well-known basic operations of computers using natural laws (register / memory / storage / storage, four arithmetic operations, comparison, etc.) and general functions that are already standard libraries for development environments, etc. (Assignment / comparison / copy to variables and N-dimensional arrays, manipulation / comparison / display of character strings and numerical values, operations such as list structure / queue structure / hash structure / vector type, binary search, sort operation, regular expression The method for realizing pattern matching operation, network communication operation, etc.) is different from the essence of the present invention (unique configuration leading to novelty and inventive step), and is well known to those skilled in the art, so will not be described in detail. . On the other hand, in what operation sequence and storage method (algorithm and data structure) the processing unique to the present invention is realized by combining such general functions will be described in detail below. By providing a description of this algorithm and the like, a description of the above problem solving means, and a description of the drawings of the present invention for reference of development, if a professional programmer at a standard level, a standard application program development technique ( It is clearly possible to cause a computer to implement the method of the present invention using a GUI application integrated development environment using C ++, etc., and it is also possible to create an apparatus and a program for this method.
(0042)
The algorithm shown below is an algorithm based on standard structured programming in which a desired “function” is newly defined using C language / C ++ language or the like, and a function call is performed. Processing means (program) corresponding to the solution means of the present invention while performing input / output and function separation according to the function sharing of each function below (or by coding a function group as it is in accordance with the specifications shown below) And a computer) can be realized.
(0043)
■ Processing algorithm specification of knowledge list L for query P
================================================== ================================================== =================
Function Q1 (P: pattern that can include variables, L: knowledge list): Example 1 of Patent Document 1 of main function common to claims of Patent Document 1
{
1. Take the contents B (facts or horn clause) of the first line of L.
However, if L is empty (if the first line could not be fetched), output false and end.
2. The initial value of the variable binding information C is emptied, and the following function H (P, B, C) is called to output true (= match) binding information (= solution set) C.
If true (= matched), true (yes) is output (the line number of the matched content B is also output).
If false, do nothing.
3. When there is a content B 'on the next line of L-B ← B' and move to 2.
If there is no-If you have never output true in step 2, output false (no).
・ End.
}
(0044)
■ Knowledge List L Processing Algorithm Specification for Query P (Pre-fixed Character String Version) =============================== ================================================== ====================================
Function Q2 (P: pattern that can include variables, L: knowledge list): Example 2 of main function common to claims of Patent Document 1 (pre-fixed character string version)
{
(Prefixed string conversion in advance)
1. A fixed character string text T having {rows of all characters that can be deduced only from L / line number set of L used as a basis for deducting each character string} is obtained.
Specifically, a text T obtained by merging the elements of the output series (A = solution 1 / foundation 1, A = solution 2 / reason 2,...) Of the function Q1 (“$ A”, L) as each line. Ask.
In the case of an infinite loop in the middle of the search, the deduction is partially omitted by the infinite loop detection function using an explicit call management stack or the like.
・ For example, whether or not the computer is checking the truth of a horn clause under a certain variable constraint condition,
Manage the call management stack whose members are the structure (the horn clause identifier being confirmed and the current variable binding condition)
When calling, an infinite loop is detected by performing a linear search for the same combination toward the root of the stack.

(Since it is only a fixed character string, a solution set is obtained by a simpler method than Q1 (function F))
2. For each line t of the text T, all Cs for which the following function F (P, t, C) is true are output.
(Final result output)

3. If there is even one C, true is output, otherwise false is output.
}
(0045)
■ Processing algorithm specification of one fact (fixed character string) or Horn clause B (however, all variables included in the head also exist in the body) for the query P
================================================== ================================================== =================
Function H (P: a pattern that can include a variable, B: a fact (fixed character string) or Horn clause, C: variable binding information): ★ function used in the invention of claims 1 to 15 of Patent Document 1 Example 1-1 of Patent Document 1 ★
{
If P contains no variables {
If B is true {
Returns true if P = B.
Otherwise it returns false.
}
If B is a horn clause {
When the head of B does not contain a variable {
In the case of the head portion of P = B, the true / false of the function D (B body portion, E) is returned.
Otherwise it returns false.
}
When the head of B contains variables {
For each C1 in which F (head part of B, P, C1) is true,
Returns true if there is C1 for which the result of function D (B applied to C body part, E) is true.
Otherwise it returns false.
}
}
}
If P contains a variable {
If B is true {
If there is C1 for which F (P, B, C1) is true, add all such C1 to C and return true.
If no such C1 exists, return false.
}
If B is a horn clause {
When the head of B does not contain a variable {
If C1 with F (P, B head, C1) is true and if function D (B body, E) is true, then add all such C1 to C Returns true.
Otherwise it returns false.
}

When the head of B contains variables {
★ When implementing the invention of claim 12 of Patent Document 1 ★
// Start device for speeding up (optional) When fixed characters for P and B heads and tails do not match {
Returns false.
}
// End speed improvement (option)

★ Implementation of Claim 13 of Patent Document 1 ★
When the fixed characters corresponding to the number of characters in the head and tail of the head part of P and B match {
For any binding information G in E for which the result of function D (B body part, E) is true, function F (P, B head part bound with G (should be a fixed character string)) , C1) If C1 is true
Add all such C1s to C and return true.
Returns false if no such C1 exists.
}
}
}
}
}
(0046)
■ Specification of enumeration algorithm for solution set of body part of Horn clause (or query of heavy sentence sharing variable)
================================================== ================================================== =================
Call example → Function D ("$ A and $ B are friends, $ A is human, $ B is human", E);
Return example ← true (E = ((A = Hanako, B = Taro), (A = Taro, B = Jiro), (A = Jiro, B = Saburo)))
================================================== ================================================== =================
Function D (J: body part (or query of shared sentence sharing variables), E: solution set): Example 1-2A of Patent Document 1 of function used in invention of Claim 6 of Patent Document 1
* However, the entire knowledge source L can be stored in a global variable and referenced.
1. Take the first sentence M in J. Returns true if the first sentence does not exist.
2. The function Q1 (M, L) or Q2 (M, L) is called for the entire knowledge source L.
If the result is false, return false.
If true, M does not contain variables
do nothing.
When M contains a variable
A set C of binding information that can be taken to make M true is stored.
* Variables that do not need to be bound to be true can be explicitly indicated.
* When a certain condition is required to be true while the bound value is an infinite set, the condition can be added.
3. Take out the next sentence M ′ in J. If not, return true (E = binding information set C).
4). The function Q1 (M ′, L) or Q2 (M ′, L) is called for the entire knowledge source L.
If the result is false, return false.
If true M 'does not contain any variables
do nothing.
When M 'includes a variable
A product set of a set C ′ of binding information that can be taken to make M ′ true and a stored set C is defined as a new C.
However, when the original set C is not an empty set but a product set and becomes an empty set, false is returned.
* Variables that do not need to be bound to be true can be explicitly indicated.
* When a certain condition is required to be true while the bound value is an infinite set, the condition can be added.
Return to 5.3.
}

Function D2 (J: body part (or query of shared sentence sharing variables), E: solution set): Another embodiment 1-2B of Patent Document 1 of the function used in the invention of Claim 6 of Patent Document 1 (Through the use of recursive function calls, the binding information is propagated to other statements to increase the speed.)
{
1. Take the first sentence M in J. Returns true if M does not exist.
2. Q1 (M, L) or Q2 (M, L) is called for the entire knowledge source L.
If the result is false, return false.
When true If M does not contain a variable Return true if there is no statement following J. If it is true, return the next sentence as a new M and return to 2.
If M contains a variable If there is no statement following J, the possible binding information is stored in E, and if true is returned, the possible binding information is stored as a set C.
3. E is emptied, and for each binding information K in set C, recursive call D2 (body part J ', E' formed by binding the next sentence after J with K) is executed. 3. Add that K and E 'that became true. Returns false if each K has never been true, returns true (E) if it has never been true}

Function D3 (J: body part (or query of shared sentence sharing variable), E: solution set): Example 1-3 of Patent Document 1 of function used in invention of Claim 5 of Patent Document 1
{
1. Take the first sentence M1 in J. Returns true if the first sentence does not exist.
2. Q1 (M1, L) or Q2 (M1, L) is called for the entire knowledge source L.
If the result is false, return false.
When true M1 does not contain a variable
do nothing.
When M1 contains a variable
A set C1 of possible binding information is stored.
3. Similarly, C2, C3... Are obtained for M2, M3.
If false, return false.
4). The product set C is obtained for the remaining C1, C2, C3... Cn, and true (C) is returned.
}

(0047)
■ Enumeration algorithm specification of multi-length coincidence solution (s) of fact S for query P
================================================== ================================================== =================
Call example → Function F ("$ A and $ B are friends", "Taro and Jiro and Saburo are friends", "");
Function F (P: pattern that can contain variables, S: constant character string, C: binding information of variables): Invention of claim 2 of Patent Document 1 (however, “(or last)” and “or previous”) Example 1-4A of Patent Document 1 of Function Used in Omitted Implementation Example)
{
(Preparation)
1. The number of types V of variables in P and the names of appearing variables N1, N2,.

(Corresponding to the case where P originally does not include a variable)
2. When V is 0,
⇒ When P = S, return true and end.
⇒ If P ≠ S, return false and end.

(output)
3. When V is 1, no matter how many times N1 appears in P, there is only one solution R1 for unifying P and S.
⇒ If there is a match, output the only solution as “C and N1 = R1”, return true, and end.
⇒ If there is no match, return false and exit.
* Unification itself can be performed as a match with a regular expression (if the same variable appears more than once, there is a postscript reference)

4). When V is 2 or more Execute recursive call F (P ', S, C and N1 = R1) for P' which can fill all N1 in P with longest matching solution R1 for variable N1 ⇒ Longest for N1 A solution set that matches is output

5. R1 ′ ← R1 is a character string excluding the last character. For P ″ in which all N1s in P are filled with R1 ′, a recursive call F (P ″, S, C and N1 = R1 ′) is made. Execution ⇒ For N1, a solution set is output as a solution candidate R1 ′ obtained by removing one character from the longest matching solution

6). When R1 'is one or more characters (* In claim 3 of Patent Document 1, when the number of characters of the shortest matching solution is larger)
⇒ Return to 5 as R1 ← R1 '.
In the case of 0 characters (in the case of the number of characters of the shortest matching solution in claim 3 of Patent Document 1)
End.
}

(0048)
Function F (P: pattern that can include a variable, S: constant character string, C: variable binding information): Example 1-4B of a function used in the invention of claim 4
// Function F with the first device for speeding up, focusing on the first character C in the fixed character string immediately after the variable first appears in P
{
(Preparation)
1. The number of types V of variables in P and the names of appearing variables N1, N2,.

(Corresponding to the case where P originally does not include a variable)
2. When V is 0,
⇒ When P = S, return true and end.
⇒ If P ≠ S, return false and end.

(output)
3. When V is 1, no matter how many times N1 appears in P, there is only one solution R1 for unifying P and S.
⇒ If there is a match, output the only solution as “C and N1 = R1”, return TRUE and end.
⇒ If there is no match, return false and exit.

4). (Device 2 for speeding up. This process may be omitted since it is covered by 5 or later. ★ This device 2 is not claimed in the patent document 1)
When V is 2 or more,
Match all the variables (N1 (= N), N2,...) In the longest match mode and match all variables (N1 (= N), N2,...) In the shortest match mode. If the solution you tried is the same (N1 = R1, N2 = R2,...) ⇒ Output the only solution as “C and N1 = R1 and N2 = R2 and. If not,
⇒ Return false and finish.
If not identical ⇒ Continue to 5

5. When V is 2 or more Execute recursive call F (P ', S, C and N1 = R1) for P' which can fill all N1 in P with longest matching solution R1 for variable N1 ⇒ Longest for N1 A solution set that matches is output

6). When the variable N1 (self) follows immediately after the variable N1 in P ⇒ Process after 7 When another variable N2 follows ⇒ Process after 7 (however, one character C in 7 is the solution R2 of N2) The first character of
When fixed characters continue ⇒ Process after 7

7). 1 character C, which is a fixed character immediately after the first appearance of variable N1 in P (the first character C of R2 when immediately after another variable N2),
When included in longest matching solution R1 ⇒ 1) Character string with partial character string deleted from the end of the character string of R1 '← R1 to that C ⇒ 2) All N in P with P''←R1' ⇒ 3) Execute recursive call F (P ″, S, C and N1 = R1 ′)
⇒ Should be output if there is a short solution for N1, if it is not included in the longest matching solution R1 ⇒ Since N1 has finished enumerating shorter solutions, it ends.

8). Return to 7 as R1 ← R1 ′.
}
================================================== ================================================== =================
The above is an excerpt from Patent Document 1 (Japanese Patent Application No. 2014-087008).

以下は、特許文献6(特願2016−196069)からの要約抜粋である。
===========================================================
特許文献6は、請求項1として、
テキスト読み上げ機能を有するコンピュータプログラムであって、
該コンピュータプログラムからアクセス可能なテキスト(文字列の集合。文字列間の順序性を問うものでもよく問わないものでもよい)と、
変数を含んだ文字列をリテラルとして許容しかつリテラルを真とするように変数を埋める文字列を答えとする質問文を含む論理式とから、
該論理式に応じた該質問文の答えとなる文字列を抽出又は合成して読み上げることを特徴とする
コンピュータプログラム、を提供する。
:ここで、「アクセス可能なテキスト」は、たとえば、自然言語で記述された事実の集合、及び、リテラルとして自然言語に変数を埋め込める形式を用いたPROLOGのホーン節であるルール(推論規則)の集合であり、ルール(推論規則)を含んでいてもよく、含んでいなくてもよい。
:「変数を埋める文字列を答えとする質問文を含む論理式」は、そのような質問文以外の事実やルール(推論規則)を含んでいてもよく、含んでいなくてもよい。正規表現またはそのサブセットと等価なものさらにそれらを拡張したものであってもよい。
:「ルール(推論規則)」は、プロダクションルール、項書き換え規則、PROLOGのホーン節、等であってもよく、さらに、これらを文字列に変数を埋め込んだリテラルを許す形式に拡張したものであってよい。
>これにより、自然言語テキストだけのときや、論理式だけのときよりも、論理の表現と(読み上げ機能のための)音声合成のための表層的自然言語表現とが一体となったテキスト形式の知識表現として、一元的に管理することができるようになり、知識の追加、編集、削除等が、一般的な論理型(宣言型)/手続型プログラミング言語(PROLOG、AWK、SQL、PERL、PHP、C++、JAVA(登録商標)、等)を知らない小学生でも気軽に実施可能となる。
>また、変数を埋める文字列を答えとする質問文を含む論理式を用いることから、各答えを含む各文章全体や各文全体でなく、各答えのポイントとなる文字列のみ(共通部分が多い文字列の相違部分のみ)を、動的に(すなわち質問文の異なりに応じて)要領よく(退屈/冗長とならないように)抽出・合成して読み上げることが可能となる。

(0006)
特許文献6は、請求項2として、
前記アクセス可能なテキストが推論規則を含んでいる
請求項1に記載のコンピュータプログラムを提供する。
:ここで、「推論規則」は、例えば、PROLOGのホーン節のリテラルとして、文字列に変数を含んだ形式を許し、「ご近所は$X:-req "http://hoge.net/JP/ISHIKAWA/KOMATSU/BIRUGAWA.jpl"; $X;」等とすることができる。この意味は、「インターネットの所定URL(この例では、地域を階層的にフォルダ管理しているサイト)からBIRUGAWA.jplファイルを取得し、その各行を”ご近所は”に連接することにより得られる文字列の全体を真とする」である。
>これにより、遠隔で更新されるインターネット上のローカルニュースのうち関心のあるファイルにのみアクセスして関心のある部分だけを(「$Yと$Zが結婚した」などと)抽出して(場合によってはさらに「$Yと$Zは新婚夫婦である」などとテキスト同士の新たな合成をもして)読み上げる等といった機能をモジュール定義して、動的にそのまま利用したり、あるいは静的に一部の機能だけを修正して再利用したり、さらに関連分野の分析・抽出用途に流用したりすることを容易にする。
(0007)
特許文献6は、請求項3として、
前記論理式が事実を含んでいる
請求項1または2に記載のコンピュータプログラムを提供する。
:ここで、「事実を含む論理式」の簡単な例として”「今日は天気がよい」「太郎は趣味の$Xに夢中になれる」”を挙げる。
:この場合、「今日は天気がよい」は事実であり、
推論規則を含むテキスト(例えば、
「太郎は趣味の釣りに夢中になれる:−今日は天気がよい;」
「太郎は趣味の読書に夢中になれる:−今日は天気が悪い;」
「太郎は好きな仕事に夢中になれる」
)に、
この事実(「今日は天気がよい」)を付加した上で
「太郎は趣味の$Xに夢中になれる」の「$X」を埋められる解(この場合「釣り」)を求めることになる。
>これにより、動的に(質問時に、一時的に)成立しうるルールとそうでないルールを切り分けたり、論理式内の質問文に答えるヒントを自ら提供したり、問題や解の範囲を広げたり制限したりすることが可能になる。
(0008)
特許文献6は、請求項4として、
前記論理式が推論規則を含んでいる
請求項1から3のいずれか一項に記載のコンピュータプログラムを提供する。
:ここで「推論規則を含む論理式」は、例えば、”「小松市小1算数は$X:-req "http://hoge.net/JP/ISHIKAWA/KOMATSU/ELEMENTARY/1/ARITH.jpl"; $X;」「小松市$X?」”等であってもよい。
>これにより、動的に(質問時に、一時的に)適用したい(解釈、書き換え、等のための)ルールを質問ごとに付記することができるようになる。また、その解釈の真偽を通じて、事実の場合と同様に、成立しうるルールとそうでないルールを切り分けたり、論理式内の質問文に答えるヒントを自ら提供したり、問題や解の範囲を広げたり制限したりすることが可能になる。
(0009)
特許文献6は、請求項5として、
前記アクセス可能なテキストを、
予め限った選択肢(テキスト集合)の中から
利用者が選択するユーザーインターフェースを有する
請求項1から4のいずれか一項に記載のコンピュータプログラムを提供する。
:このようなインターフェースは、ハードウエアとしてのドラムロール、ジョグダイアル、ソフトウエアコントロールとしてのリストボックス(N段組み形式でもよい)、コンボボックス、ラジオボタン等、または、それらを組み合わせて表現したコンピュータグラフィック、等とすることができる。
:テキスト集合は、例えば、ローカルファイルへのパスの集合、社内LAN共有フォルダへのパスの集合、インターネットファイルへのURL/URIパスの集合、メモリ内のテキストへのポインタ、又はそれらの組み合わせとすることができる。
>これにより、小中学生を含めた未成年教育用途などの場合に、コンテンツを制限することができる。また、科目ごとに対象とするテキストを分けて低学年や高齢者でも効率的にアクセス・編集・管理することができる。
(0010)
特許文献6は、請求項6として、
アクセス可能なテキスト毎にテキストと対応する論理式集合を関連づけて記憶し、
アクセスしているテキストと対応する論理式集合から論理式を利用者が選択するユーザーインターフェースを有する
請求項1から5のいずれか一項に記載のコンピュータプログラムを提供する。
:「論理式集合」の要素はアクセス可能なテキスト毎にひとつでもよい。
:「テキストと対応する論理式」とは、過去にそのテキストに対して問われた論理式、そのテキストに対して有用なことがわかっている論理式、そもそもそのテキストに問われることを想定して(用語等が)設計された論理式、等である。
>これにより、コンピュータや論理式に慣れていないユーザー(小学生、高齢者、等)でも、補助者なしで、ワンクリックで簡単に実質的な対話等が可能となる。
>「テキストと対応する論理式」は、アクセス可能なテキストに所定の書式により一つ又は複数埋め込んで管理するのが好ましい。以下の例では、2つのボタンから選択するだけで、問い合わせをすることができる。以下の例では「:&」は選択ボタンとしてヘッドを表示するという意味である。

===
私の父は78歳
私の母は73歳
私の妹は45歳
私の妹は43歳
私の男の家族の年令は$X歳 :& 私の男の家族は$X歳; //1つ目の選択ボタン
私の男の家族は$X歳 :- 私の父は$X歳;
私の男の家族は$X歳 :- 私の祖父は$X歳;
私の男の家族は$X歳 :- 私の兄は$X歳;
私の男の家族は$X歳 :- 私の弟は$X歳;
私の男の家族は$X歳 :- 私の息子は$X歳;
私の女の家族の年令は$X歳 :& 私の女の家族は$X歳; //2つ目の選択ボタン
私の男の家族は$X歳 :- 私の母は$X歳;
私の男の家族は$X歳 :- 私の祖母は$X歳;
私の男の家族は$X歳 :- 私の姉は$X歳;
私の男の家族は$X歳 :- 私の妹は$X歳;
私の男の家族は$X歳 :- 私の娘は$X歳;
===
:この場合、データの前半を外部ファイルから動的に読み込むようにプログラムすることができ(C言語の#includeやPHPのrequire_onceなどと類似する機能をもった組み込み関数による)、その場合は外部ファイルの更新(社外のニュース配信会社、社内の知識編集者、家族内のIT担当者、等による)に応じて答えを更新することができる。
:アクセス可能なテキストがローカルファイル(共有設定もされていない)の場合には自分のみが更新するファイルという運用になる。共有ファイルの場合やインターネット公開ファイルの場合にはそれぞれのアクセス権をもった担当者が更新するファイルという運用になる。
:選択するためのボタンは、N段組みのリストボックスや、それをレンガ式にずらして並べたものや、ボタンを代表する漢字一字のラベルを平面や疑似3Dに配置したものや、使用頻度に応じて大きさの異なる円内に論理式の内容や要約を記載したもの、等とすることができる。
:なお、ボタンコントロールをマウス押下できない利用者や、より簡便に利用したい利用者向けに、各ボタンに対応する論理式の内容を音声認識や目線認識で選択するように構成してもよい(このような認識のための要素技術は現在では自明のための詳述はしない)。また、本質的にN個から1個を選択できるインターフェースであれば、ボタン式に限るものではなく、ドラムロール式タッチ式、脳波測定選択式など、種々の方法を利用することができる。
:また、従業員の顔認識センサーと連動させるときは、従業員ごとによく押下するボタンをコンピュータに記憶させたり、管理者側が従業員毎に覚えさせたい内容(ルール、専門知識、最新情報、英単語、連絡事項など)を表す論理式をコンピュータに記憶させたりして、従業員が近づいて認識されたときに、ボタンを押さなくても、その従業員に知らせる/勉強させるべき内容を音声等で出力することができる。
:また、高齢者については、分野別に整理された身近な内容(友達一覧、親戚一覧、買い物先一覧、電話先一覧・・・を示す各ボタン)により物忘れの防止にも用いることもできる。
:また、学校では、その学校で遵守させたい道徳やルール(携帯してはいけないもの一覧、服装規則一覧、等)、覚えてほしい先生の名前一覧、地域の身近な知識一覧(周辺の歴史、地理など)、学年ごとに覚えてほしい英単語や古語や年表や定理の一覧、等の体系的な列挙にも用いることができる。
(0011)
特許文献6は、請求項7として、
抽出又は合成して読み上げる質問文の答えとなる文字列が複数存在する場合、
乱数生成アルゴリズムを用いてランダムな順序で読み上げることを特徴とする
請求項1から6のいずれか一項に記載のコンピュータプログラムを提供する。
>これにより、記憶する必要のない知識間の順序性を排して、それぞれを独立した知識として認識させることが容易になる。
(0012)
特許文献6は、請求項8として、
抽出又は合成して読み上げる質問文の答えとなる文字列が複数存在する場合であって、
一以上の文字列を読み上げた後に読み上げを中断して再開した場合、
中断までにまだ読み上げていない文字列を優先して読み上げることを特徴とする
請求項1から7のいずれか一項に記載のコンピュータプログラムを提供する。
>これにより、中断に左右されずに、満遍なく答えのすべてをもれなくだぶりなく伝えることが可能となる。
(0013)
特許文献6は、請求項9として、
抽出又は合成して読み上げる質問文の答えとなる文字列が複数存在する場合、
該複数存在する文字列の間又は該複数存在する文字列を抽出するテキストの間に比率を設定し、
該設定した比率に沿った頻度割合で該複数存在する文字列を繰り返し読み上げることを特徴とする
請求項1から8のいずれか一項に記載のコンピュータプログラムを提供する。
>これにより、重点的に覚えるべきものとそうでないものとをバランスよく暗記するときに用いることなどが可能となる。
(0014)
特許文献6は、請求項10として、
更新されるテキストを、
所定の時刻または頻度で所定の場所から自動ロードして
前記アクセス可能なテキストとし、
所定の論理式に応じた質問文の答えとなる文字列を、
該アクセス可能なテキストから自動的に抽出又は合成して読み上げることを特徴とする
請求項1から9のいずれか一項に記載のコンピュータプログラムを提供する。
>これにより、ニュースサイトが更新するインターネット上のHTMLテキストを「更新されるテキスト」としていた場合には、論理式でフィルタしたニュースのみを所定の時刻や頻度でチェックすることも可能になる。
>また、複数のコンテンツを組み合わせることにより、例えば、目覚まし勉強&ニュースチェック機能が提供できる。
>また、更新されるテキストが社内外のインターフェースとして指定された基幹業務系のドキュメントやデータベースカラムである場合には、さらにテンプレートエンジン等と連携させることにより、タイムリーな自動業務文書作成なども容易となる。
(0015)
特許文献6は、請求項11として、
所定の時刻または頻度で、
所定の論理式に応じた質問文の答えとなる文字列を、
所定のアクセス可能なテキストから自動的に抽出又は合成して読み上げることを特徴とする
請求項1から9のいずれか一項に記載のコンピュータプログラムを提供する。
:自動読み上げの時刻又は頻度は、例えば、日ごと時刻設定、時ごと分設定、分ごと秒設定、日時指定、曜日指定など種々の指定方法があってもよい。
>これにより、社内ルールなど不正確な記憶となりがちな知識をくりかえしにより正確に覚えさせることができる。
(0016)
特許文献6は、請求項12として、
前記アクセス可能なテキストを、
不特定多数の利用者からの投稿に応じて追加することを特徴とする、
請求項1から11のいずれか一項に記載のコンピュータプログラムを提供する。
:投稿への対応は、所定の共有フォルダやインターネットサイトへの投稿を検知する形でもよく、不特定のインターネットサイトへの投稿をいわゆるクローラーが収集する形でもよい。
>これにより、勉強用のテキストや業務用/趣味用の情報の収集・交換・共有・相互ブラッシュアップ等が可能となる。
(0017)
特許文献6は、請求項13として、
前記アクセス可能なテキストを、
不特定多数の利用者からの投稿に応じて編集することを特徴とする、
請求項1から12のいずれか一項に記載のコンピュータプログラムを提供する。
:投稿への対応は、所定の共有フォルダやインターネットサイトへの編集による更新投稿を検知する形でもよく、不特定のインターネットサイトへの編集による更新投稿をクローラーが収集する形でもよい。
>これにより、勉強用のテキストや業務用/趣味用の情報の相互補完・相互チェック等が可能となる。
(0018)
特許文献6は、請求項14として、
前記投稿をテーマのカテゴリ階層を明確にして行い、
答えとなる文字列の抽出又は合成に用いるアクセス可能なテキストのユーザー又は論理式による絞り込みを
該階層を指定して行うことを特徴とする
請求項12又は13に記載のコンピュータプログラムを提供する。
:投稿は、以下の内容を明確にしながら行われることが好ましい。

・サーバー
・ファイル名
・タイトル
・バージョン番号
・テキストの内容
・テーマの階層的分類(ツリー状のテーマ)
:カテゴリ(分類)の例としては、以下のようなものが挙げられる。

・地域ニュースツリー(地域による細分)
・研究専門分野ツリー(研究分野による細分)
・イベントツリー(イベント分野による細分(音楽、リサイクル、スポーツ、等))
(0019)
特許文献6は、請求項15として、
前記答えとなる文字列に応じた画像または音声を
文字列と同時に又は文字列の代わりに出力(遠隔の複数のコンピュータからなるシステムで機能分割する場合又は同一コンピュータにおいて機能分割する場合には送信であってもよい)することを特徴とする請求項1から14のいずれか一項に記載のコンピュータプログラムを提供する。
:この「音声」は動的な合成音声ではなく事前録音した音声などとすることができる。
:画像は動画であってもよい。
>これにより、論理式に応じたテーマの答えの集合やテキストの内容をより具体的に臨場感をもって表現することができる。
(0020)
特許文献6は、請求項16として、
前記答えとなる文字列のみ(一又は複数)、又は、論理式によってはアクセス可能なテキスト自体(一又は複数の組み合わせ)を
端末(スマートフォンであってよい)、又は、該端末のためのアプリケーションソフト宛てに送信し、
該端末又は該アプリケーションソフトにより出力を行うことを特徴とする請求項1から15のいずれか一項に記載のコンピュータプログラムを提供する。
:端末は携帯端末であることが有利であり、このようにして行われる文字列やテキスト自体は、電車やすきま時間での勉強のため、あるいは、ビジネスの現場での情報・知識共有のために使用できる。
>これにより、より自由により適した態様で答えやテキストを提供することが可能となる。
(0021)
特許文献6は、請求項17として、
前記抽出、合成又は送信を、中継するコンピュータ経由で行う
請求項16に記載のコンピュータプログラム。
>これにより、複数の利用者に配信しやすくなり、配信もコントロールしやすくなり、コンテンツの配信順を制御したり、コンテンツに広告を挿入したりでき、広告モデルでの安価な提供も可能となる。
>また、発信端末側に複雑な論理演算を用いた抽出や合成や音声合成の機能をもたせる必要がなくなり、発信端末をスマートフォン等の携帯端末とすることが容易となり、投稿(発信)数の向上を期待でき、携帯端末において特に重要な電力の消耗やメモリの使用を減らすことが可能となる。
>また、発信と出力をいずれも同一利用者のスマートフォンとすること等により、(自分や他人の過去の)読み上げを楽しみながら、さらに追加や変更の候補を中継するコンピュータに投稿するスパイラルを楽しむことも容易となる。
(0022)
特許文献6は、請求項18として、
前記中継するコンピュータが複数の利用者の端末に配信するように構成した
請求項17に記載のコンピュータプログラム。
:この場合、配信内容に目印をつけるなどすることにより、発信した利用者以外の利用者にのみ配信するように設定することもできる。
:また、配信することを契約した利用者にのみ、あるいは、配信する利用者の数の制限内の利用者にのみ配信するように構成することもできる。
:契約した制限内の数の利用者にのみ配信する場合であって、中継するコンピュータが複数の端末からの要求に応じて配信する場合、IDとパスワードによる認証の他、端末のMACアドレスやその他の端末・利用者属性の組み合わせを(傍受した人が再現できない)ハッシュ値に変換して送信するように端末用アプリケーションソフトをプログラムすることができ、配信要求とともに端末から中継コンピュータに送信されるハッシュ値の種類によって、何台の端末が配信を要求しているかを(たとえ、利用者間で共通のID/パスワードを採用している場合でも)、中継コンピュータが計算することができ、配信数を抑制する等することができる。
>これにより、答えやテキストを、それを必要とする可能性の大きい複数の利用者にタイミングよく配信することが可能となる。
(0023)
特許文献6は、請求項19として、
前記中継するコンピュータが、
該中継するコンピュータに新しく送信されたコンテンツからそれ以前に配信されたコンテンツへと
さかのぼるように、
配信を要求した端末または利用者に対して、
内容を送信する
請求項17又は18に記載のコンピュータプログラム。
:ここでコンテンツとは、ひとかたまりの内容をいい、例えば、論理式に応じた複数の解が存在するときはこうした複数の解をまとめて一つのコンテンツとすることができ、一つのニュース記事を構成する複数の文(もともとその順序にも意味がある)はまとめて一つのコンテンツとなる。
>これにより、新しい(多くの場合にその利用者にとってより重要な)コンテンツにより早く触れることが可能となる。
(0024)
特許文献6は、請求項20として、
同一の利用者IDまたは利用者グループが所属しているグループチャンネルについて
新しいコンテンツが関係する利用者から中継するコンピュータに送信された場合に
前記さかのぼる制御をリセットして当該新しいコンテンツを先頭として再度さかのぼるように制御する
請求項19に記載のコンピュータプログラム。
>これにより、新しいニュースなどにより敏感に反応して情報共有を行うことができる。
(0025)
特許文献6は、請求項21として、
質問文を含む論理式も出力することを特徴とする
請求項1から20のいずれか一項に記載のコンピュータプログラムを提供する。
>これにより、読み上げる順序における各順番の意味や位置づけを簡潔に表示することが可能になる。
>また、中継コンピュータ等においてクイズ形式のコンテンツを生成したり、各端末でクイズ形式のコンテンツを実施することが容易になる。
>答えとなる文字列と論理式との組み合わせは、「テーマが何か」とその「答え(解)」を、共通部分と差異部分(複数解のときは複数)として、メリハリのある、しかも少ない通信量/表示量/発話量で最終利用者に伝えることが可能となる。関連したメール配信/連絡等も同じ契機で実施する場合にはパケット量の節約等にもつながる。
(0026)
特許文献6は、請求項22として、
出力する答えを導くために用いたテキストまたはその一部も出力することを特徴とする
請求項1から21のいずれか一項に記載のコンピュータプログラムを提供する。
>これにより、答えだけでなく、根拠も憶えたり確認したりすることが可能となる。
>また、論理的思考力の醸成につながる。
(0027)
特許文献6は、請求項23として、
出力する答えを指定する変数(または可変領域)が一種類(例えば、「$Xは$Yが好き」ではなく「$Xは花子が好き」のように主語のみのとき、等)の場合に、
項目名を省略して出力することを特徴とする
請求項1から22のいずれか一項に記載のコンピュータプログラム。
>これにより、区別する必要もなく本質的でもない変数名などを伝えてしまうコスト(時間、通信、電気、メモリなど)を省略することができる。
(0028)
特許文献6は、請求項24として、
出力する答えを指定する変数(または可変領域)が英文アルファベット1文字以外(例えば、「${主語}は${目的語}が好き」等)の場合に、
項目名を省略せずに出力することを特徴とする
請求項1から23のいずれか一項に記載のコンピュータプログラム。
>これにより、複数のフィールドからなる答えのフィールドの位置づけを間違う可能性を減らすことができる。
(0029)
特許文献6は、請求項25として、
前記答えとなる文字列もしくはアクセス可能なテキスト自体と、
質問文を含む論理式とから、
前記発信するコンピュータ、前記中継するコンピュータ、又は、前記中継するコンピュータから配信されたコンピュータが、
クイズ形式のコンテンツを生成し、
いずれかのコンピュータで実施することを特徴とする
請求項21に記載のコンピュータプログラムを提供する。
:ここで、もっとも単純なクイズ生成方法は、質問文を自然言語に機械的におきなおし(自然言語を機械生成し)、「答えとなる文字列」をそのクイズの答えとすることである。
:出力する答えを導くために用いたテキストまたはその一部を参照できるときは、それを答えの参考情報として加えることができ、参照できないときは、アクセス可能なテキスト(一つ又は組み合わせ)自体を参考情報として加えることもできる。
>これにより、身近な情報(山田さんの家のポチが子犬を2匹生んだ、等)を蓄積したテキストと身近な質問文を含む論理式(「$Xが$Yを生んだ」、等)とから、身近なクイズ問題を簡易に自動生成することができ、例えば、中継するコンピュータの利用者IDを共有する老人ホームの入居者や特定の学級の生徒が、それらの「内輪ネタ」等を継続的にクイズコンテンツ(例えば、{クイズ問題例1:□が子犬を2匹生んだ,答え:山田さんの家のポチ}、等)にして楽しむことが可能になる。この場合、中継するコンピュータにWEBサーバー機能をもたせ、利用者IDを共有する範囲の端末に対して、生成されたクイズコンテンツをレンダリングするようにしてもよい。
:なお、スクリーンセーバー形式で必要な知識を覚えたり情報を伝達したりするアプリケーションソフトに対して穴埋め形式のコンテンツを提供する場合も同様である。
(0030)
特許文献6は、請求項26として、
前記中継するコンピュータが、
配信する前に、
コンテンツに所定の広告を挿入する
請求項21に記載のコンピュータプログラムを提供する。
:テキストに対しては広告テキストだけでなく広告画像や広告音声へのリンクを挿入することができ、音声や動画についてはそれらを挿入したり合成することができる。
>これにより、広告モデルのマネタイズが可能となり、一般消費者に対してより安価に答えやテキストを提供することが可能となる。
(0031)
特許文献6は、請求項27として、
前記論理式が前向き推論のための式を含み、
閾値以上になった項目を読み上げた上で閾値以下に戻す
ことを特徴とする請求項1から26のいずれか一項に記載のコンピュータプログラム。
:前向き推論のための式とは、例えばPROLOGのassert文である。変数を文字列に埋め込んだ形式のリテラルを許容する処理系でも、同様のassert文を定義し実施することができる。また別の論理式の例として、「”$A地方で風がふく”―>”$A地方の桶屋が儲かる”:0.6」等と確信度を導入して、所定の命題”北陸地方で風がふく”が真となったときに別の命題”北陸地方の桶屋が儲かる”の当初確信度0.2を0.68(=0.2+0.6−0.2×0.6)などと更新してもよい。別の例では、条件側の確信度が1.0(真)でなく所定閾値0.5のときにも、K←K×0.5として、新しい確信度=0.44(=0.2+0.3−0.2×0.3)とすることにしてもよい。また、条件となる命題やリテラルを複数にして前向き推論を行ってもよく、各条件について確信度が各所定閾値以上の場合に条件を満たすことにしてもよい。
:命題等の真をトリガーとする場合には、テキストを新たにロードしたときに元々真である命題等および直後に真であることが証明できる命題等について前向き推論の論理式を適用することができ、真の命題等に変更(追加、削除など)があったときに確信度をリセットして最初から再適用することなどが可能である。
:確信度が不要なとき(assert文とその逆の文のみのとき)は従来のPROLOG動作時と同様のメモリ構成で対応できるが、確信度を設けるときはクローズドハッシュ等専用のメモリ領域を設けることが好ましい。assertして付け加えられた内容や確信度は論式による問い合わせごと又は利用者によるセッションごとにリセットされるように構成してもよい。
:また、前記ボタン(複数ある)は、前向き推論により又はよらずに、特定の命題を真としたり偽としたり設定できるように定義づけられていることが好ましい。
>これにより、社員や生徒の、影響連鎖についての判断力を強化したり学習させたりさせることができる(単純な前向き推論論理式や複数の条件を含む前向き推論論理式による)。
>また、ニュースとその影響の仮説を自動生成したり、自動判断/自動分析をすることが容易になる。
(0032)
特許文献6は、請求項28として、
請求項1から27のいずれか一項に記載のコンピュータプログラムを含む装置を提供する。
(0033)
特許文献6は、請求項29として、
請求項1から27のいずれか一項に記載のコンピュータプログラムを用いた方法を提供する。
================================================
以上が特許文献6(特願2016−196069)の概要抜粋である。
The following is an abstract excerpt from Patent Document 6 (Japanese Patent Application No. 2006-196069).
=============================================== =========
Patent Document 6 describes, as claim 1,
A computer program having a text-to-speech function,
Text accessible from the computer program (a set of character strings, which may or may not ask for the order between the character strings);
A logical expression including a question sentence that accepts a string containing a variable as a literal and answers the string that fills the variable to make the literal true,
There is provided a computer program characterized by extracting or synthesizing and reading out a character string that is an answer to the question sentence according to the logical expression.
: Here, “accessible text” is a rule (inference rule) that is a PROLOG horn clause using a set of facts described in natural language and a form in which variables can be embedded in natural language as literals, for example. And may or may not contain rules (inference rules).
: “A logical expression including a question sentence whose answer is a character string that fills a variable” may or may not include facts and rules (inference rules) other than such a question sentence. It may be an equivalent of a regular expression or a subset thereof and an extension thereof.
: The “rule (inference rule)” may be a production rule, a term rewriting rule, a PROLOG horn clause, etc., and these are expanded to a format that allows a literal with a variable embedded in a character string. It's okay.
> This makes it possible to create a text format that combines a logical expression and a surface natural language expression for speech synthesis (for reading aloud) rather than only natural language text or logical expressions. Knowledge representation can be managed centrally, and knowledge can be added, edited, deleted, etc. using general logical (declarative) / procedural programming languages (PROLOG, AWK, SQL, PERL, PHP) , C ++, JAVA (registered trademark), etc., even elementary school students who do not know can feel free to implement.
> In addition, since a logical expression including a question sentence that uses a character string that fills a variable as an answer is used, not only the entire sentence including each answer or the entire sentence but only the character string that is the point of each answer (the common part is It is possible to extract and synthesize a large number of character strings (only different parts) in a dynamic manner (that is, according to a difference in a question sentence) and read it out in a manner (so as not to be bored / redundant).

(0006)
Patent Document 6 is as claim 2,
The computer program product of claim 1, wherein the accessible text includes inference rules.
: Here, the “inference rule” allows, for example, a form including a variable in a character string as a literal of the LOG clause of PROLOG, and “a neighborhood is $ X: -req” http://hoge.net/JP /ISHIKAWA/KOMATSU/BIRUGAWA.jpl "; $ X;" etc. This meaning is obtained by acquiring a BIRUGAWA.jpl file from a predetermined URL on the Internet (in this example, a site that manages folders in a hierarchical manner), and connecting each line to "Neighborhood". "The whole string is true".
> Thereby, only the file of interest is accessed from the local news on the Internet that is updated remotely, and only the portion of interest is extracted (such as “$ Y and $ Z are married”). Depending on the model, functions such as reading aloud (with a new composition of text such as “$ Y and $ Z are newlyweds”) can be defined as modules and used as they are, or they can be used as they are. It is easy to modify and reuse only the functions of the department, or to divert it to analysis / extraction applications in related fields.
(0007)
Patent Document 6 describes, as claim 3,
The computer program according to claim 1, wherein the logical expression includes a fact.
: Here, as a simple example of “a logical expression including facts,” “Today the weather is good” and “Taro can get hooked on $ X as a hobby” is given.
: In this case, “weather is good today” is true,
Text that contains inference rules (for example,
“Taro can be hooked on hobby fishing:-The weather is good today;”
“Taro can get hooked on reading hobbies:-today is bad weather;”
“Taro can be crazy about his favorite job”
)
After adding this fact (“the weather is good today”), a solution (in this case “fishing”) that can fill in “$ X” of “Taro can be hooked on $ X of hobby” is obtained.
> This makes it possible to separate rules that can be established dynamically (temporarily at the time of a question) from those that do not, provide hints for answering questions in logical expressions, and expand the scope of problems and solutions It becomes possible to restrict.
(0008)
Patent Document 6 describes, as claim 4,
The computer program according to claim 1, wherein the logical expression includes an inference rule.
: "Logical expressions including inference rules" are, for example, "" Komatsu city small one arithmetic is $ X: -req "http://hoge.net/JP/ISHIKAWA/KOMATSU/ELEMENTARY/1/ARITH.jpl “; $ X;” “Komatsu City $ X?” ”Or the like.
> This makes it possible to add a rule (for interpretation, rewriting, etc.) to be applied dynamically (temporarily at the time of a question) for each question. Also, through the truth of the interpretation, as in the case of facts, the rules that can be established are separated from those that are not, the tips for answering the questions in the logical formula are provided, and the scope of problems and solutions is expanded Or restrict.
(0009)
Patent document 6 has as claim 5:
The accessible text,
The computer program according to any one of claims 1 to 4, which has a user interface that is selected by a user from a limited choice (text set) in advance.
: Such interfaces include drum rolls as hardware, jog dials, list boxes as software controls (may be N-column format), combo boxes, radio buttons, etc., or computer graphics expressed by combining them, Etc.
: Text set is, for example, a set of paths to local files, a set of paths to in-house LAN shared folders, a set of URL / URI paths to Internet files, a pointer to text in memory, or a combination thereof be able to.
> Thereby, content can be restricted in the case of minor education use including elementary and junior high school students. In addition, the subject text can be divided for each subject so that even lower grades and older people can access, edit and manage them efficiently.
(0010)
Patent document 6 has as claim 6:
For each accessible text, associate and store a set of logical expressions corresponding to the text,
The computer program according to claim 1, further comprising: a user interface for selecting a logical expression from a set of logical expressions corresponding to the text being accessed.
: There may be one “Logical Expression Set” element for each accessible text.
: "Logical expression corresponding to text" is a logical expression that has been asked for the text in the past, a logical expression that is known to be useful for the text, and that the text is asked in the first place. (Designated logical terms).
> This makes it possible for users who are not familiar with computers and logic formulas (elementary school students, senior citizens, etc.) to easily conduct substantial dialogues with one click without assistance.
It is preferable to manage one or more “logical expressions corresponding to the text” by embedding one or more in a predetermined format in the accessible text. In the following example, an inquiry can be made by simply selecting from two buttons. In the following example, “: &” means that the head is displayed as a selection button.

===
My father is 78 years old My mother is 73 years old My sister is 45 years old My sister is 43 years old My man's family is $ X years old: & My man's family is $ X years old; // First selection button My man's family is $ X years old:-My father is $ X years old;
My man's family is $ X years old:-My grandfather is $ X years old;
My man's family is $ X years old:-My brother is $ X years old;
My man's family is $ X years old:-My brother is $ X years old;
My man's family is $ X years old:-My son is $ X years old;
My woman's family is $ X years old: & My woman's family is $ X years old; // Second selection button My man's family is $ X years old:-My mother is $ X years old ;
My man's family is $ X years old:-My grandmother is $ X years old;
My man's family is $ X years old:-My sister is $ X years old;
My man's family is $ X years old:-My sister is $ X years old;
My man's family is $ X years old:-My daughter is $ X years old;
===
: In this case, the first half of the data can be programmed to be dynamically read from an external file (by an embedded function having a function similar to C language #include or PHP require_once). Can be updated in response to updates (by external news distribution companies, internal knowledge editors, family IT staff, etc.).
: If the accessible text is a local file (no sharing is set), the file is updated only by you. In the case of a shared file or an Internet public file, a file updated by a person in charge with each access right is used.
: The buttons to select are an N-column list box, a list box arranged in a brick style, a single kanji character label representing the button arranged on a flat surface or pseudo 3D, and the frequency of use Depending on the above, the contents of the logical expression or the summary may be described in a circle having a different size.
: It should be noted that for users who cannot press the button control with the mouse, or for users who want to use it more easily, the content of the logical expression corresponding to each button may be selected by voice recognition or eye-gaze recognition. Such elemental technologies for recognition are not detailed for the sake of clarity. In addition, as long as the interface can essentially select one from N, it is not limited to the button type, and various methods such as a drum roll type touch type and an electroencephalogram measurement selection type can be used.
: Also, when linking with the employee's face recognition sensor, the button that is often pressed for each employee is stored in the computer, or the contents that the administrator wants to remember for each employee (rules, expertise, latest information, (English words, correspondences, etc.) are stored in a computer, and when an employee is approached and recognized, the contents to be informed / studied to the employee without pressing a button are spoken. Etc. can be output.
: For elderly people, it can also be used to prevent forgetting by familiar contents organized by field (buttons showing friend list, relative list, shopping list, telephone list, etc.).
: Also, at a school, the morals and rules that the school wants to comply with (a list of items that should not be carried, a list of clothing rules, etc.), a list of teacher names that you want to remember, a list of familiar knowledge of the area (the surrounding history, Geography etc.), it can also be used for systematic enumeration of English words, old words, chronological tables and theorems that you want to remember for each grade.
(0011)
Patent document 6 is as claim 7,
If there are multiple character strings that are the answers to the question text that is extracted or synthesized and read out,
The computer program according to any one of claims 1 to 6, wherein the computer program is read in a random order using a random number generation algorithm.
As a result, it becomes easy to eliminate the order of knowledge that does not need to be stored and to recognize each knowledge as independent knowledge.
(0012)
Patent document 6 has as claim 8:
When there are multiple character strings that are the answers to the question text read out by extraction or synthesis,
If you pause and resume reading after reading one or more strings,
The computer program according to any one of claims 1 to 7, wherein a character string that has not been read out before the interruption is preferentially read out.
> This makes it possible to convey all of the answers without any interruptions without interruption.
(0013)
Patent document 6 has as claim 9,
If there are multiple character strings that are the answers to the question text that is extracted or synthesized and read out,
Setting a ratio between the plurality of existing character strings or between the texts from which the plurality of existing character strings are extracted;
The computer program according to any one of claims 1 to 8, wherein the plurality of character strings are repeatedly read out at a frequency ratio according to the set ratio.
> This makes it possible to memorize what should be remembered with emphasis and what should not be memorized in a well-balanced manner.
(0014)
Patent document 6 has as claim 10:
The updated text,
Automatically load from a given location at a given time or frequency to make the accessible text,
A character string that is an answer to a question sentence according to a predetermined logical expression,
The computer program according to claim 1, wherein the computer program is automatically extracted or synthesized from the accessible text and read out.
As a result, when the HTML text on the Internet updated by the news site is “updated text”, it is possible to check only the news filtered by the logical formula at a predetermined time and frequency.
> Also, by combining a plurality of contents, for example, an alarm study & news check function can be provided.
> In addition, when the text to be updated is a mission-critical document or database column specified as an internal / external interface, it is easy to create a timely automatic business document by linking with the template engine. It becomes.
(0015)
Patent document 6 has as claim 11:
At a given time or frequency
A character string that is an answer to a question sentence according to a predetermined logical expression,
The computer program according to claim 1, wherein the computer program is automatically extracted or synthesized from a predetermined accessible text and read out.
: The automatic reading time or frequency may include various designation methods such as daily time setting, hour / minute setting, minute / second setting, date / time designation, day designation, and the like.
> This makes it possible to repeat the knowledge that tends to be inaccurate memory, such as in-house rules, by repeating it.
(0016)
Patent document 6 has as claim 12,
The accessible text,
It is added according to posts from an unspecified number of users,
A computer program according to any one of claims 1 to 11 is provided.
: Posting correspondence may be in the form of detecting postings to a predetermined shared folder or Internet site, or in the form of so-called crawlers collecting posts to unspecified Internet sites.
> This makes it possible to collect, exchange, share, and mutually brush up study texts and business / hobby information.
(0017)
Patent document 6 has as claim 13,
The accessible text,
Edit according to posts from an unspecified number of users,
A computer program according to any one of claims 1 to 12 is provided.
: The correspondence to the posting may be a form in which update postings by editing to a predetermined shared folder or Internet site are detected, or a form in which the crawler collects update postings by editing to an unspecified Internet site.
> This makes it possible to mutually complement and check texts for study and business / hobby information.
(0018)
Patent document 6 has as claim 14,
Make the post with a clear category hierarchy of the theme,
14. The computer program according to claim 12 or 13, characterized in that narrowing is performed by specifying a hierarchy of accessible text used for extraction or synthesis of a character string as an answer by specifying the hierarchy.
: Posting is preferably performed while clarifying the following contents.

-Server-File name-Title-Version number-Text content-Hierarchical classification of themes (tree theme)
: Examples of categories (classifications) include the following.

・ Regional news tree (subdivision by region)
・ Research field tree (subdivision by research field)
・ Event tree (subdividing by event field (music, recycling, sports, etc.)
(0019)
Patent Document 6 has, as claim 15,
Output the image or sound corresponding to the character string as the answer simultaneously with the character string or instead of the character string (in the case of function division in a system composed of a plurality of remote computers, or transmission in the case of function division in the same computer) A computer program according to any one of claims 1 to 14 is provided.
: This "voice" can be pre-recorded voice, etc. instead of dynamic synthesized voice.
: The image may be a moving image.
> This makes it possible to express the set of answers and text contents of the theme according to the logical expression more specifically with a sense of reality.
(0020)
Patent document 6 has as claim 16,
Only the character string (one or more) as the answer, or the accessible text itself (a combination of one or more) depending on the logical expression, the terminal (may be a smartphone), or application software for the terminal Send it to
The computer program according to any one of claims 1 to 15, wherein output is performed by the terminal or the application software.
: It is advantageous that the terminal is a mobile terminal, and the character strings and texts performed in this way are for studying in train clearance time or for sharing information and knowledge at business sites. Can be used.
> This makes it possible to provide answers and text in a more suitable manner.
(0021)
Patent document 6 is as claim 17,
The computer program according to claim 16, wherein the extraction, synthesis, or transmission is performed via a relay computer.
> This makes it easy to distribute to multiple users and control distribution, control the distribution order of content, insert advertisements into the content, and provide an inexpensive advertising model .
> In addition, it is no longer necessary to provide functions for extraction, synthesis, and speech synthesis using complex logic operations on the sending terminal side, making it easier to make the sending terminal a mobile terminal such as a smartphone and improving the number of posts (outgoing calls) Therefore, it is possible to reduce power consumption and memory usage, which are particularly important in portable terminals.
> In addition, enjoy the spiral of posting to a computer that relays candidates for additions and changes while enjoying reading aloud (in the past of yourself and others) by making both outgoing and output the same user's smartphone, etc. Will also be easier.
(0022)
Patent Document 6 has, as claim 18,
The computer program according to claim 17, wherein the relay computer is configured to distribute to a plurality of user terminals.
: In this case, by setting a mark on the contents of distribution, it can be set to distribute only to users other than the transmitting user.
: It can also be configured to deliver only to users who are contracted to deliver or to users within the limit of the number of users to deliver.
: When delivering to only the number of users within the contracted limit and when the relaying computer delivers in response to requests from multiple terminals, in addition to authentication by ID and password, the MAC address of the terminal and others The terminal application software can be programmed to send a combination of terminal and user attributes to a hash value (which cannot be reproduced by an eavesdropper) and sent from the terminal to the relay computer along with the distribution request Depending on the type of value, the relay computer can calculate how many terminals are requesting distribution (even if a common ID / password is adopted among users), and the number of distributions can be calculated. It can be suppressed.
This makes it possible to deliver answers and texts to a plurality of users who are highly likely to need them in a timely manner.
(0023)
Patent document 6 has as claim 19,
The relay computer is
From the newly sent content to the relay computer to the previously delivered content,
For the terminal or user who requested delivery,
The computer program according to claim 17 or 18, which transmits contents.
: Here, content refers to a group of contents. For example, when there are multiple solutions according to a logical expression, these multiple solutions can be combined into one content, forming a single news article. A plurality of sentences (the order of which originally has a meaning) are combined into one content.
> This allows you to touch new content (often more important to its users) faster.
(0024)
Patent Document 6 has, as claim 20,
When new content is transmitted from a related user to a relay computer for a group channel to which the same user ID or user group belongs, the retroactive control is reset, and the new content starts at the beginning. 20. The computer program according to claim 19, wherein the computer program is controlled.
> This makes it possible to share information by reacting more sensitively to new news and the like.
(0025)
Patent document 6 has as claim 21,
The computer program according to any one of claims 1 to 20, wherein a logical expression including a question sentence is also output.
As a result, the meaning and position of each order in the reading order can be displayed in a concise manner.
> Also, it becomes easy to generate quiz-type content in a relay computer or the like, or to implement quiz-type content at each terminal.
> The combination of the character string and the logical expression that is the answer is sharp, with "what is the theme" and its "answer (solution)" as the common part and the difference part (multiple when there are multiple solutions) It is possible to inform the end user with a small amount of communication / display amount / speech amount. When related mail delivery / contact etc. are executed at the same time, it also leads to saving of packet amount.
(0026)
Patent Document 6 has, as claim 22,
The computer program according to any one of claims 1 to 21, wherein a text used for deriving an answer to be outputted or a part thereof is also outputted.
> This makes it possible to remember and confirm not only the answers but also the grounds.
> It also leads to fostering logical thinking ability.
(0027)
Patent document 6 has as claim 23,
When the variable (or variable area) that specifies the answer to be output is one type (for example, “$ X likes $ Y” instead of “$ X likes Hanako”, only the subject, etc.) ,
The computer program according to any one of claims 1 to 22, wherein an item name is omitted and output.
> This eliminates the cost (time, communication, electricity, memory, etc.) of transmitting variable names and the like that do not need to be distinguished and are not essential.
(0028)
Patent document 6 has as claim 24,
If the variable (or variable area) that specifies the answer to be output is other than one English alphabet (for example, “$ {subject} likes $ {object}”),
The computer program according to any one of claims 1 to 23, wherein an item name is output without being omitted.
> This can reduce the possibility of mistaken positioning of the answer field consisting of a plurality of fields.
(0029)
Patent document 6 has as claim 25,
The answer string or accessible text itself,
From a logical expression containing a question sentence,
The transmitting computer, the relaying computer, or the computer distributed from the relaying computer,
Generate quiz content,
The computer program according to claim 21, wherein the computer program is executed by any one of the computers.
: Here, the simplest quiz generation method is to mechanically replace a question sentence in a natural language (machine generation of a natural language), and use a “character string as an answer” as the answer of the quiz.
: If you can refer to the text or part of the text used to guide the answer to be output, you can add it as reference information for the answer. If you cannot refer to the text, you can refer to the accessible text (one or a combination) It can also be added as reference information.
> Thereby, a logical expression (“$ X produced $ Y”, etc.) including a text storing familiar information (such as a potty of Mr. Yamada's house producing two puppies) and a familiar question sentence, etc. ) Can easily and automatically generate familiar quiz questions, such as nursing home residents who share the user ID of the computer to be relayed or students of a specific class, such as “inner ring material” Can be continuously enjoyed as quiz contents (for example, {Quiz Problem Example 1: □ Two puppies were born, Answer: Pot of Yamada's house}, etc.). In this case, the computer to be relayed may be provided with a WEB server function, and the generated quiz content may be rendered to terminals in a range where the user ID is shared.
: Note that the same applies to the case where content in the form of hole filling is provided to application software that learns necessary information and transmits information in the screen saver format.
(0030)
Patent document 6 has as claim 26,
The relay computer is
Before delivery
The computer program according to claim 21, wherein a predetermined advertisement is inserted into the content.
: For text, not only advertising text, but also a link to an advertising image or advertising voice can be inserted, and for voice or video, they can be inserted or synthesized.
> This makes it possible to monetize advertising models and provide answers and texts to general consumers at a lower cost.
(0031)
Patent document 6 has as claim 27,
The logical expression includes an expression for forward reasoning;
27. The computer program according to any one of claims 1 to 26, wherein an item that is equal to or greater than a threshold value is read out and then returned to a threshold value or less.
: An expression for forward reasoning is, for example, an assert statement of PROLOG. A similar assert statement can be defined and implemented in a processing system that allows a literal in the form of a variable embedded in a character string. As another example of the logical expression, a certain proposition “Hokuriku region” is introduced by introducing a certainty factor such as ““ The wind blows in the region of $ A ”->“ The shark shop in the region of $ A makes money ”: 0.6”. The initial confidence 0.2 of 0.68 (= 0.2 + 0.6−0.2 × 0.6) for another proposition “The Hokuriku region is making a profit” when the wind blows true You may update with. In another example, even when the certainty factor on the condition side is not 1.0 (true) but the predetermined threshold value is 0.5, K ← K × 0.5 and new certainty factor = 0.44 (= 0.2 + 0) .3-0.2 × 0.3). Further, forward inference may be performed with a plurality of propositions and literals as conditions, and the condition may be satisfied when the certainty factor is greater than or equal to each predetermined threshold.
: When the truth of a proposition etc. is used as a trigger, the logical formula of forward reasoning can be applied to the proposition etc. that is originally true when the text is newly loaded and the proposition that can be proved to be true immediately after the text is newly loaded. It is possible to reset the certainty factor and re-apply it from the beginning when there is a change (addition, deletion, etc.) to the true proposition.
: When certainty level is not required (assert statement and vice versa only), it can be handled with the same memory configuration as the conventional PROLOG operation, but when providing certainty level, a dedicated memory area such as closed hash is provided. It is preferable. The content and certainty factor added by assertion may be reset for each inquiry by the logical expression or for each session by the user.
In addition, the button (s) are preferably defined so that a specific proposition can be set to true or false by or without forward inference.
> This allows employees and students to reinforce and learn their judgments about the influence chain (using simple forward reasoning formulas and forward reasoning formulas that include multiple conditions).
> In addition, it is easy to automatically generate news and its hypotheses, and to perform automatic judgment / analysis.
(0032)
Patent document 6 has as claim 28,
An apparatus comprising the computer program according to any one of claims 1 to 27 is provided.
(0033)
Patent document 6 has as claim 29,
A method using the computer program according to any one of claims 1 to 27 is provided.
==============================================
The above is an outline excerpt of Patent Document 6 (Japanese Patent Application No. 2006-196069).

かかる特許文献で示したそれぞれの技術内容や、引用している要素技術の内容は、本願でも用いることができる。ただし、本発明の主眼でないものについては、本明細書において詳述しない。   Each technical content shown in this patent document and the content of the cited elemental technology can also be used in the present application. However, those that are not the main subject of the present invention will not be described in detail in this specification.

本発明の一実施例を図を用いて説明する。
図1は、本発明の方法による複数の情報モジュールの階層的な参照の連鎖(メニュー階層の段階的操作)の例を示す説明図である。
コンピュータは、本発明による方法を実施するための図示しないコンピュータプログラム(遷移の制御の実現方法は自明のため詳述しない)に基づき、利用者の声を所定の認識パターンであると音声認識することに応じて、
利用者変数を遷移(例えば、この例の情報モジュール1において認識パターン”仕事”を認識したときは図示しない変数「&${現在のURI}」を"002.jpl"に設定した上で情報モジュール2に優先参照する情報モジュールを遷移する等)させ、かつ、
利用者への出力(例えば、「仕事ページに移動しました」とテキスト表示しかつ同内容を音声合成して発声すること)を行う。
この遷移を行った後は、コンピュータは、情報モジュール1に含まれる認識パターンの情報よりも情報モジュール2に含まれる認識パターンの情報を優先して音声認識を行うようにする。例えば、この例で、利用者が”製造仕事計画”と発音した場合には、情報モジュール1内の”仕事”にではなく、情報モジュール2内の”製造計画”に該当するとコンピュータが判断し、共有フォルダから製造計画を取得して表示するコマンド「s」を実行している。この例では、”仕事”という認識パターンは、コマンドリストに登録しないようプログラムされている。
この例では、図示しない予約語「前のページに戻る」が、情報モジュールでなく、情報モジュールを解釈して実行するリッチクライアント(実行プログラム)に組み込まれており、利用者の希望に応じて遷移した後のいずれの情報モジュールからも遷移前の元の情報モジュールに戻ってさらにさかのぼれるように遷移の連鎖を蓄積した(図示しない)スタックデータ構造を管理している。
この例では、図示しないが、いずれの情報モジュールを参照している場合も、認識パターンのすべてを画面表示して、どのような認識パターンを想定しているかを利用者に示し、利用者がそのいずれかを意思表示として発音することを促している。
また別の実施例では、メニューの階層が実際の地域や趣味の分野等になっており、階層上の遷移経路の近い利用者同士が公知のグループ会話技術によりグループ会話できるように構成しており、似た状況の他人との会話を楽しめるようにしている。他人との会話と認識パターンによる音声認識とのモードの切り替えは、”他人との会話モードへ”と”音声認識パターンへ”という予約語を、各利用者のホームとなる情報モジュール(図1では情報モジュール1にあたるもの)内の2つの変数(先頭に&&がついている、&&${グループ会話}と&&${音声認識})にそれぞれ登録することにより行っている。
また別の実施例では、階層ではなく、情報モジュールが実際の緯度・経度等に関連する座標値や仮想世界の座標値をもつように構成しており、座標の近い情報モジュールに遷移した利用者同士が同様に話せるように構成している。
また別の実施例では、ホームとなる情報モジュールからの遷移経路にあるすべての情報モジュール内の認識パターンをコマンドリストにいれて音声認識可能にしている。
また別の実施例では、すべてではなく、現在画面に表示している認識パターンのみを認識するように構成しており、スクロール操作により、認識パターン集合を総入れ替えできるようにしている。
また別の実施例では、部分的なスクロール操作により消えずに残った認識パターン集合と同時に認識する候補の認識パターンとしても(すなわち同時認識用のコマンドリストにいれても)編集距離が大きいため認識品質を起こしにくい認識パターンのみをスクロールインするようにプログラムしている。
An embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is an explanatory diagram showing an example of a hierarchical reference chain (step operation of a menu hierarchy) of a plurality of information modules according to the method of the present invention.
The computer recognizes the voice of the user as a predetermined recognition pattern based on a computer program (not shown) for implementing the method according to the present invention (the method for realizing transition control is not described in detail for the sake of clarity). In response to the,
Transition of user variables (for example, when the recognition pattern “work” is recognized in the information module 1 in this example, the variable “& $ {current URI}” (not shown) is set to “002.jpl” and the information module 2), and the information module that is preferentially referred to 2)
Output to the user (for example, displaying “I moved to the work page” as text, and voice-synthesizing the same content).
After this transition, the computer performs speech recognition by giving priority to the recognition pattern information included in the information module 2 over the recognition pattern information included in the information module 1. For example, in this example, when the user pronounces “manufacturing work plan”, the computer determines that it corresponds to “manufacturing plan” in the information module 2 instead of “job” in the information module 1, The command “s” for acquiring and displaying the manufacturing plan from the shared folder is executed. In this example, the recognition pattern “work” is programmed not to be registered in the command list.
In this example, the reserved word “return to the previous page” (not shown) is incorporated in the rich client (execution program) that interprets and executes the information module, not the information module, and changes according to the user's wishes. Then, a stack data structure (not shown) in which a chain of transitions is accumulated is managed so that any information module after that returns to the original information module before the transition and goes back further.
In this example, although not shown, regardless of which information module is referenced, all of the recognition patterns are displayed on the screen to indicate to the user what recognition pattern is assumed, and the user It is urged to pronounce either as an intention expression.
In another embodiment, the menu hierarchy is an actual region, a hobby field, etc., and users who are close to the transition path on the hierarchy can make a group conversation using a known group conversation technique. , And enjoy conversations with others in similar situations. To switch the mode between conversation with another person and voice recognition using a recognition pattern, the reserved words “to conversation mode with another person” and “to voice recognition pattern” are used as an information module (in FIG. 1) as the home of each user. This is performed by registering in two variables (with && at the beginning, && $ {group conversation} and && $ {voice recognition}) in the information module 1).
In another embodiment, the information module is configured to have a coordinate value related to the actual latitude / longitude or the coordinate value of the virtual world instead of the hierarchy, and the user who has transitioned to the information module with a close coordinate is used. It is configured so that they can talk in the same way.
In another embodiment, the recognition patterns in all the information modules on the transition path from the home information module are included in the command list to enable voice recognition.
In another embodiment, only the recognition pattern currently displayed on the screen is recognized, not all, and the recognition pattern set can be totally replaced by a scroll operation.
In another embodiment, the recognition pattern is also recognized as a candidate recognition pattern that is recognized at the same time as a recognition pattern set that remains without being erased by a partial scroll operation (that is, even if it is included in the command list for simultaneous recognition). It is programmed to scroll in only the recognition patterns that are less likely to cause quality.

本発明の対象となる知能システムおよび音声認識システムの産業上の利用可能性は明らかであるが、知見そのものの分類・整理・管理、その管理している知見の新しい事実等への自動適用(自動推論)、アイディア自体の広範な検索・探索、アイディアの結合・詳細化・具体化、人類やコミュニティや会社やグループにおける知見や研究結果の自動的な共有・普及・更新・精密化に活用することができる。   Although the industrial applicability of the intelligence system and speech recognition system that are the subject of the present invention is clear, the knowledge itself is classified, organized, and managed, and the knowledge that is managed is automatically applied to new facts (automatic Reasoning), extensive search and search of ideas themselves, combining, refining and materializing ideas, and automatically sharing, disseminating, updating and refining knowledge and research results in human beings, communities, companies and groups Can do.

1 情報モジュール1(ホーム情報モジュール(ページファイル)の例)
2 情報モジュール2(仕事用情報モジュール(ページファイル)の例)
3 情報モジュール3(勉強用情報モジュール(ページファイル)の例)
4 情報モジュール4(勉強/知財用情報モジュール(ページファイル)の例)
1 Information module 1 (example of home information module (page file))
2 Information module 2 (example of work information module (page file))
3 Information module 3 (example of study information module (page file))
4 Information module 4 (example of study / IP information module (page file))

Claims (24)

コンピュータが利用者と相互作用する方法であって、
コンピュータが利用者(人に限らない。以下、同じ)の声又は環境音を所定の認識パターンであると音声認識することに応じて利用者変数の遷移、利用者への出力(テキスト、音声、画像等)又はその両方をコンピュータが行うための情報(一以上の認識パターンの情報も含む)を含んだ複数の情報モジュールについて、
第一の情報モジュールがコンピュータに第二の情報モジュールを参照させるための情報(URI、メモリ内ポインタ、構造体配列のインデックス、等)を含んでおり、
コンピュータが第一の情報モジュールの該参照させるための情報に基づいて第二の情報モジュールを参照したときに、
コンピュータが第一の情報モジュールに含まれる認識パターンの情報よりも第二の情報モジュールに含まれる認識パターンの情報を優先して音声認識を行うようにした方法。
A way for a computer to interact with a user,
When the computer recognizes the voice or environmental sound of the user (not limited to humans, the same applies hereinafter) as a predetermined recognition pattern, the user variable transitions and the output to the user (text, voice, Multiple information modules that contain information (including information on one or more recognition patterns) for the computer to do (such as images) or both,
The first information module contains information (URI, pointer in memory, structure array index, etc.) for making the computer refer to the second information module,
When the computer refers to the second information module based on the information to be referred to in the first information module,
A method in which a computer performs speech recognition by giving priority to information on a recognition pattern included in a second information module over information on a recognition pattern included in a first information module.
コンピュータが、前記参照させるための情報により、情報モジュール(たとえば、URIが指す静的ファイルや動的生成ファイル)間を移動して、認識パターンの情報以外の情報も第二の情報モジュールの情報を優先するようにした
請求項1に記載の方法。
The computer moves between information modules (for example, a static file or a dynamically generated file pointed to by the URI) according to the information to be referred to, and information other than the recognition pattern information also includes information of the second information module. 2. The method according to claim 1, wherein priority is given.
コンピュータが、前記参照させるための情報により、情報モジュール(たとえば、URIが指す静的ファイルや動的生成ファイル)間をサブルーチン呼び出しして戻るまでの間、認識パターンの情報以外の情報も第二の情報モジュールの情報を優先するようにした
請求項1に記載の方法。
Until the computer calls a subroutine between information modules (for example, a static file or a dynamically generated file pointed to by a URI) based on the information to be referred to, information other than the recognition pattern information is also the second information. The method according to claim 1, wherein priority is given to information in the information module.
コンピュータが、
前記サブルーチン呼び出しのその時点での呼び出し関係の連鎖上にある情報モジュールに含まれる認識パターンの情報のみを用いて音声認識をするようにした
請求項3に記載の方法。
Computer
The method according to claim 3, wherein speech recognition is performed using only information of a recognition pattern included in an information module on a chain of call relationships at the time of the subroutine call.
コンピュータが、
前記サブルーチン呼び出しのその時点での呼び出し関係の連鎖の先端にある情報モジュールに含まれる認識パターンの情報のみを用いて音声認識をするようにした
請求項4に記載の方法。
Computer
5. The method according to claim 4, wherein speech recognition is performed using only information on a recognition pattern included in an information module at a tip of a call-related chain at that time of the subroutine call.
前記サブルーチン呼び出しのその時点での呼び出し関係を戻るための固定の認識パターン
を情報モジュールにかかわらずにもつようにした
請求項4又は5に記載の方法。
6. The method according to claim 4, wherein a fixed recognition pattern for returning a calling relationship at the time of the subroutine call is provided regardless of an information module.
前記サブルーチン呼び出しのその時点での呼び出し関係をすべて清算して戻るための固定の認識パターン
を情報モジュールにかかわらずにもつようにした
請求項4又は5に記載の方法。
6. The method according to claim 4 or 5, wherein a fixed recognition pattern for clearing and returning all call relationships at the time of the subroutine call is provided regardless of the information module.
認識されるパターンが所定時間存在しないときに
コンピュータが、
前記サブルーチン呼び出しのその時点での呼び出し関係を
自動で戻るようにプログラムした
請求項4又は5に記載の方法。
When the recognized pattern does not exist for a predetermined time,
6. A method according to claim 4 or 5 programmed to automatically return the current calling relationship of the subroutine call.
コンピュータが、
音声認識しなければならない認識パターンが多い場合に、
その一部のみを画面表示した上で、
所定の認識パターンに応じて画面スクロール又は画面切り替えを行う
請求項1から8のいずれか一項に記載の方法。
Computer
If there are many recognition patterns that must be recognized,
After only a part of it is displayed on the screen,
The method according to any one of claims 1 to 8, wherein screen scrolling or screen switching is performed according to a predetermined recognition pattern.
コンピュータが、
表示できている認識パターンのみを音声認識の対象にする
請求項9に記載の方法。
Computer
The method according to claim 9, wherein only recognition patterns that can be displayed are subjected to speech recognition.
コンピュータが、
前記一部のみを画面表示する際に、
音声認識で混同しにくいもの同士をグループ化して
グループ化してできた複数のグループにわたって画面スクロール又は画面切り替えを行う
請求項9又は10に記載の方法。
Computer
When displaying only a part of the screen,
The method according to claim 9 or 10, wherein screen scrolling or screen switching is performed over a plurality of groups formed by grouping things that are difficult to confuse in speech recognition.
コンピュータが、
音声認識する認識パターンの範囲を、
利用者が直前に音声指定した状況ごとに変更できる
請求項1から11のいずれか一項に記載の方法。
Computer
The range of recognition patterns for voice recognition
The method according to any one of claims 1 to 11, wherein the method can be changed for each situation designated by the user immediately before.
コンピュータが、
音声認識する認識パターンの範囲を、
利用者が直前に音声指定又は音声によりコンピュータに自動推測させた
文章タイプ又は格もしくは格の値(深層格、表層格、など)ごとに変更する
請求項1から12のいずれか一項に記載の方法。
Computer
The range of recognition patterns for voice recognition
It changes for every sentence type or case value or case value (deep case, surface case, etc.) that the user has automatically designated or spoken automatically by voice, and changes according to any one of claims 1 to 12. Method.
複数の前記情報モジュールを、
該情報モジュールに関連する実際の緯度、経度もしくは高度、又は、仮想の座標に関係づけて記憶し、
利用者の指定した座標範囲内に位置する情報モジュールに含まれる認識パターンの情報のみを
音声認識可能にする
請求項1から13のいずれか一項に記載の方法。
A plurality of the information modules;
Store in relation to the actual latitude, longitude or altitude associated with the information module, or virtual coordinates;
The method according to claim 1, wherein only the information of the recognition pattern included in the information module located within the coordinate range specified by the user can be recognized by voice.
複数の前記情報モジュールを、
該情報モジュールの内容に関連する階層的なテーマタグ(地域階層、勉強分野階層、機能分野階層、等)に関係づけて記憶し、
利用者の指定したテーマタグ配下に位置する情報モジュールに含まれる認識パターンの情報のみを
音声認識可能にする
請求項1から14のいずれか一項に記載の方法。
A plurality of the information modules;
Store in relation to hierarchical theme tags (regional hierarchy, study field hierarchy, functional field hierarchy, etc.) related to the contents of the information module,
The method according to any one of claims 1 to 14, wherein only the information of the recognition pattern included in the information module located under the theme tag designated by the user can be recognized by voice.
同一の認識パターンが、コンピュータが行う複数の出力に関連づけられているとき
乱数を用いて一の出力だけを実行する
請求項1から15のいずれか一項に記載の方法。
The method according to any one of claims 1 to 15, wherein only one output is performed using a random number when the same recognition pattern is associated with a plurality of outputs performed by a computer.
所定の情報モジュールに値が固定された変数をもたせ、
利用者が該情報モジュールを読み込んだときに該変数と該固定された値を記憶し、
他の情報モジュールを優先して参照した場合にも
該変数と該固定された値は該他の情報モジュールから参照はできるが変更や削除はできないように
構成した
請求項1から16のいずれか一項に記載の方法。
Give a given information module a variable with a fixed value,
Storing the variable and the fixed value when the user reads the information module;
The variable and the fixed value can be referred to from the other information module but cannot be changed or deleted even when the other information module is referenced preferentially. The method according to item.
所定の情報モジュールに静的又はグローバルである旨を指定した変数をもたせ、
利用者が該情報モジュールを読み込んだときに該変数をグローバルに宣言かつ定義し、
他の情報モジュールを優先して参照した場合にも
該変数を該他の情報モジュールから参照、変更又は削除できるようにプログラムした
請求項1から17のいずれか一項に記載の方法。
Give a given information module a variable that specifies static or global,
Declare and define the variable globally when the user loads the information module,
The method according to any one of claims 1 to 17, wherein the variable is programmed so that the variable can be referred to, changed, or deleted from the other information module even when the other information module is referenced preferentially.
音声認識する認識パターンの集合を変化する毎に
コンピュータが
その旨を音声又は画面表示により示すようにプログラムした
請求項1から18のいずれか一項に記載の方法。
The method according to any one of claims 1 to 18, wherein the computer is programmed so that each time the set of recognition patterns for voice recognition is changed, the fact is indicated by voice or screen display.
当該方法に関連して
音声認識させるために利用者が発話しコンピュータが受話した内容及び認識パターンにより認識した結果とを
コンピュータが蓄積して、
利用者の行動、傾向又は実績(発音上達度を除く。除いたもの以外は、勉強カリキュラムや業務ノルマ等の消化度や消化範囲等も含む)を分析又は評価することを特徴とする
請求項1から19のいずれか一項に記載の方法。
The computer accumulates the content that the user uttered and the result recognized by the recognition pattern in order to make speech recognition related to the method,
2. Analyzing or evaluating user's behavior, tendency or performance (excluding the degree of pronunciation improvement. Excluding those excluding those including digestion degree and digestion range of study curriculum and business norm, etc.) 20. The method according to any one of 1 to 19.
同一の情報モジュール又は座標の近接した情報モジュール集合を同時にアクセスしている利用者の集合が
テキスト、音声又は音声動画によるグループ通信をできるようにプログラムした
請求項1から20のいずれか一項に記載の方法。
21. The program according to any one of claims 1 to 20, wherein a set of users simultaneously accessing the same information module or a set of adjacent information modules of coordinates is programmed so as to perform group communication by text, audio or audio-video. the method of.
音声以外のコンテンツ(画像表示、現在のグローバル変数の状態、現在参照している情報モジュールが示す状況テキスト)にそれぞれフォーカスするための予約語を用意した
請求項1から21のいずれか一項に記載の方法。
The reserved word for each focusing on contents (image display, the state of the current global variable, the status text which the information module currently referred to which is referring now) other than an audio | voice is prepared respectively. the method of.
請求項1から22のいずれか一項に記載の方法を実施するためのコンピュータプログラム。 Computer program for carrying out the method according to any one of claims 1 to 22. 請求項1から22のいずれか一項に記載の方法を実施するための装置。 23. Apparatus for carrying out the method according to any one of claims 1 to 22.
JP2016216820A 2016-11-06 2016-11-06 Speech recognition methods, computer programs and equipment Active JP6895037B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016216820A JP6895037B2 (en) 2016-11-06 2016-11-06 Speech recognition methods, computer programs and equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016216820A JP6895037B2 (en) 2016-11-06 2016-11-06 Speech recognition methods, computer programs and equipment

Publications (2)

Publication Number Publication Date
JP2018072784A true JP2018072784A (en) 2018-05-10
JP6895037B2 JP6895037B2 (en) 2021-06-30

Family

ID=62111665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016216820A Active JP6895037B2 (en) 2016-11-06 2016-11-06 Speech recognition methods, computer programs and equipment

Country Status (1)

Country Link
JP (1) JP6895037B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737331A (en) * 2019-09-11 2020-01-31 浙江迈联医疗科技有限公司 Personalized cognitive training and rehabilitation method, device and equipment based on multitask brain-computer interface
CN112967718A (en) * 2021-04-02 2021-06-15 江苏吉祥星智能科技有限公司 Sound-based projector control method, device, equipment and storage medium
CN117316159A (en) * 2023-11-30 2023-12-29 深圳市天之眼高新科技有限公司 Vehicle voice control method, device, equipment and storage medium

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08266747A (en) * 1995-03-31 1996-10-15 Matsushita Electric Ind Co Ltd Voice recognition device, reacting device, reaction selecting device, and reactive toy using those devices
JPH10222337A (en) * 1997-02-13 1998-08-21 Meidensha Corp Computer system
JP2000137729A (en) * 1998-11-02 2000-05-16 Fujitsu Ltd Dictionary retrieval device and recording medium recorded with dictionary retrieval program
JP2001109493A (en) * 1999-10-12 2001-04-20 Mitsubishi Electric Corp Voice interactive device
JP2003004470A (en) * 2001-06-18 2003-01-08 Alpine Electronics Inc Voice recognition unit for navigation
JP2003091412A (en) * 2001-09-18 2003-03-28 Hcx:Kk Document processor and document processing method
WO2003052737A1 (en) * 2001-12-17 2003-06-26 Asahi Kasei Kabushiki Kaisha Speech recognition method, remote controller, information terminal, telephone communication terminal and speech recognizer
JP2004061754A (en) * 2002-07-26 2004-02-26 Denso Corp Voice controlled unit
JP2004317914A (en) * 2003-04-18 2004-11-11 Nissan Motor Co Ltd Speech recognition device
JP2006251059A (en) * 2005-03-08 2006-09-21 Nissan Motor Co Ltd Voice dialog system and the voice dialog method
JP2006349954A (en) * 2005-06-15 2006-12-28 Fujitsu Ltd Dialog system
JP2008039928A (en) * 2006-08-02 2008-02-21 Xanavi Informatics Corp Speech interactive apparatus and speech interactive program
JP2008293168A (en) * 2007-05-23 2008-12-04 Seiko Epson Corp Work management system and work management method
JP2015203835A (en) * 2014-04-16 2015-11-16 株式会社日立システムズ Text edition device, text edition method, and program

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08266747A (en) * 1995-03-31 1996-10-15 Matsushita Electric Ind Co Ltd Voice recognition device, reacting device, reaction selecting device, and reactive toy using those devices
JPH10222337A (en) * 1997-02-13 1998-08-21 Meidensha Corp Computer system
JP2000137729A (en) * 1998-11-02 2000-05-16 Fujitsu Ltd Dictionary retrieval device and recording medium recorded with dictionary retrieval program
JP2001109493A (en) * 1999-10-12 2001-04-20 Mitsubishi Electric Corp Voice interactive device
JP2003004470A (en) * 2001-06-18 2003-01-08 Alpine Electronics Inc Voice recognition unit for navigation
JP2003091412A (en) * 2001-09-18 2003-03-28 Hcx:Kk Document processor and document processing method
WO2003052737A1 (en) * 2001-12-17 2003-06-26 Asahi Kasei Kabushiki Kaisha Speech recognition method, remote controller, information terminal, telephone communication terminal and speech recognizer
JP2004061754A (en) * 2002-07-26 2004-02-26 Denso Corp Voice controlled unit
JP2004317914A (en) * 2003-04-18 2004-11-11 Nissan Motor Co Ltd Speech recognition device
JP2006251059A (en) * 2005-03-08 2006-09-21 Nissan Motor Co Ltd Voice dialog system and the voice dialog method
JP2006349954A (en) * 2005-06-15 2006-12-28 Fujitsu Ltd Dialog system
JP2008039928A (en) * 2006-08-02 2008-02-21 Xanavi Informatics Corp Speech interactive apparatus and speech interactive program
JP2008293168A (en) * 2007-05-23 2008-12-04 Seiko Epson Corp Work management system and work management method
JP2015203835A (en) * 2014-04-16 2015-11-16 株式会社日立システムズ Text edition device, text edition method, and program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
""Voice eXtensible Markup Language (VoiceXML TM) version 1.0 W3C Note 05 May 2000"", [ONLINE], JPN7020002195, 5 May 2000 (2000-05-05), ISSN: 0004315193 *
荒木雅弘: ""ボイスウェブの可能性−VoiceXML概説−"", 情報処理, vol. 44, no. 10, JPN6020026961, 15 October 2003 (2003-10-15), pages 1044 - 1051, ISSN: 0004315194 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737331A (en) * 2019-09-11 2020-01-31 浙江迈联医疗科技有限公司 Personalized cognitive training and rehabilitation method, device and equipment based on multitask brain-computer interface
CN110737331B (en) * 2019-09-11 2023-10-27 浙江迈联医疗科技有限公司 Individualized cognitive training and rehabilitation method, device and equipment based on multi-task brain-computer interface
CN112967718A (en) * 2021-04-02 2021-06-15 江苏吉祥星智能科技有限公司 Sound-based projector control method, device, equipment and storage medium
CN112967718B (en) * 2021-04-02 2024-04-12 深圳吉祥星科技股份有限公司 Projector control method, device, equipment and storage medium based on sound
CN117316159A (en) * 2023-11-30 2023-12-29 深圳市天之眼高新科技有限公司 Vehicle voice control method, device, equipment and storage medium
CN117316159B (en) * 2023-11-30 2024-01-26 深圳市天之眼高新科技有限公司 Vehicle voice control method, device, equipment and storage medium

Also Published As

Publication number Publication date
JP6895037B2 (en) 2021-06-30

Similar Documents

Publication Publication Date Title
Janarthanam Hands-on chatbots and conversational UI development: build chatbots and voice user interfaces with Chatfuel, Dialogflow, Microsoft Bot Framework, Twilio, and Alexa Skills
US11823074B2 (en) Intelligent communication manager and summarizer
Marietto et al. Artificial intelligence markup language: a brief tutorial
WO2017217507A1 (en) Artificial intelligence system for supporting communication
Coronado et al. A cognitive assistant for learning java featuring social dialogue
Garrido et al. Smart tourist information points by combining agents, semantics and AI techniques
CN109948151A (en) The method for constructing voice assistant
JP6895037B2 (en) Speech recognition methods, computer programs and equipment
Duncker Chatting with chatbots: Sign making in text-based human-computer interaction
Baymurzina et al. Dream technical report for the alexa prize 4
CN116700839B (en) Task processing method, device, equipment, storage medium and program product
Wilson Age of Invisible Machines: A Practical Guide to Creating a Hyperautomated Ecosystem of Intelligent Digital Workers
Donnarumma Against the norm: othering and otherness in AI aesthetics
Clark A general architecture for heterogeneous language engineering and projectional editor support
Mabunda An intelligent chatbot for guiding visitors and locating venues
JP7020659B2 (en) Computer programs, devices and methods to output based on text
CN112927692A (en) Automatic language interaction method, device, equipment and medium
JP6858721B2 (en) Dialogue controls, programs and methods capable of conducting content dialogue
JP2018073015A (en) Searching tree pruning method, computer program and apparatus
JP2018063509A (en) Computer program, device and method for output based on text
JP2018085002A (en) Method, computer program and device for digitally responding to voice and thought in real time
Bouchet et al. A framework for modeling the relationships between the rational and behavioral reactions of assisting conversational agents
Attigeri et al. Advanced NLP models for Technical University Information Chatbots: Development and Comparative Analysis
CN117556802B (en) User portrait method, device, equipment and medium based on large language model
WO2024069974A1 (en) Dialogue device, dialogue method, and dialogue program

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20161202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200825

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210308

R150 Certificate of patent or registration of utility model

Ref document number: 6895037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150