JP7239959B2 - Method, computer program and apparatus for automatically synthesizing ideas from natural language text - Google Patents

Method, computer program and apparatus for automatically synthesizing ideas from natural language text Download PDF

Info

Publication number
JP7239959B2
JP7239959B2 JP2017092076A JP2017092076A JP7239959B2 JP 7239959 B2 JP7239959 B2 JP 7239959B2 JP 2017092076 A JP2017092076 A JP 2017092076A JP 2017092076 A JP2017092076 A JP 2017092076A JP 7239959 B2 JP7239959 B2 JP 7239959B2
Authority
JP
Japan
Prior art keywords
variables
computer program
user
sentences
variable
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
JP2017092076A
Other languages
Japanese (ja)
Other versions
JP2018190184A (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 JP2017092076A priority Critical patent/JP7239959B2/en
Publication of JP2018190184A publication Critical patent/JP2018190184A/en
Application granted granted Critical
Publication of JP7239959B2 publication Critical patent/JP7239959B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

特許法第30条第2項適用 平成29年4月21日未踏アドバンスト事業事務局への開示Application of Patent Act Article 30, Paragraph 2 April 21, 2017 Disclosure to the Mitou Advanced Business Secretariat

特許法第30条第2項適用 平成29年4月27日金沢市ものづくり会館において開催された粟ヶ崎ビジネスサロンで公開Applied Patent Act Article 30, Paragraph 2 Published at Awagasaki Business Salon held at Kanazawa City Monozukuri Center on April 27, 2017

特許法第30条第2項適用 平成29年4月27日金沢市ものづくり会館において開催された粟ヶ崎ビジネスサロンで公開Applied Patent Act Article 30, Paragraph 2 Published at Awagasaki Business Salon held at Kanazawa City Monozukuri Center on April 27, 2017

特許法第30条第2項適用 平成28年12月10日有楽町電気ビルにおいて開催された石川県ベンチャーマッチングフォーラムで発表Application of Article 30, Paragraph 2 of the Patent Law Presentation at the Ishikawa Prefecture Venture Matching Forum held at the Yurakucho Denki Building on December 10, 2016

特許法第30条第2項適用 平成29年3月8日ITビジネスプラザ武蔵において開催されたCVCK最終審査で公開、及び、平成29年3月9日スライドシェアにて公開Article 30, Paragraph 2 of the Patent Act applies Published at the final examination of CVCK held at IT Business Plaza Musashi on March 8, 2017, and published on slide share on March 9, 2017

特許法第30条第2項適用 平成29年1月20日金沢市CVCK事務局への開示Application of Patent Law Article 30, Paragraph 2 January 20, 2017 Disclosure to Kanazawa City CVCK Secretariat

本発明は、自然言語テキストからアイディアを合成する方法、コンピュータプログラム及び装置に関する。 The present invention relates to a method, computer program and apparatus for synthesizing ideas from natural language text.

特許文献に代表される自然言語の文書から発明等のアイディアを合成する方法としては、いわゆる「クラシカルなTRIZ」とその現代的な拡張等が知られている(非特許文献1)。
そこでは、過去の膨大な特許文献や技術進歩の歴史から抽出した問題解決の典型的な発想法や進歩の典型的な方向性、他の技術分野の知見を活用する方法、QC等他のメソッドから取り入れたよく使われる発想ツール(例えば特性要因図)等を簡便に使用するソフトウエア等が含まれている。
しかし、いまだに、「完全に自由な自然言語」で記述された利用者・所属組織だけの秘密ノウハウと、「複数」技術分野の自然言語テキスト(知識・情報)を必要に応じて組み合わせて、利用者の要求(例えば、質問文(オープン/クローズド)、問題/課題の状況説明文の集合(文脈)、仮定(仮説、等)に応答する新規なアイディアを完全自動で合成することはできてない。
一方、下記、特許文献1と特許文献2では、複数分野の完全に自由な自然言語テキストから、健全な推論結果を探索する仕組みが示されているが、全く新規なアイディアを合成するメカニズムについては、説明されておらず、そのような用途に必要なあるいは特化したシステム機能・UI(利用者要求の示し方)・知識表現方法等の取り決め等も十分に準備されていなかった(問題1)。
また、「科学/技術/営業/公序/倫理的にありえない」アイディア等を解の候補から排除する必要がある場合等、制約のある問題設定をより正確かつより効率的に表現して処理しなければならない多くの場面では、「証明の失敗としてのNOT」では記述能力が不十分であり、これと整合しやすい「メモリに事実が存在せずルールによる自動証明もできない命題を偽」とみなす解釈方針は、新しいアイディア(特に自然言語による利用者にとって自由な存在論(オントロジ)や語用論(特に言葉の組み合わせによる新規概念や新規アイディアの合成))の探求を不当に制限しすぎる弊害があった(問題2)。
また、多くの自動合成されるべき好ましいアイディアは、「一般/特定分野/組織/利用者個人」の「価値観」によって、他のアイディアよりも優先されて選択されるにもかかわらず、アイディアの自動合成に利用可能な形では定義されておらず、その利用方式も確立されていなかった(問題3)。
So-called "classical TRIZ" and its modern extensions are known as methods for synthesizing ideas such as inventions from natural language documents represented by patent documents (Non-Patent Document 1).
There, typical idea methods for problem solving extracted from past huge patent documents and the history of technological progress, typical direction of progress, methods of utilizing knowledge in other technical fields, other methods such as QC, etc. It includes software that makes it easy to use frequently used ideation tools (such as fishbone diagrams) introduced from
However, it is still not possible to combine, as necessary, the secret know-how of users and affiliated organizations written in "completely free natural language" and natural language texts (knowledge and information) in "multiple" technical fields. It is not possible to fully automatically synthesize new ideas in response to user requests (e.g., questions (open/closed), set of problem/issue situation descriptions (context), assumptions (hypotheses, etc.). .
On the other hand, Patent Literature 1 and Patent Literature 2 below show a mechanism for searching sound inference results from completely free natural language texts in multiple fields. , was not explained, and there were not sufficient preparations for the necessary or specialized system functions, UI (how to display user requests), knowledge expression methods, etc. (Problem 1) .
In addition, when it is necessary to exclude "science/technology/business/public order/ethical improbable" ideas from solution candidates, it is necessary to express and process constrained problem settings more accurately and efficiently. In many situations where it is necessary, ``NOT as a failure of proof'' is insufficient in its descriptive ability, and an interpretation that is easy to match with ``a proposition that has no facts in memory and cannot be automatically proved by rules'' is regarded as false. The policy has the harmful effect of unreasonably restricting the exploration of new ideas (especially ontologies and pragmatics (especially the synthesis of new concepts and ideas by combining words) that are free for users in natural language). (Problem 2).
In addition, although many desirable ideas to be automatically synthesized are selected with priority over other ideas according to the "values" of "general / specific field / organization / individual user", It has not been defined in a form that can be used for automatic synthesis, and its utilization method has not been established (Problem 3).

特願2013-087008 自然言語に変数を埋め込んだリテラルの多長一致と無限集合の管理等Patent Application No. 2013-087008 Multi-length matching of literals with variables embedded in natural language and management of infinite sets, etc. 特願2016-009324 コンピュータから利用者への逆質問と動的な事実(一時文脈)追加Patent Application No. 2016-009324 Reverse question from computer to user and addition of dynamic facts (temporary context) 特願2017-092047 前向き推論による動的な事実(一時文脈)の追加Patent Application No. 2017-092047 Addition of Dynamic Facts (Temporary Context) by Forward Inference 特願2017-092057 論理プログラミングにおいて否定を実現する方法Patent Application No. 2017-092057 Method for Realizing Negation in Logic Programming 特開2004-252507 知識や情報を募集する方法Japanese Unexamined Patent Application Publication No. 2004-252507 Method for recruiting knowledge and information http://www.proengineer-institute.com/triz.html 「TRIZとは」http://www.proengineer-institute.com/triz.html "What is TRIZ?"

したがって、本発明は、利用者の要求に関連する複数分野の完全に自由な自然言語テキストから、利用者の要求に応答する全く新規なアイディアを完全自動で合成する方法、装置、コンピュータプログラムを提供することを目的とする。
また、アイディアの探求や解候補の合成を不当に制限しすぎるという上記問題が生じない態様での「ありえない」アイディア排除の方法等提供を目的とする。
また、一般的な価値観から利用者独自の価値観までをアイディアの自動合成に利用可能な形で定義し、かつ、より好ましいアイディアの自動合成に利用できる方式を確立することを目的とする。
Therefore, the present invention provides a method, apparatus, and computer program for fully automatically synthesizing a completely new idea responding to a user's request from completely free natural language texts in multiple fields related to the user's request. intended to
Another object of the present invention is to provide a method for excluding "impossible" ideas in a manner that does not cause the above-mentioned problem of unreasonably restricting the exploration of ideas and the synthesis of solution candidates.
Another object of the present invention is to establish a method that can be used to automatically synthesize ideas, defining values ranging from general values to user-specific values in a form that can be used for automatic synthesis of ideas.

本発明の請求項1は、かかる課題を解決するため、
PROLOGの機能の一部又は全部を含むコンピュータプログラムであって、
論理プログラム中に、自然言語に変数を埋めこんだリテラルの使用を許容するようにして、
再帰的な三段論法と連動した自然言語のパターンマッチングを可能にして、
PROLOGのルールにあたるルールの右辺のボディの各条件に含まれる変数が左辺のヘッドに含まれる変数の全部の種類を含まないルール(以降、「合成ルール」と呼ぶ)を論理プログラム中に含め、
複数分野の複数テキストに、該合成ルールの各条件である異なるリテラル(但し、含まれる変数のスコープは該合成ルール内であり共通)が別々にマッチしうるようにし、
複数分野の概念を、該合成ルールのヘッドのリテラルにおいて新しい概念を構成して結合できるようにした、
コンピュータプログラムを提供する。
:ここで、「複数分野」とは、「機械技術」と「計算機技術」「教育技術」など、異なる科学技術分野あるいは人文科学分野、芸術分野、等であってよく、その中のより細分化された隣接する分野等であってよく、さらに同じ分野の別の記事(実験結果、歴史的事実、ミクロ・マクロ経済学的な現象や分析、スポーツの知見・結果、等)であってもよい。
>これにより、ボディ部のより抽象的な各条件を充たした一つ以上の概念(各分野の用語や複数の用語からなるフレーズ)が、ヘッドのリテラルというパターン(テンプレートも該当する)のふさわしい位置(いわゆる「格」ないし新しい機能や新しい価値を構成するための位置づけ)に収まる形で、新しい概念やアイディア(機能、価値、等)を構成・合成することが可能になる。ここには、表記ゆれなどの問題はあるにしても、一定の網羅性が確保されており、より多くの記事を対象とすることにより、人間が同じ複数分野の知識をほぼ同時に読んで発明(合成)できるはずのアイディアをモレなく(表記ゆれによりダブりは多少でてくるものの)列挙することも可能になる。
下記の実演例1では、5行目の「新製品$Aの形状は$B :- $C新製品は$A ; $Bは魅力的」のヘッド「新製品$Aの形状は$B」の変数の全部の種類($A、$B)を、いずれの条件「$C新製品は$A」「$Bは魅力的」も単独では含んでいないため、所属会社限りの自然言語テキスト知識「当社の九谷新製品はおちょこ」と意匠・芸術分野の自然言語テキスト知識「くちびる型は魅力的」とを組み合わせて、ヘッド「新製品$Aの形状は$B」において新しいアイディア「新製品おちょこの形状はくちびる型」の合成がなされることになる。

2: ☆
3: ★論理プログラム例1
4: ☆
5: 新製品$Aの形状は$B :- $C新製品は$A ; $Bは魅力的 ; ///当発明の合成パターンをヘッドにもつルール
6: CFRPは軽くて強い ///機械設計分野のテキスト
7: 球形は転がり易い ///機械設計分野のテキスト
8: 当社の九谷新製品はおちょこ ///所属会社のLANの共有フォルダ中の社内限りテキスト
9: ハート型は暖かい ///意匠・芸術分野のテキスト
10: 球形はシンプル ///意匠・芸術分野のテキスト
11: くちびる型は魅力的 ///意匠・芸術分野のテキスト
:なお、「再帰的な三段論法と連動した自然言語のパターンマッチング」等の詳細なアルゴリズム等の実施形態は、出願公開されている当社による上記特許文献1(ただし要部を本明細書にも抜粋)を参照されたい。
Claim 1 of the present invention, in order to solve such a problem,
A computer program that includes some or all of the functions of PROLOG,
By allowing the use of literals embedded with variables in natural language in logic programs,
Enabling natural language pattern matching coupled with recursive syllogisms,
Include in the logic program a rule (hereinafter referred to as a "synthesis rule") in which the variables included in each condition of the body on the right side of the rule corresponding to the rule of PROLOG do not include all types of variables included in the head on the left side,
Different literals (however, the scope of the included variable is common within the synthesis rule) that are each condition of the synthesis rule can separately match multiple texts in multiple fields,
allowing concepts from multiple fields to be combined by composing new concepts in the head literal of the composition rule;
Provide a computer program.
: Here, "multiple fields" may be different science and technology fields such as "mechanical technology", "computer technology", "educational technology", humanities, arts, etc., and more subdivided among them It may be an adjacent field, etc., or it may be another article in the same field (experimental results, historical facts, micro/macroeconomic phenomena and analysis, sports knowledge/results, etc.) .
> By this, one or more concepts (a term of each field or a phrase consisting of multiple terms) that satisfies each of the more abstract conditions of the body are placed in appropriate positions in the pattern of the head's literal (templates also fall under this category). (so-called "case" or positioning for constructing new functions and new values), it becomes possible to compose and synthesize new concepts and ideas (functions, values, etc.). Even if there are problems such as notation variations, a certain degree of comprehensiveness is ensured, and by targeting a larger number of articles, humans can read the same knowledge in multiple fields at almost the same time and invent ( It is also possible to enumerate ideas that should be possible (synthesis) without omission (although there may be some duplication due to notation variations).
In the demonstration example 1 below, the head of the 5th line, ``The new product $A is $B :- $C the new product is $A; All the types of variables ($A, $B) in , and neither condition ``$C new product is $A'' or ``$B is attractive'' alone, so natural language text knowledge limited to the company you belong to Combining "Our new Kutani product is Ochoko" and natural language text knowledge in the field of design and art "The shape of the lips is attractive", a new idea "New product Ochoko" in the head "New product $A shape is $B" The shape of is a lip-shaped synthesis.

2: ☆
3: * Logic program example 1
4: ☆
5: Shape of new product $A is $B :- $C New product is $A ; $B is attractive ;
6: CFRP is light and strong ///text in mechanical design field
7: Spheres are easy to roll ///text in the mechanical design field
8: Our company's new Kutani product is Ochoko.
9: Heart shape is warm /// Text in the field of design and art
10: The sphere is simple ///text in the field of design and art
11: Lip shapes are attractive /// Texts in the field of design and art: Embodiments such as detailed algorithms such as "pattern matching of natural language linked with recursive syllogism" have been published. Please refer to the above-mentioned patent document 1 by our company (but the main part is also excerpted in this specification).
:

また、本発明の請求項2は、
前記複数分野の複数テキストを構成する各テキストは、互いに区分された一以上の文から構成され、
前記ボディのいずれかの条件にマッチした文の属するテキスト中の他の文を、
同じボディの別の条件に優先してマッチするように制御することを特徴とする
請求項1に記載のコンピュータプログラムを提供する。
:「優先してマッチ」は、例えば、完全性や網羅性を犠牲にしてでも、マッチした文の属する記事全体をメモリにキャッシュ記憶してそのキャッシュの中だけから他の条件にマッチする文を探すことである。また、ユーザー入力やその推論結果文やキャッシュした記事のキーワードの組み合わせ等から再帰的に関連する記事を、幅優先探索等で増やして所定容量まで複数分野の記事をキャッシュするようにして、その中の文からだけ、条件とのパターンマッチングを行うようにしてもよい。これにより、利用者の自由な自然言語化を許容する方針ともあいまって、ある程度までフレーム問題の回避にもつなげることができる。
また、分野的にも事例・インスタンス的にも関連性・親和性・結束性の高い記事・内容から、優先して要素概念を集めて新しい概念やアイディアを合成できるため、現実に適用しやすいアイディアを漏らさず優先的に合成して提案することができる。
なお、「優先する」からといって、他の記事や他の分野の記事を排除するわけではなく、処理の経過とともに、より広範囲の、分野的にもかけはなれた記事から要素技術等を集めるようにする(ただし、あくまでマッチは必要である)こともできる。例えば、幅優先探索としてある程度の完全性のあるアルゴリズムを単純に構成し、その経過を利用者に見える化して、目視人手枝刈りや目視人手探索中断を可能にすることで、単純なアルゴリズムによりこれ(優先と完全の両立)を実施することができる。
また、本発明の請求項3は、
かかる用途(関連する文を分野ごとないしインスタンス(記事)ごとに集め、かつ、利用者要求に応じた自動合成にむけて再帰的三段論法つき自然言語パターンマッチングの条件として探索しやすくする)のために、
請求項1又は2のコンピュータプログラムと連動し、
パターン部分や要素概念の表記ゆれや重複を発生しにくくするよう、
分野、テーマ、パターン(テンプレート)、又は、既提供データを利用者に明示して、
利用者による
そのカテゴリ(分野、テーマ、等)への
そのパターン(言語、テンプレート、等)での
有意なデータ(知識や情報)の提供を募集する
コンピュータプログラムを提供する。
これにより、複数の分野ないしテーマの知識を表記ゆれやモレ・ダブりなく集散しやすいようにする。
なお、この、基本的な実装方法は、当社による、上記特許文献5を参照されたい。
ここで、カテゴリやテーマの絞り込み、抽出したデータ(「($X,$Y)=(太郎,花子),(次郎,弓子),・・・」などの解集合)を完全な文として構成した上で利用者やそのクライアントソフト側に与える提供方法については、自明であり、本発明の主旨とも異なるため、本明細書では詳述しない。
このようなサーバは、公的ディレクトリサーバ(Webサーバ+検索機能でもよい)や所属組織内ディレクトリサーバで、利用者に適切なURLを提供することが有利であり、このディレクトリサーバが管理するディレクトリの構造と分野やテーマの構造は連動させて管理することが有利である。
また、本発明の請求項4は、
前記利用者の要求として、
自然言語に変数を埋めこんだリテラルで表現したものを受け付け、
埋め込まれた変数を束縛する解を自動的に求めることにより
利用者の要求するアイディアを自動合成することを特徴とする
請求項1から3のいずれか一項に記載のコンピュータプログラムを提供する。
この機構の詳細な実現は、出願公開された特許文献1を参照されたい(ただし、要部を本明細書にも抜粋している)。
これにより、再帰的三段論法付き自然言語パターンマッチングの長所(検索と推論の融合)を生かしたシンプルでシームレスな利用者要求表現が可能になり、適時の自動合成を高速に行うことが可能になる。
また、本発明の請求項5は、
前記利用者の要求として、
自然言語による一以上の文からなる仮定を受け付け、
論理プログラムに当該仮定を加えることで自動証明できるようになった命題の集合と
論理プログラムに当該仮定を加える前に自動証明できていた命題の集合との差分集合を求めることにより、
利用者の要求するアイディアを自動合成することを特徴とする
請求項1から3のいずれか一項に記載のコンピュータプログラムを提供する。
特許文献1の技術によれば、自動証明できる命題の全体は、前後の文字列に制限のない変数のみからなるパターン「$A」(アスタリスクと同義)という質問文(クエリ)により求めることができ、論理プログラムに利用者からの仮定(文集合)を加える前後での、自動証明できる命題集合(「$A」の解)の差分集合を求めることができる(図1および図2)。
これにより、前向き推論の仕組みを、実行システムや論理プログラムに明示的に用意しなくても、利用者の示す仮定に対応する新規なアイディアを合成することができる。
また、本発明の請求項6は、
前記利用者の要求として、
自然言語による一以上の文からなる一時的な文脈を受け付け、
一時的な文脈に含まれる文からの前向き推論により
利用者の要求するアイディアを自動合成することを特徴とする
請求項1から3のいずれか一項に記載のコンピュータプログラムを提供する。
前向き推論は、例えば、PROLOGのホーン節のように複数ある条件の一部又は全部が成立した場合に所定の命題が成立したとみなす形式のルールを処理するコンピュータプログラム(PROLOG処理系等)がある場合に、ルールの複数ある条件の一部に合致する情報が新たに得られたときに、該合成ルールの他の条件の成立を自動探索して該合成ルールの該所定の命題の成立を自動確認するようにすれば明らかに実現可能である。他の実現形態については、特許文献3を参照されたい。
これにより、例えば前向き推論の対象とするルールを全体ではなく有望なルール集合に限ることが可能になり、利用者の要望と知識提供側の経験則等の両方のノウハウを踏まえた、自動アイディア合成が可能になる。
また、本発明の請求項7は、
利用者が入力する質問文、事実、ルールの条件もしくはルールの効果、又は、論理プロ
グラムの事実、ルールの条件もしくルールの効果において、
証拠事実の存在もしくは自動証明の成功としての肯定(真)並びにその否定(証拠事実
の不存在かつ自動証明失敗/不能)以外に、
否定する証拠事実の存在もしくは否定する自動証明の成功を意味する「ありえない」の
表現を許容し、
変数を最初から含まないもしくは変数束縛により含まなくなった肯定表現を根拠として
用いる際に、
該肯定表現に対応する「ありえない」の表現が存在しないかつ自動証明できないことを
自動確認して、
該「ありえない」の表現が存在する又は自動証明できる場合に該対応する肯定表現の使
用を制限するようにした
請求項1から6のいずれか一項に記載のコンピュータプログラムを提供する。
具体的な実施形態では、「ありえない」を意味する知識表現を、対応する肯定表現よりも一律に優先させる(または一律に劣後させる)ことができる。
また、論理の翻意を最新の利用者入力を優先させて行うことができる。
また、論理に翻意時に反対の意味の表現を論理プログラム又は一時文脈を格納するメモリから
削除することができる。
また、論理に翻意時に反対の意味の表現を論理プログラム又は一時文脈を格納するメモリから
コメントアウトすることができる。
また、コメントに、タイムスタンプ又は原因イベント識別情報を自動付与することもできる。
例えば、以下の15行目には、「ありえない」のルールとしての表現である「!$Xに$Yを食べさせて
儲ける :- $Xは家畜 ; $Yは毒 ;」 が存在し、家畜であることが分かっている$Xの値(
例えば「ヤギ」)と毒であることがわかっている$Yの値(例えば「ヒ素のついた紙」)
との組み合わせ(値組)が、「$Xに$Yを食べさせて儲ける」の変数組($X,$Y)
を同時に束縛することを排除(制限)する知識表現となっている。

12: ☆
13: ★論理プログラム例2
14: ☆
15: !$Xに$Yを食べさせて儲ける :- $Xは家畜 ; $Yは毒 ;
16: $Xを使った$Yの廃棄物処理方法 :- $Xに$Yを食べさせて儲ける ;
17: $Xに$Yを食べさせて儲ける :- $Xは$Yを食べる ;
18: ヤギは家畜
19: ヒ素のついた紙は毒
20: ヤギは菜種油のついた紙を食べる
21: ヤギはヒ素のついた紙を食べる
22: ☆
この場合、「ヤギを使った菜種油のついた紙の廃棄物処理方法」はアイディアとして生
成されるが、「ヤギを使ったヒ素のついた紙の廃棄物処理方法」という解候補は、16行
目でその根拠(十分条件)となる「ヤギにヒ素のついた紙を食べさせて儲ける」が15行
目により制限されるため、生成されないことになる。
このような生成の抑制(制限)は、前記特許文献1における自然言語に変数を埋めこん
だリテラルの束縛処理によりアイディアが固定文字列になった時点では、現実的な時間で
の計算が明らかに可能となるため、そのようなタイミングですべての論理プログラムを探
索して、例えば15行目により抑制・排除することが有利である。
なお、上記の例では、ルールのヘッド(効果)に「!」を付して、家畜に毒を食べさせ
る解をグローバルスコープで排除しているが、右辺のボディのいずれかの条件に付した場
合には、付された条件が「ありえない」という事実が論理プログラムまたは一時文脈に存
在すること、もしくは、付された条件が「ありえない」とする自動証明の成功(メモリ中
の論理プログラムまたは一時文脈のルールを用いた)を要求する条件文となる。
このルールの条件としての「!・・・」の具体的な解釈(コンピュータによる実現)は
、頭に「!」のついた事実(固定文字列)の検索(範囲は論理プログラムおよび一時文脈
のメモリ)については、単純な文字列一致であり、実現方法は自明である。一方の自動証
明については、頭に「!」のついたルール(上記15行目のようなルール)の「!」を省
いたルールによって、同じく「!」を省いた「・・・」が証明できればその条件を充たす
ことにする等という実現方法でもよい。この証明の実現方法については、特許文献1がす
でに出願公開になっているので参照されたい(要部は本明細書にも抜粋)。
「~でありえない」あるいは「~でない」を意味するいわば制約は、現実の問題を制約
として表現した制約充足問題等を解く上できわめて重要な知識表現であり、論理プログラ
ムの現実問題の表現能力が大幅に改善されることになる。
総じて、このような意味論(コンピュータの解釈)は、従来のPROLOG等では実現
できていなかったものであり、アイディアを合成する上での現実的な問題の正確で簡潔
な表現とコンピュータ処理による解決とを大幅に容易化するものである。
結局、いろんな理由で「ありえない」と考えられるアイディアの範囲を、
従来の「証明の失敗によるNOT」の比して、
不当にアイディアの範囲を制限することなく、
かつ、より正確かつ簡潔な表現で排除することが可能となり、
自動的なアイディア合成の実用性をさらに高めることができる。
また、本発明の請求項8は、
所定の価値観における項目(又は項目組)の順序を定義した内容をもとに、
ユーザが要求する概念を合成するために用いる文字列を制限することを
特徴とする請求項1から7のいずれか一項に記載のコンピュータプログラムを提供する。
例えば、以下の例では、一般的に大事なものの順番を、「家族の結婚式>親友の結婚式>赤ちゃんの誕生日>ペットの誕生日」と定義している。
また、31行目では、これを参照できる、より一般的な述語表現(ただし、自然言語に変数を埋め込んだリテラルをヘッドにした形式)に置き換えて、他のルールの右辺のボディの条件となりうるようにしている。

22: ☆
23: ★論理プログラム例3
24: ☆
25: <%一般的に大事
26: 家族の結婚式
27: 親友の結婚式
28: 赤ちゃんの誕生日
29: ペットの誕生日
30: >%一般的に大事
31: $Xは$Yより一般的に大事 :> %一般的に大事 ; $X>$Y ;
32: $Xがあるので1か月前から準備する :- $Xは親友の結婚式より一般的に大事 ;
これにより、自動合成されるアイディアやアイディア構成要素の範囲を、所定の価値観(例えば、大事さ)や、構成要素として用いられるに相応しい特性の程度(例えば、物質としての重さ、硬度、燃えにくさ、等)に合ったもののみに制限することができ、利用者のアイディア選択コストの節約につながる。
また、本発明の請求項9は、
所定の価値観における項目(又は項目組)の順序を定義した内容をもとに、
ユーザが要求する概念を合成するために用いる文字列の優先順位を制御することを
特徴とする請求項1から8のいずれか一項に記載のコンピュータプログラムを提供する。
:「文字列の優先順位を制御する」とは、例えば、上記の例で、「家族の結婚式」を「親友の結婚式」より時間的に先に表示したり、音声合成したり、より目立つ上方に表示したりすることをいう。
>これにより、有望な/価値あるアイディア候補に利用者がより早く接することができ、時間が制限されているときなどにも機動的な対処が可能となる。
また、本発明の請求項10は、
請求項1から9のいずれか一項に記載のコンピュータプログラムを用いた装置を提供する。

また、本発明の請求項11は、
請求項1から9のいずれか一項又は図2に記載のコンピュータプログラムを用いた方法を提供する。
In addition, claim 2 of the present invention is
each text that constitutes the plurality of texts in the plurality of fields is composed of one or more sentences that are separated from each other;
other sentences in the text to which the sentence that matches one of the above body conditions belongs,
2. The computer program according to claim 1, wherein control is performed so that another condition of the same body is preferentially matched.
: "Priority match" means that, for example, even if completeness and exhaustiveness are sacrificed, all articles to which matching sentences belong are cached in memory, and sentences that match other conditions are retrieved only from the cache. It is to seek. In addition, by increasing the number of recursively related articles based on user input, inference result sentences, keyword combinations of cached articles, etc. by breadth-first search, etc., articles in multiple fields are cached up to a predetermined capacity. Pattern matching with the condition may be performed only from the sentence. Combined with the policy of allowing users to freely use natural language, this can help avoid the frame problem to some extent.
In addition, since it is possible to synthesize new concepts and ideas by preferentially collecting elemental concepts from articles and contents with high relevance, affinity, and cohesion in terms of fields, cases, and instances, ideas that are easy to apply in reality. It is possible to synthesize and propose preferentially without leaking.
Note that "priority" does not exclude other articles or articles in other fields, and as the process progresses, elemental technologies, etc. will be collected from articles that are farther apart in a wider range of fields. (although a match is still required). For example, by simply constructing an algorithm with a certain degree of completeness as a breadth-first search, making the progress visible to the user, and making it possible to manually pruning and interrupting the visual and manual search, this ( Both priority and completeness) can be implemented.
In addition, claim 3 of the present invention is
For such uses (collect related sentences by field or by instance (article), and make it easier to search as a condition for natural language pattern matching with recursive syllogisms for automatic synthesis according to user requests) to the
In conjunction with the computer program of claim 1 or 2,
In order to prevent notational variations and duplication of pattern parts and element concepts,
Indicate the field, theme, pattern (template), or existing data to the user,
Provide a computer program that solicits contributions of meaningful data (knowledge or information) by users in its patterns (languages, templates, etc.) into its categories (fields, themes, etc.).
This makes it easy to collect and disperse knowledge of multiple fields or themes without notation variations, omissions or duplications.
For this basic mounting method, please refer to the aforementioned Patent Document 5 by our company.
Here, the categories and themes are narrowed down, and the extracted data (solution sets such as "($X, $Y) = (Taro, Hanako), (Jiro, Yumiko), ...") are constructed as complete sentences. The method of providing information to users and their client software is self-explanatory and different from the gist of the present invention, so it will not be described in detail in this specification.
Such a server may be a public directory server (web server + search function is also acceptable) or a directory server within an affiliated organization. It is advantageous to provide appropriate URLs to users. It is advantageous to manage the structure and the field or theme structure in conjunction with each other.
In addition, claim 4 of the present invention is
As requested by the user,
Accepts a literal expression in which variables are embedded in natural language,
4. The computer program according to any one of claims 1 to 3, characterized by automatically synthesizing an idea requested by a user by automatically finding a solution that binds embedded variables.
For a detailed implementation of this mechanism, please refer to published patent application WO 2004/020000 (although the main part is also excerpted in this specification).
This makes it possible to express simple and seamless user requirements by taking advantage of natural language pattern matching with recursive syllogism (fusion of search and inference), and to perform timely automatic synthesis at high speed. .
In addition, claim 5 of the present invention is
As requested by the user,
accepting a hypothesis consisting of one or more sentences in natural language;
By finding the difference set between the set of propositions that can be automatically proved by adding the assumption to the logic program and the set of propositions that could be proved automatically before adding the assumption to the logic program,
A computer program according to any one of claims 1 to 3 is provided for automatically synthesizing ideas requested by a user.
According to the technique of Patent Document 1, the entire proposition that can be automatically proved can be obtained by a question sentence (query) of the pattern "$A" (synonymous with asterisk) consisting only of variables with no restrictions on the character strings before and after. , the difference set of the automatically provable proposition set (solution of "$A") before and after adding the assumption (sentence set) from the user to the logic program (Figs. 1 and 2).
This makes it possible to synthesize new ideas corresponding to the assumptions indicated by the user without explicitly preparing a mechanism for forward inference in the execution system or logic program.
In addition, claim 6 of the present invention is
As requested by the user,
accepting a temporary context consisting of one or more sentences in natural language;
A computer program according to any one of claims 1 to 3, characterized in that it automatically synthesizes ideas requested by a user by forward inference from sentences contained in a temporal context.
Forward inference is a computer program (PROLOG processing system, etc.) that processes rules that consider a given proposition to be true when some or all of a plurality of conditions are true, such as the Horn clause of PROLOG. In this case, when new information is obtained that matches a part of a plurality of conditions of the rule, automatically search for the establishment of other conditions of the synthesis rule to automatically establish the predetermined proposition of the synthesis rule. It is clearly achievable if it is confirmed. For other implementations, see US Pat.
As a result, for example, it becomes possible to limit the rules to be the target of forward-looking reasoning to a set of promising rules rather than all of them, and to automatically synthesize ideas based on both the user's requests and the know-how such as the empirical rules of the knowledge provider. becomes possible.
In addition, claim 7 of the present invention is
In a question, fact, rule condition or rule effect entered by a user, or in a logic program fact, rule condition or rule effect,
In addition to the affirmation (true) as the existence of evidence facts or the success of automatic proof and its denial (absence of evidence facts and automatic proof failure/impossibility),
Permitting the use of the word "impossible" to imply the existence of evidence to the contrary or the success of automatic proof to the contrary;
When using an affirmative expression that does not include the variable from the beginning or does not include it due to variable binding,
Automatically confirming that the expression "impossible" corresponding to the affirmative expression does not exist and cannot be automatically proved,
7. A computer program as claimed in any one of claims 1 to 6, adapted to restrict the use of the corresponding affirmative expression if the "impossible" expression exists or can be automatically proved.
In a specific embodiment, knowledge expressions that mean "impossible" can be uniformly prioritized (or uniformly subordinated) to corresponding affirmative expressions.
In addition, logic translation can be performed with priority given to the latest user input.
Also, when translating into logic, expressions of the opposite meaning can be deleted from the memory storing the logic program or temporary context.
Also, when translating into logic, expressions of the opposite meaning can be commented out from the memory that stores the logic program or temporary context.
Moreover, it is also possible to automatically add a time stamp or cause event identification information to the comment.
For example, in the 15th line below, there is an expression as a rule of "impossible" ``Make $X eat $Y :- $X is livestock; $Y is poison;'' The value of $X known to be (
"goat") and a $Y value known to be poisonous (e.g. "arsenic paper")
is a variable set ($X, $Y) of "make $X eat $Y"
It is a knowledge representation that excludes (restricts) simultaneous binding of

12: ☆
13: * Logic program example 2
14: ☆
15: !feed $X $Y and make money :- $X is livestock; $Y is poison;
16: How to dispose of $Y's waste using $X :- Make $X eat $Y ;
17: Make $X eat $Y and make money :- $X eats $Y ;
18: Goats are Livestock
19: Paper with arsenic is poisonous
20: Goats eat paper with rapeseed oil
21: Goats eat arsenic paper
22: ☆
In this case, "Method for treating waste paper with rapeseed oil using goats" is generated as an idea, but the solution candidate "Method for treating waste paper with arsenic using goats" is generated in line 16. Since the grounds (sufficient condition) for "making money by feeding goats with arsenic paper" is restricted by the 15th line, it is not generated.
Such suppression (restriction) of generation is obvious at the time when the idea becomes a fixed character string by the literal binding process in which the variable is embedded in the natural language in the above-mentioned Patent Document 1, the calculation in a realistic time is clear. Since it is possible, it is advantageous to search for all logical programs at such timing and suppress/exclude them, for example, by line 15.
In the above example, the head (effect) of the rule is added with "!" to exclude the solution of poisoning livestock in the global scope. case, the fact that the attached condition is "impossible" exists in the logical program or the temporary context, or the success of the automatic proof that the attached condition is "impossible" (the logic program in memory or the temporary context using the rules of ).
A specific interpretation of "! ) is a simple string match, and its implementation is self-explanatory. On the other hand, with regard to automatic certification, the rule that omits the "!" in the rule with "!" A realization method such as satisfying the condition if possible may be used. Regarding the method of realizing this proof, please refer to Patent Document 1, which has already been published (the main part of which is also excerpted in this specification).
Constraints, meaning "cannot be" or "not", are extremely important knowledge representations for solving constraint satisfaction problems that express real problems as constraints. It will be greatly improved.
In general, such semantics (computer interpretation) could not be realized in conventional PROLOG, etc. It greatly simplifies
After all, the range of ideas that can be considered "impossible" for various reasons is
Compared to the conventional "NOT due to failure of proof",
without unduly restricting the scope of ideas,
And it is possible to exclude it with a more accurate and concise expression,
The utility of automatic idea synthesis can be further enhanced.
Moreover, claim 8 of the present invention is
Based on the content that defines the order of items (or item sets) in a given set of values,
A computer program as claimed in any one of claims 1 to 7, characterized in that it restricts the strings used to synthesize the concept requested by the user.
For example, in the example below, the general order of importance is defined as "family wedding>best friend's wedding>baby's birthday>pet's birthday."
Also, on line 31, this can be replaced with a more general predicate expression that can be referred to (however, the format is headed by a literal with variables embedded in natural language), and can be used as a condition for the body of the right side of other rules. I'm trying

22: ☆
23: ★Logic program example 3
24: ☆
25: <% generally important
26: Family wedding
27: Best friend's wedding
28: Baby's Birthday
29: Pet's Birthday
30: >% generally important
31: $X is generally more important than $Y : > % generally more important ; $X >$Y;
32: Prepare a month in advance for $X:- $X is generally more important than your best friend's wedding;
As a result, the range of ideas and idea components to be automatically synthesized can be set according to a predetermined sense of value (for example, importance) or the degree of characteristics suitable for being used as a component (for example, weight, hardness, flame as a substance). difficulty, etc.), leading to savings in the user's idea selection cost.
In addition, claim 9 of the present invention is
Based on the content that defines the order of items (or item sets) in a given set of values,
A computer program as claimed in any one of claims 1 to 8 for controlling the priority of strings used to synthesize user requested concepts.
: "Controlling the priority of strings" means, for example, in the above example, displaying "family wedding" earlier than "best friend's wedding" in terms of time, synthesizing speech, It means to display in a conspicuous upper part.
> This allows the user to get in touch with promising/valuable idea candidates more quickly, and enables flexible handling even when time is limited.
In addition, claim 10 of the present invention is
An apparatus using a computer program according to any one of claims 1 to 9 is provided.

In addition, claim 11 of the present invention is
A method using a computer program according to any one of claims 1 to 9 or according to figure 2 is provided.

本発明の一実施例(利用者要求を仮定として示す場合)による、論理プログラム(固定的な事実及びルール)、利用者により仮定として追加された事実、回答される内容の関係について説明する図である。A diagram illustrating the relationship between a logic program (fixed facts and rules), facts added as assumptions by the user, and content to be answered according to an embodiment of the present invention (when user requests are shown as assumptions). be. 図1の実施例を実施するためのコンピュータプログラムの最も基本的な処理フローチャート(方法としてのステップ)を説明する図である。FIG. 2 is a diagram illustrating the most basic processing flowchart (steps as a method) of a computer program for implementing the embodiment of FIG. 1; 実施するコンピュータとしての一般的な構成を示す説明図である。It is an explanatory view showing a general configuration as a computer to implement.

本発明は、特許文献1の論理型AI(PROLOGのサブセット+α)と知識表現(ほぼ自然言語で記述できる)を用いた自動アイディア合成システムとして実施する。
後述するいくつかの簡単な実施例は、同一発明者による以下の特許明細書(上記、特許文献1からの抜粋)の実施の形態に、本発明に特有の上記機能を追加で実装することにより実施できる。また以下の、特許文献1の引用は、本明細者の実施可能性面、進歩性面の補足目的も含んだものである。

===
<特許文献1の課題> 自然言語に変数を埋め込む形式で表現した知識をコンピュータで
PROLOG同様に自動処理することを実現可能にし、述語論理レベルの網羅的な演繹や
解探索(自動単一化処理、自動導出処理、そのための後ろ向き推論、バックトラック)を
実現すること。
変数が格構造に縛られない利点を十分に生かし、処理を高速化し、証明や学習等のため結
果を見やすく表示すること。
<特許文献1の解決手段(概要)>
人間が、PROLOGにおける「事実」、「ルール」又は「ゴール」の入力にあたり、P
ROLOGにおける「リテラル」にあたる内容の定数部分と変数部分とを文字種、デリミ
タ又はエスケープ文字により区別してコンピュータに入力し、
コンピュータが、文の主部、述部等の境界をまたがりうるものとして変数を取扱いながら
、その入力に含まれる文の自動単一化処理、自動導出処理又はその両方を行う。
変数を含みうる文であるパターンと、変数を含まない文である定数文字列との単一化を、
パターンに最初に出現する変数の最長一致解を求めて、該最長一致解の文字列を後ろから
空文字になるまで削る過程を該パターンに代入してできる
各新たなパターンについて、該新たなパターンができる前提となった削る過程の解の各状
態をそれぞれ記憶しながら、再帰的に同様に変数がなくなるまで繰り返し、変数がなくな
ったときに単一化した各途中の解の状態を結合して各単一化の答えを得る。
パターン中の固定文字列が最長一致解を削る過程の文字列に含まれるか等を検出して高速
化する。
パターン対パターンの単一化は語頭や語尾の一致に着目して高速化する。全探索の具体的
手法も提供する。
<特許文献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結合を明示して複
数束縛間の共通部分をくくりだした形や、複数束縛の全体を標準化した連言標準形や選言
標準形で表現することができる。
これにより、同時に満たすべきパターン(文)が複数あり、パターン(文)間で同名
の変数には同じ解が入るべきとする問題形式の場合(例えば、ユーザからのそのようなA
ND結合問合せや、ルールのボディ部に複数の文がある場合)に、ルールのより右側のパ
ターンについて、より左側のパターンの各単一化結果ごとに多大な全文探索処理を無駄に
繰り返す可能性がすくなくなり、ボディ部をバックトラックしながら深さ優先探索する非
効率(変数を自然言語に埋め込む形式においてより顕著な非効率)を回避し、同時に満た
すべき各パターンごとの処理を単純化することができる。また、推論過程の表示や検証(
完全性や健全性)をわかりやすく、容易にする。また、ルールの意味として必要な直観に
とって余計であり定義されるべきでなかった順序性(ボディ部の文間の)が推論過程に副
作用を与えることを防ぐことができる。
(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のいずれか一項に記載の処理方法を提供する。
これにより、変数(一個又は複数)を含む事実とその変数に埋めうる適切な答え(又
は仮説)の集合とをひもづけたデータベース(例えば、「言葉方程式(登録商標)」「V
LANK(登録商標)」中の知識源)と効率的に連携した解探索を行うことができる。ま
た、似た文型をもつ大量の事実を、本発明の枠組みと連携させて効率的に管理することが
できる。
(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の指示や記載に従い自然法則を用いてCP
U2eで処理される処理の内容、及び、利用者との対話プロトコル(書式)の在り方にあ
る。
図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」として出力して、TR
UEを返して終了。
⇒ マッチしない場合、偽を返して終了。

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)からの抜粋である。
The present invention is implemented as an automatic idea synthesizing system using the logical AI (subset of PROLOG + α) and knowledge expression (which can be described in almost natural language) of Patent Document 1.
Some simple examples described later are implemented by additionally implementing the above-described functions specific to the present invention in the embodiments of the following patent specification (excerpt from Patent Document 1 above) by the same inventor. can be implemented. In addition, the following citation of Patent Document 1 includes a supplementary purpose of the present inventor's feasibility and inventive step.

===
<Problem of Patent Document 1> It is possible to realize automatic processing of knowledge expressed in a form of embedding variables in a natural language by a computer in the same way as PROLOG, exhaustive deduction and solution search at the predicate logic level (automatic unification processing) , automatic derivation processing, backward reasoning for it, backtracking).
To make full use of the advantage that variables are not bound by a case structure, speed up processing, and display results in an easy-to-read manner for proof, learning, and the like.
<Solution of Patent Document 1 (summary)>
When humans input "facts", "rules" or "goals" in PROLOG, P
The constant part and the variable part of the contents corresponding to "literal" in ROLOG are distinguished by character type, delimiter or escape character and input into the computer,
The computer performs automatic unification and/or derivation of sentences contained in its input, treating variables as being able to cross boundaries of sentence subjects, predicates, etc.
The unification of patterns, which are statements that can contain variables, and constant strings, which are statements that do not contain variables,
For each new pattern obtained by substituting the process of finding the longest matching solution of the variable that first appears in the pattern and deleting the character string of the longest matching solution from the back until it becomes an empty character, the new pattern is While memorizing each state of the solution in the shaving process, which is the premise of being able to do it, it repeats the same recursively until there are no more variables. Get a unified answer.
Speed up by detecting whether the fixed character string in the pattern is included in the character string in the process of removing the longest matching solution.
Pattern-to-pattern unification is accelerated by focusing on word-initial and word-ending matches. We also provide a concrete method for exhaustive search.
<Solution of Patent Document 1 (full text, but some additions and corrections so as not to be confused with the present invention)>
(0009)
The present invention has been made in view of such problems, and claim 1 of Patent Document 1 is
A method by which a computer automatically performs some or all of the functions of the logic programming language PROLOG,
When a human inputs "facts", "rules" or "goals" in PROLOG, the constant part and variable part of the content corresponding to "literal" in PROLOG (hereinafter referred to as "sentence") are separated by character types, delimiters or escape characters. be entered into the computer separately by
The above "facts", "rules" or Automatic unification processing, automatic derivation processing, or both of sentences included in the input of "goals";
To provide a processing method characterized by:
Here, ``a human ... inputs a constant portion and a variable portion into a computer while distinguishing them by character type, delimiter, or escape character'' means that a human being enters the input field of the application software (processing system) according to the present invention, or Direct input after a command prompt (through or without a front-end processor, etc.), copy-paste or cut-paste from an Internet browser or text editing software, or a text file that has been separately input and saved including reading, quoting, referring to, etc.
In addition, "a computer treats a variable as something that can span the subject, predicate, subject, predicate, object, complement, predicate modifier, adnominal modifier, or sentence boundary of a sentence" As long as it is possible to cross the boundary (explicit division) of case structures with explicit divisions (including those corresponding to the hierarchical structure of syntactic analysis results and semantic analysis results) through particles, etc. and prepositions in English, etc. Instead of English, for example, S and V in SV format, SVO format, SVOO format, and SVOC format
, V and O boundaries, V and C boundaries, etc., including modes that handle them as being able to cross the boundaries of compound sentences and compound sentences (conversely, there may be modes that do not handle them)
. In these cases, candidate solutions that can be stored in variables include the entire sentence, arbitrary substrings extracted from the character strings that make up the entire sentence, ignoring the delimiters of the grammatical structure of the sentence, and even hierarchy. Complex sentences, compound sentences, longer papers, etc. with similar reference structures, as well as arbitrary substrings of them are targeted (In addition, when handling "sentence boundaries" as possible, When handling a set of knowledge sources (for example, collectively reading, writing, referencing a set of knowledge sources organized in a file, etc.), it is necessary to delimit knowledge sources at the boundaries of sentences. Therefore, line feed code, tab code, etc. can be used as such delimiters).
As a result, knowledge and information expressed in the form of embedding variables in natural language and knowledge and information in the form of ordinary sentences are unified knowledge that fully opens up the possibility of realistic mutual utilization between them. As a source, it becomes possible to automatically process them by computer without distinguishing between them (overcoming the above "difficulty A").
In order to open up the possibility of "realistic" interaction "sufficiently", automatic processing by computer should be provided as a search processing system 1) Simplicity of search formula (expression specifying a pattern),
2) Sufficient precision (accuracy of solution), 3) Sufficient recall (completeness in extracting solution candidates)
However, in the present invention, variables (multiple types or multiple times) can be embedded freely (that is, not limited to grammatical or semantic delimiters) in the sentence (simplicity Securing), PROLOG's knowledge processing procedures (and the underlying knowledge interpretation policy)
By basically following While avoiding risks, "the subject, predicate, subject, predicate, object
Treating variables as complements, predicate modifiers, adnominal modifiers, or as being able to cross sentence boundaries allows us to use natural language delimiters (comma, punctuation, parentheses, commas, periods, etc.) and modifier phrases ( Adjective phrases, adverbial phrases, non-essential case expressions, etc.) prevent unreasonable mismatches (regular expression unmatches) caused by the appearance of specified patterns, and between surface character string expressions where case structures are not specified ( It is possible to ensure a certain degree of reproducibility (completeness in extracting solution candidates) between the search formula and the knowledge source). In addition, it is possible to quote and extract integrally and continuously (as solution candidates for variables) without losing the accurate context (preceding and following character strings) of the natural language that is the source of knowledge. Simplicity makes it easy and convenient to confirm and verify the substantial soundness of reasoning (justification of grounds and reasoning background), and gives users a realistic sense of security that the grounds are always clear. Take full advantage of the specification that variables are not bound by the case structure (in addition, you do not need to know the rules of the case structure (such as the order of appearance), and you do not have to worry about the order of arguments being wrong). make it possible to
In addition, since the present invention is primarily aimed at Japanese (the amount of information per character is large and there is no space between words), there are many contents in which characters are used as units of processing and divisions, but English, etc. (The amount of information in one character is small, the number of characters in one sentence is large, but there are spaces between words.) It is also possible to perform similar processing on a unit basis of words separated by spaces.
(0010)
In addition, claim 2 of Patent Document 1 is
In the automatic unification process,
The unification of patterns, which are statements that can contain variables (constant parts and variable parts are distinguished by character types, delimiters, or escape characters), and constant strings, which are statements that do not contain variables,
The first (or last) occurrence of a variable (e.g. $X and $Y likes $Z) in a pattern (e.g.
$X), find the longest matching solution (e.g. Taro and Jiro), and delete the character string of the longest matching solution from the back (or front) until it becomes an empty character (e.g. Taro and Jiro > Taro and next > Taro and>Taro>Futo>Sora)
into the pattern (e.g. "Taro and Jiro and $Y like $Z">"Taro and Tsuji and $Y like $Z">"Taro and $Y like $Z">"Taro and $Y like $Z">"Futoshi and $Y like $Z">"and $Y like $Z") ($X = Taro and Jiro > Taro and next >
While remembering Taro and > Taro > Taro > Sora),
Repeat recursively until there are no more variables,
The state of each intermediate solution unified when there are no more variables (e.g. true ($X = Taro and Jiro,
$Y = Saburo), Shin ($X = Taro, $Y = Jiro and Saburo)) to combine each unification answer (e.g.:
Answer 1 = ($X = Taro and Jiro, $Y = Saburo) and Answer 2 = ($X = Taro, $Y = Jiro and Saburo) are obtained. Provide processing methods.
Here, "(or last)" corresponds to "(or before)", which means that when substituting from the variable that appears last, it is necessary to start shaving from the front.
This makes it possible to verify the state of each solution candidate, which reliably covers all possibilities from the longest matching solution to the shortest matching solution, and to provide an exhaustive answer (a further narrowed set of solution candidates). be possible.
(0011)
In addition, claim 3 of Patent Document 1 is
The processing method according to claim 2 of Patent Document 1 is provided, characterized in that, instead of gradually removing until an empty character is obtained, only a shortest matching solution obtained separately is removed gradually.
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)
In addition, claim 4 of Patent Document 1 is
When gradually scraping until it becomes an empty character,
If the fixed character C (immediately after (or immediately before)) that is the fixed character immediately after (or immediately before) the variable appears first (or last) in the pattern is another variable and the solution is not an empty character, it is in the other variable. If the first (or last) character C) of the solution candidate substituted 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 a substring including the C is deleted from the end (or beginning) of the longest matching solution string to the first hit of the C. offer.
Here, "(or last)" corresponds to "(or immediately before)", which means that when substituting from the last appearing variable, the shaving must start from the front.
As a result, enumeration of solution candidates that do not match the fixed character immediately after (or immediately before) the variable and searching for those solution candidates can be saved, and the speed of automatic processing may be increased.
(0013)
In addition, claim 5 of Patent Document 1 is
In the automatic unification process or automatic derivation process,
When obtaining binding information that will be the "goal" (including "subgoal"; the same shall apply hereinafter),
Find binding information independently for each sentence that constitutes the "goal" and return the return value true and the product set if the intersection of each piece of binding information is not empty. to provide a method of processing as described in Section 1.
Here, the binding information is information indicating whether or not to substitute such solution candidates for each variable at the same time. The binding information that indicates how to bind each variable is ","
can be expressed in a list format such as "variable name 1 = value 1, variable name 2 = value 2, ..., variable name N = value N", while multiple bindings The method is as a set of such lists, or a form that expresses the AND / OR combination instead of "," to extract the common part between multiple bindings, or a conjunctive normal form that standardizes the whole of multiple bindings. or disjunctive normal form.
As a result, there are multiple patterns (sentences) to be satisfied at the same time, and in the case of a problem format in which the same solution should be entered in variables with the same name between the patterns (sentences) (for example, such an A
ND join queries, or cases where there are multiple sentences in the body of the rule), the pattern on the right side of the rule can wastefully repeat a large full-text search operation for each unification result of the pattern on the left side. to avoid the inefficiency of depth-first search while backtracking the body (which is more noticeable in the form of embedding variables in natural language), while at the same time simplifying the processing for each pattern to be satisfied. can be done. You can also display and verify the inference process (
completeness and soundness) are easy to understand and understand. In addition, orderliness (between sentences in the body part), which is superfluous for the intuition required for the meaning of rules and should not be defined, can be prevented from giving side effects to the reasoning process.
(0014)
Further, claim 6 of Patent Document 1 is
In the automatic unification process or automatic derivation process,
When obtaining the binding information that is the "goal",
empty the existing binding information first,
For the set of sentences included in the "goal", automatic calculation of additional binding information for whether the sentence can be true under the application of existing binding information and applying the additional binding information to the existing binding information While adding, remove the sentence and recursively make it smaller,
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 while it is possible to be true is set as the binding information as the "goal". do.
Here, "recursively decreasing" means that the deeper the recursion, the smaller the statement set and the more complex the binding information (the more variables are bound, and the range of binding values is narrowed).
For example, it means to implement equivalent recursive processing by making recursive calls in C language or by using a uniquely declared and defined stack structure for depth-first search (struct array and stack pointer, etc.). .
As a result, the problem of automatically processing an open question consisting of AND-joints of multiple patterns that must be satisfied at the same time, expressed in a form that embeds variables in natural language, is simplified into a simpler and recursive subproblem with the same structure. Transforms to facilitate presentation and verification (completeness and soundness) of reasoning processes.
(0015)
In addition, claim 7 of Patent Document 1 is
In the automatic unification process or automatic derivation process,
If we unify the unvariable pattern with the unvariable fact,
The processing method according to any one of Claims 1 to 6 of Patent Document 1, wherein true is returned when the pattern and the fact match as a character string, or false is returned when the pattern and the fact do not match as a character string. offer.
This makes searching simple and fast.
In addition, when "facts not including variables" include multiple sentences separated by punctuation marks, etc. There may also be a mode in which "match as a string" may be that the string of the pattern matches part of the string of facts.
As a result, a plurality of pieces of information of the same type can be collectively expressed as a single fact and used as a search target. Also, some order among multiple elements (e.g., size, preciousness, antiquity, etc.)
etc.) will be easier to express.
(0016)
In addition, claim 8 of Patent Document 1 is
In the automatic unification process or automatic derivation process,
When unifying the variable-free pattern with the variable-free head of the Horn clause,
If the pattern and the head part match as a character string, return the result of applying the processing method according to claim 5 or 6 of Patent Document 1 with the body part of the Horn clause as a subgoal,
A processing method according to any one of claims 1 to 7 of Patent Document 1 is provided, which returns false if they do not match.
This enables a sound mechanical interpretation when the head of a rule that expresses variables in a form embedded in natural language does not contain variables, a seamless, easy-to-understand, simple and unified processing mechanism, and an explanation of the corresponding inference process. can give
(0017)
In addition, claim 9 of Patent Document 1 is
In the automatic unification process or automatic derivation process,
When unifying a pattern containing no variables with a Horn clause with a head containing variables,
The pattern is used as the "constant character string" in the processing method described in any one of claims 2 to 4 of Patent Document 1, and the head part is used as the "pattern" in the same processing method. For each binding information,
Returns true if the result of processing the processing method described in claim 5 or 6 of Patent Document 1 as the “subgoal” of the processing method described in claim 5 or 6 of Patent Document 1 is true if it is applied to the body of the horn clause, or returns true If not, return false. A processing method according to any one of claims 1 to 8 of Patent Document 1 is provided.
As a result, if the head of a rule that expresses a variable in a form embedded in a natural language contains variables, and the pattern that triggered this rule does not contain variables, the scope of binding of the variables in the body is restricted in advance, False judgment processing can be speeded up.
It can also provide a sound mechanical interpretation and a seamless, understandable, simple, and unified processing mechanism and description of the corresponding reasoning process.
(0018)
In addition, claim 10 of Patent Document 1 is
In the automatic unification process or automatic derivation process,
When unifying patterns containing variables with facts not containing variables,
"Pattern" in the processing method according to any one of claims 2 to 4 of Patent Document 1
and return the result of processing using the fact as a "constant string" in the same processing method,
A processing method according to any one of claims 1 to 9 of Patent Document 1 is provided.
As a result, all solution candidates (to class variables) between the pattern and the (static) fact are identified and returned as the "result", which is the basis for overcoming the above "difficulty A". In addition to the visualization and verification of the inference process, it also facilitates learning through the user's hands, such as modifying rules.
(0019)
In addition, claim 11 of Patent Document 1 is
In the automatic unification process or automatic derivation process,
When unifying a pattern containing variables with a Horn clause whose head part does not contain variables,
"Pattern" in the processing method according to any one of claims 2 to 4 of Patent Document 1
and there is binding information (C) that makes the result of processing using the head part as a "constant character string" in the same processing method as true, and the body part of the Horn clause as a "subgoal" of the processing method according to claim 5 or 6, if the result is true, return true together with the binding information (C),
A 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 the variable and the (static) head (not containing the variable) are identified and returned as the "result". ”
The basic mechanism for overcoming the problem can be simply provided, and not only the visualization and verification of the reasoning process, but also the learning through the user's hands such as the modification of the rules can be facilitated.
In addition, it simply transforms into simpler and recursive (or mutually recursive) subproblems with the same structure, making it easier to display and verify (completeness and soundness) the reasoning process.
In addition, sound mechanical interpretation when the head of the rule that expresses variables in a form embedded in natural language does not contain variables, a seamless, easy-to-understand, simple and unified processing mechanism, and the inference process corresponding to these can give an explanation.
(0020)
Further, claim 12 of Patent Document 1 is
In the automatic unification process or automatic derivation process,
When unifying a pattern containing variables with a Horn clause with a head containing variables,
Returns false if the number of fixed characters that exist in the head, tail, or both of the pattern and the head part do not match,
A processing method according to any one of claims 1 to 11 of Patent Document 1 is provided.
As a result, it is possible to significantly save the amount of calculation and improve the processing speed as compared with a uniform search.
(0021)
In addition, claim 13 of Patent Document 1 is
In the automatic unification process or automatic derivation process,
When unifying a first pattern containing variables with a Horn clause with a head containing variables,
If the number of fixed characters that exist in the head and tail of the pattern and the head part match,
Each obtained by binding the head part of the Horn clause with each constraint information that the result of applying the body part of the Horn clause as a "subgoal" in the processing method according to claim 5 or 6 of Patent Document 1 is true. Regarding the second pattern,
If the second pattern does not contain variables,
Processed 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 return the result,
A 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 variables included in the head part are also included in the body part, and all variables in the body part As a result of binding variables with constants (fixed strings), all variables in the head part are also constants (
It means that the variable in the head part has disappeared and the head part can be regarded as a constant string by being bound (assigned) with a fixed string).
As a result, unification of patterns containing variables and Horn clauses (rules) with heads containing variables can be performed mechanically and automatically in a flow that is easy for the user to trace, using a simple computational model.
In other words, all candidate solutions (things to be assigned to each variable of the pattern) between the pattern that includes the variable and the head part that no longer includes the variable (by each binding information) (=converted to a constant string) are identified and " The original, more complex problem (unification of variables vs. variables)
By reducing (converting the problem), the basic mechanism for overcoming the above "difficulty A" is simply provided, and it is easy to express as a thought process. In addition, in this "reduction (problem conversion)", it is simply converted to a simpler and recursive (or mutually recursive) subproblem with the same structure, so it is possible to visualize and verify the inference process (complete It facilitates learning through user's hands such as correction of rules, etc.
After all, a sound mechanical interpretation when the head of the rule that expresses the variable in a natural language includes the variable, a seamless, easy-to-understand, simple and unified processing mechanism, and an explanation of the reasoning process corresponding to these can be easily given.
(0022)
In addition, claim 14 of Patent Document 1 is
A processing method according to any one of Claims 1 to 13 of Patent Document 1, characterized in that the computer restricts input of facts including variables.
Here, facts including variables (knowledge sources that are not rules) are, for example, "$X is $X." There is an unfounded fact that it becomes true if only superficial sentence patterns match).
Restricting these inputs to the computer simplifies the computation of automatic unification processing between patterns (sentences that may contain variables) and facts (sentences that do not contain variables (=fixed character strings)). , high-speed response by automatic processing is possible. It also makes it difficult to mix baseless facts into knowledge sources.
(0023)
In addition, claim 15 of Patent Document 1 is
The rule is in a form similar to a so-called Horn clause, and the computer restricts that the head part contains variables that do not appear in the body part. The described processing method 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 $Y". Z-friendly, $Z is a child, $Y is clever," even if all the variables in the body ($Y and $Z in this example) are bound (assigned), the variables in the head are The computer restricts rules that leave (in this example, $X) unbound from being entered, stored, or activated as a knowledge source. Such rules lead to leaving unbound variables in the head part, as in the case of facts, so they tend to produce unsound inference results and also cause the speed of inference to decrease.
By restricting these rules from being entered into the computer, patterns (
Sentences that can contain variables) and head parts (which can be reduced to a set of sentences that do not contain variables (=fixed character strings) according to claim 13 of Patent Document 1) are simplified in automatic unification processing calculations, A high-speed response is possible through automatic processing. In addition, it makes it difficult to produce baseless inference results.
(0024)
In addition, claim 16 of Patent Document 1 is
In the automatic unification process or automatic derivation process,
automatic unification of patterns with unbound variables remaining with each other and heads or facts,
Characterized by finding and returning a set of minimal solutions as a fixed string,
A processing method according to any one of claims 1 to 13 of Patent Document 1 is provided.
Here, as an example of "the set of solutions that are minimal as fixed strings", {($ A = "also", $B = <empty>, $
C=<empty>, $D=”was”), ($A=empty, $B=”was”, $C=”was”, $D=empty)}
can provide two solutions.
This makes it possible to provide an example 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 automatic derivation process,
automatic unification of patterns with unbound variables remaining with each other and heads or facts,
Characterized by finding and returning a set of minimal solutions as a string containing variables,
A processing method according to any one of claims 1 to 13 of Patent Document 1 is provided.
Here, as an example of "the set of solutions that are minimal as fixed strings", {($ A = "$C also", $B = <free>, $C = <free>, $D = "is $B"), ($A = <free>, $B = "also $D", $ C.
="$A is", $D=<free>)}, and so on. Assume that the sum (through solving) of the string lengths of values that bind variables (values that are assigned to variables) (however, if variables are included, each occurrence of the variable is regarded as one character) is the minimum be able to.
This allows us to provide a general form of the solution even when there are an infinite number of solutions.
(0026)
In addition, claim 18 of Patent Document 1 is
If the number of fixed characters that are commonly present at the beginning and end of each string of the pattern in which the unbound variable remains and the head part or fact do not match,
characterized by returning false,
A processing method according to claim 16 or 17 of Patent Document 1 is provided.
This saves automatic searches with no unification possibilities and speeds up automatic processing.
(0027)
In addition, claim 19 of Patent Document 1 is
When obtaining a minimum set of solutions as a string containing the fixed string or variable,
Each variable contained in both strings consisting of patterns and heads or facts (let it be the first string and the second string) with unbound variables remaining with each other is commonly bound within each string. and independently bound between strings (or while the scope of commonly binding variables with the same name is only within each string (or between strings is outside the scope of the variable)),
For each variable any substring (<empty> and (including the entire string) or by substituting itself and searching for a case where both strings match to find a set of minimal solutions,
A processing method according to claim 16 or 17 of Patent Document 1 is provided.
"Or substitute itself..." means to substitute "$X" itself for "$X" in the string, and it happens that both the first string and the second string When $X (with different scopes) is included, make sure to distinguish between $X in the first string and $X in the second string (for example, "$X1" and "$ X2", etc.) can also make an apparently sane calculation.
As a result, it is possible to ensure a certain degree of completeness (completeness depending on the nature of the problem (pattern pair)) of the solution set while ensuring soundness and termination (finiteness of computation).
(0028)
Further, claim 20 of Patent Document 1 is
Rather than just the strings consisting of the pattern and the head part or fact with the unbound variables remaining with each other,
Both strings corresponding to the number of fixed characters that exist in common at the beginning and end of each string of patterns and heads or facts in which unbound variables remain with each other, excluding the number of fixed characters that remain from both strings about,
A processing method for performing the processing described in claim 19 of Patent Document 1 is provided.
This makes it possible to reduce the space of the full search while maintaining a certain degree of coverage (or completeness in some cases) of the solution set, thereby speeding up the processing.
For example, as a process of automatic unification between "Ishikawa's $A likes $B." and "Ishikawa's $C likes $D ice cream." Delete the common part of "$A is $B"
and "$C and $D ice cream"
After that, all substrings of "$C and $D ice" are added to each of "$A" and "$B" by a full search (this is a variable such as $C and $D (${...・} format variables are the same)
is 6 characters, so while substituting 6 x (6 + 1) / 2 + 1 (<empty> part) + 1 (substituting itself) = 23 ways), similarly, "$C" and "$D" respectively all substrings of "$A is $B" (which is also 3 characters, so 3*(3+1)
/2 + 1 + 1 = 8 ways) can be substituted for all both strings (23 x 23 x 8 x 8
street), if both strings match (for example, (
``Moha Ice'',
”Conger eel ice cream”,
"$A hamo ice cream",
"$C moha ice cream",
"$A is $D ice cream"
*By the way, the set of assignment pairs {
($A = "also", $B = "ice", $C = <empty>, $D = "ha"),
($A=<Empty>, $B=”ice cream”, $C=”was”, $D=<Empty>),
($A = "$A", $B = "ice cream", $C = "$A is", $D = <empty>),
($A="$C mo", $B="ice", $C="$C", $D="wa"),
($A = "$A", $B = "$D ice cream", $C = "$A is", $D = "$D")
} or a set of partial substitutions for each substitution tuple (e.g. {
($A="mo", $B="ice"),
($A=<Empty>, $B=“ice cream”),
($A = "$A", $B = "ice cream"),
($A="$C mo", $B="ice"),
($A="$A", $B="mo$D ice")
})
can be answered as a solution.
In addition, $A = "$A" and $B = "$D ice" are free to be $A and $D, and any character string can be substituted for them (i.e., It is possible to show that there are infinite solutions and how the infinite number of solutions (character strings) should be constrained (in the form of regular expressions).
(0029)
In addition, claim 21 of Patent Document 1 is
Substitute any substring (including <empty> and the entire string) of the target string for each variable or itself, and search for cases where both strings match. when asking for
When a variable is included in a substring to be assigned to a variable, while replacing the variable included in the substring with a new variable that did not exist in both strings, a similar assignment to the new variable The processing method according to Claim 19 or 20 of Patent Document 1 is provided, characterized in that a full search is performed recursively thereafter to search for cases where both character strings match.
As a result, it is necessary to search for a solution in which a fixed character in the self string is reflexively substituted into a variable in the self string via a variable in the other string (for example, both strings = { "$X is $
X","i$Yu"}, as a solution candidate
can be enumerated), it is possible to further improve the comprehensiveness of the enumeration of solution candidates while maintaining the soundness of the solution search. In the example above, both strings (also called "pattern pairs") =
From {"$X is $X", "i$Yu"}, ($X="iu", $Y="yes") can be enumerated recursively by the present invention ($X =”I${Y1}U”)⇒(${
Y1}=<Empty>)⇒($Y=“Uhai”) search branch (a part of the search tree, which can be generated in a finite number of times in the case of breadth-first search according to the present invention). You can show it by doing it.
"Recursively ... exhaustive search" means, for example, that a matching substitution sequence (For example, the ($
X=“I${Y1}U”)⇒(${Y1}=<empty>)⇒($Y=“Uhai”), etc.). A variation of the first assignment is that if the types of variables in both strings are 2 and 3, respectively, and the length of the strings is 6 and 7 characters (variables are counted together as 1 character), then 2×(7×(7+1)/2+1+1)+3×(6×(6+1)/2+1+1
)=60+69=129. When performing breadth-first search so that the maximum depth of further branches derived from these branches is uniform, by setting a limiter (such as a program step that compares with the upper limit value) based on the number of assignments, the search is performed once can be restricted to an appropriate amount of computation (to secure termination and response speed that are no longer guaranteed by recursion). Note that even in the case of depth-first search, the amount of calculation can be limited by limiting the depth, the number of substitutions, and the like. In any case, an infinite loop due to self-recursion or mutual recursion is provided with a stack structure (array of structures), etc. that manages recursive function calls, and the call parameter (assignment sequence) of the ancestor branch (in the direction of the root) (may contain the state representation of both strings depending on the assignment context)
can be avoided by comparing with the current call parameters. In addition, it is possible to prune branches that cannot be unified depending on whether or not the fixed character strings existing at the beginning and end of both character strings match for the number of commonly existing characters. If no solution is found by searching with a limited amount of computation (for example, one million substitutions or a search depth of 20 or less), "No solution (
Accuracy: Substitution million times and search depth within 20)”, and if found, “($X = “Yes”, $Y = “Yes”), (...),... (However, , Accuracy: 1 million substitutions and a search depth of 20 or less)”, etc., while indicating the search accuracy. In addition, when the full search is clearly possible within the limit number of assignments and within the limit search depth (when there is completeness)
to that effect, "No solution (completely searched)" or "($X="yes", $Y="yes"
), (.
(0030)
In addition, claim 22 of Patent Document 1 is
Regarding the result of assigning to a variable, the remaining two strings after removing the number of fixed characters that exist in common at the beginning and end of each string are
Exists at the beginning or end of the string as the search progresses as the "partner's string" that is the target of "any substring of the partner's string (including <empty> and the entire string)" Characterized by reducing the number of fixed characters,
A 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 (as the search progresses toward the previous branch), and the amount of calculation can be saved.
(0031)
In addition, claim 23 of Patent Document 1 is
When obtaining a minimum set of solutions as a string containing the fixed string or variable,
Each variable contained in both strings consisting of patterns and heads or facts (let it be the first string and the second string) with unbound variables remaining with each other is commonly bound within each string. and independently bound between strings (or while the scope of commonly binding variables with the same name is only within each string (or between strings is outside the scope of the variable)),
A processing method for obtaining a set of solutions by recursively substituting a fixed character string (including an empty character) or a character string containing a variable into each variable,
Limit the variable to be substituted to the corresponding head or tail variable of the self string where the head or tail of the other string is a fixed character,
If the value is the head, the new variable or <empty> following the head fixed character or fixed character string, and if the tail, the tail fixed character or fixed string following the new variable or <Empty>,
Repeatedly removing fixed characters for the number of characters common to the beginning and end of each character string from the result of assigning to the variable,
There is provided a processing method according to claim 16 or 17 of Patent Document 1, characterized by:
This makes it possible to significantly limit the range of enumeration of solutions (without impairing the exhaustiveness of the search) by focusing on the presence of fixed characters at the beginning and end of the search. Become.
(0032)
In addition, claim 24 of Patent Document 1 is
When obtaining a minimum set of solutions as a string containing the fixed string or variable,
Each variable contained in both strings consisting of patterns and heads or facts (let it be the first string and the second string) with unbound variables remaining with each other is commonly bound within each string. and independently bound between strings (or while the scope of commonly binding variables with the same name is only within each string (or between strings is outside the scope of the variable)),
A processing method for obtaining a set of solutions by recursively substituting a fixed character string (including an empty character) for each variable,
Binding information that can be created by using only fixed character types (character types excluding variable identifiers and delimiters) in both strings, except for the number of common fixed characters that exist at the beginning and end of each string Obtained by enumerating in order from the smallest total string length of the value,
A processing method according to claim 16 or 17 of Patent Document 1 is provided.
This makes it possible to efficiently reach and enumerate solutions for problems with certain properties.
(0033)
In addition, claim 25 of Patent Document 1 is
Based on the obtained "set of solutions that are minimal as strings containing variables",
Provided is a processing method according to Claims 19 to 24 of Patent Document 1, in which a search is continued by a Horn clause that can be obtained by temporarily rewriting a variable of the Horn clause with a character string that includes the variable.
This results in a computed constraint that is necessary to unify the pattern and the head of the Horn clause (rule) (in the example above, the variable "$C" is a There is also a unification policy (for example, in the case of the last assignment tuple above) that has a constraint that unification can only be performed by binding (assigning) with a character string), the body part of the horn clause The search process can be propagated and the search can be made more efficient.
(0034)
In addition, claim 26 of Patent Document 1 is
Based on the obtained "set of solutions that are minimal as strings containing variables",
A set of fixed character string pairs obtained by substituting each element of a set of fixed character string pairs predefined as a set of solutions of the "fact including variable" into the variable part of "character string including variable" return,
A 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)", "V
LANK (registered trademark)” can be efficiently linked to the solution search. Also, a large number of facts with 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 automatic derivation process,
For automatic unification between a first pattern containing variables and a second pattern containing variables:
If the number of fixed characters that exist at the beginning and end of both patterns match, and the same variable appears only once in each pattern,
returns information indicating the existence of an infinite number of solutions,
A processing method according to any one of claims 1 to 26 of US Pat.
(0036)
In addition, claim 28 of Patent Document 1 is
An apparatus is provided for carrying out the method of any one of claims 1 to 27 of US Pat.
(0037)
In addition, claim 29 of Patent Document 1 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 is provided.
(Effect of the Invention of Patent Document 1)
(0038)
The effects of the present invention are as described above for the claims of each Patent Document 1.
(Brief description of the drawings in Patent Document 1)
(0039)
(FIG. 1) FIG. 1 is an overview of a network system that most effectively implements the present invention. (Example 1)
(FIG. 2) FIG. 2 is an explanatory diagram showing the hardware configuration of a computer that implements the present invention. (Example 1)
(FIG. 3) FIG. 3 is an explanatory diagram showing an example of screen display on a terminal implementing the present invention.
(Example 1)
(Mode for implementing the invention of Patent Document 1)
(0040)
The present invention can be implemented on any kind of computer (cloud server, large general-purpose machine, desktop PC, notebook PC, mobile terminal, dedicated machine for the present invention) connected/disconnected to a network, but in general A form implemented by a PC connected to the Internet and having a multitasking function and a window function will be described.
FIG. 1 is an overall view of the network system that most effectively implements the present invention. A content management device 1 allows a user PC 2 or a user/administrator PC 2 to manage content (rules and facts) handled by the present invention. A known file sharing server that accepts posts and distributes content while controlling sharing access rights and content provision priority according to a predetermined policy may be used. The user PC 2 inputs and stores contents (rules and facts) expressing the contents (or the contents to be considered) that the user believes (or the contents that the user wants to consider) in a natural language according to the method of the present invention. A processing computer, mobile terminal, or the like.
FIG. 2 is an explanatory diagram showing the hardware configuration of the computer used in the present invention. This is a general configuration of a computer, and the feature of the present invention is that a CP is generated using natural laws in accordance with the instructions and descriptions of the program 3 and content data 4 stored in the nonvolatile memory 2h.
It lies in the content of the processing processed by U2e and the nature of the interaction protocol (format) with the user.
FIG. 3 is an explanatory diagram showing an example of screen display on a terminal that implements the present invention. In the illustration, "
? In response to the question (in the open question format), "Do not do $A
=
In the same manner, the answer "$A = bullying/9/" is given by using the fact that the ninth line of the list L "does not bully".
(0041)
In such an embodiment, a computer program written in, for example, the C++ language can cause a computer (such as a PC) to perform any action possible. Therefore, the well-known basic operations of computers using the laws of nature (storing and retrieving to and from registers, memory, and storage, four arithmetic 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, manipulation/comparison/display of character strings and numerical values, manipulation of list structures, queue structures, hash structures, vector types, etc.
Binary search and sorting operations, pattern matching operations using regular expressions, network communication operations, etc.) are different from the essence of the present invention (unique configuration leading to novelty and inventive step), and are well understood by those skilled in the art. Since it is known, I will not go into detail. On the other hand, the operation order and storage method (algorithm and data structure) for realizing the processing unique to the present invention by combining such general functions will be described in detail below. By providing the description of this algorithm, etc., the description of the above-described solution to the problem, and the description of the drawings of the present invention for reference in development, a standard-level professional programmer will be able to use standard application program development techniques ( GUI application integrated development environment by C++, etc.)
It is clearly possible to make a computer carry out the method of the present invention, and it is also possible to create an apparatus and a program for this method.
(0042)
The algorithm shown below is an algorithm based on standard structured programming in which a desired "function" is newly defined using C language/C++ language, etc., and the function is called. Processing means (program (or computer) can be realized.
(0043)
■ Processing algorithm specification 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. Take the content B (fact or horn clause) of the first row of L.
However, if L is empty (if the first row cannot be retrieved), output false and terminate.
2. Set the initial value of the variable binding information C to empty, call the following function H (P, B, C), and output the binding information (=solution set) C that is true (=matches).
In the case of true (=matched) Output true (yes) (output the line number of the matched content B as well).
If false, do nothing.
3. If there is a content B' in the line next to L. ・Set B←B' and move to 2.
If not ・If true has never been output in 2, output false (no).
·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): *Embodiment 2 of the main function common to the claims of Patent Document 1 (prefixed character string version)*
{
(preliminary fixed string conversion)
1. Determine a fixed character string text T whose lines are {all character strings that can be deduced only from L/line number set of L used as the basis for deducing each character string}.
Specifically, the output series (A = Solution 1/Evidence 1, A = Solution 2
/Evidence 2, .
If an infinite loop occurs during the calculation, the deduction is partially omitted by an infinite loop detection function using an explicit call management stack or the like.
・For example, while the computer is checking the truth of the Horn clause under certain variable binding conditions, check whether the same Horn clause is being checked under the same variable binding conditions.
Manage a call management stack whose members are structures (Horn clause identifier being checked, current variable binding conditions),
Detects infinite loops by linearly searching for the same combination towards the root of the stack at call time.

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

3. Outputs true if there is at least one C, otherwise outputs false.
}
(0045)
■ A processing algorithm specification for one fact (fixed character string) or Horn clause B (however, all variables contained in the head also exist in the body) for the query P
================================================== =============================
======================================
Function H (P: pattern that can contain variables, B: one fact (fixed string) or Horn clause, C
: Variable binding information): Patent Document 1 of functions used in the inventions of claims 1 to 15 of Patent Document 1
Example 1-1 of
{
If P contains no variables {
If B is true {
Returns true if P=B.
Returns false otherwise.
}
If B is a Horn clause {
If the head part of B contains no variables {
If P=head part of B, returns true/false of function D(body part of B, E).
Returns false otherwise.
}
If the head part of B contains variables {
For each C1 for which F(head part of B, P, C1) is true,
Returns true if there is C1 for which the result of function D (applying C1 to the body of B, E) is true.
Returns false otherwise.
}
}
}
If P contains variables {
If B is true {
If there exists a C1 for which F(P,B,C1) is true, all such C1
returns true in addition to
If no such C1 exists, return false.
}
If B is a Horn clause {
If the head part of B contains no variables {
If there exists C1 for which F(P, head of B, C1) is true, and if function D(body of B, E) is true, add all such C1 to C return true.
Returns false otherwise.
}

If the head part of B contains variables {
★When implementing the invention of claim 12 of Patent Document 1★
//Ingenuity for speeding up (optional) start When fixed characters for the number of characters existing at the beginning and end of the head part of P and B do not match {
return false.
}
//Ingenuity for speeding up (optional) end

★ Implementation of the invention of claim 13 of Patent Document 1 ★
When fixed characters corresponding to the number of characters existing at the head and tail of the head part of P and B match {
Any binding information G in E for which the result of function D (body part of B, E) is true
, the function F (the head part of P and B bound by G (should be a fixed string),
If there is C1 that makes C1) true
Add all such C1 to C and return true.
Returns false if no such C1 exists.
}
}
}
}
}
(0046)
■ Enumeration algorithm specifications for the solution set of the body part of the Horn clause (or compound sentence queries that share variables)
================================================== =============================
======================================
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 compound sentence query that shares 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 can be stored in a global variable and referenced {
1. Take the first sentence M in J. Returns true if the first sentence does not exist.
2. For the entire knowledge source L, call the function Q1(M,L) or Q2(M,L).
Returns false if the result is false.
when true if M contains no variables
do nothing.
If M contains variables
A set C of binding information that can be taken to make M true is stored.
* Variables that do not need to be bound to be true can also be explicitly indicated as such.
*If the bound value is an infinite set and requires a certain condition to be true, the condition can be added.
3. Fetch the next sentence M' in J. If it does not exist, return true (E=set C of binding information).
4. For the entire knowledge source L, call the function Q1(M',L) or Q2(M',L).
Returns false if the result is false.
when true if M' does not contain variables
do nothing.
If M' contains variables
A set C' of binding information that can be taken to make M' true and a stored set C
Let the new C be the intersection of
However, if the original set C is not an empty set but becomes an empty set by taking the product set, false is returned.
* Variables that do not need to be bound to be true can also be explicitly indicated as such.
*If the bound value is an infinite set and requires a certain condition to be true, the condition can be added.
Go back to 5.3.
}

Function D2 (J: body part (or compound sentence query that shares 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 (improved speed by spreading binding information to other statements using recursive call of function) ★
{
1. Take the first sentence M in J. Returns true if M does not exist.
2. For the entire knowledge source L, call Q1(M,L) or Q2(M,L).
Returns false if the result is false.
If true, if M does not contain a variable, return true if there is no sentence following J. If so, set the next sentence as a new M and return to 2.
When M contains variables If there is no statement following J, possible binding information is stored in E and true is returned.
3. E is emptied, and for each binding information K in set C, a recursive call D2 (body parts J', E'
) if the result is true add to E 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 been true even once.}

Function D3 (J: body part (or compound sentence query that shares 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. Take the first sentence M1 in J. Returns true if the first sentence does not exist.
2. For the entire knowledge source L, call Q1(M1,L) or Q2(M1,L).
Returns false if the result is false.
when true if M1 does not contain variables
do nothing.
If M1 contains variables
A set C1 of possible binding information is stored.
3. Similarly, C2, C3, . . . are obtained for M2, M3, .
Returns false if false.
4. Find the intersection C for the remaining C1, C2, C3, . . . Cn and return true (C).
}

(0047)
■ Enumeration algorithm specifications for multiple length matching solutions (multiple possible) of fact S for query P
================================================== =============================
======================================
Calling 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. Obtain the number of types of variables V in P and the names of appearing variables N1, N2, ... in order of appearance.

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

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

4. When V is 2 or more Longest matching solution R1 for variable N1 Executes recursive call F(P', S, C and N1=R1) for P' created by filling all N1 in P ⇒ Longest for N1 A solution set that is considered to be a consistent solution is output.

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

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

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

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

(output)
3. When V is 1, no matter how many times N1 appears in P, there is only one solution R1 to the unification of P and S, so
⇒ If there is a match, output the unique solution as "C and N1=R1", and TR
Return UE and exit.
⇒ If there is no match, return false and exit.

4. (Improved speed 2. This process is covered in 5 and later, so you can skip it.)
This device 2 is not included in the claims of Patent Document 1★)
When V is 2 or more,
A solution that matches all variables (N1 (=N), N2, ...) in the longest matching mode and a solution that matches all variables (N1 (=N), N2, ...) in the shortest matching mode. When the seen solution and are the same (N1=R1, N2=R2, …) ⇒ output the unique solution as “C and N1=R1 and N2=R2 and …” and finish Match in the first place If you did not
⇒ Return false and exit.
If not the same ⇒ continue to 5

5. When V is 2 or more Longest matching solution R1 for variable N1 Executes recursive call F(P', S, C and N1=R1) for P' created by filling all N1 in P ⇒ Longest for N1 A solution set that is considered to be a consistent solution is output.

6. When variable N1 (self) follows immediately after variable N1 in P ⇒ processed after 7 When another variable N2 follows ⇒ processed after 7 is the first character of
When fixed characters continue ⇒ Process with 7 or later

7. One character C, which is a fixed character immediately after the first appearance of variable N1 in P (the first character C of R2 when the immediately following is another variable N2),
If it is included in the longest matching solution R1 ⇒ 1) R1' ← A string obtained by deleting the substring from the end of the string of R1 to the C ⇒ 2) P'' ← R1 ' for all N in P ⇒ 3) Execute recursive call F (P'', S, C and N1=R1')
⇒If there is a solution that is one step shorter for N1, it should be possible to output it. If it is not included in the longest matching solution R1 ⇒Since enumeration of shorter solutions for N1 is finished, end.

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

図1は、利用者が仮定(「!!」記号で区別する)によって利用者のアイディア合成要求を表現した一実施例における、論理プログラム(固定的な事実及びルール)、利用者により仮定として入力される事実、利用者により仮定として一時的に追加された事実、差分として出力される内容の関係について説明する図である。メモリ内配列の5行目から13行目までを表示し、残りは省略している。5行目の下線は請求項1の「合成ルール」を示し、12、13行目の下線は、仮定として一時的に追加された事実を示す。

図2は、利用者が仮定によって利用者の要求を表現した図1の実施例について、コンピュータプログラムの主要な処理フローチャート(方法としてのステップ)を説明する図である。
ステップDS1は、この実施例において、仮定する事実の集合を利用者が入力するステップである。「!!」は仮定であること、「;」は文の区切りを示す。
ステップDS2は、この実施例において、「$A」により、自動証明できる命題(固定文字列)をすべて列挙するステップである。
ステップDS3は、仮定する事実の集合を論理プログラムに隣接するメモリに一時的に追加するステップである。
ステップDS4は、DS3により仮定を一時的に追加した前提で、$Aにより、自動証明できる命題(固定文字列)をすべて列挙するステップである。
ステップDS5は、DS4で列挙した集合と、DS2で列挙した集合の差分集合を出力するステップである。
ステップDS6は、(他の仮定を試したりするために)先に追加した仮定する事実の集合を論理プログラムに隣接するメモリから削除するステップである。

図3は、実施するコンピュータとしての一般的な構成を示す説明図である。ここには本発明に固有の特徴はないため詳述はしない。
FIG. 1 illustrates a logic program (fixed facts and rules), input as assumptions by the user, in one embodiment where the user expresses the user's idea synthesis request in terms of assumptions (denoted by the "!!" symbol). FIG. 10 is a diagram for explaining the relationship between facts that are added, facts that are temporarily added as hypotheses by the user, and contents that are output as differences. The 5th to 13th rows of the in-memory array are shown, and the rest are omitted. The underline on the 5th line indicates the "synthesis rule" of claim 1, and the underlining on the 12th and 13th lines indicates the fact temporarily added as an assumption.

FIG. 2 is a diagram illustrating the main processing flowchart (steps as a method) of a computer program for the embodiment of FIG. 1 in which the user expresses the user's request through assumptions.
Step DS1 is a step in which the user inputs a set of assumed facts in this embodiment. "!!" indicates a hypothesis, and ";" indicates a sentence break.
Step DS2 is a step of listing all automatically provable propositions (fixed character strings) by "$A" in this embodiment.
Step DS3 is the step of temporarily adding the set of hypothesized facts to memory adjacent to the logic program.
Step DS4 is a step of enumerating all propositions (fixed character strings) that can be automatically proved by $A on the assumption that assumptions are temporarily added by DS3.
Step DS5 is a step of outputting a difference set between the set enumerated in DS4 and the set enumerated in DS2.
Step DS6 is the step of deleting the previously added set of hypothetical facts (for testing other hypotheses, etc.) from memory adjacent to the logic program.

FIG. 3 is an explanatory diagram showing a general configuration as a computer that implements. Since there are no unique features of the present invention here, it will not be described in detail.

4 本発明で用いられる一般的なコンピュータ(利用者専用のパーソナルコンピュータ、共有ファイルサーバー、Webサーバー)
4a~4k 一般的なコンピュータ4(利用者専用のパーソナルコンピュータ、等)の一般的な構成要素
21 論理プログラム(固定的事実とルール、5行目の下線は「合成ルール」)
22 仮定として追加される事実
23 仮定として一時的に追加された事実(下線)
24 出力された差分集合
DS1 一実施例において、仮定する事実の集合を利用者が入力するステップ
DS2 同じ実施例において、$Aにより、自動証明できる命題(固定文字列)をすべて列挙するステップ
DS3 仮定する事実の集合を論理プログラムに追加するステップ
DS4 DS3により追加した上で、$Aにより、自動証明できる命題(固定文字列)をすべて列挙するステップ
DS5 DS4で列挙した集合と、DS2で列挙した集合の差分集合を出力するステップ
DS6 仮定する事実の集合を論理プログラムから削除するステップ
4 General computer used in the present invention (user-dedicated personal computer, shared file server, web server)
4a-4k general components of a general computer 4 (user-dedicated personal computer, etc.) 21 logic program (fixed facts and rules, 5th line underlined "synthesis rule")
22 Facts added as assumptions 23 Facts temporarily added as assumptions (underlined)
24 Output difference set DS1 In one embodiment, step DS2 where the user inputs a set of hypothesized facts. Add a set of facts to the logic program Step DS4 After adding by DS3, $A lists all automatically provable propositions (fixed character strings) Step DS5 The set enumerated in DS4 and the set enumerated in DS2 Step DS6 of outputting a difference set of

Claims (8)

PROLOGの機能の一部又は全部を含み、別途の自然言語ベースの論理プログラムに従ってコンピュータに処理を実行させるコンピュータプログラムであって、
前記論理プログラム中に、自然言語に変数を埋めこんだリテラルの使用をすることを該コンピュータプログラムが許容するようにして、
再帰的な三段論法と連動した自然言語のパターンマッチングが該コンピュータプログラムにより可能になっており
PROLOGのルールにあたるルールの右辺のボディのリテラルに含まれる変数が左辺のヘッドに含まれる変数の全部の種類を含まないルール(以降、「合成ルール」と呼ぶ)を論理プログラムが含んでおり
該論理プログラムは、複数分野の複数テキストに、該合成ルールの右辺のボディの異なるリテラル(但し、含まれる変数のスコープは該合成ルール内であり共通)が別々にマッチしうるようになっており
複数分野の概念を、該合成ルールのヘッドのリテラルにおいて新しい概念を構成して結合できるようにした
コンピュータプログラムであって、
利用者が入力する質問文、事実、ルールの条件もしくはルールの効果、又は、論理プログラムの事実、ルールの条件もしくルールの効果において、
証拠事実の存在もしくは自動証明の成功としての肯定(真)並びにその否定(証拠事実の不存在かつ自動証明失敗/不能)以外に、
否定する証拠事実の存在もしくは否定する自動証明の成功を意味する「ありえない」の表現を該コンピュータプログラムが許容し、
変数を最初から含まないもしくは変数束縛により含まなくなった肯定表現を該コンピュータプログラムが根拠として用いる際に、
該肯定表現に対応する「ありえない」の表現が存在しないかつ自動証明できないことを該コンピュータプログラムが自動確認して、
該「ありえない」の表現が存在する又は自動証明できる場合に該コンピュータプログラムが該対応する肯定表現の使用を制限するようにした
コンピュータプログラム。
A computer program that includes some or all of the functions of PROLOG and causes a computer to execute processing according to a separate natural language-based logic program,
wherein the computer program allows the use of literals embedded with variables in natural language in the logic program;
the computer program enables natural language pattern matching in conjunction with recursive syllogisms;
The logic program includes a rule (hereinafter referred to as a "synthesis rule") in which the variables included in the literals of the body on the right side of the rule corresponding to the PROLOG rule do not include all types of variables included in the head on the left side,
The logic program is designed so that different literals in the body on the right side of the synthesis rule (however, the scope of the included variables is common within the synthesis rule) can separately match multiple texts in multiple fields. ,
A computer program that allows concepts from multiple fields to be combined to construct new concepts in head literals of said composition rules, comprising:
In a question, fact, rule condition or rule effect entered by a user, or in a logic program fact, rule condition or rule effect,
In addition to the affirmation (true) as the existence of evidence facts or the success of automatic proof and its denial (absence of evidence facts and automatic proof failure/impossibility),
the computer program allows the expression "impossible" to signify the existence of evidence to the contrary or the success of automatic proof to the contrary;
When the computer program uses as a basis an affirmative expression that does not contain the variable from the beginning or does not contain the variable due to variable binding,
The computer program automatically confirms that the "impossible" expression corresponding to the affirmative expression does not exist and cannot be automatically proved,
causing the computer program to limit the use of the corresponding affirmative expression if the "impossible" expression exists or can be automatically proven
computer program.
前記複数分野の複数テキストを構成する各テキストは、互いに区分された一以上の文から構成され、
前記ボディのいずれかの条件にマッチした文の属するテキスト中の他の文を、
同じボディの別の条件に優先してマッチするように制御することを特徴とする
請求項1に記載のコンピュータプログラム。
each text that constitutes the plurality of texts in the plurality of fields is composed of one or more sentences that are separated from each other;
other sentences in the text to which the sentence that matches one of the above body conditions belongs,
2. The computer program according to claim 1, wherein control is performed so as to match other conditions of the same body with priority.
コンピュータプログラムが、
関連する文を分野ごとないしインスタンス(記事)ごとに集め、かつ、利用者要求に応じた自動合成にむけて再帰的三段論法つき自然言語パターンマッチングの条件として探索しやすくする用途のために、
請求項1又は2のコンピュータプログラムと連動し、
パターン部分や要素概念の表記ゆれや重複を発生しにくくするよう、
分野、テーマ、パターン(テンプレート)、又は、既提供データを利用者に明示して
利用者による
そのカテゴリ(分野又はテーマ)への
そのパターン(言語又はテンプレート)での
有意なデータ(知識や情報)の提供を募集する
コンピュータプログラム。
a computer program
For the purpose of collecting related sentences by field or by instance (article) and making it easier to search as a condition for natural language pattern matching with recursive syllogism for automatic synthesis according to user requests,
In conjunction with the computer program of claim 1 or 2,
In order to prevent notational variations and duplication of pattern parts and element concepts,
Fields, themes, patterns (templates), or already provided data are specified to users Significant data (knowledge and information) in that pattern (language or template) for that category (field or theme) by users Solicit offers of computer programs.
前記利用者の要求として、
自然言語に変数を埋めこんだリテラルで表現したものを受け付け、
埋め込まれた変数を束縛する解を自動的に求めることにより
利用者の要求するアイディアを自動合成することを特徴とする
請求項1から3のいずれか一項に記載のコンピュータプログラム。
As requested by the user,
Accepts a literal expression in which variables are embedded in natural language,
4. The computer program according to any one of claims 1 to 3, wherein an idea requested by a user is automatically synthesized by automatically obtaining a solution that binds embedded variables.
前記利用者の要求として、
自然言語による一以上の文(固定文字列)からなる仮定を事実として受け付け、
論理プログラムに当該仮定を事実として加えることで自動証明できるようになった文(固定文字列)の集合(論理プログラムにもともと含まれていた事実も、当該肯定表現に対応する請求項1の「ありえない」の表現が存在しないかつ自動証明できない限り、この文(固定文字列)の集合に含まれる)
論理プログラムに当該仮定を事実として加える前に自動証明できていた文(固定文字列)の集合(論理プログラムにもともと含まれていた事実も、当該肯定表現に対応する請求項1の「ありえない」の表現が存在しないかつ自動証明できない限り、この文(固定文字列)の集合に含まれる)との差分集合を
求めることにより、
利用者の要求するアイディアを自動合成することを特徴とする
請求項1から3のいずれか一項に記載のコンピュータプログラム。
As requested by the user,
Accepts assumptions consisting of one or more sentences (fixed character strings) in natural language as facts ,
A set of sentences (fixed character strings) that can be automatically proved by adding the assumption to the logic program as a fact (the fact originally included in the logic program is also the "impossible" of claim 1 corresponding to the affirmative expression " is included in this set of sentences (fixed strings) unless the expression "" exists and can be automatically proved) and the set of sentences (fixed strings) that could be automatically proved before adding the assumption to the logic program as a fact (Facts originally included in the logic program are also included in this set of sentences (fixed character strings) unless the expression "impossible" in claim 1 corresponding to the affirmative expression does not exist and cannot be automatically proved.) By finding the difference set of
4. A computer program as claimed in any one of claims 1 to 3, characterized by automatically synthesizing ideas requested by a user.
前記利用者の要求として、
自然言語による一以上の文からなる一時的な文脈を受け付け、
一時的な文脈に含まれる文からの前向き推論により
利用者の要求するアイディアを自動合成することを特徴とする
請求項1から3のいずれか一項に記載のコンピュータプログラム。
As requested by the user,
accepting a temporary context consisting of one or more sentences in natural language;
4. The computer program according to any one of claims 1 to 3, characterized in that it automatically synthesizes the ideas requested by the user by forward inference from sentences contained in a temporary context.
所定の価値観における項目(又は項目組)の順序を定義した内容をもとに、
ユーザが要求する概念を合成するために用いる文字列を制限することを
特徴とする請求項1からのいずれか一項に記載のコンピュータプログラム。
Based on the content that defines the order of items (or item sets) in a given set of values,
7. A computer program as claimed in any one of claims 1 to 6 , characterized in that it restricts the strings used to synthesize the concepts requested by the user.
所定の価値観における項目(又は項目組)の順序を定義した内容をもとに、
ユーザが要求する概念を合成するために用いる文字列の優先順位を制御することを
特徴とする請求項1からのいずれか一項に記載のコンピュータプログラム。
Based on the content that defines the order of items (or item sets) in a given set of values,
8. A computer program as claimed in any one of claims 1 to 7 , for controlling the priority of strings used to synthesize user-requested concepts.
JP2017092076A 2017-05-07 2017-05-07 Method, computer program and apparatus for automatically synthesizing ideas from natural language text Active JP7239959B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017092076A JP7239959B2 (en) 2017-05-07 2017-05-07 Method, computer program and apparatus for automatically synthesizing ideas from natural language text

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017092076A JP7239959B2 (en) 2017-05-07 2017-05-07 Method, computer program and apparatus for automatically synthesizing ideas from natural language text

Publications (2)

Publication Number Publication Date
JP2018190184A JP2018190184A (en) 2018-11-29
JP7239959B2 true JP7239959B2 (en) 2023-03-15

Family

ID=64478527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017092076A Active JP7239959B2 (en) 2017-05-07 2017-05-07 Method, computer program and apparatus for automatically synthesizing ideas from natural language text

Country Status (1)

Country Link
JP (1) JP7239959B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674250B (en) * 2019-08-15 2023-06-23 中国平安财产保险股份有限公司 Text matching method, device, computer system and readable storage medium
CN111625623B (en) * 2020-04-29 2023-09-08 奇安信科技集团股份有限公司 Text theme extraction method, text theme extraction device, computer equipment, medium and program product

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006024045A (en) 2004-07-08 2006-01-26 Knowrel System Inc Inferring method, inferring system, and computer program thereof
JP2014501988A (en) 2011-01-07 2014-01-23 プライマル フュージョン インコーポレイテッド System and method for analyzing and synthesizing complex knowledge representation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006024045A (en) 2004-07-08 2006-01-26 Knowrel System Inc Inferring method, inferring system, and computer program thereof
JP2014501988A (en) 2011-01-07 2014-01-23 プライマル フュージョン インコーポレイテッド System and method for analyzing and synthesizing complex knowledge representation

Also Published As

Publication number Publication date
JP2018190184A (en) 2018-11-29

Similar Documents

Publication Publication Date Title
Mayer et al. User interaction models for disambiguation in programming by example
US10496749B2 (en) Unified semantics-focused language processing and zero base knowledge building system
JP6105692B2 (en) System and method for analyzing and synthesizing complex knowledge representations
Song et al. TR discover: A natural language interface for querying and analyzing interlinked datasets
US20200042505A1 (en) Methods and devices for customizing knowledge representation systems
Grefenstette et al. Concrete models and empirical evaluations for the categorical compositional distributional model of meaning
US10678820B2 (en) System and method for computerized semantic indexing and searching
JP6263858B2 (en) Method, apparatus and computer program for processing knowledge and information
CN108710695A (en) Mind map generation method based on e-book and electronic equipment
Wang et al. Knowledge graph construction and applications for web search and beyond
Tran et al. A hybrid approach for building a Vietnamese sentiment dictionary
US11809388B2 (en) Methods and devices for customizing knowledge representation systems
JP7239959B2 (en) Method, computer program and apparatus for automatically synthesizing ideas from natural language text
Wu Commonsense knowledge powered heterogeneous graph attention networks for semi-supervised short text classification
Keet et al. CLaRO: a controlled language for authoring competency questions
Morshed Using Wikidata lexemes and items to generate text from abstract representations
JP6924461B2 (en) How to process logical programs that allow strings containing variables as literals, computer programs and devices
Nguyen et al. Learning to summarize multi-documents with local and global information
WO2016071942A1 (en) Method for processing knowledge or information, device, and computer program
Perez-Beltrachini et al. Incremental query generation
Krötzsch Too much information: Can AI cope with modern knowledge graphs?
Razorenov et al. A new formal approach to semantic parsing of instructions and to file manager design
JP2017102628A (en) Method for processing knowledge and information, computer program for the same, and processing device
Emani et al. Improving open information extraction for semantic web tasks
JP2018073015A (en) Searching tree pruning method, computer program and apparatus

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170803

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210125

A917 Reason for reinstatement of right to file examination request

Free format text: JAPANESE INTERMEDIATE CODE: A917

Effective date: 20210125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220412

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220812

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230224

R150 Certificate of patent or registration of utility model

Ref document number: 7239959

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150