(57)【要約】  仮説検証装置１０は、１つの名前及び１つ以上のパラメータを含む論理式の集合で表現された観測データから、同じ形式で表現された知識データを用いて、ありうる帰結に至る論理式で構成された仮説を導出する、仮説生成部１１と、仮説を構成する論理式の中に、観測データから得られた値を有する第１のパラメータと、観測データから得られた値を有さない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式とし、観測データ及び対象論理式の名前に基づき、第２のパラメータの値を取得して対象論理式に入力し、対象論理式が存在せず、１つ以上のパラメータに予め値を持つ又は推論知識によって得られた値を持つ、論理式が存在する場合は、真偽を判定する、仮説検証部１２とを備える。仮説生成部１１は、真偽が判定されるか、第２のパラメータの値が入力されると、得られた論理式を、観測データに追加して、再度、仮説を導出する。
2019064600.tif 000002
【特許請求の範囲】
【請求項１】
１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、仮説生成部と、
前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、仮説検証部と、
を備え、
前記仮説生成部は、前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、
ことを特徴とする仮説検証装置。
【請求項２】
前記観測データが、論理式の形式を持つデータであり、
当該仮説検証装置は、複数の論理式それぞれに、当該論理式の名前と、当該論理式に含まれるパラメータの値を抽出可能な解析ツールとを関連付けて登録し、論理式の名前及び論理式に含まれるデータが入力されると、入力に応じて、前記解析ツールを実行する、データ解析部を更に備え、
前記仮説検証部は、前記データ解析部に、前記観測データ及び論理式の名前、又は前記第１のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第２のパラメータの値の取得を実行する、
請求項１に記載の仮説検証装置。
【請求項３】
当該仮説検証装置が、
前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、帰結設定部を更に備えている、
請求項２に記載の仮説検証装置。
【請求項４】
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
（ｂ）前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｃ）前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を有することを特徴とする仮説検証方法。
【請求項５】
前記観測データが、論理式の形式を持つデータであり、
前記（ｂ）のステップにおいて、
論理式の名前と関連付けて登録され、且つ、当該論理式に含まれるパラメータの値を抽出可能な解析ツールを用い、前記解析ツールに、前記観測データ及び論理式の名前、又は前記第１のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第２のパラメータの値の取得を実行する、
請求項４に記載の仮説検証方法。
【請求項６】
（ｄ）前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、ステップを更に有する、
請求項５に記載の仮説検証方法。
【請求項７】
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
（ｂ）前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｃ）前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
【請求項８】
前記観測データが、論理式の形式を持つデータであり、
前記（ｂ）のステップにおいて、
論理式の名前と関連付けて登録され、且つ、当該論理式に含まれるパラメータの値を抽出可能な解析ツールを用い、前記解析ツールに、前記観測データ及び論理式の名前、又は前記第１のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第２のパラメータの値の取得を実行する、
請求項７に記載のコンピュータ読み取り可能な記録媒体。
【請求項９】
前記プログラムが、前記コンピュータに、
（ｄ）前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、ステップを更に実行させる命令を更に含む、
請求項８に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮説検証装置、仮説検証方法、及びこれらを実現するためのプログラムに関し、特には、ある結果に至る経緯の仮説を設定し、設定した仮説を検証することによって、経緯の具体化を図る、仮説検証装置、仮説検証方法、及びプログラムに関する。
【背景技術】
【０００２】
従来から、論理的推論の一種に、仮説推論またはアブダクションと呼ばれる手法が知られている。仮説推論は、例えば、物体、製造システム、実行中のソフトウェアプログラムなどに生じた異常状態に対して、その状態に至る幾つかの可能性に基づく仮説のうち、得られている関連事実を最もよく説明できる仮説を選択する手法である。【０００３】
一般に、仮説推論では、仮説が生成又は選択されるが、実際の利用場面の多くでは、その仮説を検証し、検証結果に応じて、仮説の修正又は再選択が必要となる。ここで、仮説推論を現実の問題に利用するシステムの一例について、特許文献１に基づいて説明する。特許文献１は、仮説推論を用いた運転支援システムを開示している。【０００４】
特許文献１に開示された運転支援システムは、車の運転中に起きうる危険を周囲の観測によって得られた情報から予測する。特許文献１に開示された運転支援システムでは、仮説推論の一種である重み付き仮説推論（非特許文献１参照）が用いられている。【０００５】
具体的には、特許文献１の図１３に示すように、特許文献１に開示された運転支援システムは、まず、観測情報を変換して得られたコスト付きの観測論理式を観測データとして受け付ける。次に、特許文献１に開示された運転支援システムは、仮説推論部によって、観測データに基づいて、危険を表す仮説のうち最も証明コストの低い最安証明を、最も起き易い危険として選択する。続いて、特許文献１に開示された運転支援システムは、選択した最安証明（危険）に関連する物体に対して、物理シミュレーションを実行して、その挙動を推定し、その推定結果を新たな観測論理式として仮説推論部に追加する。その後、仮説推論部は、仮説推論を再度実行する。このように、特許文献１に開示された運転支援システムによれば、物理シミュレーションによる物体の挙動を考慮した危険の予測が可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−９１０３９号公報
【非特許文献】
【０００７】
【非特許文献１】Hobbs, Jerry R., Mark Stickel,Douglas Appelt, and Paul Martin, “Interpretation asAbduction”, ArtificialIntelligence, Vol.63, Nos.1-2,pp.69-142, 1993.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、特許文献１に開示された運転支援システムでは、得られた観測情報を基に仮説推論と物理シミュレーションとが用いられるので、生じうる危険を高い確度で予測できると考えられるが、当該システムが行なうのは、あくまで予測である。特許文献１に開示された運転支援システムでは、実際に起きた事象が何故起きたのかを明らかにすることは困難である。つまり、特許文献１に開示された運転システムで行なわれる物理シミュレーションは、最初に得られた観測情報にはない情報を提供しうるが、それによって予測される危険が変わることはあるものの、その危険が現実となった際の証拠及び経緯の全てを説明するものではない。【０００９】
このため、特許文献１に開示された運転支援システムには、仮説推論を何らかの問題に適用する場合に、得られた仮説の検証とその検証結果に基づく仮説の修正とを行なうことができないという問題がある。【００１０】
言い換えると、従来の仮説推論の手法は、より良い仮説を生成することのみを目的としている。よって、従来の仮説推論においては、生成された仮説の検証の手順（どこからどのような手順で検証するのか）、その検証によって仮説に矛盾が生じた場合の対応、他の仮説との比較（他の仮説の方がより良い結果が得られていないか）が考慮されていない。そのため、従来の仮説推論のみでは、最終的に最もよく検証された、又は全てが証明された、結果を得ることが不可能となっている。【００１１】
本発明の目的は、上記問題を解消し、仮説を検証し、検証結果に基づいた仮説の修正を可能にし得る、仮説検証装置、仮説検証方法、およびコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明の一側面における仮説検証装置は、
１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、仮説生成部と、
前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、仮説検証部と、
を備え、
前記仮説生成部は、前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、
ことを特徴とする。【００１３】
また、上記目的を達成するため、本発明の一側面における仮説検証方法は、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
（ｂ）前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｃ）前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を有する、
ことを特徴とする。【００１４】
更に、上記目的を達成するため、本発明の一側面におけるコンピュータ読み取り可能な記録媒体は、
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
（ｂ）前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｃ）前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を実行させる命令を含む、プログラムを記録している、
ことを特徴とする。
【発明の効果】
【００１５】
以上のように本発明によれば、仮説を検証でき、検証結果に基づいて、仮説を修正することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の実施の形態における仮説検証装置の概略構成を示すブロック図である。
【図２】図２は、本発明の実施の形態における仮説検証装置の構成を具体的に示すブロック図である。
【図３】図３は、本発明の実施の形態において帰結格納部が格納しているデータの一例を示す図である。
【図４】図４は、本発明の実施の形態において用いられる知識データの一例を示す図である。
【図５】図５は、本発明の実施の形態における仮説検証装置の動作を示すフロー図である。
【図６】図６は、本発明の実施の形態において図５に示すステップＡ５及びＡ６をより具体的に示すフロー図である。
【図７】図７は、本発明の実施の形態における仮説検証装置を実現するコンピュータの一例を示すブロック図である。
【図８】図８は、本発明の実施例における仮説の導出過程を示す図であり、各図は一連の主な導出過程を示している。
【図９】図９は、本発明の実施例における仮説の導出過程を示す図であり、各図は一連の主な導出過程を示している。
【図１０】図１０は、本発明の実施例における仮説の導出過程を示す図であり、各図は一連の主な導出過程を示している。
【図１１】図１１は、本発明の実施例における仮説の導出過程を示す図であり、各図は一連の主な導出過程を示している。
【発明を実施するための形態】
【００１７】
（発明の前提）
まず、本発明で用いる論理式としては、１つの述語と１つ以上の項とで構成された１つの関数型論理式が挙げられる。例えば、項Ｘは、項Ｙの子供（ｃｈｉｌｄ）であることを表す論理式は、ｃｈｉｌｄ（Ｘ，Ｙ）と記述することができる。また、１つの仮説は、論理式で記述された１つ以上のルールで構成される。１つのルールは、論理式ＡとＢを用いて「Ａ→Ｂ」と記述することができる。“→”は、左辺（「前件」とも表記する）が成り立つならば右辺（「後件」とも表記する）が成り立つという意味を表す記号である。
【００１８】
（実施の形態）
以下、本発明の実施の形態における仮説検証装置について、図１〜図６を参照しながら説明する。
【００１９】
［装置構成］
最初に、図１を用いて、本実施の形態における仮説検証装置の概略構成を説明する。図１は、本発明の実施の形態における仮説検証装置の概略構成を示すブロック図である。
【００２０】
図１に示すように、本実施の形態における仮説検証装置１０は、仮説生成部１１と、仮説検証部１２とを備えている。
【００２１】
仮説生成部１１は、１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る論理式で構成された仮説を導出する。
【００２２】
仮説検証部１２は、仮説を構成する論理式の中に、観測データから得られた値を有する第１のパラメータと、観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式とする。そして、仮説検証部１２は、観測データ及び対象論理式の名前に基づいて、第２のパラメータの値を取得する。更に、この場合は、仮説検証部１２は、取得した第２のパラメータの値を対象論理式に入力する。
【００２３】
また、仮説検証部１２は、対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する。
【００２４】
そして、仮説検証部１２によって、論理式の真偽が判定されるか、又は対象論理式に第２のパラメータの値が入力されると、仮説生成部１１は、真偽判定がなされた論理式又は対象論理式を、観測データに追加して、再度、仮説を導出する。
【００２５】
このように、本実施の形態では、仮説を構成する論理式の真偽判定の結果、又は新たなパラメータの値が追加された論理式を用いて、仮説の導出が再度行われる。このため、本実施の形態によれば、仮説を検証でき、検証結果に基づいて、仮説を修正することが可能となる。
【００２６】
続いて、図２を用いて、本実施の形態における仮説検証装置１０の構成をより具体的に説明する。図２は、本発明の実施の形態における仮説検証装置の構成を具体的に示すブロック図である。
【００２７】
図２に示すように、本実施の形態における仮説検証装置１０は、上述した仮説生成部１１及び仮説検証部１２に加えて、入力受付部１３と、帰結設定部１４と、帰結格納部１５と、推論知識格納部１６と、データ解析部１７とを備えている。
【００２８】
入力受付部１３は、外部からの観測データの入力を受け付ける。また、本実施の形態では、観測データは、全てのパラメータに、推論の対象となる事象の観測によって得られた値を持つ、論理式の形式で表現されたデータである。入力受付部１３は、受け付けた観測データを帰結設定部１４に渡す。
【００２９】
帰結設定部１４は、観測データを、帰結格納部１５に照合して、観測データに対応する帰結を設定する。また、設定された帰結は、仮説推論の起点となる。帰結格納部１５は、論理式毎に予め帰結を登録しているデータベースである。図３は、本発明の実施の形態において帰結格納部が格納しているデータの一例を示す図である。図３に示すように、帰結格納部１５は、論理式毎に設定された帰結を登録している。
【００３０】
推論知識格納部１６は、仮説生成部１１による仮説の導出に用いられる知識データを格納している。図４は、本発明の実施の形態において用いられる知識データの一例を示す図である。図４に示すように、本実施の形態において知識データは、推論知識である。
【００３１】
仮説生成部１１は、本実施の形態では、観測データと、帰結設定部１４によって設定された帰結と、推論知識格納部１６が格納している推論知識とを用いて、仮説推論を行って、仮説を導出する。仮説推論の手法としては、上述の特許文献１でも利用されている重み付き仮説推論が挙げられる。
【００３２】
具体的には、仮説生成部１１は、推論知識格納部１６が格納している推論知識の中から、帰結設定部１４によって設定された帰結に結びつく推論知識を選択し、選択した推論知識に観測データを追加する。これにより、選択された推論知識の数だけ、仮説候補が作成される。続いて、仮説生成部１１は、観測データに与えられたコストと、各推論知識に付与されている重みとを用いて、作成した仮説候補それぞれのコストを算出し、最もコストが低い仮説候補を仮説として導出する。
【００３３】
データ解析部１７は、論理式毎に、その論理式の名前と、その論理式に含まれるパラメータの値を抽出可能な解析ツールとを関連付けて登録する。そして、データ解析部１７は、論理式の名前及び観測データ、又は論理式の名前及び第１のパラメータの値が入力されると、入力に応じて、解析ツールを実行する。
【００３４】
また、本実施の形態において利用可能な解析ツールとしては、アプリケーションプログラム（ｗｅｂアプリケーションプログラムを含む）によって提供されている、既知の各種ファイル解析ツールが挙げられる。
【００３５】
仮説検証部１２は、本実施の形態では、データ解析部１７に、観測データ及び対象論理式の名前を入力し、それによって、対象論理式の真偽の判定、又は第２のパラメータの値の取得を実行する。
【００３６】
具体的には、本実施の形態では、仮説検証部１２は、まず、仮説を構成する論理式の中に、２つ以上のパラメータを持ち、且つ、その一部のパラメータ（第１のパラメータ）のみが値を持つ論理式（対象論理式）が存在しているかどうかを判定する。
【００３７】
判定の結果、条件に該当する対象論理式が存在する場合は、仮説検証部１２は、これを検索クエリとする。続いて、仮説検証部１２は、検索クエリを用いて、データ解析部１７が登録している解析ツールに対して検索を行い、これらの中から、検索クエリに適用可能な解析ツールを特定する。続いて、仮説検証部１２は、データ解析部１７に、特定した解析ツールを実行させ、対象論理式の第１のパラメータの値から、第２のパラメータの値を取得させる。
【００３８】
一方、上述の判定の結果、条件に該当する対象論理式が存在しない場合は、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在することを条件に、上述したように、仮説検証部１２は、この論理式の真偽を判定する。
【００３９】
真偽の判定は、例えば、予め値を持つパラメータに対し、解析ツールを実行させて値を取得し、その値が予め持つ値と同じであれば真、異なれば偽、または解析ツールを実行させて推論知識によって得られた値を持つ論理式が成立すると判定されれば真、成立しないと判定されれば偽とすることによって行なうことができる。また、この場合の解析ツールは、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式を、検索クエリとして用いて検索される。
【００４０】
また、仮説検証部１２によって第２のパラメータの値が取得できた場合は、仮説生成部１１は、対象論理式の第２のパラメータに、取得できた値を事象の観測によって得た値として入力する。そして、仮説生成部１１は、入力後の対象論理式を観測データに追加し、追加した観測データから、仮説を再度導出する。
【００４１】
一方、仮説検証部１２によって対象論理式の真偽判定が行われた場合は、仮説生成部１１は、真偽判定の結果を、判定対象となった論理式に反映する。例えば、真であれば、判定対象となった論理式に対して何もせず、偽であれば、判定対象となった論理式の予め値を持つパラメータに解析データの実行によって得られた値を代入し、値が代入された論理式を新たな論理式とする。または、仮説生成部１１は、偽と判定された論理式に否定演算子を付与しても良い。具体的には、否定演算子の付与は、例えばfile(foo.rar, “executable”)の冒頭に“！”を付与して、「！file(foo.rar, “executable”)」を観測データとする。そして、仮説生成部１１は、真偽判定の結果が反映された論理式を観測データに追加し、追加した観測データから、仮説を再度導出する。
【００４２】
本実施の形態では、このように、仮説検証部１２による検証と、仮説生成部１１による仮説の導出とが繰り返し行われる。そして、仮説生成部１1は、仮説を構成している論理式のいずれに対しても適用可能な解析ツールが無くなると、即ち、仮説を構成している全ての論理式が全パラメータに値を持つようになると、この仮説を最終的な仮説として出力する。このような、全てのパラメータに値を持つ論理式のみで構成されている仮説は、完全に検証されており、即ち、証明された仮説と言える。
【００４３】
［装置動作］
次に、本発明の実施の形態における仮説検証装置１０の動作について、図５を用いて説明する。図５は、本発明の実施の形態における仮説検証装置の動作を示すフロー図である。以下の説明においては、適宜図１〜図４を参酌する。また、本実施の形態では、仮説検証装置１０を動作させることによって、仮説検証方法が実施される。よって、本実施の形態における仮説検証方法の説明は、以下の仮説検証装置の動作説明に代える。
【００４４】
図５に示すように、最初に、入力受付部１３は、外部からの観測データの入力を受け付ける（ステップＡ１）。入力受付部１３は、受け付けた観測データを帰結設定部１４に渡す。
【００４５】
次に、帰結設定部１４は、観測データを、帰結格納部１５（図３参照）に照合して、観測データに対応する帰結を設定する（ステップＡ２）。
【００４６】
次に、仮説生成部１１は、観測データと、帰結設定部１４によって設定された帰結と、推論知識格納部１６が格納している推論知識とを用いて、仮説推論を行って、仮説を導出する（ステップＡ３）。
【００４７】
次に、仮説検証部１２は、仮説を構成する論理式の中に、２つ以上のパラメータを持ち、且つ、その一部のパラメータ（第１のパラメータ）のみが値を持つ論理式（対象論理式）が存在しているかどうかを判定する（ステップＡ４）。
【００４８】
ステップＡ４の判定の結果、条件に該当する対象論理式が存在する場合は、仮説検証部１２は、条件に該当する対象論理式を検索クエリとして、データ解析部１７が登録している解析ツールに対して検索を実行する（ステップＡ５）。
【００４９】
次に、仮説検証部１２は、ステップＡ５の実行によって適用可能な解析ツールを検索できたかどうかを判定する（ステップＡ６）。ステップＡ６の判定の結果、検索できなかった場合は、仮説検証部１２は、ステップＡ１３を実行する。
【００５０】
一方、ステップＡ６の判定の結果、検索できた場合は、仮説検証部１２は、データ解析部１７に、検索した解析ツールを実行させ、対象論理式の第１のパラメータの値から、第２のパラメータの値を取得する（ステップＡ７）。
【００５１】
次に、ステップＡ７の実行後は、仮説生成部１１は、対象論理式の第２のパラメータに、取得できた値を入力し、入力後の対象論理式を観測データに追加して、追加した観測データから、仮説を再度導出する（ステップＡ8）。その後、再度、ステップＡ４が実行される。
【００５２】
また、ステップＡ４の判定の結果、条件に該当する対象論理式が存在しない場合は、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在することを条件に、仮説検証部１２は、この論理式を検索クエリとして、データ解析部１７が登録している解析ツールに対して検索を実行する（ステップＡ９）。
【００５３】
次に、仮説検証部１２は、ステップＡ９の実行によって適用可能な解析ツールを検索できたかどうかを判定する（ステップＡ１０）。ステップＡ１０の判定の結果、検索できなかった場合は、仮説検証部１２は、ステップＡ１３を実行する。
【００５４】
一方、ステップＡ１０の判定の結果、検索できた場合は、仮説検証部１２は、データ解析部１７に、検索した解析ツールを実行させ、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式の真偽を判定する（ステップＡ１１）。
【００５５】
次に、ステップＡ１１の実行後は、仮説検証部１２は、真偽判定の結果を、判定対象となった論理式に反映し、真偽判定の結果が反映された論理式を観測データに追加して、追加した観測データから、仮説を再度導出する（ステップＡ１２）。その後、再度、ステップＡ４が実行される。
【００５６】
また、ステップＡ６又はステップＡ１０でＮｏと判定された場合は、仮説生成部１1は、判定対象となった仮説を最終的な仮説として出力する（ステップＡ１３）。
【００５７】
ここで、図６を用いて、図５に示したステップＡ５〜Ａ８についてより具体的に説明する。図６は、本発明の実施の形態において図５に示すステップＡ５〜Ａ８をより具体的に示すフロー図である。図６に示すフローに沿って処理を実行した場合は、データ解析部１７による解析をバッチ処理で行うことが可能となる。
【００５８】
最初に、図６に示すように、データ解析部１７は、対象論理式（検索クエリ）と仮説検証部１２によって特定された解析ツールの識別情報とを取得する（ステップＡ５１）。
【００５９】
次に、データ解析部１７は、対象論理式を構成しているパラメータとその値とを抽出する（ステップＡ５２）。
【００６０】
次に、データ解析部１７は、仮説検証部１２によって特定された解析ツール毎に、対応する論理式の名前と観測データとを入力して、当該解析ツールを実行し、解析結果の取得を試みる（ステップＡ５３）。
【００６１】
次に、仮説検証部１２は、ステップＡ５３によって解析結果が取得されているかどうかを判定する（ステップＡ５４）。ステップＡ５３の判定の結果、解析結果が取得されていない場合は、仮説検証部１２は、検証は失敗であると判断する（ステップＡ５９）。その後、仮説検証部１２は、そのことを外部に出力する。
【００６２】
一方、ステップＡ５３の判定の結果、解析結果が取得されている場合は、仮説検証部１２は、解析結果に対応する論理式のパラメータに既存の値が存在しているかどうかを判定する（ステップＡ５５）。
【００６３】
ステップＡ５５の判定の結果、解析結果に対応する論理式のパラメータに既存の値が存在していない場合は、仮説検証部１２は、検証は成功であると判断する。この場合、仮説生成部は、解析結果で得られた値をパラメータの値とする論理式を、観測データに追加する（ステップＡ６０）。
【００６４】
一方、ステップＡ５５の判定の結果、解析結果に対応する論理式のパラメータに既存の値が存在している場合は、仮説検証部１２は、解析結果に対応するパラメータに存在している既存の値と、解析結果で得られた値とが一致しているかどうかを判定する（ステップＡ５６）。
【００６５】
ステップＡ５６の判定の結果、一致していない場合は、仮説検証部１２は、検証は失敗であると判断する。この場合、仮説生成部１１は、解析結果で得られた値を解析結果に対応するパラメータの値とする論理式を、観測データに追加する（ステップＡ６１）。
【００６６】
一方、ステップＡ５６の判定の結果、一致している場合は、仮説検証部は、検証は成功であると判断する。この場合、仮説生成部１１は、解析結果で得られた値を、解析結果に対応するパラメータに存在している既存の値を、パラメータの値とする論理式を、観測データに追加する（ステップＡ６２）。
【００６７】
［実施の形態における効果］
このように、本実施の形態によれば、仮説に対して検証が行われ、完全に検証された仮説のみが最終的な仮説として出力される。即ち、本実施の形態では、仮説の検証を行なうと共に仮説推論を繰り返して仮説の修正も行なわれるので、観測データとデータの解析結果とを含む事実を元に最もよく検証された仮説を得ることが可能となる。また、本実施の形態では、仮説の全ての構成要素が検証された場合に、人手による試行錯誤を必要とすることなく、事実によって証明された結論を得ることができる。
【００６８】
［プログラム］
本発明の実施の形態におけるプログラムは、コンピュータに、図５に示すステップＡ１〜Ａ１０を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における仮説検証装置と仮説検証方法とを実現することができる。この場合、コンピュータのプロセッサは、仮説生成部１１、仮説検証部１２、入力受付部１３、帰結設定部１４、及びデータ解析部１７として機能し、処理を行なう。
【００６９】
また、本実施の形態では、帰結格納部１５と、推論知識格納部１６とは、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現できる。
【００７０】
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、仮説生成部１１、仮説検証部１２、入力受付部１３、帰結設定部１４、及びデータ解析部１７のいずれかとして機能しても良い。また、帰結格納部１５と、推論知識格納部１６とは、本実施の形態におけるプログラムを実行するコンピュータとは別のコンピュータ上に構築されていても良い。
【００７１】
［物理構成］
ここで、本実施の形態におけるプログラムを実行することによって、仮説検証装置１０を実現するコンピュータについて図７を用いて説明する。図７は、本発明の実施の形態における仮説検証装置を実現するコンピュータの一例を示すブロック図である。
【００７２】
図7に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００７３】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００７４】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【００７５】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００７６】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（FlexibleDisk）等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact DiskReadOnly Memory）などの光学記録媒体が挙げられる。
【００７７】
なお、本実施の形態における仮説検証装置１０は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、仮説検証装置１０は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【実施例】
【００７８】
次に、本発明の仮説検証装置１０の実施例について図８〜図１１を用いて説明する。図８〜図１１は、本発明の実施例における仮説の導出過程を示す図であり、各図は一連の主な導出過程を示している。また、以下においては、仮説検証装置１０が、サイバー攻撃の証拠を発掘するためのデータ解析に用いられた場合を例として説明する。また、以降においては、適宜図１〜図６を参照する。【００７９】
図８に示すように、観測データとして、IDS（IntrusionDetection System）又はSIEM（Security Information and EventManagement）のツールで異常と判定された通信パケットデータがpacket(pac2208)という論理式で入力されたとする。【００８０】
packet(pac2208)は、述語名がpacketの論理式であり、パラメータが１つ（DATA）の論理式packet(DATA)に対して、pac2208という識別名の通信パケットデータがその唯一のパラメータの値として代入されて得られている。【００８１】
この観測データが入力されると、仮説検証装置１０においては、図２に示した入力受付部１３が当該観測データの入力を受け付ける。これにより、帰結設定部１４は、帰結格納部１５に照合して、当該観測データに対してありうる帰結の取得を試みる。帰結格納部１５は、図３に示したように、帰結を表す論理式と、その帰結に到達しうる観測データを表す１つ以上の論理式とを対応付け、論理式の組を格納している。【００８２】
図８の例では、ありうる帰結の１つとしてmalware_found(NAME)が、取得されている。malware_found(NAME)は、ある観測データから、NAMEというパラメータの値で表されるマルウェアが見つかったことを表す論理式である。【００８３】
仮説生成部１１は、初期の観測データであるpacket(pac2208)と、帰結を示す論理式であるalware_found(NAME)と、推論知識格納部１６が格納する推論知識（図４参照）とを用いて、仮説推論を実行する。【００８４】
その結果、仮説生成部１１は、例えば、図８に示したグラフ全体で表される仮説を生成する。図８の例では、packet(pac2208)と、malware_found(NAME)とのそれぞれに対して、これらを結びつける推論知識ベース上のルール（推論知識）が適用された結果となっている。【００８５】
具体的には、仮説生成部１１は、図４に示した推論知識のうち、帰結となるmalware_found(NAME)に結び付く下記の３つの推論知識を、上から順に適用する。
file(FILE, “executable”)^known_malware(FILE,NAME)→malware_found(NAME)、
has_file_(DATA,FILE)→file(FILE,“executable”)、
packet(DATA)→has_file(DATA,FILE)【００８６】
次いで、仮説生成部１１は、上記最後のルールの一部である論理式packet(DATA)のパラメータDATAに、観測データpacket(pac2208)のパラメータの値「pac2208」を代入する。これにより、ルール「packet(DATA)→has_file(DATA, FILE)」は、「packet(pac2208)->has_file(pac2208, FILE)」となる。また、同じルール中の「has_file(DATA,FILE)」に含まれるパラメータDATAの値もpac2208となる。【００８７】
なお、上記のルールにおいて、「→」はその左側の論理式が成立すれば右側の論理式が成立する可能性があること、又は右側の論理式が成立した時、左側の論理式が成立していることが原因となりうること、を表している。「^」は、その左右の論理式が共に成立することを要求するＡＮＤ条件を表す論理演算子である。【００８８】
仮説生成部１１によって図８に示す仮説が導出されると、仮説検証部１２は、データ解析部１７を用いて当該仮説の検証を実行する。【００８９】
データ解析部１７は、論理式の述語名と解析ツールの識別情報との対を登録し、述語名及び入力されたパラメータの値の特徴（例えば、ファイルの拡張子）に基づき、解析ツールデータベース（図示せず）から、解析ツールを検索する。解析ツールデータベースは、１つ以上の解析ツールを登録している。また、データ解析部１７は、検索した解析ツールを実行する機能も備えている。【００９０】
仮説検証部１２は、仮説を構成する論理式のうち、パラメータの一部のみが値を持つ論理式（第１のパラメータのみが値を有する論理式）を検出する。但し、検出の際に、推論知識格納部１６に格納された時点で、予め値を持つパラメータは、値を持たないパラメータとして扱うこととする。【００９１】
例えば、図４および図８において、「file(FILE,“executable”)」には、値を持たないパラメータFILEと、値“executable”を持つパラメータとがあるが、これは「パラメータの一部が値を持つ論理式」としては検出されないものとする。その仮説における区別は、パラメータの値がダブルクォーテーションで囲まれているものは、値を持つパラメータとして数えないこととし、観測データから得た「pac2208」のような値には、ダブルクォーテーションを付けないとすることで実現できる。【００９２】
仮説検証部１２は、パラメータの一部のみが値を持つ論理式について、データ解析部１７を用いて、値を持たないパラメータ（第２のパラメータ）の値の取得を試みる。図８の例では、パラメータの一部のみが値を持つ論理式は「has_file(pac2208,FILE)」のみである。よって、データ解析部１７は、その述語名has_fileと対になる解析ツールの識別情報（例えば解析ツールの実行ファイルが置かれたファイルパス）とを、解析ツールデータベースから取得する。【００９３】
ここで、論理式has_file(DATA,FILE)は、通信パケットデータDATAの中にファイルFILEが含まれていることを表す論理式であり、この論理式と対になる解析ツールは、DATAの値であるデータからファイルを抽出するソフトウェアであるとする。この場合、データ解析部１７は、解析ツールによってpac2208からファイルを抽出する。仮説検証部１２は、has_file(pac2208, FILE)において、抽出したファイルの識別情報を、パラメータFILEの値として代入する。【００９４】
例えば、has_file(DATA,FILE)と対になる解析ツールとして、解析ツールデータベースには、オープンソースのパケット解析ツールwireshark（https://www.wireshark.org/）の実行可能なファイルパスが登録されているとする。この場合、データ解析部１７は、pac2208のデータをwiresharkに入力して、このパケット解説ツールを実行する。これにより、pac2208内にファイルがあれば、そのファイルが抽出される。【００９５】
例えば、仮説検証部１２は、pac2208のデータからfoo.rarというファイルを抽出したとすると、抽出したファイルのファイル名を、識別情報として、has_file(pac2208,FILE)のパラメータFILEに代入する。これにより、has_file(pac2208, foo.rar)が得られる。【００９６】
続いて、仮説生成部１１は、得られたhas_file(pac2208,foo.rar)を、追加の観測データとして、再度仮説を生成する。これにより、図９に示すように、仮説が更新される。具体的には、図８におけるfile(FILE, “executable”)において、パラメータFILEに、has_file(pac2208, foo.rar)に対応するパラメータの値foo.rarが代入され、図９ではfile(foo.rar, “executable”)となっている。【００９７】
但し、図９に示すfile(foo.rar,“executable”)は、推論知識格納部１６上では、予め与えられた値 “executable”が値を持つパラメータとしては数えられない。このため、仮説検証部１２は、このパラメータの実際の値を、上述のhas_file(pac2208,FILE)と同様に、データ解析部１７を用いて取得する（例えばfoo.rarを引数としてlinuxのfileコマンドを実行することでファイルタイプを確認可能）。【００９８】
結果、file(foo.rar,“executable”)の第２のパラメータの値としてarchiveが得られるので、仮説生成部１１は、これを代入したfile(foo.rar, archive)を追加の観測データとして、再び仮説を生成する。但し、file(foo.rar, archive)は、file(foo.rar, “executable”)と矛盾するため、file(foo.rar, “executable”)を含む図８の仮説は棄却される。その後、図４に示した推論知識を用いて、図１０に示す別の新たな仮説が生成される。【００９９】
図１０に示された仮説では、推論知識格納部１６に格納されている以下のルールが適用される。
has_file(DATA,FILE)→file(FILE,“archive”)
file(FILE, “archive”)→unpack(FILE,FILE2)
unpack(FILE,FILE2)→file(FILE2, “executable”)【０１００】
上述のルールのうち、前者２つのルール中の論理式has_file(DATA, FILE)とfile(FILE, “archive”)とは、それぞれ観測データhas_file(pac2208, foo.rar)、又はfile(foo.rar,archive)で置き換えられる。【０１０１】
また、推論知識格納部１６が推論知識として格納している論理式known_malware(FILE, NAME)の第１のパラメータFILEは、図１０においては、対となる論理式file(FILE, FILE2)の第２のパラメータFILE2に対応するため、known_malware(FILE2,NAME)となっている。これに伴い、unpack(FILE, FILE2)の第１のパラメータにもfoo.rarが代入されunpack(foo.rar, FILE2)となっている。【０１０２】
このunpack(foo.rar,FILE2)に対して、これまでと同様にデータ解析部１７で対応する解析ツール（例えばhttp://www.rarlab.com/で公開されている適切なバージョンのrar）を用いて、foo.rarの解析（この場合はアーカイブファイルの解凍）が実行される。これにより、第２のパラメータとして、例えば、foo.exeが得られたとする。【０１０３】
この場合、unpack(foo.rar,FILE2)の第２のパラメータFILE2の値がfoo.exeとなったunpack(foo.rar, foo.exe)が新たな追加の観測データとして得られる。よって、仮説生成部１１が、新たな観測データを用いて、再度仮説を生成する。これにより、図１０におけるunpack(foo.rar, FILE2)、file(FILE2, “executable”)、及びknown_malware(FILE2, NAME)が、それぞれunpack(foo.rar, foo.exe)、file(foo.exe, “executable”)、known_malware(foo.exe, NAME)に置き換えられた仮説が得られる。【０１０４】
その後、仮説検証部１２は、file(foo.exe,“executable”)について、データ解析部１７に、foo.exeのファイルタイプを確認させ、executableとの結果を得ると、file(foo.exe, “executable”)と矛盾しない結果として、file(foo.exe,executable)という追加の観測データを取得する。【０１０５】
また、仮説検証部１２は、known_malware(foo.exe,NAME)についても、データ解析部１７に、foo.exeが既知のマルウェアかどうかを確認する解析ツール（例えばWebサービスVirusTotal PublicAPIを利用。https://www.virustotal.com/ja/documentation/public-api/）を実行させて、第２のパラメータを取得する。【０１０６】
その結果、仮説検証部１２は、mal113という既知のマルウェアの名前を取得し、これをNAMEの値とした追加の観測データknown_malware(foo.exe, mal113)も取得する。【０１０７】
続いて、仮説生成部１１は、file(foo.exe,executable)とknown_malware(foo.exe,mal113)とを追加の観測データとして、再び仮説の生成を実行する。この結果、推論知識格納部１６に格納されているルール「file(FILE, “executable”)^known_malware(FILE,NAME)→malware_found(NAME)」によって、帰結を表す論理式malware_found(NAME)のパラメータNAMEにmal113が代入される。これにより、新たな観測データmalware_found(mal113)が得られる。【０１０８】
この結果、図１１に示すように、仮説を構成する全ての論理式が観測データ（検証された事実）で構成されている、証明済み仮説が得られる。また、図１１に示された証明済み仮説に対しては、これ以上適用可能な解析ツールが無いため、仮説検証部１２は、この仮説を最終的な仮説として出力する。【０１０９】
以上のように、本実施例では、サイバーセキュリティの分野で行なわれているデータ解析を例に説明したが、本発明の用途はこれに限定されるものではない。本発明は、各種のセンサ、又は各種の報告から得られるデータを観測データとした、実世界の事故又は犯罪に関する証拠の発掘、何らかのシステム障害の原因分析、等にも同様に適用可能である。【０１１０】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１５）によって表現することができるが、以下の記載に限定されるものではない。【０１１１】
（付記１）
１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、仮説生成部と、
前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、仮説検証部と、
を備え、
前記仮説生成部は、前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、
ことを特徴とする仮説検証装置。【０１１２】
（付記２）
前記観測データが、論理式の形式を持つデータであり、
当該仮説検証装置は、複数の論理式それぞれに、当該論理式の名前と、当該論理式に含まれるパラメータの値を抽出可能な解析ツールとを関連付けて登録し、論理式の名前及び論理式に含まれるデータが入力されると、入力に応じて、前記解析ツールを実行する、データ解析部を更に備え、
前記仮説検証部は、前記データ解析部に、前記観測データ及び論理式の名前、又は前記第１のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第２のパラメータの値の取得を実行する、
付記１に記載の仮説検証装置。【０１１３】
（付記３）
当該仮説検証装置が、
前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、帰結設定部を更に備えている、
付記２に記載の仮説検証装置。【０１１４】
（付記４）
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
（ｂ）前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｃ）前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を有することを特徴とする仮説検証方法。【０１１５】
（付記５）
前記観測データが、論理式の形式を持つデータであり、
前記（ｂ）のステップにおいて、
論理式の名前と関連付けて登録され、且つ、当該論理式に含まれるパラメータの値を抽出可能な解析ツールを用い、前記解析ツールに、前記観測データ及び論理式の名前、又は前記第１のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第２のパラメータの値の取得を実行する、
付記４に記載の仮説検証方法。【０１１６】
（付記６）
（ｄ）前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、ステップを更に有する、
付記５に記載の仮説検証方法。【０１１７】
（付記７）
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
（ｂ）前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｃ）前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。【０１１８】
（付記８）
前記観測データが、論理式の形式を持つデータであり、
前記（ｂ）のステップにおいて、
論理式の名前と関連付けて登録され、且つ、当該論理式に含まれるパラメータの値を抽出可能な解析ツールを用い、前記解析ツールに、前記観測データ及び論理式の名前、又は前記第１のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第２のパラメータの値の取得を実行する、
請求項７に記載のコンピュータ読み取り可能な記録媒体。【０１１９】
（付記９）
前記プログラムが、前記コンピュータに、
（ｄ）前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、ステップを更に実行させる命令を更に含む、
付記８に記載のコンピュータ読み取り可能な記録媒体。【０１２０】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【０１２１】
以上のように本発明によれば、仮説を検証でき、検証結果に基づいて、仮説を修正することが可能となる。本発明は、事故、犯罪、サイバー攻撃などの状況または原因を明らかにする作業の効率化に有用である。同様に、本発明は、災害及びシステム障害の原因分析と対策検討にも有用である。
【符号の説明】
【０１２２】
１０  仮説検証装置
１１  仮説生成部
１２  仮説検証部
１３  入力受付部
１４  帰結設定部
１５  帰結格納部
１６  推論知識格納部
１７  データ解析部
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2019064600.tif 000003
【図２】
2019064600.tif 000004
【図３】
2019064600.tif 000005
【図４】
2019064600.tif 000006
【図５】
2019064600.tif 000007
【図６】
2019064600.tif 000008
【図７】
2019064600.tif 000009
【図８】
2019064600.tif 000010
【図９】
2019064600.tif 000011
【図１０】
2019064600.tif 000012
【図１１】
2019064600.tif 000013
【手続補正書】
【提出日】令和2年3月5日(2020.3.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、仮説生成部と、
前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、仮説検証部と、
を備え、
前記仮説生成部は、前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、
ことを特徴とする仮説検証装置。
【請求項２】
前記観測データが、論理式の形式を持つデータであり、
当該仮説検証装置は、複数の論理式それぞれに、当該論理式の名前と、当該論理式に含まれるパラメータの値を抽出可能な解析ツールとを関連付けて登録し、論理式の名前及び論理式に含まれるデータが入力されると、入力に応じて、前記解析ツールを実行する、データ解析部を更に備え、
前記仮説検証部は、前記データ解析部に、前記観測データ及び論理式の名前、又は前記第１のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第２のパラメータの値の取得を実行する、
請求項１に記載の仮説検証装置。
【請求項３】
当該仮説検証装置が、
前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、帰結設定部を更に備えている、
請求項２に記載の仮説検証装置。
【請求項４】
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
（ｂ）前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｃ）前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を有することを特徴とする仮説検証方法。
【請求項５】
前記観測データが、論理式の形式を持つデータであり、
前記（ｂ）のステップにおいて、
論理式の名前と関連付けて登録され、且つ、当該論理式に含まれるパラメータの値を抽出可能な解析ツールを用い、前記解析ツールに、前記観測データ及び論理式の名前、又は前記第１のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第２のパラメータの値の取得を実行する、
請求項４に記載の仮説検証方法。
【請求項６】
（ｄ）前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、ステップを更に有する、
請求項５に記載の仮説検証方法。
【請求項７】
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
（ｂ）前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｃ）前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を実行させる、プログラム。
【請求項８】
前記観測データが、論理式の形式を持つデータであり、
前記（ｂ）のステップにおいて、
論理式の名前と関連付けて登録され、且つ、当該論理式に含まれるパラメータの値を抽出可能な解析ツールを用い、前記解析ツールに、前記観測データ及び論理式の名前、又は前記第１のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第２のパラメータの値の取得を実行する、
請求項７に記載のプログラム。
【請求項９】
前記コンピュータに、
（ｄ）前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、ステップを更に実行させる、
請求項８に記載のプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本発明の目的は、上記問題を解消し、仮説を検証し、検証結果に基づいた仮説の修正を可能にし得る、仮説検証装置、仮説検証方法、およびプログラムを提供することにある。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
（ｂ）前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｃ）前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を実行させる、
ことを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
一方、仮説検証部１２によって対象論理式の真偽判定が行われた場合は、仮説生成部１１は、真偽判定の結果を、判定対象となった論理式に反映する。例えば、真であれば、判定対象となった論理式に対して何もせず、偽であれば、判定対象となった論理式の予め値を持つパラメータに解析ツールの実行によって得られた値を代入し、値が代入された論理式を新たな論理式とする。または、仮説生成部１１は、偽と判定された論理式に否定演算子を付与しても良い。具体的には、否定演算子の付与は、例えばfile(foo.rar, “executable”)の冒頭に“！”を付与して、「！file(foo.rar, “executable”)」を観測データとする。そして、仮説生成部１１は、真偽判定の結果が反映された論理式を観測データに追加し、追加した観測データから、仮説を再度導出する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００８３
【補正方法】変更
【補正の内容】
【００８３】
仮説生成部１１は、初期の観測データであるpacket(pac2208)と、帰結を示す論理式であるmalware_found(NAME)と、推論知識格納部１６が格納する推論知識（図４参照）とを用いて、仮説推論を実行する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００９４
【補正方法】変更
【補正の内容】
【００９４】
例えば、has_file(DATA,FILE)と対になる解析ツールとして、解析ツールデータベースには、オープンソースのパケット解析ツールwireshark（https://www.wireshark.org/）の実行可能なファイルパスが登録されているとする。この場合、データ解析部１７は、pac2208のデータをwiresharkに入力して、このパケット解析ツールを実行する。これにより、pac2208内にファイルがあれば、そのファイルが抽出される。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１１７
【補正方法】変更
【補正の内容】
【０１１７】
（付記７）
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式で構成された仮説を導出する、ステップと、
（ｂ）前記仮説を構成する前記論理式の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｃ）前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説を導出する、ステップと、
を実行させる、プログラム。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１１８
【補正方法】変更
【補正の内容】
【０１１８】
（付記８）
前記観測データが、論理式の形式を持つデータであり、
前記（ｂ）のステップにおいて、
論理式の名前と関連付けて登録され、且つ、当該論理式に含まれるパラメータの値を抽出可能な解析ツールを用い、前記解析ツールに、前記観測データ及び論理式の名前、又は前記第１のパラメータの値及び論理式の名前を入力することによって、前記真偽の判定、又は前記第２のパラメータの値の取得を実行する、
請求項７に記載のプログラム。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１１９
【補正方法】変更
【補正の内容】
【０１１９】
（付記９）
前記コンピュータに、
（ｄ）前記観測データを、論理式毎に予め帰結が登録されたデータベースに照合して、前記観測データに対応する帰結を設定する、ステップを更に実行させる、
付記８に記載のプログラム。
【国際調査報告】
2019064600.tif 000014
2019064600.tif 000015