JP6905729B2 - Search pruning methods, computer programs and equipment - Google Patents

Search pruning methods, computer programs and equipment Download PDF

Info

Publication number
JP6905729B2
JP6905729B2 JP2016210096A JP2016210096A JP6905729B2 JP 6905729 B2 JP6905729 B2 JP 6905729B2 JP 2016210096 A JP2016210096 A JP 2016210096A JP 2016210096 A JP2016210096 A JP 2016210096A JP 6905729 B2 JP6905729 B2 JP 6905729B2
Authority
JP
Japan
Prior art keywords
search
patent document
variable
variables
character string
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.)
Active
Application number
JP2016210096A
Other languages
Japanese (ja)
Other versions
JP2018073015A (en
Inventor
中村圭介
Original Assignee
ナレルシステム株式会社
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 ナレルシステム株式会社 filed Critical ナレルシステム株式会社
Priority to JP2016210096A priority Critical patent/JP6905729B2/en
Publication of JP2018073015A publication Critical patent/JP2018073015A/en
Application granted granted Critical
Publication of JP6905729B2 publication Critical patent/JP6905729B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、探索枝刈り方法、コンピュータプログラム及び装置に関する。 The present invention relates to search pruning methods, computer programs and devices.

変数を含んだ文字列をリテラルとして許容する論理プログラムとその処理系が当該発明者によって研究開発されている(特許文献1〜6)。
これは従来のPROLOG等に比べて自然言語に近い表現を、知識源(ルールや事実)としても質問文(変数を含むリテラル)としてもそのまま取り扱えるため、小中学生や高齢者にも格段に利用しやすくなっている。
しかし、表現の自由度を高くできるように、格構造や係り受け構造等を明確にできるカッコやコンマ等のデリミタ(すなわち、構文解析上の手がかり)や文法上の制約を少なくしており、通常のPROLOGに比べて単一化や導出の探索空間(変数のとりうる値の集合や適用できる導出ルールの数)が大きくなり、探索枝刈りや無限ループ発見の必要性が従来よりも高くなっていた。
しかも、従来PROLOGのバックトラックを伴う深さ優先探索が、最初の答えを見つけた後等にユーザー判断で中断できるのに対し、構文のあいまいさによる意味のあいまいさをルールボディ内の条件文間における冗長なバックトラック(例えば、真偽がすでにわかっている条件文を何度も探索すること)なく解決するよう、ルールボディ内に幅優先探索を採用した場合には、最初の答えまでの途中と答えから次の答えの途中における枝刈りは、たとえ本質的に有望な枝刈りが存在する場合であっても極めて実施が難しかった。
また、枝刈りの判断を行う為や推論の正当性を検証する為の計算経過の表現は、従来の記号論理では小中学生や高齢者に対して一般的に困難であり、人間による直感的かつ迅速な判断の介入を妨げていた。
また、そもそも探索や推論といったコンピュータによる人工知能的思考のプロセスは、従来、実行時に利用者にわかりやすく示すことが困難であった。
A logical program that allows a character string containing a variable as a literal and a processing system thereof have been researched and developed by the inventor (Patent Documents 1 to 6).
Compared to conventional PROLOG, expressions that are closer to natural language can be handled as they are as knowledge sources (rules and facts) and question sentences (literals including variables), so they can be used significantly by elementary and junior high school students and the elderly. It's getting easier.
However, in order to increase the degree of freedom of expression, delimiters such as parentheses and commas (that is, clues in parsing) and grammatical restrictions that can clarify the case structure and dependency structure are reduced, and usually The search space for unification and derivation (the set of possible values of variables and the number of derivation rules that can be applied) is larger than that of PROLOG, and the need for search pruning and infinite loop discovery is higher than before. rice field.
Moreover, while the breadth-first search with the backtrack of PROLOG can be interrupted at the user's discretion after finding the first answer, the ambiguity of the meaning due to the ambiguity of the syntax is caused between the conditional sentences in the rule body. If breadth-first search is adopted in the rule body so as to solve without redundant backtracking in (for example, searching conditional statements whose truth is already known), it is on the way to the first answer. Pruning in the middle of one answer to the next was extremely difficult to perform, even in the presence of essentially promising pruning.
In addition, it is generally difficult for elementary and junior high school students and the elderly to express the calculation process for making a pruning judgment and for verifying the correctness of inference, and it is intuitive and intuitive for humans. It hindered the intervention of quick judgment.
Moreover, in the first place, it has been difficult to show the process of artificial intelligence thinking by a computer such as search and reasoning to the user in an easy-to-understand manner at the time of execution.

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

したがって、本発明が解決しようとする課題は、変数を含んだ文字列をリテラルとして許容する論理プログラムとその処理系において、本質的に有望な枝刈りを利用者(ユーザー)が介入して行えるようにすることである。また、そのためのわかりやすい計算経過の表現とユーザーインターフェースを与えることである。 Therefore, the problem to be solved by the present invention is to allow a user to intervene in an essentially promising pruning in a logical program and its processing system that allow a character string containing variables as a literal. Is to do. It also provides an easy-to-understand representation of the calculation process and a user interface for that purpose.

かかる課題を解決するため、本発明の請求項1は、
コンピュータが探索を行う方法であって、
探索木の一部または全部を表示するステップと、
表示された探索木中の枝又は節点を利用者が選択することによって探索を制御するステップを
含む方法、を提供する。
:「選択」は、個別の複数選択や、表示座標系における矩形領域内の枝又は節点の一括選択等も可能である。
>これにより、利用者は、探索の内容(例えば、部分解やサブゴールの内容等その先の探索が有望かどうかの手がかりとなる情報)だけでなく、計算経過とボトルネック(表示がかわりにくかったり表示パターンが繰り返されたりする枝や節点)を実行時に把握して、効率的な枝刈りを実行することができ、かつ、思考方法や具体的な思考プロセスも把握しやすくなる。
また、本発明の請求項2は、
表示された探索木中の枝又は節点を利用者が選択して枝刈りできるようにすることを特徴とする
請求項1に記載の方法を提供する。
>これにより、枝刈り(探索省略)する範囲を明確に指定することが可能になる。
また、本発明の請求項3は、
表示された探索木中の枝又は節点を利用者が選択して優先探索できるようにすることを特徴とする
請求項1に記載の方法を提供する。
>これにより、優先探索する(例えば、他の枝(部分ツリー状の選択肢)は後回しにする等)範囲を明確に指定することが可能になる。
また、本発明の請求項4は、
前記探索が深さ優先探索であって、
前記表示を根から深さ方向に探索した節点をたどる形で行い、
利用者が選択した枝又は節点の奥の枝又は節点を枝刈りすることを特徴とする
請求項2に記載の方法を提供する。
:「奥」とは、枝先方向のことであり、兄弟となる枝を含まず、根の方向の節点や枝も含まない。このような範囲の計算方法はグラフ理論等で公知であり発明の主旨とも異なるため詳述しない。
>これにより途中までの探索経過(ボトルネックと現在の状態)を勘案した枝刈りが可能となる。
また、本発明の請求項5は、
前記表示を根から深さ方向に現在探索中の節点のみをたどる形で行うことを特徴とする
請求項4に記載の方法を提供する。
:深さ優先探索において「現在探索中の節点のみ」をたどる形とは、根(束縛なし)からはじまり、枝先に向けて、関連する変数の束縛がAND条件で積み重なってきたまさにその時点での探索状態のみを表示すること等をいう。
:例えば、深さ優先に対応したスタックを表示に利用し、スタックの中身をスタックの底からトップに向けて順番に表示する等である。
>現在の枝先に関連しない過去ルート等を表示しないことにより、表示スペースを節約し表示をシンプルにわかりやすくすることができる。
また、本発明の請求項6は、
前記探索が幅優先探索であって、
前記表示を根から樹状に探索木を広げる形で行い、
利用者が選択した枝又は節点の奥の枝又は節点を枝刈りすることを特徴とする
請求項2に記載の方法を提供する。
>これにより、有望な枝への幅優先探索に計算リソースを集中することができ、効率的な探索が可能になる。
また、本発明の請求項7は、
前記探索が幅優先探索であって、
前記表示を根から樹状に探索木を広げる形で行い、
利用者が選択した枝又は節点の奥の枝又は節点を優先して探索することを特徴とする
請求項3に記載の方法を提供する。
:「優先して探索する」とは、選択した以外の枝の探索を後回しにし(例えば、幅優先用キューの先頭に出てきたときに小枝を発生させずに最後尾に入れなおし)たり抑制し(同様に、小枝を発生させずに消滅させたり発生済フラグを付し)たりすること等をいう。
>これにより、幅優先探索の場合であっても、利用者の介入による効率的な(有力解がより短時間で先に見つかる)探索が可能となる。
また、本発明の請求項8は、
前記探索が原則的に幅優先探索であって、
前記表示を根から樹状に探索木を広げる形で行い、
利用者が選択した枝又は節点の奥の枝又は節点を深さ優先で探索することを特徴とする
請求項3又は7に記載の方法を提供する。
>これにより、幅優先探索中に、利用者の介入により戦略的な効率性を追求できる深さ優先探索を部分的に導入することが可能になり、さらに探索の効率が改善する。
また、本発明の請求項9は、
前記探索が、
変数を埋め込める自然言語をリテラルとして許容した論理プログラム上の探索であって、
探索木の表示において、
変数の一部または全部を文字列によって埋めたリテラルを節点又は枝として表示することを
特徴とする
請求項1から8のいずれか一項に記載の方法を提供する。
>このようなリテラルを許容する探索(単一化や導出を含む)の場合に、上記したような発明の効果が特に高まる。
>また、このようなリテラルを許容することにより、コンピュータ思考過程の利用者による視認性が高まり、探索一般における利用者介在効率の改善も期待できる。
また、本発明の請求項10は、
請求項1から9のいずれか一項に記載の方法で用いるコンピュータプログラムを提供する。
また、本発明の請求項11は、
請求項1から9のいずれか一項に記載の方法で用いる装置を提供する。
In order to solve such a problem, claim 1 of the present invention is set forth.
It ’s a way a computer does a search,
Steps to display some or all of the search tree,
Provided is a method comprising a step of controlling a search by the user selecting a branch or node in the displayed search tree.
: "Selection" can be multiple individual selections, batch selection of branches or nodes in a rectangular area in the display coordinate system, and the like.
> As a result, the user can use not only the content of the search (for example, information such as the content of partial decomposition and the content of the subgoal that can be a clue as to whether the search after that is promising), but also the calculation progress and the bottleneck (display is difficult to change). Branches and nodes where the display pattern is repeated) can be grasped at the time of execution for efficient pruning, and it becomes easy to grasp the thinking method and the concrete thinking process.
In addition, claim 2 of the present invention is
The method according to claim 1, wherein the user can select and prun the branches or nodes in the displayed search tree.
> This makes it possible to clearly specify the range to be pruned (search omitted).
In addition, claim 3 of the present invention is
The method according to claim 1, wherein a user can select a branch or a node in the displayed search tree and perform a priority search.
> This makes it possible to clearly specify the range of priority search (for example, other branches (partial tree-like options) are postponed).
In addition, claim 4 of the present invention is
The search is a depth-first search,
The above display is made by tracing the nodes searched in the depth direction from the root.
The method according to claim 2, wherein the branch or node at the back of the branch or node selected by the user is pruned.
: "Back" is the direction of the tip of the branch, does not include the branches that are siblings, and does not include the nodes or branches in the direction of the root. The calculation method in such a range is known in graph theory and the like and is different from the gist of the invention, and will not be described in detail.
> This makes it possible to prun the branches in consideration of the search process (bottleneck and current state) up to the middle.
In addition, claim 5 of the present invention is
The method according to claim 4, wherein the display is performed by tracing only the node currently being searched in the depth direction from the root.
: In the depth-first search, the form that follows "only the node currently being searched" starts from the root (without binding) and toward the tip of the branch, at the very point when the bindings of related variables are piled up under the AND condition. It means to display only the search state of.
: For example, a stack corresponding to depth-first is used for display, and the contents of the stack are displayed in order from the bottom to the top of the stack.
> By not displaying past routes that are not related to the current branch tip, it is possible to save display space and make the display simple and easy to understand.
In addition, claim 6 of the present invention is
The search is breadth-first search,
The above display is made by expanding the search tree from the root to a tree shape.
The method according to claim 2, wherein the branch or node at the back of the branch or node selected by the user is pruned.
> This allows computational resources to be concentrated on breadth-first search for promising branches, enabling efficient search.
In addition, claim 7 of the present invention is
The search is breadth-first search,
The above display is made by expanding the search tree from the root to a tree shape.
The method according to claim 3, wherein the branch or node at the back of the branch or node selected by the user is preferentially searched.
: "Priority search" means to postpone the search for branches other than the selected one (for example, when it appears at the beginning of the breadth-first queue, put it back at the end without generating a twig) or suppress it. (Similarly, it means to extinguish a twig without generating it or to add a generated flag).
> As a result, even in the case of breadth-first search, efficient search (a leading solution can be found first in a shorter time) by intervention of the user becomes possible.
In addition, claim 8 of the present invention is
The search is basically a breadth-first search,
The above display is made by expanding the search tree from the root to a tree shape.
The method according to claim 3 or 7, wherein the branch or node behind the branch or node selected by the user is searched with priority on depth.
> This makes it possible to partially introduce a depth-first search that can pursue strategic efficiency through user intervention during breadth-first search, further improving search efficiency.
In addition, claim 9 of the present invention is
The search is
A search on a logical program that allows a natural language in which variables can be embedded as a literal.
In the display of the search tree
The method according to any one of claims 1 to 8, wherein a literal in which a part or all of a variable is filled with a character string is displayed as a node or a branch.
> In the case of a search that allows such literals (including unification and derivation), the effect of the invention as described above is particularly enhanced.
> Further, by allowing such literals, the visibility of the computer thinking process by the user is enhanced, and it can be expected that the user intervention efficiency in the search in general is improved.
Further, claim 10 of the present invention is:
Provided is a computer program used by the method according to any one of claims 1 to 9.
In addition, claim 11 of the present invention is
Provided is an apparatus used by the method according to any one of claims 1 to 9.

本発明による深さ優先探索の枝刈りユーザーインターフェースの例を示す説明図である。It is explanatory drawing which shows the example of the pruning user interface of the depth-first search by this invention. 本発明による幅優先探索の枝刈り・優先指定ユーザーインターフェースの例を示す説明図である。It is explanatory drawing which shows the example of the pruning / priority designation user interface of breadth-first search by 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)からの抜粋である。
Some examples described below additionally implement the above-mentioned functions specific to the present invention in the embodiment of the following patent specifications (excerpts from the above-mentioned Patent Documents 1 and 6) by the same inventor. It can be carried out by. In addition, the following citations of Patent Documents 1 and 6 also include supplementary purposes in terms of feasibility and inventive step of the present person.

===
<Problems of Patent Document 1> It is possible to automatically process knowledge expressed in the form of embedding variables in natural language on a computer in the same way as PROLOG, and comprehensive deduction and solution search (automatic unification processing) at the predicate logic level. , Automatic derivation processing, backward inference for that, backtrack).
Make full use of the advantage that variables are not tied to the case structure, speed up processing, and display the results in an easy-to-read manner for proof and learning.
<Solutions for Patent Document 1 (Overview)>
When a human inputs a "fact", "rule" or "goal" in PROLOG, the constant part and the variable part of the content corresponding to "literal" in PROLOG are input to the computer separately by the character type, delimiter or escape character.
The computer treats variables as being able to straddle boundaries such as the main part and predicate of a sentence, and performs automatic unification processing, automatic derivation processing, or both of the sentences included in the input.
The pattern, which is a statement that can contain variables, and the constant character string, which is a statement that does not contain variables, are unified, and the longest matching solution of the variable that first appears in the pattern is obtained, and the character string of the longest matching solution is obtained. For each new pattern that can be created by substituting the process of scraping from the back until it becomes an empty character, each state of the solution of the scraping process that was the premise that the new pattern can be created is stored in the same way recursively. Repeat until there are no variables, and combine the states of each intermediate solution that was unified when there are no variables to obtain the answer for each unification.
Detects whether the fixed character string in the pattern is included in the character string in the process of removing the longest matching solution, and speeds up.
Pattern-to-pattern unification is accelerated by focusing on the matching of the beginning and end of words. A concrete method of full search is also provided.
<Solutions for Patent Document 1 (full text, but some additions / corrections so as not to be confused with the present invention)>
(0009)
The present invention has been made in view of such a problem, and claim 1 of Patent Document 1 is set forth in claim 1.
A method in which a computer automatically performs some or all of the functions of the logical programming language PROLOG.
When a human inputs a "fact", "rule" or "goal" in PROLOG, the constant part and variable part of the content corresponding to "literal" in PROLOG (hereinafter referred to as "sentence") are character types, delimiters or escape characters. Input to the computer separately by
The above "facts", "rules" or Performing automatic unification processing, automatic derivation processing, or both of the sentences included in the input of "goal",
Provide a processing method characterized by.
Here, "human beings input the constant part and the variable part into the computer by distinguishing them by the character type, the delimita or the escape character" means that the human beings input in the input field of the application software (processing system) according to the present invention. Input directly after the command prompt (with or without a front-end processor, etc.), copy-paste or cut-paste from an Internet browser, text editing software, etc., or a text file that has been input and saved separately. Etc. are included in reading, quoting, referencing, etc.
In addition, "the computer treats variables as those that can cross the main part, predicate, subject, predicate, object, particle, conjunctive modifier, conjunctive modifier, or sentence boundary of a sentence" means Japanese, etc. It can only straddle the boundaries (explicit delimiters) of case structures (including those that correspond to the hierarchical structure of parsing results and semantic analysis results) with explicit delimiters via particles, etc. and predicates such as English. Instead, it can straddle the boundaries between S and V, the boundaries between V and O, the boundaries between V and C, etc. in SV format, SVO format, SVOO format, and SVOC format, such as English, and the boundaries between compound sentences and compound sentences. Includes modes that are treated as possible (conversely, some modes are not treated). In these cases, as solution candidates that can be included in variables, an arbitrary sub-character string is extracted from the entire sentence or the character string that composes the entire sentence, ignoring the unit of delimiter by the grammatical structure as the sentence, and further, the hierarchy. The whole of compound sentences / double sentences with a typical reference structure, longer papers, etc., and any substrings of them are targeted (note that it is a case where "sentence boundaries" are treated as possible. When dealing with a set of knowledge sources (for example, reading, writing, referencing, etc., a set of knowledge sources in a file), it is necessary to separate the knowledge sources at "other than" the sentence boundary. Therefore, for example, a line feed code, a tab code, or the like can be used as such a delimiter).
As a result, knowledge and information expressed in the form of embedding variables in natural language and knowledge and information in the ordinary sentence format are unified knowledge that opens up the possibility of realistic mutual utilization between them. As a source, it becomes possible to automatically process the two by a computer without distinguishing between them (overcoming the above-mentioned "difficulty A").
In order to open up the possibility of "realistic" interaction "sufficiently", automatic processing by a computer should be provided as a search processing system. 1) Convenience of search formulas (expressions that specify patterns), 2) Sufficient The precision rate (accuracy of the solution), 3) the sufficient recall rate (comprehensiveness in extracting solution candidates) must be provided, but in the present invention, the sentence is free (that is, the grammar and meaning). While allowing the embedding of variables (multiple types or multiple times) in places (not limited to delimiters) (ensuring convenience), it is basically based on PROLOG's knowledge processing procedure (and underlying knowledge interpretation policy). By following this, the risk of reduced precision (solution accuracy) that can occur due to hybrid knowledge processing procedures (and complex knowledge interpretation policies corresponding to the hybrid processing procedures) as in other processing systems is avoided. At the same time, by "treating variables as sentence main parts, predicates, subjects, predicates, objectives, complements, contiguous modifiers, adjunct modifiers, or sentences that can cross boundaries", delimited expressions in natural language ( Unjustified disagreement (regular expression) caused by the appearance of crying of specified patterns by reading points, punctuation points, parentheses, commas, periods, etc.) and modifier phrases (advocacy phrases, adjunct phrases, non-essential case expressions, etc.) Unmatching) is prevented, and a certain degree of reproducibility (comprehensiveness in extracting solution candidates) can be ensured between superficial character string expressions (between search expressions and knowledge sources) where the case structure is not specified. In addition, integrated and continuous inference / extraction (as a solution candidate to a variable) that does not easily impair the exact context (character strings before and after) of the natural language that became the source of knowledge becomes possible, and in the end, its transparency. The simplicity makes it easy and easy to confirm and verify the substantial soundness of the reasoning (the validity of the grounds and the reasoning process), and gives the user a realistic sense of security that the grounds are always clear. Take full advantage of the specification that variables are not tied to the case structure (and you don't have to know about the rules of the case structure (such as the order of appearance) and you don't have to worry that the order of the arguments may be wrong). Allows you to cut.
Since the first target of the present invention is Japanese (the amount of information in one character is large and there is no space between words), there are many contents in which characters are used as processing units and delimiter units. (The amount of information in one character is small, the number of characters in one sentence is large, but there is a space between words), it is possible to perform the same processing in units of words separated by spaces.
(0010)
Further, claim 2 of Patent Document 1 is
In the automatic unification process
Unification of a pattern that is a sentence that can contain variables (a constant part and a variable part are distinguished by a character type, a delimiter, or an escape character) and a constant character 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) and find the longest matching solution. Each new pattern (example: Taro and Jiro> Taro and Jiro> Taro and Jiro>Taro>Taro>Ta> Sky) that can be created by substituting the process of cutting the character string from the back (or front) to an empty string (example: Taro and Jiro> Taro and Jiro> Taro and>Taro>Ta> Sky) : "Taro and Jiro and $ Y like $ Z">"Taro and Jiro and $ Y like $ Z">"Taro and Jiro and $ Y like $ Z">"Taro and $ Y like $ Z""Ilike">"Thick and $ Y like $ Z">"And $ Y like $ Z"), each state of the solution of the shaving process that was the premise that the new pattern can be created ($ X = While memorizing Taro and Jiro> Taro and Jiro> Taro and>Taro>Ta> Sky)
Recursively repeat until there are no more variables,
The state of each solution that was unified when the variable disappeared (example: true ($ X = Taro and Jiro, $ Y = Saburo), true ($ X = Taro, $ Y = Jiro and Saburo)) Characterized by combining and obtaining answers for each unification (example: answer 1 = ($ X = Taro and Jiro, $ Y = Saburo), answer 2 = ($ X = Taro, $ Y = Jiro and Saburo)) The processing method according to claim 1 of Patent Document 1 is provided.
Here, "(or last)" corresponds to "(or before)", and when substituting from the variable that appears last, it means that the start of scraping must be from the front.
This makes it possible to verify the state of each solution candidate that reliably covers all possibilities from the longest matching solution to the shortest matching solution, and to provide a comprehensive answer (a set of further narrowed solution candidates). It will be possible.
(0011)
Further, claim 3 of Patent Document 1 is
The processing method according to claim 2 of Patent Document 1, which is characterized in that instead of gradually cutting until it becomes an empty string, it gradually cuts only to the shortest matching solution obtained separately.
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 is
When gradually scraping until it becomes an empty string
If one character C (immediately after (or immediately before)), which is a fixed character immediately after (or immediately before) the variable first appears (or last) in the pattern, is another variable and the solution is not an empty string, the variable is changed to the other variable. 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 of Patent Document 1, wherein the substring from the end (or the beginning) of the character string of the longest matching solution to the first character string corresponding to the C is deleted including the C. offer.
Here, "(or last)" corresponds to "(or just before)", and when substituting from the variable that appears last, it means that the start of scraping must be from the front.
As a result, it is possible to save the enumeration of solution candidates that do not match the fixed characters immediately after (or immediately before) the variable and the search based on the solution candidates, and it may be possible to speed up the automatic processing.
(0013)
Further, claim 5 of Patent Document 1 is
In the automatic unification process or the automatic derivation process
When requesting binding information that becomes the "goal" (including "sub-goal"; the same applies hereinafter)
Any one of claims 1 to 4 of Patent Document 1 that independently obtains binding information for each sentence constituting the "goal" and returns the return value true and the intersection of the binding information when the product set 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 has been assigned to each variable at the same time. The binding information indicating one binding method for each variable is "variable name 1 = value 1, variable name 2 = value 2, ..., variable name N =" by interpreting "," as an AND combination. While it can be expressed in a list format such as "value N", multiple bindings can be expressed as a set of such lists, or as a common part between multiple bindings by explicitly specifying an AND / OR combination instead of ",". It can be expressed in a conjunctive normal form or a conjunctive normal form that standardizes the whole of multiple bindings.
As a result, in the case of a problem form in which there are multiple patterns (sentences) to be satisfied at the same time, and variables with the same name should have the same solution among the patterns (sentences) (for example, such an AND join query from the user, When there are multiple sentences in the body part of the rule), there is less possibility that a large amount of full-text search processing will be unnecessarily repeated for each unification result of the pattern on the left side of the rule, and the body 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 natural language), and to simplify the processing for each pattern to be satisfied at the same time. It also makes the display and verification (integrity and soundness) of the inference process easy to understand. In addition, it is possible to prevent the ordering (between sentences in the body part), which is unnecessary for the intuition required as the meaning of the rule and should not be defined, to have a side effect on the inference process.
(0014)
Further, claim 6 of Patent Document 1 is
In the automatic unification process or the automatic derivation process
When requesting the binding information that is the "goal"
Empty the existing binding information first,
The sentence set contained in the "goal" is automatically calculated for whether the sentence can be true under the application of the existing binding information and the additional binding information for the possible binding information, and the additional binding information is used as the existing binding information. While adding, the sentence is recursively reduced except for the sentence,
The processing method according to any one of claims 1 to 4 of Patent Document 1 is provided in which the existing binding information when the sentence set becomes an empty set as it can be true is used as the binding information as the "goal". do.
Here, "recursively reduce" means that the deeper the recursion, the smaller the statement set and the more complicated the binding information (more variables are bound, and the range of bound values is narrowed down). For example, it means to realize equivalent recursive processing by a process of making a recursive call in C language or a stack structure (structure array and stack pointer, etc.) for depth priority search originally declared and defined.
This simplifies the problem of automatically processing an open question consisting of multiple patterns of AND joins that must be satisfied at the same time, expressed in the form of embedding variables in natural language, into a simpler and recursive subproblem with the same structure. Transform to facilitate the display and verification (completeness and soundness) of the inference process.
(0015)
Further, claim 7 of Patent Document 1 is
In the automatic unification process or the automatic derivation process
When unifying the non-variable pattern with the non-variable fact
The processing method according to any one of claims 1 to 6 of Patent Document 1, which returns true when the pattern and the fact match as a character string, or returns false when the pattern and the fact do not match as a character string. offer.
As a result, the search can be performed simply and quickly.
When "facts that do not include variables" include multiple sentences separated by punctuation marks. The "match as a character string" may be provided with a mode in which the character string of the pattern may match a part of the actual character string.
As a result, a plurality of pieces of information of the same type can be collectively expressed as one fact and used as a search target. It also makes it easier to express some order between multiple elements (eg, size, preciousness, antiquity, etc.).
(0016)
Further, claim 8 of Patent Document 1 is
In the automatic unification process or the automatic derivation process
When unifying the pattern that does not include variables and the head part that does not include variables in the horn clause,
When the pattern and the head portion match as a character string, the result of applying the processing method according to claim 5 or 6 of Patent Document 1 with the body portion of the horn clause as a subgoal is returned.
The processing method according to any one of claims 1 to 7 of Patent Document 1, which returns false if they do not match, is provided.
This explains the sound mechanical interpretation when the head of the rule that expresses the variable in the form of embedding it in natural language does not include the variable, the seamless, easy-to-understand, simple and unified processing mechanism, and the corresponding inference process. Can be given.
(0017)
Further, claim 9 of Patent Document 1 is
In the automatic unification process or the automatic derivation process
When unifying a pattern that does not contain variables and a horn clause that has a head that contains variables,
Obtained by processing using the pattern as the "constant character string" in the processing method according to any one of claims 2 to 4 of Patent Document 1 and using the head portion as the "pattern" in the same processing method. About each binding information
If there is a true result of processing the one applied to the body portion of the horn clause as a "subgoal" of the processing method according to claim 5 or 6 of Patent Document 1, the true value is returned or exists. Provided is the processing method according to any one of claims 1 to 8 of Patent Document 1, which returns false if not.
As a result, when the head of the rule that expresses the variable in the form of embedding it in natural language contains the variable and the pattern that invokes this rule does not contain the variable, the bound range of the variable in the body part is limited in advance, and it is true. The processing of false judgment can be speeded up.
It can also provide a sound mechanical interpretation, a seamless, easy-to-understand, simple and unified processing mechanism, and an explanation of the corresponding inference process.
(0018)
Further, claim 10 of Patent Document 1 is
In the automatic unification process or the automatic derivation process
When unifying patterns with variables and facts without variables
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 same processing method. return,
The processing method according to any one of claims 1 to 9 of Patent Document 1 is provided.
As a result, all solution candidates (to case variables) between patterns and (static) facts are identified and returned as "results", which is the basis for overcoming "difficulty A" above. A simple mechanism can be given, facilitating not only visualization and verification of the inference process, but also learning through the user's hands such as rule modification.
(0019)
In addition, claim 11 of Patent Document 1 is
In the automatic unification process or the automatic derivation process
When unifying the pattern containing variables and the horn clause having a head part not containing variables,
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 head portion as the "constant character string" in the same processing method. The binding information (C) is true, and the binding information is true when the result of processing the body portion of the horn clause as a "subgoal" of the processing method according to claim 5 or 6 is true. Return true with (C),
The processing method according to any one of claims 1 to 10 of Patent Document 1 is provided.
As a result, all solution candidates (for each variable) between the pattern containing variables and the head (static without variables) are identified and returned as "results". Therefore, the above "difficulty A" The basic mechanism for overcoming it can be simply given, facilitating not only visualization and verification of the inference process, but also learning through the user's hands such as modifying rules.
It also simply transforms into a simpler and recursive (or mutual recursion) subproblem with the same structure, facilitating the display and verification (completeness and soundness) of the inference process.
In addition, a sound mechanical interpretation when the head of the rule that expresses the variable in the form of embedding it in natural language does not include the 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 is
In the automatic unification process or the automatic derivation process
When unifying the pattern containing variables and the horn clause having a head part containing variables,
Returns false if the number of fixed characters existing in the pattern and the head, tail, or both of the head does not match.
The processing method according to any one of claims 1 to 11 of Patent Document 1 is provided.
As a result, compared to a uniform search, it is possible to clearly save a large amount of calculation and improve the processing speed.
(0021)
In addition, claim 13 of Patent Document 1 is
In the automatic unification process or the automatic derivation process
When unifying the first pattern containing variables and the horn clause having a head part containing variables,
When the pattern matches the fixed characters for the number of characters existing at the head and tail of the head part,
Each binding information obtained by binding the head portion of the horn clause with each binding information for which the result of applying the body portion of the horn clause as a "subgoal" in the processing method according to claim 5 or 6 of Patent Document 1 is true. About the second pattern
If the second pattern does not contain variables
Processing was performed using the first pattern as the "pattern" in the processing method according to any one of claims 2 to 4 of Patent Document 1 and using the second pattern as the "constant character string" in the same processing method. Returns the result,
The processing method according to any one of claims 1 to 12 is provided.
Here, "when the second pattern does not contain variables" means that in the horn clause (rule), all the variables included in the head part are also included in the body part "also", and all the variables in the body part are included. As a result of the variables being bound by constants (fixed character strings), all the variables in the head part are also bound (assigned) by constants (fixed character strings), so the variables in the head part disappear and the head part becomes a constant character string. It means that it can be regarded.
As a result, unification of the pattern including variables and the horn clause (rule) having a head portion including variables can be mechanically and automatically performed in a flow that is easy for the user to trace by using a simple calculation model.
That is, all solution candidates (those that should be assigned to each variable of the pattern) between the pattern containing the variable and the head part that does not include the variable (by each binding information) (= constant character string) are identified and " By reducing the original more complicated problem (variable-to-variable unification) (transforming the problem) in the form of returning as a "result", the basic mechanism for overcoming the above "difficulty A" is simplified. It is made easy to express as a giving and thinking process. In addition, in this "reduction (conversion of the problem)", it is simply converted into a sub-problem with the same structure that is simpler and recursive (or mutual recursion), so that the inference process is visualized and verified (completely). It facilitates learning through the user's hands, such as modifying rules as well as (of sexuality and soundness). After all, a sound mechanical interpretation when the head of the rule that expresses the variable in the form of embedding it in natural language contains the variable, a seamless, easy-to-understand, simple and unified processing mechanism, and an explanation of the inference process corresponding to these. Can be easily given.
(0022)
In addition, claim 14 of Patent Document 1 is
The processing method according to any one of claims 1 to 13 of Patent Document 1, wherein the computer restricts the input of facts including variables.
Here, the facts including variables (knowledge sources that are not rules) include, for example, "$ X is $ X" (tautologically tautological fact) and "$ X is $ Y" (. There is no basis for truth if only the superficial sentence patterns match).
By limiting the input of these to the computer, the calculation of the automatic unification process of patterns (sentences that can contain variables) and facts (sentences that do not contain variables (= fixed character strings)) becomes simple. , High-speed answer is possible by automatic processing. It also makes it difficult to mix unfounded facts into knowledge sources.
(0023)
In addition, claim 15 of Patent Document 1 is
The rule has a form similar to the so-called horn clause, and any one of claims 1 to 14 of Patent Document 1 is characterized in that the computer restricts the head portion from including a variable that does not appear in the body portion. The processing method described is provided.
Here, "the computer restricts the head part from including variables that do 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 in all the sentences in the body part ($ Y and $ Z in this example) are bound (assigned), such as "Z-friendly, $ Z is a child, $ Y is smart", the variables in the head part In this example, it means that the computer restricts the input, storage, and activation of rules that leave ($ X) unbound as a source of knowledge. Such a rule leads to leaving unbound variables in the head, as in the case of facts, which tends to produce unhealthy inference results and slows down inference.
By restricting the input of such rules to the computer, the pattern (sentence that can contain variables) and the head part (sentence that does not contain variables (= fixed character string) according to claim 13 of Patent Document 1) can be combined. The calculation of the automatic unification process with (reducible) is simplified, and high-speed answering by the automatic process becomes possible. It also makes it difficult to produce unfounded inference results.
(0024)
In addition, claim 16 of Patent Document 1 is
In the automatic unification process or the 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, which is performed by obtaining and returning a set of solutions which is a minimum as a fixed character string, is provided.
Here, as an example of "a set of solutions that are minimal as a fixed character string", as a result of automatic unification between "$ A is $ B" and "$ C is also $ D", {($) A = "mo", $ 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 (especially the smallest simple example) even when there are an infinite number of solutions.
(0025)
In addition, claim 17 of Patent Document 1 is
In the automatic unification process or the automatic derivation process
Automatic unification of patterns and heads or facts with unbound variables remaining in each other,
It is characterized by finding and returning a set of solutions that is the minimum as a character string containing variables.
The processing method according to any one of claims 1 to 13 of Patent Document 1 is provided.
Here, as an example of "a set of solutions that are minimal as a fixed character string", {($) as a result of automatic unification between "$ A is $ B" and "$ C is also $ D". A = "$ C also", $ B = <free>, $ C = <free>, $ D = "is $ B"), ($ A = <free>, $ B = "also $ D", $ It may provide two solutions such as C = "$ A is" and $ D = <freedom>)}. It is considered that the total (through the solution) of the character string length of the value that binds the variable (the value assigned to the variable) (however, if the variable is included, it is regarded as one character per occurrence of the variable) is minimized. be able to.
This makes it possible to provide a general form of a solution even when there are an infinite number of solutions.
(0026)
In addition, claim 18 of Patent Document 1 is
When the fixed characters for the number of characters that are common to the beginning and tail of each character string of the head part or fact and the pattern in which unbound variables remain are not the same.
Characterized by returning false,
The processing method according to claim 16 or 17 of Patent Document 1 is provided.
As a result, automatic search that cannot be unified can be saved, and automatic processing can be speeded up.
(0027)
In addition, claim 19 of Patent Document 1 is
When finding a set of solutions that is the minimum as a character string containing the fixed character string or variables,
Each variable contained in both character strings (the first character string and the second character string) consisting of a pattern and a head part or a fact in which unbound variables remain in each other is bound in common within each character string. And while being bound independently between strings (or, the scope for binding variables with the same name in common is only within each string (or between strings is outside the scope of the variable)).
For each variable, any substring (<empty>) of the other string (the second string for the variable in the first string, the first string for the variable in the second string) and It is characterized by finding a set of solutions that is the minimum by a full search that searches for a case where both character strings match by substituting itself (including the entire character string).
The processing method according to claim 16 or 17 of Patent Document 1 is provided.
"Or substitute yourself ..." means to substitute "$ X" itself for "$ X" in the character string, and it happens to be in the first character string or the second character string. When $ X (the scopes of each are different) is included, the first character string $ X and the second character string $ X can be distinguished (for example, "$ X1" and "$". Clearly sound calculations can also be made by substituting (as X2 ”, etc.).
As a result, it is possible to secure a certain degree of completeness of the solution set (completeness depending on the nature of the problem (pattern pair)) while ensuring soundness and halting property (finiteness of calculation).
(0028)
Further, claim 20 of Patent Document 1 is
Not the two strings themselves, which consist of patterns and heads or facts with unbound variables remaining in each other
Both character strings corresponding to the two character strings remaining after excluding the fixed characters for the number of characters that are common to the beginning and tail of each character string of the pattern and the head part or fact where unbound variables remain in each other. 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 degree 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 also likes $ D ice cream." Delete the common part of "$ A is $ B"
And "$ C is also $ D ice cream"
Then, by full search, all the substrings of "$ C is also $ D ice" for "$ A" and "$ B" (this is a variable such as $ C and $ D ($ {... (The same applies to variables in the form of}) is 6 characters if it is 1 character, so while substituting 6 x (6 + 1) / 2 + 1 (<empty> minutes) + 1 (substringing itself) = 23 ways) , Similarly, all substrings of "$ A is $ B" for "$ C" and "$ D" respectively (since this is also 3 characters, 3 x (3 + 1) / 2 + 1 + 1 = 8 ways For all the character strings (23 x 23 x 8 x 8 ways) that can be created by substituting (existing), if both character strings match (for example, (for example)
"Moha ice cream",
"Hamo ice cream",
"$ A is ice cream",
"$ C is also ice cream",
"$ A is also $ D ice cream"
* By the way, the set of substitution sets when "$ C and $ B ice" do not match) {
($ 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 also", $ B = "ice", $ C = "$ C", $ D = "is"),
($ A = "$ A", $ B = "also $ D ice", $ C = "$ A is", $ D = "$ D")} or a set of partial substitutions for each assignment set (eg, $ D = "$ D")} {
($ A = "also", $ B = "ice"),
($ A = <empty>, $ B = "also ice"),
($ A = "$ A", $ B = "also ice cream"),
($ A = "$ C also", $ B = "ice"),
($ A = "$ A", $ B = "also $ D ice cream")
})
Can be answered as a solution.
Note that $ A = "$ A" and $ B = "also $ D ice" can be freely $ A and $ D, and can be unified by substituting any character string there (that is,). It is possible to show that there are infinite solutions and how the constraints (regular expression form) of the infinite number of solutions (character strings) should be. (0029)
In addition, claim 21 of Patent Document 1 is
Substitute any substring (including <empty> and the entire string) of the other string for each variable, or try to find a case where both strings match. When asking
When a variable is included in the substring to be assigned to a variable, the variable contained in the substring is replaced with a new variable that did not previously exist in both strings, and the same assignment to the new variable is made. Further, the processing method according to claim 19 or 20 of Patent Document 1, which is performed recursively to search for a case where both character strings match, is provided.
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 other character string (for example, both character strings = { In the case of "$ X is $ X", "i $ Yu"}, it is necessary to be able to enumerate ($ X = "say", $ Y = "uye") as solution candidates). It is possible to improve the completeness of the solution candidate enumeration while maintaining the soundness. In the above example, both character strings (also called "pattern pair") = {"$ X is $ X", "i $ Y u"} to ($ X = "say", $ Y = "u yes") According to the present invention, it is possible to recursively search for the solution candidates ($ X = "i $ {Y1} u") ⇒ ($ {Y1} = <empty>) ⇒ ($ Y = "uye"). It can be shown by being able to generate branches (which are part of a 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 matching substitution series while performing a breadth-first search that recursively repeats each possible assignment to each variable (same as the claim of the previous patent document 1). (For example, the above ($ X = "i $ {Y1} u") ⇒ ($ {Y1} = <empty>) ⇒ ($ Y = "uye"), etc.) are listed. The first variation of the assignment is if the types of variables in both strings are 2 and 3 respectively and the length of the string is 6 and 7 characters respectively (variables are collectively counted as 1 character). 2 pieces x (7 x (7 + 1) / 2 + 1 + 1) + 3 pieces x (6 x (6 + 1) / 2 + 1 + 1) = 60 + 69 = 129 ways. When performing a breadth-first search so that the maximum depths of further branches derived from these branches are equal, a limiter (program step to compare with the upper limit value, etc.) is provided according to the number of substitutions, etc., so that each search is performed once. Can be limited to an appropriate amount of calculation (ensure of stopping and response speed that is no longer guaranteed by reflexivity). Even in the case of a depth-first search, the amount of calculation can be limited by limiting the depth, the number of substitutions, and the like. In each case, an infinite loop by self-recursive or mutual recursion is provided, and a stack structure (array of structures) that manages recursive function calls is provided, and call parameters (its substitution series) of branches that are ancestors (more root direction). (It may include the state representation of both character strings according to (assignment context)) can be avoided by comparing it with the current calling parameter. In addition, it is possible to prun the branches that cannot be unified depending on whether or not the fixed character strings existing at the beginning and the end of both character strings match the number of characters existing in common. If a solution is not found by searching for a limited amount of calculation (for example, 1 million substitutions or search depth within 20), it is found as "no solution (accuracy: 1 million substitutions and search depth within 20)". In that case, as "($ X =" say ", $ Y =" yes "), (...), ... (However, accuracy: 1 million substitutions and search depth within 20)", etc. It is also possible to answer the user while clearly indicating the search accuracy. In addition, if the entire search can be clearly performed within the limit number of substitutions and within the limit search depth (when there is completeness), "no solution (total search completed)" or "($ X =") to that effect. It is also possible to answer the user by clearly stating ", $ Y =" Uye "), (...), ... (Completely searched)".
(0030)
In addition, claim 22 of Patent Document 1 is
As for the result of assigning to the variable, the two character strings that remain after removing the fixed characters for the number of characters that are common to the beginning and end of each character string from both
As the "other party's character string" that is the target of "any substring of the other party's character string (including <empty> and the entire character string)", it exists at the beginning or end of the character string as the search progresses. Characterized by reducing the number of fixed characters,
The processing method according to any one of claims 19 to 21 of Patent Document 1 is provided.
As a result, the number of branches decreases as the search progresses (the more the branch goes to the tip), and the amount of calculation can be saved.
(0031)
In addition, claim 23 of Patent Document 1 is
When finding a set of solutions that is the minimum as a character string containing the fixed character string or variables,
Each variable contained in both character strings (the first character string and the second character string) consisting of a pattern and a head part or a fact in which unbound variables remain in each other is bound in common within each character string. And while being bound independently between strings (or, the scope for binding variables with the same name in common is only within each string (or between strings is outside the scope of the variable)).
It is a processing method to find a set of solutions by recursively substituting a fixed character string (including an empty string) or a character string containing a variable into each variable.
Limit the variables to be assigned to the variables at the beginning or end of the own character string whose head or tail is a fixed character.
The substitution value is a new variable or <empty> following the fixed character or fixed character string of the head if it is the head, and a fixed character or fixed character string of the tail following the new variable if it is the tail. Or <empty>
For the result of assigning to the variable, the fixed characters for the number of characters that are common to the beginning and the end of each character string are repeatedly removed from both.
The 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 completeness of the search) by focusing on the existence of fixed characters at the beginning and tail, which enables significant computational complexity savings and speedup. Become. (0032)
In addition, claim 24 of Patent Document 1 is
When finding a set of solutions that is the minimum as a character string containing the fixed character string or variables,
Each variable contained in both character strings (the first character string and the second character string) consisting of a pattern and a head part or a fact in which unbound variables remain in each other is bound in common within each character string. And while being bound independently between strings (or, the scope for binding variables with the same name in common is only within each string (or between strings is outside the scope of the variable)).
It is a processing method to find a set of solutions by recursively substituting a fixed character string (including an empty string) into each variable.
Binds the binding information that can be created using only the fixed character types (character types excluding variable identifiers and delimiters) in both character strings that can be created by excluding the common fixed characters for the number of characters that exist at the beginning and end of each character string. The processing method according to claim 16 or 17 of Patent Document 1, which is obtained by enumerating the values in ascending order from the one having the smallest total character string length.
As a result, problems with certain properties can be efficiently reached and listed.
(0033)
Further, claim 25 of Patent Document 1 is
Based on the obtained "set of solutions that is the minimum as a character string containing variables"
The processing method according to claims 19 to 24 of Patent Document 1 is provided, in which the search is continued by the horn clause that can temporarily rewrite the variable of the horn clause with a character string including the variable.
As a result, it is calculated that the pattern and the head part of the horn clause (rule) are required to be unified (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) in which the constraint that it can be unified only by being bound (assigned) by a character string works), in the body part of the horn clause. It can be propagated to the search process and the search can be streamlined.
(0034)
In addition, claim 26 of Patent Document 1 is
Based on the obtained "set of solutions that is the minimum as a character string containing variables"
A set of fixed character strings created by substituting each element of a set of fixed character strings defined in advance as a set of solutions of the "facts containing variables" into the variable part of the "character string containing variables". return,
The processing method according to any one of claims 19 to 25 of Patent Document 1 is provided.
As a result, a database (for example, "word equation (registered trademark)" and "VLANK (registered trademark)" that links facts containing variables (one or more) and a set of appropriate answers (or hypotheses) that can be filled in the variables (for example) It is possible to search for a solution in an efficient manner 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)
In addition, claim 27 of Patent Document 1 is
In the automatic unification process or the automatic derivation process
When performing automatic unification between the first pattern containing variables and the second pattern containing variables,
When the fixed characters for the number of characters existing at the beginning and tail of both patterns match, and the same variable appears only once in each pattern
Returns information that means the existence of an infinite number of solutions,
The processing method according to any one of claims 1 to 26 of Patent Document 1 is provided.
(0036)
In addition, claim 28 of Patent Document 1 is
Provided is an apparatus for carrying out the method according to any one of claims 1 to 27 of Patent Document 1.
(0037)
In addition, claim 29 of Patent Document 1 is
Provided is a computer program for causing a computer to execute the method according to any one of claims 1 to 27 of Patent Document 1.
(Effect of Invention of Patent Document 1)
(0038)
The effects of the present invention are as described above with respect to the claims of each Patent Document 1.
(Brief description of drawings of Patent Document 1)
(0039)
(Fig. 1) Fig. 1 is an overall view of a network system in which the present invention is most effectively implemented. (Example 1)
FIG. 2 is an explanatory diagram showing a hardware configuration of a computer for carrying out the present invention. (Example 1)
FIG. 3 is an explanatory diagram showing an example of screen display in a terminal for carrying out the present invention.
(Example 1)
(Form for carrying out the invention of Patent Document 1)
(0040)
The present invention can be carried out on all kinds of computers connected / not connected to a network (cloud server, large general-purpose machine, desktop PC, notebook PC, mobile terminal, dedicated machine of the present invention), but it is general. The description will be given in a form realized by a PC connected to the Internet, which has a multitasking function and a window function.
FIG. 1 is an overall view of the network system that most effectively implements the present invention, and the content management device 1 is a content (rule or fact) handled by the user PC2 or the user / administrator PC2 in the present invention. A well-known file sharing server that accepts posts and distributes content while controlling sharing access rights and content provision priority according to a predetermined policy may be used. The user PC2 inputs and stores the content (rules and facts) expressing the content (or content to be examined) in natural language for each user according to the method of the present invention, and stores the content (rules and facts) according to the method of the present invention. Computers, mobile terminals, etc. that process.
FIG. 2 is an explanatory diagram showing a hardware configuration of a computer used in the present invention. This is a general configuration of a computer, and a feature of the present invention is a process processed by the CPU 2e using a natural law according to the instructions and descriptions of the program 3 and the content data 4 stored in the non-volatile memory 2h. It is in the content of the above and the ideal way of the dialogue protocol (format) with the user.
FIG. 3 is an explanatory diagram showing an example of screen display in a terminal for carrying out the present invention. In the figure, in response to the question "? $ A not done" (open question format), "$ A =" is used by using the fact that "do not do anything unpleasant" in the first line of the memorized list L (not shown).
I enumerate the answers "as much as possible / 1 /" and answer "$ A = bullying / 9 /" using the fact that "do not bully" on the 9th line of the list L.
(0041)
In such an embodiment, a computer program manufactured via C ++ language or the like can cause a computer (PC or the like) to perform all possible operations. Therefore, known basic operations of computers using the laws of nature (storage / retrieval to registers, memory, and storage, four-rule operations, comparison, etc.) and general functions that have already become standard libraries for development environments, etc. (Assignment / comparison / copy to variables and N-dimensional arrays, operation / comparison / display of character strings and numerical values, operations such as list structure / queue structure / hash structure / vector type, binary search and sort operations, by regular expression The method of realizing the pattern matching operation, network communication operation, etc.) is different from the essence of the present invention (unique configuration leading to novelty and progress) and is well known to those skilled in the art, and will not be described in detail. .. On the other hand, what kind of operation order and storage method (algorithm and data structure) is used to realize the processing peculiar to the present invention by combining such general functions will be described in detail below. By providing an explanation of this algorithm, etc., an explanation of the above-mentioned problem-solving means, and an explanation of the drawings of the present invention for reference in development, a standard-level professional programmer can use standard application program development techniques ( It is possible to make a computer carry out the method of the present invention by using a GUI application integrated development environment by C ++, etc., and it is also possible to create a device or 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 then a function call is made. A processing means (program) corresponding to the solution means of the present invention while performing input / output and function separation according to the function division of each of the following functions (or by coding the function group as it is according to the specifications shown below). And a computer) can be realized.
(0043)
■ Processing algorithm specifications of knowledge list L for inquiry P
================================================== ================================================== =================
Function Q1 (P: pattern that can include variables, L: knowledge list): ★ Example 1 of Patent Document 1 of the main function common to the claims of Patent Document 1 ★
{
1. 1. Extract the content B (fact or Horn clause) of the first line of L.
However, if L is empty (if the first line could not be retrieved), a false output is output and the process ends.
2. The initial value of the variable binding information C is emptied, the following function H (P, B, C) is called, and the true (= matching) binding information (= solution set) C is output.
When true (= matched) True (yes) is output (the line number of the matched content B is also output).
If false, do nothing.
3. 3. If there is a content B'on the next line of L-Set B ← B'and move to 2.
If not ・ If true is never output in 2, false (no) is output.
·end.
}
(0044)
■ Processing algorithm specification of knowledge list L for inquiry P (pre-fixed character string version) =============================== ================================================== ====================================
Function Q2 (P: pattern that can include variables, L: knowledge list): ★ Example 2 of the main function common to the claims of Patent Document 1 (pre-fixed character string version) ★
{
(Pre-fixed character string)
1. 1. Find the fixed character string text T with {all character strings that can be deduced only from L / the line number set of L used as the basis for deducing each character string} as each line.
Specifically, the text T obtained by merging the elements of the output series (A = solution 1 / rationale 1, A = solution 2 / rationale 2, ...) Of the above function Q1 ("$ A", L) as each line is used. Ask.
In the case of an infinite loop in the middle of the calculation, the deduction is partially omitted by the infinite loop detection function using an explicit call management stack or the like.
-For example, whether the computer is trying to confirm the authenticity of the same horn clause under the same variable binding condition while the computer is performing the confirmation of the authenticity of the horn clause under the same variable binding condition.
Manages the call management stack whose members are structures (the horn clause identifier being confirmed, the current variable binding condition),
Detect an infinite loop by linearly searching for the same combination towards the root of the stack at the time of the call.

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

3. 3. If there is at least one C, it outputs true, otherwise it outputs false.
}
(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 inquiry P
================================================== ================================================== =================
Function H (P: pattern that can contain variables, B: one fact (fixed character string) or horn clause, C: variable binding information): ★ Of the functions used in the inventions of claims 1 to 15 of Patent Document 1. Example 1-1 of Patent Document 1 ★
{
If P does not contain a variable {
If B is a fact {
If P = B, it returns true.
Otherwise, it returns false.
}
If B is the horn clause {
When the head part of B does not contain a variable {
In the case of the head portion of P = B, the truth of the function D (body portion of B, E) is returned.
Otherwise, it returns false.
}
When the head part of B contains a variable {
For each C1 whose true F (B head, P, C1)
If there is C1 for which the result of the function D (C1 applied to the body part of B, E) is true, the true is returned.
Otherwise, it returns false.
}
}
}
If P contains a variable {
If B is a fact {
If there is a C1 for which F (P, B, C1) is true, then all such C1s are added to C and the truth is returned.
If such C1 does not exist, it returns false.
}
If B is the horn clause {
When the head part of B does not contain a variable {
If there is a C1 whose true F (P, B head, C1) and the function D (B body, E) is true, then all such C1s are added to C. Returns true.
Otherwise, it returns false.
}

When the head part of B contains a variable {
★ When implementing the invention of claim 12 of Patent Document 1 ★
// Start of speed-up device (option) When the fixed characters for the number of characters existing in the head and tail of the heads of P and B do not match {
Returns false.
}
// End of speed-up device (option)

★ Implementation of the invention of claim 13 of Patent Document 1 ★
When the fixed characters for the number of characters existing at the head and tail of the head of P and B match {
For any binding information G in E for which the result of the function D (body part of B, E) is true, the function F (the head part of P and B is bound by G (should be a fixed character string)). , C1) If there is C1 that is true
Add all such C1s to C and return true.
If such C1 does not exist, false is returned.
}
}
}
}
}
(0046)
■ Enumeration algorithm specification of solution set of body part of horn clause (or inquiry of compound 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 inquiry of compound sentences sharing variables), E: solution set): ★ Example 1-2A of Patent Document 1 of the function used in the invention of claim 6 of Patent Document 1 ★
* However, the entire knowledge source L is stored in a global variable so that it can be referenced {
1. 1. Take out 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, false is returned.
When true When M does not contain a variable
do nothing.
When M contains a variable
Stores a set C of binding information that can be taken to make M true.
* Variables that do not need to be bound to be true can be explicitly indicated.
* If a certain condition is required to make it true even though the binding value is an infinite set, that condition can be added.
3. 3. The next sentence M'in J is taken out. If it does not exist, it returns true (E = set of binding information C).
4. The function Q1 (M', L) or Q2 (M', L) is called for the entire knowledge source L.
If the result is false, false is returned.
When true When M'does not contain a variable
do nothing.
When M'contains a variable
Let the new C be the intersection of the set C'of the binding information that can be taken to make M'true and the memorized set C.
However, if the original set C is not an empty set but an intersection and becomes an empty set, false is returned.
* Variables that do not need to be bound to be true can be explicitly indicated.
* If a certain condition is required to make it true even though the binding value is an infinite set, that condition can be added.
Return to 5.3.
}

Function D2 (J: body part (or inquiry of compound sentences sharing variables), E: solution set): ★ Another Example 1-2B of Patent Document 1 of the function used in the invention of claim 6 of Patent Document 1. (The speed is increased by spreading the binding information to other statements using the recursive call of the function) ★
{
1. 1. Take out the first sentence M in J. Returns true if M does not exist.
2. Call Q1 (M, L) or Q2 (M, L) for the entire knowledge source L.
If the result is false, false is returned.
When true If M does not contain a variable If there is no sentence next to J, it returns true. If it is true, the next sentence is set as a new M and returns to 2.
When M contains a variable If there is no sentence following J, the binding information that can be taken is stored in E, and if the truth is returned, the binding information that can be taken is stored as a set C.
3. 3. Empty E and execute recursive call D2 (body part J', E'that can be bound after the next sentence of J by K) for each binding information K in the set C. If the result is true, set to E. , Add that K and E'that became true 4. Returns false if it has never been true for each K, and returns true (E) if it has never been true}

Function D3 (J: body part (or inquiry of compound sentences sharing variables), E: solution set): ★ Example 1-3 of Patent Document 1 of the function used in the invention of claim 5 of Patent Document 1.
{
1. 1. Take out the first sentence M1 in J. Returns true if the first sentence does not exist.
2. Call Q1 (M1, L) or Q2 (M1, L) for the entire knowledge source L.
If the result is false, false is returned.
When true When M1 does not contain a variable
do nothing.
When M1 contains a variable
A set C1 of possible binding information is stored.
3. 3. Similarly, C2, C3 ... Are obtained for M2, M3 ... As long as they are not false.
If it becomes false, false is returned.
4. The intersection C is obtained for the remaining C1, C2, C3 ... Cn, and true (C) is returned.
}

(0047)
■ Enumeration algorithm specification of multiple-length matching solution (s) of fact S for inquiry P
================================================== ================================================== =================
Call example → Function F ("$ A and $ B are friends", "Taro, Jiro and Saburo are friends", "");
Function F (P: pattern that can include variables, S: constant character string, C: variable binding information): ★ Invention of claim 2 of Patent Document 1 (however, "(or last)" and "or before" Example 1-4A of Patent Document 1 of the function used in the omitted implementation example)
{
(Preparation)
1. 1. Find the number of types V of variables in P and the names N1, N2, ... Of the variables that appear in the order of appearance.

(Correspondence when P originally does not contain variables)
2. When V is 0,
⇒ When P = S, return true and finish.
⇒ When P ≠ S, return false and finish.

(output)
3. 3. When V is 1, no matter how many times N1 appears in P, there is only one solution R1 for unification of P and S.
⇒ If there is a match, the only solution is output as "C and N1 = R1", and the truth is returned and the process ends.
⇒ If there is no match, return false and finish.
* The unification itself can be performed as a match with the regular expression (if the same variable appears more than once, there is a postscript reference).

4. When V is 2 or more, the longest matching solution R1 for the variable N1 executes the recursive call F (P', S, C and N1 = R1) for P'that can fill all N1 in P ⇒ longest for N1 The solution set as a matching solution is output

5. R1'← Recursive call F (P'', S, C and N1 = R1') for P'' which can be a character string excluding the last character of R1 and all N1 in P can be filled with R1'. Execution ⇒ For N1, a solution set with solution candidate R1'excluding one character from the longest matching solution is output.

6. When R1'is one or more characters (★ When it is larger than the number of characters of the shortest matching solution in claim 3 of Patent Document 1)
⇒ Return to 5 as R1 ← R1'.
In the case of 0 characters (★ When 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 variables, S: constant character string, C: variable binding information): ★ Examples 1-4B of the function used in the invention of claim 4 ★
// Function F that focused on the first character C of the fixed character string immediately after the variable first appeared in P and made a device for speeding up part 1
{
(Preparation)
1. 1. Find the number of types V of variables in P and the names N1, N2, ... Of the variables that appear in the order of appearance.

(Correspondence when P originally does not contain variables)
2. When V is 0,
⇒ When P = S, return true and finish.
⇒ When P ≠ S, return false and finish.

(output)
3. 3. When V is 1, no matter how many times N1 appears in P, there is only one solution R1 for unification of P and S.
⇒ If there is a match, the only solution is output as "C and N1 = R1", TRUE is returned, and the process ends.
⇒ If there is no match, return false and finish.

4. (Ingenuity for speeding up # 2. This process is covered in 5 or later and may be omitted. ★ This ingenuity 2 is not claimed in Patent Document 1 ★)
When V is 2 or more,
Matched the solution in the longest match mode for all variables (N1 (= N), N2, ...) And matched in the shortest match mode for all variables (N1 (= N), N2, ...) When the solution is the same (N1 = R1, N2 = R2, ...) ⇒ The only solution is output as "C and N1 = R1 and N2 = R2 and ..." and ends. If you didn't
⇒ Return false and finish.
When they are not the same ⇒ Continue to 5

5. When V is 2 or more, the longest matching solution R1 for the variable N1 executes the recursive call F (P', S, C and N1 = R1) for P'that can fill all N1 in P ⇒ longest for N1 The solution set as a matching solution is output

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

7. One character C, which is a fixed character immediately after the variable N1 first appears in P (when immediately after another variable N2, the first character C of R2) is
When it is included in the longest matching solution R1 ⇒ 1) R1'← A character string in which the substring from the end of the character string of R1 to its C is deleted ⇒ 2) All N in P with P''← R1' ⇒ 3) Execute recursive call F (P'', S, C and N1 = R1')
⇒ It should be possible to output if there is a solution that is one step shorter for N1. If it is not included in the longest matching solution R1 ⇒ For N1, the list of shorter solutions is complete, so the process 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 a summary excerpt from Patent Document 6 (Japanese Patent Application No. 2016-196069).
================================================== =========
Patent Document 6 is claimed as claim 1.
A computer program that has a text-to-speech function
Text that can be accessed from the computer program (a set of character strings, which may or may not ask for the order between the character strings).
From a logical expression containing a question sentence that accepts a character string containing a variable as a literal and answers a character string that fills the variable so that the literal is true.
Provided is a computer program, characterized in that a character string that is an answer to the question sentence according to the logical formula is extracted or synthesized and read aloud.
: Here, "accessible text" is, for example, a set of facts written in natural language, and a rule (inference rule) that is a PROLOG horn clause using a format in which variables can be embedded in natural language as literals. It is a set of, and may or may not include a rule (rule of inference).
: "A logical expression containing a question sentence whose answer is a character string that fills a variable" may or may not include facts and rules (rules of inference) other than such question sentences. It may be an equivalent of a regular expression or a subset thereof, and may be an extension of them.
: A "rule (inference rule)" may be a production rule, a term rewriting rule, a PROLOG horn clause, etc., and is an extension of these to allow literals with variables embedded in a character string. You can.
> This is a text format that integrates the logical expression and the superficial natural language expression for speech synthesis (for the reading function) than when only the natural language text or the logical expression is used. As a knowledge expression, it can be centrally managed, and addition, editing, deletion, etc. of knowledge can be performed in general logical (declarative) / procedural programming languages (PROLOG, AWK, SQL, PERL, PHP). , C ++, JAVA (registered trademark), etc.) can be easily implemented even by elementary school students.
> Also, since a logical expression including a question sentence that uses a character string that fills a variable as the answer is used, only the character string that is the point of each answer is used, not the entire sentence or sentence that includes each answer (the common part is). It is possible to dynamically extract and synthesize (that is, according to the difference in the question sentence) (that is, not to be boring / redundant) and read aloud (only the difference part of many character strings).

(0006)
Patent Document 6 is claimed as claim 2.
The computer program according to claim 1, wherein the accessible text includes an inference rule.
: Here, the "rule of inference" allows, for example, the literal of the horn clause of PROLOG, which includes variables in the string, "Neighborhood is $ X: -req" http://hoge.net/JP /ISHIKAWA/KOMATSU/BIRUGAWA.jpl "; $ X;" etc. This meaning can be obtained by acquiring the BIRUGAWA.jpl file from the specified URL on the Internet (in this example, the site that manages folders hierarchically in the area) and connecting each line to "Neighborhood". Make the whole string true. "
> This allows you to access only the files of interest in the remotely updated local news on the Internet and extract only the parts of interest (such as "$ Y and $ Z got married") (if Depending on the case, you can further define a module such as reading aloud (with a new composition of texts such as "$ Y and $ Z are newlyweds") and use it dynamically as it is, or statically. It makes it easy to modify only the function of the department and reuse it, or to divert it to analysis / extraction applications in related fields.
(0007)
Patent Document 6 claims as claim 3.
The computer program according to claim 1 or 2, wherein the formula contains facts.
: Here, as a simple example of "a logical formula including facts", "" the weather is fine today "and" Taro can be absorbed in his hobby $ X "".
: In this case, "the weather is fine today" is a fact,
Text containing inference rules (eg,
"Taro can be absorbed in his hobby of fishing: -the weather is fine today;"
"Taro can be absorbed in reading as a hobby: -the weather is bad today;"
"Taro can be absorbed in his favorite work"
)NS,
After adding this fact ("the weather is fine today"), we will seek a solution (in this case, "fishing") that can fill the "$ X" of "Taro can be absorbed in his hobby $ X".
> By doing this, you can dynamically (temporarily at the time of questioning) separate rules that can be established and rules that cannot be established, provide hints for answering question sentences in logical expressions, and expand the range of problems and solutions. It becomes possible to limit.
(0008)
Patent Document 6 is claimed as claim 4.
The computer program according to any one of claims 1 to 3, wherein the formula includes an inference rule.
: Here, the "logical formula including the inference rule" is, for example, "" Komatsu-shi small 1 arithmetic is $ X: -req "http://hoge.net/JP/ISHIKAWA/KOMATSU/ELEMENTARY/1/ARITH.jpl It may be "; $ X;", "Komatsu City $ X?", Etc.
> This makes it possible to add rules (for interpretation, rewriting, etc.) that you want to apply dynamically (temporarily at the time of question) for each question. In addition, through the truth of the interpretation, as in the case of facts, we can separate the rules that can be established and the rules that cannot be established, provide hints to answer the question sentences in the logical formula, and expand the range of problems and solutions. It becomes possible to limit or limit.
(0009)
Patent Document 6 is claimed as claim 5.
The accessible text,
The computer program according to any one of claims 1 to 4, which has a user interface for the user to select from a limited number of options (text set).
: Such an interface is a drum roll as hardware, a jog dial, a list box as software control (may be N-column format), a combo box, a radio button, etc., or a computer graphic expressed by combining them. And so on.
: The text set is, for example, a set of paths to a local file, a set of paths to a company LAN shared folder, a set of URL / URI paths to an Internet file, a pointer to a text in memory, or a combination thereof. be able to.
> This makes it possible to limit the content for use in underage education, including elementary and junior high school students. In addition, the target texts can be divided for each subject so that even lower grades and the elderly can efficiently access, edit, and manage them.
(0010)
Patent Document 6 is claimed as claim 6.
For each accessible text, the text and the corresponding set of logical expressions are associated and stored, and stored.
The computer program according to any one of claims 1 to 5, which has a user interface in which a user selects a logical expression from a set of logical expressions corresponding to the text being accessed.
: There may be one element of the "set of logical expressions" for each accessible text.
: "The formula corresponding to the text" is the formula that was asked for the text in the past, the formula that is known to be useful for the text, and it is assumed that the text is asked in the first place. It is a well-designed formula, etc. (terms, etc.).
> As a result, even users who are not accustomed to computers and logical formulas (elementary school students, elderly people, etc.) can easily have a practical dialogue with one click without an assistant.
> It is preferable to manage one or more "logical expressions corresponding to texts" by embedding one or more in accessible texts in a predetermined format. In the example below, you can make an inquiry simply by selecting from the two buttons. In the example below, ": &" means to display the head as a select 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: -My dad is $ X;
My man's family is $ X: -My grandfather is $ X;
My man's family is $ X: -My brother is $ X;
My man's family is $ X: -My brother is $ X;
My man's family is $ X: -My son is $ X;
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: -My grandmother is $ X;
My man's family is $ X: -My sister is $ X;
My man's family is $ X: -My sister is $ X;
My man's family is $ X: -My daughter is $ X;
===
: In this case, the first half of the data can be programmed to be dynamically read from an external file (by a built-in function that has similar functions to #include in C language and require_once in PHP), in which case the external file The answer can be updated according to the update (by an external news distribution company, an internal knowledge editor, an IT person in the family, etc.).
: If the accessible text is a local file (not shared), it will be a file that only you can update. In the case of a shared file or an Internet public file, the file is updated by the person in charge with each access right.
: Buttons for selection include N-column list boxes, brick-style staggered layouts, single-character labels representing buttons arranged on a flat surface or pseudo 3D, and frequency of use. The contents and summaries of the logical formulas may be described in circles of different sizes according to the above.
: For users who cannot press the mouse on the button control or 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 recognition (this). Elemental technologies for such recognition are no longer detailed for self-evident). Further, as long as the interface is essentially capable of selecting one from N, various methods such as a drum roll type touch type and an electroencephalogram measurement selection type can be used, not limited to the button type.
: Also, when linking with the employee's face recognition sensor, the computer should remember the buttons that are often pressed for each employee, and the contents that the administrator wants to remember for each employee (rules, expertise, latest information, etc.) By storing a logical formula that expresses English words, communication information, etc. in a computer, when an employee approaches and is recognized, the employee is informed / studied by voice without pressing a button. Etc. can be output.
: In addition, for elderly people, it can also be used to prevent forgetfulness by familiar contents (list of friends, list of relatives, list of shopping destinations, list of telephone destinations, etc.) organized by field.
: Also, at the school, the morals and rules that you want the school to comply with (list of things you should not carry, list of clothing rules, etc.), list of teachers' names you want to remember, list of familiar knowledge of the area (history of the surrounding area, etc.) It can also be used for systematic enumeration of English words, old words, chronological tables, and theorem lists that you want to remember for each grade (geography, etc.).
(0011)
Patent Document 6 is claimed as claim 7.
When there are multiple character strings that answer the question text that is extracted or synthesized and read aloud
The computer program according to any one of claims 1 to 6, wherein the computer program is read aloud in a random order using a random number generation algorithm.
> This makes it easy to eliminate the order between knowledge that does not need to be memorized and to recognize each as independent knowledge.
(0012)
Patent Document 6 is claimed as claim 8.
When there are multiple character strings that can be the answers to the question sentences that are extracted or synthesized and read aloud.
If you interrupt 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 aloud by the interruption is preferentially read aloud.
> This makes it possible to convey all the answers evenly and without interruption, regardless of interruption.
(0013)
Patent Document 6 claims as claim 9.
When there are multiple character strings that answer the question text that is extracted or synthesized and read aloud
A ratio is set between the plurality of existing character strings or between the texts for extracting the plurality of existing character strings.
The computer program according to any one of claims 1 to 8, wherein the plurality of existing character strings are repeatedly read aloud at a frequency ratio according to the set ratio.
> This makes it possible to use it when memorizing what should be focused on and what should not be memorized in a well-balanced manner.
(0014)
Patent Document 6 claims that claim 10.
The text to be updated,
Automatically load from a specified location at a specified time or frequency to make the accessible text
The character string that will be the answer to the question sentence according to the prescribed logical formula,
The computer program according to any one of claims 1 to 9, wherein the computer program is automatically extracted or synthesized from the accessible text and read aloud.
> As a result, when the HTML text on the Internet updated by the news site is set as the "updated text", it is possible to check only the news filtered by the logical formula at a predetermined time and frequency.
> In addition, by combining a plurality of contents, for example, an alarm clock study & news check function can be provided.
> Also, if the text to be updated is a core business document or database column specified as an interface inside or outside the company, it is easy to create a timely automatic business document by further linking with a template engine or the like. It becomes.
(0015)
Patent Document 6 claims as claim 11.
At a given time or frequency
The character string that will be the answer to the question sentence according to the prescribed logical formula,
The computer program according to any one of claims 1 to 9, wherein the computer program is automatically extracted or synthesized from a predetermined accessible text and read aloud.
: The time or frequency of automatic reading may be specified by various methods such as daily time setting, hourly minute setting, minute and second setting, date and time designation, and day of the week designation.
> This makes it possible to repeatedly and accurately memorize knowledge that tends to be inaccurate memories such as company rules.
(0016)
Patent Document 6 claims as claim 12.
The accessible text,
It is characterized by adding according to posts from an unspecified number of users.
The computer program according to any one of claims 1 to 11 is provided.
: Posts may be handled by detecting posts on a predetermined shared folder or Internet site, or by a so-called crawler collecting posts on an unspecified Internet site.
> This makes it possible to collect, exchange, share, and mutually brush up textbooks for study and information for business / hobbies.
(0017)
Patent Document 6 is claimed as claim 13.
The accessible text,
It is characterized by editing according to posts from an unspecified number of users.
The computer program according to any one of claims 1 to 12 is provided.
: Posts may be handled by detecting updated posts edited by a predetermined shared folder or Internet site, or by a crawler collecting updated posts edited by an unspecified Internet site.
> This makes it possible to complement and check each other's study texts and business / hobby information.
(0018)
Patent Document 6 claims as claim 14.
Make the above post by clarifying the category hierarchy of the theme
The computer program according to claim 12 or 13, wherein the accessible text used for extracting or synthesizing the answer character string is narrowed down by a user or a logical expression by designating the hierarchy.
: It is preferable to post while clarifying the following contents.

-Server-File name-Title-Version number-Text content-Hierarchical classification of themes (tree-shaped theme)
: Examples of categories are as follows.

・ Regional news tree (subdivision by region)
・ Research field tree (subdivision by research field)
・ Event tree (subdivision by event field (music, recycling, sports, etc.))
(0019)
Patent Document 6 claims that claim 15.
Output the image or sound according to the character string that is the answer at the same time as the character string or instead of the character string (when dividing the function in a system consisting of multiple remote computers or when dividing the function in the same computer, send it. The computer program according to any one of claims 1 to 14, wherein the computer program is provided.
: This "voice" can be pre-recorded voice, etc. instead of dynamic synthetic voice.
: The image may be a moving image.
> This makes it possible to express a set of themed answers and the contents of the text according to the logical formula more concretely and with a sense of reality.
(0020)
Patent Document 6 is claimed as claim 16.
Only the character string (one or more) that is the answer, or the text itself (one or more combinations) that can be accessed depending on the logical formula is the terminal (smartphone may be), or the application software for the terminal. Send to the address,
The computer program according to any one of claims 1 to 15, wherein the computer program is output 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 used for studying in trains and clearance time, or for sharing information and knowledge in the field of business. Can be used.
> This allows more freedom to provide answers and texts in a more suitable manner.
(0021)
Patent Document 6 is claimed as claim 17.
The computer program according to claim 16, wherein the extraction, synthesis, or transmission is performed via a relaying computer.
> This makes it easier to deliver to multiple users, makes it easier to control delivery, control the delivery order of content, insert advertisements in content, and enable inexpensive provision in the advertising model. ..
> In addition, it is no longer necessary for the calling terminal to have extraction, synthesis, and voice synthesis functions using complicated logical operations, making it easier to use the calling terminal as a mobile terminal such as a smartphone, and increasing the number of posts (outgoing). It is possible to reduce power consumption and memory usage, which are especially important for mobile terminals.
> Also, by using the same user's smartphone for both outgoing and output, while enjoying reading (in the past of yourself and others), you can also enjoy the spiral of posting to the computer that relays candidates for additions and changes. Is also easy.
(0022)
Patent Document 6 claims that claim 18.
The computer program according to claim 17, wherein the relaying computer is configured to deliver to terminals of a plurality of users.
: In this case, it is possible to set to deliver only to users other than the user who made the call by marking the delivery contents.
: It can also be configured to deliver only to users who have contracted to deliver, or only to users within the limit of the number of users to deliver.
: When delivering only to 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 convert the combination of terminal / user attributes into a hash value (which cannot be reproduced by the interceptor) and send it, and the hash sent from the terminal to the relay computer together with the delivery 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 used among users), and the number of distributions can be calculated. It can be suppressed.
> This makes it possible to deliver answers and texts to multiple users who are likely to need them in a timely manner.
(0023)
Patent Document 6 claims as claim 19.
The relaying computer
As if tracing from the content newly transmitted to the relaying computer to the content previously distributed,
For the terminal or user who requested the delivery
The computer program according to claim 17 or 18, wherein the content is transmitted.
: Here, the content means a group of contents. For example, when there are multiple solutions according to a logical formula, these multiple solutions can be combined into one content, and one news article is composed. Multiple sentences (originally the order of which is also meaningful) are combined into one content.
> This allows for faster access to new (often more important to the user) content.
(0024)
Patent Document 6 is claimed as claim 20.
When new content is sent from a related user to a computer that relays the same user ID or group channel to which the user group belongs, reset the retroactive control and go back again with the new content as the beginning. The computer program according to claim 19.
> This makes it possible to share information by reacting more sensitively to new news and the like.
(0025)
Patent Document 6 claims 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.
> This makes it possible to concisely display the meaning and position of each order in the reading order.
> In addition, it becomes easy to generate quiz-format content on a relay computer or the like and to execute quiz-format content on each terminal.
> The combination of the character string and the logical expression that is the answer is sharp and sharp, with "what is the theme" and its "answer (solution)" as the common part and the difference part (multiple in the case of multiple solutions). It is possible to convey to the final user with a small amount of communication / display / speech. If related mail delivery / contact is also carried out at the same opportunity, it will lead to saving of packet amount.
(0026)
Patent Document 6 claims as claim 22.
The computer program according to any one of claims 1 to 21, wherein the text used for deriving the output answer or a part thereof is also output.
> This makes it possible to remember and confirm not only the answer but also the rationale.
> It also leads to the development of logical thinking ability.
(0027)
Patent Document 6 is claimed as claim 23.
When there is only one type of variable (or variable area) that specifies the answer to be output (for example, when only the subject is used, such as "$ X likes Hanako" instead of "$ X likes $ Y") ,
The computer program according to any one of claims 1 to 22, wherein the item name is omitted and output is performed.
> This makes it possible to omit the cost (time, communication, electricity, memory, etc.) of transmitting variable names that are neither necessary to distinguish nor essential.
(0028)
Patent Document 6 claims 24.
When the variable (or variable area) that specifies the answer to be output is other than one character of the English alphabet (for example, "$ {subject} likes $ {object}")
The computer program according to any one of claims 1 to 23, wherein the item name is output without omitting it.
> This reduces the possibility of mispositioning the answer field, which consists of multiple fields.
(0029)
Patent Document 6 claims 25.
The answer string or the accessible text itself,
From the logical formula including the question sentence,
The transmitting computer, the relaying computer, or the computer delivered from the relaying computer
Generate quiz-style content and
The computer program according to claim 21, wherein the computer program is performed on any computer.
: Here, the simplest quiz generation method is to mechanically re-create the question sentence in natural language (machine-generate the natural language) and use the "answer string" as the answer to the quiz.
: When the text used to derive the output answer or a part thereof can be referred to, it can be added as reference information of the answer, and when it cannot be referred, the accessible text (one or combination) itself can be referred to. It can also be added as reference information.
> As a result, a text that accumulates familiar information (such as Mr. Yamada's house pochi gave birth to two puppies) and a logical formula that includes familiar question sentences ("$ X gave birth to $ Y", etc.) ), You can easily and automatically generate familiar quiz questions. For example, residents of a nursing home or students of a specific class who share the user ID of the relaying computer can use their "inner ring material" etc. Can be continuously enjoyed as quiz content (for example, {quiz question example 1: □ gave birth to two puppies, answer: Mr. Yamada's house pocket}, etc.). In this case, the relaying computer may be provided with a WEB server function, and the generated quiz content may be rendered to the terminals in the range sharing the user ID.
: The same applies when providing fill-in-the-blank content to application software that memorizes necessary knowledge and conveys information in the screen saver format.
(0030)
Patent Document 6 claims as claim 26.
The relaying computer
Before delivery
The computer program according to claim 21, which inserts a predetermined advertisement into the content.
: For text, you can insert links to ad images and ad audio as well as ad text, and for audio and video, you can insert and synthesize them.
> This makes it possible to monetize the advertising model and provide answers and texts to general consumers at a lower cost.
(0031)
Patent Document 6 claims as 27.
The formula contains a formula for forward reasoning.
The computer program according to any one of claims 1 to 26, wherein items that have exceeded the threshold value are read aloud and then returned to the threshold value or less.
: An expression for forward reasoning is, for example, a PROLOG assert statement. A similar assert statement can be defined and executed in a processing system that allows literals in which variables are embedded in a character string. As another example of a well-formed formula, we introduced a certainty such as "" Wind blows in $ A region "->" Profitable tub shop in $ A region ": 0.6", and the predetermined proposition "Hokuriku region" The initial certainty of 0.2 for another proposition "Hokuriku region tub shop is profitable" is 0.68 (= 0.2 + 0.6-0.2 x 0.6) when "Kaze ga fukeba" becomes true. You may update it with. In another example, even when the certainty on the condition side is not 1.0 (true) but the predetermined threshold value is 0.5, K ← K × 0.5 and the new certainty = 0.44 (= 0.2 + 0). .3-0.2 × 0.3) may be used. In addition, forward inference may be performed by setting a plurality of propositions and literals as conditions, and the conditions may be satisfied when the certainty of each condition is equal to or higher than each predetermined threshold value.
: When the truth of a proposition is triggered, it is possible to apply the formula of forward reasoning to the proposition that is originally true when the text is newly loaded and the proposition that can be proved to be true immediately afterwards. It is possible to reset the certainty and reapply it from the beginning when there is a change (addition, deletion, etc.) in the true proposition.
: When certainty is not required (only assert statement and vice versa), the same memory configuration as in the conventional PROLOG operation can be used, but when establishing confidence, a dedicated memory area such as closed hash is provided. Is preferable. The content and certainty added by assert may be configured to be reset for each inquiry by the argument or for each session by the user.
: Further, it is preferable that the button (s) are defined so that a specific proposition can be set as true or false, with or without forward reasoning.
> This allows employees and students to strengthen and learn their judgment about the chain of influence (by a simple forward reasoning formula or a forward reasoning formula containing multiple conditions).
> In addition, it becomes easy to automatically generate news and hypotheses of its influence, and to make automatic judgment / analysis.
(0032)
Patent Document 6 claims 28.
Provided is an apparatus including the computer program according to any one of claims 1 to 27.
(0033)
Patent Document 6 claims as claim 29.
The 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. 2016-196069).

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

本発明のいくつかの実施例を図を用いて説明する。
図1は、探索木の一部を表示する場合の例であり、図2は全部を表示する場合の例である。いずれも、表示された探索木中の枝又は節点を利用者が選択することによって上記した様々な態様で探索を制御することができる。
図1の深さ優先探索では選択した枝又は節点の奥(図では下方)について枝刈りを行う。実行時の現時点の探索経路のみを探索スタックから情報を取得して表示している。
図2の幅優先探索では右クリックで選択した部分(2A)についてのみ深さ優先探索を行っており深さ優先探索が終了すると通常の幅優先探索に戻る。左クリックされた部分(2B)を親とする幅優先探索は、抑制する旨のフラグがキュー上の節点構造体に付され、他のすべての節点構造体の幅優先探索が終了するまで抑制され(例えば、キュートップから未探索フラグのままキュー最後尾に戻す等する)、他のすべての終了後に(例えば、抑制フラグがついた以外の節点構造体がすべて探索済になった後等に)実行される。モードオプションにより抑制された後にまったく実行されないようにする(例えば、キュートップから探索済フラグを付してキュー最後尾に戻す等する)こともできる
Some examples of the present invention will be described with reference to the drawings.
FIG. 1 is an example in which a part of the search tree is displayed, and FIG. 2 is an example in which the entire search tree is displayed. In either case, the search can be controlled in the various modes described above by the user selecting a branch or node in the displayed search tree.
In the depth-first search of FIG. 1, pruning is performed at the back of the selected branch or node (lower in the figure). Only the current search route at the time of execution is displayed by acquiring information from the search stack.
In the breadth-first search of FIG. 2, the depth-first search is performed only for the portion (2A) selected by right-clicking, and when the depth-first search is completed, the normal breadth-first search is returned. The breadth-first search with the left-clicked part (2B) as the parent is suppressed until the node structure on the queue is flagged to suppress and the breadth-first search of all other node structures is completed (for example). , Return from the queue top to the end of the queue with the unsearched flag, etc.), and after all other terminations (for example, after all node structures other than those with the suppression flag have been searched) NS. You can also prevent it from being executed at all after being suppressed by the mode option (for example, flagging it as searched from the queue top and returning it to the end of the queue).

本発明の対象となる知能システムの産業上の利用可能性は明らかであるが、知見そのものの分類・整理・管理、その管理している知見の新しい事実等への自動適用(自動推論)、アイディア自体の広範な検索・探索、アイディアの結合・詳細化・具体化、人類やコミュニティや会社やグループにおける知見や研究結果の自動的な共有・普及・更新・精密化に活用することができる。また、自分だけの知能システムを、外部の知識を引用する形式で低コストで簡単に開発することを容易にしている。また、自動探索への人間の介在を容易にして効率的にし、思考プロセスの可視化にも資する内容である。 Although the industrial applicability of the intelligent system that is the subject of the present invention is clear, the classification, organization, and management of the knowledge itself, the automatic application of the managed knowledge to new facts (automatic inference), and ideas. It can be used for a wide range of searches / searches, combining / detailed / embodying ideas, and automatically sharing / disseminating / updating / refining knowledge and research results in humankind, communities, companies and groups. It also makes it easy to develop your own intelligence system at low cost and easily in the form of quoting external knowledge. It also facilitates human intervention in automatic search, makes it more efficient, and contributes to visualization of the thinking process.

1 深さ優先探索用のスタック情報を用いて表示した現時点で探索中の節点(上が根で下方が深さ方向)
1B 抑制された節点
2 幅優先探索用のキュー情報を用いて表示した現時点での探索中の節点(左が根で右が深さ方向)
2A 優先された節点
2B 抑制された節点
1 The node currently being searched (the top is the root and the bottom is the depth direction) displayed using the stack information for depth-first search.
1B Suppressed node 2 Node currently being searched displayed using queue information for breadth-first search (left is root and right is depth direction)
2A Priority node 2B Suppressed node

Claims (5)

コンピュータが探索を行う方法であって、
探索木の一部または全部を表示するステップと、
表示された探索木中の枝又は節点を利用者が選択することによって探索を制御するステップを含む方法であって、
表示された探索木中の枝又は節点を利用者が選択して枝刈りできるようにする方法であって、
前記探索が深さ優先探索であって、
前記表示を根から深さ方向に探索した節点をたどる形で行い、
利用者が選択した枝又は節点の奥の枝又は節点を枝刈りすることを特徴とする
方法。
It ’s a way a computer does a search,
Steps to display some or all of the search tree,
A method that includes a step of controlling the search by allowing the user to select a branch or node in the displayed search tree .
A method that allows the user to select and prun the branches or nodes in the displayed search tree.
The search is a depth-first search,
The above display is made by tracing the nodes searched in the depth direction from the root.
A method characterized by pruning a branch or node behind a branch or node selected by the user.
前記表示を根から深さ方向に現在探索中の節点のみをたどる形で行うことを特徴とする
請求項に記載の方法。
The method according to claim 1 , wherein the display is performed by tracing only the node currently being searched in the depth direction from the root.
コンピュータが探索を行う方法であって、
探索木の一部または全部を表示するステップと、
表示された探索木中の枝又は節点を利用者が選択することによって探索を制御するステップを含む方法であって、
表示された探索木中の枝又は節点を利用者が選択して優先探索できるようにする方法であって、
前記探索が原則幅優先探索であって、
前記表示を根から樹状に探索木を広げる形で行い、
利用者が選択した枝又は節点の奥の枝又は節点を深さ優先で優先探索することを特徴とする
方法。
It ’s a way a computer does a search,
Steps to display some or all of the search tree,
A method that includes a step of controlling the search by allowing the user to select a branch or node in the displayed search tree .
This is a method that allows the user to select a branch or node in the displayed search tree and perform a priority search.
The search is a breadth-first search in principle,
The above display is made by expanding the search tree from the root to a tree shape.
A method characterized by preferentially searching for a branch or node at the back of a branch or node selected by a user with priority on depth.
請求項1からのいずれか一項に記載の方法をコンピュータに実行させるコンピュータプログラム。 A computer program that causes a computer to execute the method according to any one of claims 1 to 3. 請求項1からのいずれか一項に記載の方法を実行するコンピュータ A computer that performs the method according to any one of claims 1 to 3 .
JP2016210096A 2016-10-26 2016-10-26 Search pruning methods, computer programs and equipment Active JP6905729B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016210096A JP6905729B2 (en) 2016-10-26 2016-10-26 Search pruning methods, computer programs and equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016210096A JP6905729B2 (en) 2016-10-26 2016-10-26 Search pruning methods, computer programs and equipment

Publications (2)

Publication Number Publication Date
JP2018073015A JP2018073015A (en) 2018-05-10
JP6905729B2 true JP6905729B2 (en) 2021-07-21

Family

ID=62114160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016210096A Active JP6905729B2 (en) 2016-10-26 2016-10-26 Search pruning methods, computer programs and equipment

Country Status (1)

Country Link
JP (1) JP6905729B2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62159220A (en) * 1986-01-08 1987-07-15 Hitachi Ltd Backward reasoning system
JPS62203225A (en) * 1986-03-03 1987-09-07 Fujitsu Ltd Inference processing system
JP2006024045A (en) * 2004-07-08 2006-01-26 Knowrel System Inc Inferring method, inferring system, and computer program thereof
US20090119584A1 (en) * 2007-11-02 2009-05-07 Steve Herbst Software Tool for Creating Outlines and Mind Maps that Generates Subtopics Automatically

Also Published As

Publication number Publication date
JP2018073015A (en) 2018-05-10

Similar Documents

Publication Publication Date Title
US10496749B2 (en) Unified semantics-focused language processing and zero base knowledge building system
JP5798624B2 (en) System and method for analyzing and synthesizing complex knowledge representations
US10332012B2 (en) Knowledge driven solution inference
Ahmed et al. AIML based voice enabled artificial intelligent chatterbot
Altinok Mastering spaCy: An end-to-end practical guide to implementing NLP applications using the Python ecosystem
CN108710695A (en) Mind map generation method based on e-book and electronic equipment
JP6263858B2 (en) Method, apparatus and computer program for processing knowledge and information
JP6895037B2 (en) Speech recognition methods, computer programs and equipment
Donnarumma Against the norm: othering and otherness in AI aesthetics
Goh et al. Functional shortcuts in language co-occurrence networks
JP7239959B2 (en) Method, computer program and apparatus for automatically synthesizing ideas from natural language text
JP6905729B2 (en) Search pruning methods, computer programs and equipment
Tamla Supporting access to textual resources using named entity recognition and document classification
JP7020659B2 (en) Computer programs, devices and methods to output based on text
JP6924461B2 (en) How to process logical programs that allow strings containing variables as literals, computer programs and devices
JP2018063509A (en) Computer program, device and method for output based on text
AU2015268637B2 (en) Systems and methods for analyzing and synthesizing complex knowledge representations
WO2016071942A1 (en) Method for processing knowledge or information, device, and computer program
JP2017111411A (en) Method for education, study or research, computer program for the same and processor
JP2018081598A (en) Advertising method, computer program, and device
JP2018085002A (en) Method, computer program and device for digitally responding to voice and thought in real time
JP2017102628A (en) Method for processing knowledge and information, computer program for the same, and processing device
JP6799731B2 (en) Methods, computer programs and devices for computers to infer interactively
Bao et al. A semantic wiki based light-weight web application model
Lionis Ontology Generation with the help of Chatbot

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: 20161028

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191028

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201001

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210201

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: 20210406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210417

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210621

R150 Certificate of patent or registration of utility model

Ref document number: 6905729

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150