(57)【要約】【課題】イベント・シーケンス解析システムにおいて、記録の集合から情報を読み出すために用いられる検索クエリを確認するためのコンピュータ実装の方法を提供する。【解決手段】本方法は、複数の述語と、各々が該複数の述語に関連付けられた１つ以上の制約とを含む検索クエリを受信するステップを含み、各述語は、肯定的または否定的であるように規定され、複数の術語は、１つ以上の制約と合わさって論理グラフを形成する。また、本方法は、このグラフから、複数の述語の中の肯定的であるように規定された１つ以上の述語を含むサブグラフを生成するステップを含む。本方法は、このサブグラフが複数の構成要素を有するかどうかを判断するステップと、サブグラフが複数の構成要素を有すると判断されるのに応じて、当該検索クエリを無効にするステップとをさらに含む。【選択図】図４
2020522788.tif 000002
【特許請求の範囲】
【請求項１】
記録の集合から情報を読み出すために用いられる検索クエリを確認するためのコンピュータ実装の方法であって、前記方法は、
複数の述語と、各々が複数の述語に関連付けられた１つ以上の制約とを含む検索クエリ受信するステップであって、各述語は肯定的または否定的であるように規定され、前記複数の述語が前記１つ以上の制約と合わさって論理グラフを形成する、前記受信するステップと、
前記グラフから、前記検索クエリ中の前記複数の前記述語のうち肯定的であるように規定された１つ以上の述語を含むサブグラフを生成するステップと、
前記サブグラフが複数の構成要素を有すると判断されるのに応じて、前記検索クエリを無効にするステップと、
を含む、方法。
【請求項２】
前記方法が、
前記サブグラフが複数の構成要素を有すると判断されるのに応じて、前記サブグラフ中の異なる構成要素に属する述語の対の間に新規の制約を加えることによって代替クエリをさらに設けるステップであって、前記述語の対は、前記グラフ中の否定的であるように規定された１つ以上の述語を介して相互の連結を有する、前記さらに設けるステップ、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記方法が、
否定的であるように規定された前記１つ以上の述語を介した前記述語の対の間の２つ以上の制約から前記新規の制約の内容を導出するステップ、
をさらに含む、請求項２に記載の方法。
【請求項４】
前記導出するステップが、
前記新規の制約の前記内容として、前記述語の対の間の前記２つ以上の制約の組み合わせの必要条件中の最強の制約を計算するステップ、
を含む、請求項３に記載の方法。
【請求項５】
前記２つ以上の制約が、前記２つ以上の制約に関連付けられた前記述語の対の間に時間ギャップまたは距離の間隔を含み、前記導出するステップが、
前記述語の対の間の前記２つ以上の制約を表す部分構造体を生成するステップと、
前記部分構造体中に直列に配置された制約の第一対を見出すステップと、
前記部分構造体中の前記制約の第一対を第一代替間隔を有する第一代替制約に置き換えるステップであって、前記第一代替間隔は、前記制約の第一対の開始点の和で始まり、前記制約の第一対の終了点の和で終わる、前記置き換えるステップと、
得られた前記部分構造体から前記新規の制約の前記内容を計算するステップと、
を含む、請求項３に記載の方法。
【請求項６】
前記２つ以上の制約が、前記２つ以上の制約に関連付けられた前記述語の対の間の時間ギャップまたは距離の間隔を含み、前記導出するステップが、
前記述語の対の間の前記２つ以上の制約を表す部分構造体を生成するステップと、
前記部分構造体中に並列に配置された制約の第二対を見出すステップと、
前記部分構造体中の前記制約の第二対を第二代替間隔を有する第二代替制約に置き換えるステップであって、前記第二代替間隔は、前記制約の第二対の開始点中の最大で始まり、前記制約の第二対の終了点中の最小で終わる、前記置き換えるステップと、
得られた前記部分構造体から前記新規の制約の前記内容を計算するステップと、
を含む、請求項３に記載の方法。
【請求項７】
前記導出するステップが、
前記述語の対の間の前記２つ以上の制約を表す部分構造体を生成するステップと、
直列に配置された制約の第一対を見出すステップと、
前記制約の第一対を、前記制約の第一対中の前記２つ以上の制約を満たす中間の述語が存在するように、第一代替制約に置き換えるステップと、
並列に配置された制約の第二対を見出すステップと、
前記制約の第二対を、第二代替制約が前記制約の第二対中の前記２つ以上の制約の論理積となるように、前記第二代替制約に置き換えるステップと、
得られた前記部分構造体から前記新規の制約の前記内容を計算するステップと、
を含む、請求項３に記載の方法。
【請求項８】
前記代替クエリを設けるステップが、
前記新規の制約を用いて前記サブグラフを更新するステップと、
前記サブグラフが連結されていると判断されるのに応じて、前記新規の制約を用いて前記検索クエリから修正された前記代替クエリを提案するステップと、
前記サブグラフが連結されていないと判断されるのに応じて、前記サブグラフが連結されるまで、前記加えるステップおよび前記更新するステップを繰り返して行うステップと、
を含む、請求項２に記載の方法。
【請求項９】
前記方法が、
前記グラフが連結されていないと判断されるのに応じ、前記検索クエリを無効にし、前記代替クエリを設けることを断念するステップ、または
前記グラフが連結されていると判断され、前記サブグラフが単一の構成要素を有すると判断されるのに応じ、前記検索クエリが有効であると判断するステップ、
をさらに含む、請求項２に記載の方法。
【請求項１０】
前記検索クエリが、前記検索クエリをその上で編集可能なグラフィカル・ユーザ・インターフェースを介して受信され、前記代替クエリが前記グラフィカル・ユーザ・インターフェース中にビジュアル・キューによって提示され、前記ビジュアル・キューが前記新規の制約を加えるために推奨される箇所を示す、請求項１に記載の方法。
【請求項１１】
前記グラフおよび前記サブグラフ中で、各述語はノードによって表され、各制約はエッジによって表され、否定的であるように規定され各述語は述語の否認であり、各述語は前記集合からのリストを読み出すために用いられ、各制約は、各制約に関連付けられた述語に対するそれぞれのリストから前記制約を満たすそれぞれのエレメントの対を抽出するために用いられる、請求項１に記載の方法。
【請求項１２】
前記方法が、
前記代替検索クエリ中の各述語に対し、前記記録の前記集合からリストを読み出すステップと、
前記代替検索クエリ中の同型の述語の対の間の各制約に対し、前記同型の前記述語に対し読み出されたそれぞれのリストがリンクされるように、各制約に関連付けられた前記述語に対する前記それぞれのリストから各制約を満たすそれぞれのエレメントの対を抽出するするステップと、
前記代替検索クエリ中の肯定的であるように規定された第一述語と否定的であるように規定された第二述語との対の間の各制約に対し、前記第一述語に対応するリストから、各制約を満たすエレメントを除去するステップと、
をさらに含む、請求項２に記載の方法。
【請求項１３】
記録の集合から情報を読み出すために用いられる検索クエリを確認するためのコンピュータ実装の方法であって、前記方法は、
複数の述語と、各々が複数の述語に関連付けられた１つ以上の制約とを含む検索クエリ受信するステップであって、各述語は肯定的または否定的であるように規定され、前記複数の述語が前記１つ以上の制約と合わさって論理グラフを形成する、前記受信するステップと、
前記グラフから、前記検索クエリ中の前記複数の述語のうち肯定的であるように規定された１つ以上の述語を含むサブグラフを生成するステップと、
前記対中の前記１つ以上の述語が前記サブグラフ中の相異なる構成要素に属するように、前記サブグラフ中の述語の対を見出すステップと、
代替クエリを設けるために、前記述語の対の間に新規の制約を加えるステップであって、前記新規の制約が、前記グラフ中の前記述語の対の間の２つ以上の制約から導出された内容を有する、前記加えるステップと、
を含む、方法。
【請求項１４】
前記方法が、
前記グラフが連結されていないと判断されるのに応じ、前記検索クエリを無効にし、前記代替クエリを設けることを断念するステップ、
をさらに含む、請求項１３に記載の方法。
【請求項１５】
前記新規の制約の前記内容が、前記２つ以上の制約の組み合わせの必要条件中の最強の制約である、
請求項１３に記載の方法。
【請求項１６】
プログラム命令を実行することによって、記録の集合から情報を読み出すために用いられる検索クエリを確認するためのコンピュータ・システムであって、前記コンピュータ・システムは、
前記プログラム命令を実体的に格納するメモリと、
前記プログラム命令を実行するため、前記メモリと通信しているプロセッサと、
を含み、前記プログラム命令が、
複数の述語と、各々が複数の述語に関連付けられた１つ以上の制約とを含む検索クエリ受信し、各述語は肯定的または否定的であるように規定され、前記複数の述語が前記１つ以上の制約と合わさって論理グラフを形成し、
前記グラフから、前記検索クエリ中の前記複数の前記述語のうち肯定的であるように規定された１つ以上の述語を含むサブグラフを生成し、および
前記サブグラフが複数の構成要素を有すると判断されるのに応じて、前記検索クエリを無効にする、
ための命令を含む、コンピュータ・システム。
【請求項１７】
前記コンピュータ・システムが、
前記サブグラフが複数の構成要素を有すると判断されるのに応じて、前記サブグラフ中の異なる構成要素に属する述語の対の間に新規の制約を加えることによって代替クエリを設け、前記述語の対は、前記グラフ中の否定的であるように規定された１つ以上の述語を介して相互の連結を有する、
ようにさらに構成される、請求項１６に記載のコンピュータ・システム。
【請求項１８】
前記コンピュータ・システムが、
否定的であるように規定された前記１つ以上の述語を介した前記述語の対の間の２つ以上の制約から前記新規の制約の内容を導出する、
ようにさらに構成される、請求項１７に記載のコンピュータ・システム。
【請求項１９】
前記コンピュータ・システムが、
前記新規の制約の前記内容として、前記述語の対の間の２つ以上の制約の組み合わせの必要条件中の最強の制約を計算する、
ようにさらに構成される、請求項１８に記載のコンピュータ・システム。
【請求項２０】
前記２つ以上の制約が、前記２つ以上の制約に関連付けられた述語の間の時間ギャップまたは距離の間隔を含み、前記コンピュータ・システムが、
前記述語の対の間の２つ以上の制約を表す部分構造体を生成し、
前記部分構造体中に直列に配置された制約の第一対を見出し、
前記部分構造体中の前記制約の第一対を第一代替間隔を有する第一代替制約に置き換え、前記第一代替間隔は、前記制約の第一対の開始点の和で始まり、前記制約の第一対の終了点の和で終わり、および
得られた前記部分構造体から前記新規の制約の前記内容を計算する、
ようにさらに構成される、請求項１８に記載のコンピュータ・システム。
【請求項２１】
前記２つ以上の制約が、前記２つ以上の制約に関連付けられた述語の間の時間ギャップまたは距離の間隔を含み、前記コンピュータ・システムが、
前記述語の対の間の前記２つ以上の制約を表す部分構造体を生成し、
前記部分構造体中に並列に配置された制約の第二対を見出し、
前記部分構造体中の前記制約の第二対を第二代替間隔を有する第二代替制約に置き換え、前記第二代替間隔は、前記制約の第二対の開始点中の最大で始まり、前記制約の第二対の終了点中の最小で終わり、および
得られた前記部分構造体から前記新規の制約の前記内容を計算する、
ようにさらに構成される、請求項１８に記載のコンピュータ・システム。
【請求項２２】
記録の集合から情報を読み出すために用いられる検索クエリを確認するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含み、前記プログラム命令は、コンピュータに、
複数の述語と、各々が複数の述語に関連付けられた１つ以上の制約とを含む検索クエリ受信するステップであって、各述語は肯定的または否定的であるように規定され、前記複数の前記述語が前記１つ以上の制約と合わさって論理グラフを形成する、前記受信するステップと、
前記グラフから、前記検索クエリ中の前記複数の述語のうち肯定的であるように規定された１つ以上の述語を含むサブグラフを生成するステップと、
前記サブグラフが複数の構成要素を有すると判断されるのに応じて、前記検索クエリを無効にするステップと、
を含む方法を行わせるため、前記コンピュータによって実行される、
コンピュータ・プログラム製品。
【請求項２３】
前記方法が、
前記サブグラフが複数の構成要素を有すると判断されるのに応じて、前記サブグラフ中の異なる構成要素に属する述語の対の間に新規の制約を加えることによって代替クエリをさらに設けるステップであって、前記述語の対は、前記グラフ中の否定的であるように規定された１つ以上の述語を介して相互の連結を有する、前記さらに設けるステップと、
否定的であるように規定された前記１つ以上の述語を介した前記述語の対の間の２つ以上の制約から前記新規の制約の内容を導出するステップと、
をさらに含む、請求項２２に記載のコンピュータ・プログラム製品。
【請求項２４】
記録の集合から情報を読み出すために用いられる検索クエリをその上で編集可能なユーザ・インターフェースを提供するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読のストレージ媒体を含み、前記プログラム命令は、コンピュータに、
グラフの形で検索クエリがグラフィカルにその上で表現される前記ユーザ・インターフェースの画面を提供するステップであって、前記検索クエリ中の各述語は前記グラフ中にノードで表され、前記検索クエリ中の複数の述語に関連付けられた各制約は前記グラフ中にエッジで表され、各述語は、前記画面上での操作を介して肯定的または否定的であるように規定される、前記提供するステップと、
前記検索クエリの中の肯定的であるように規定された１つ以上の述語を含むサブグラフが複数の構成要素を有する場合、現在表示されている前記検索クエリが無効であることを通知するステップと
を含む方法を行わせるため、前記コンピュータによって実行可能である、
コンピュータ・プログラム製品。
【請求項２５】
前記方法が、
前記検索クエリが無効であることを通知するのに応じて、前記サブグラフ中の相異なる構成要素に属する述語の対の間への新規の制約の付加を視覚的に提案するステップであって、前記述語の対は、前記グラフ中の否定的であるように規定された１つ以上の述語を介して相互の連結を有する、前記提案するステップと、
前記画面上で前記新規の制約の内容を起案するステップであって、前記新規の制約の前記内容は、前記検索クエリ中の前記述語の対の間の２つ以上の制約の組み合わせの必要条件中の最強の制約である、前記起案するステップと、
をさらに含む、請求項２４に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にデータ解析に関し、さらに具体的には、データ解析システム中の記録の集合から情報を読み出すのに用いられる検索クエリをチェックするための技法に関する。
【背景技術】
【０００２】
多様な領域において日毎に刻々と大量のデータが記録されているので、記録の集合から有意義な情報を抽出するための技法を開発するために多大な努力がなされている。イベント・シーケンス解析は、イベント・シーケンス・データから有意義なパターンを読み出すための技術である。かかるイベント・シーケンス・データの例には、病院における臨床データ、ソーシャル・ネットワーキング・サービスにおけるメッセージ・データなどを含めることができよう。
【０００３】
イベント・シーケンス解析で使われる検索クエリは、１つ以上の述語を含むことができ、そのそれぞれは、キー・値の対のリストおよび２つの述語の間の制約を読み出すために用いられ、そのそれぞれは、２つの述語に対するリストから、何らかの時間的関係を有するエレメントの対を抽出するために使われる。
【０００４】
その複雑性のため、通常はグラフィカル・ユーザ・インターフェースが開発されており、ユーザは、その上でイベント・シーケンス・データから所望のパターンを直観的に抽出するための検索クエリを生成することができる。しかしながら、典型的なグラフィカル・ユーザ・インターフェースでは、クエリに対するユーザの操作の組み合わせが、そのユーザに期待外れの結果をもたらすような類のクエリを生じることがある。かかる実際上無益なクエリは、たとえそれが構文的には正しくても、無効と見なされる。すなわち、そのようなクエリは、ユーザの意図に関係のない何らかの結果を提供し得る。
【０００５】
検索クエリ生成のためのグラフィカル・ユーザ・インターフェースに関し、正規表現に基づくデータのシーケンスでクエリを生成するための視覚的なクエリ・インターフェースが開発されている（例えば、非特許文献１）。この論文では、取り組み易い仕方による、正規表現の全表現力を提示するタッチ・ベースのシステム、および結果可視のインタリーブ・クエリ仕様が提案されている。しかしながら、この論文も、前述した、結果として得られたクエリの無効性は論じていない。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Ｅ．Ｚｇｒａｇｇｅｎら著、シリーズ／クエリ「Ｖｉｓｕａｌ  Ｒｅｇｕｌａｒ  Ｅｘｐｒｅｓｓｉｏｎｓ  ｆｏｒ  Ｑｕｅｒｙｉｎｇ  ａｎｄ  Ｅｘｐｌｏｒｉｎｇ  Ｅｖｅｎｔ  Ｓｅｑｕｅｎｃｅｓ」ＣＨＩ’１５、コンピューティング・システムにおけるヒューマン・ファクタについての第３３回年次大会の論文集、２０１５年、ｐ．２６８３〜２６９２。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
必要とされるのは、実際に検索クエリを発行することなく、ユーザの意図と整合しない結果を提供しないように検索クエリの有効性を確認できる、コンピュータ・システムおよびコンピュータ・プログラム製品に関連付けられたコンピュータ実装の方法である。
【課題を解決するための手段】
【０００８】
本発明の或る実施形態によれば、記録の集合から情報を読み出すために用いられる検索クエリを確認するためのコンピュータ実装の方法が提供される。本方法は、各々が肯定的または否定的であるように規定された複数の述語と、各々が複数の述語に関連付けられた１つ以上の制約とを含む検索クエリを受信するステップを含む。これら複数の述語は、１つ以上の制約と合わさって論理グラフを形成する。また、本方法は、このグラフから、検索クエリ中の複数の述語の中に肯定的であるように規定された１つ以上の述語を含むサブグラフを生成するステップを含む。本方法は、このサブグラフが複数の構成要素を有するかどうかを判断するステップと、サブグラフが複数の構成要素を有すると判断されるのに応じて、当該検索クエリを無効にするステップとをさらに含む。
【０００９】
本発明のこの実装形態の方法によれば、たとえ検索クエリが、一般に当該検索クエリの無効性に気付くのを難しくする、否定的であるように規定された述語を含んでいたとしても、検索クエリの有効性は、実際にその検索クエリを発行して記録の集合から得られる結果を待つことなく検証することが可能である。
【００１０】
或る好適な実施形態において、本方法は、サブグラフが複数の構成要素を有すると判断されるのに応じて、そのサブグラフ中の異なる構成要素に属し、グラフ中の、否定的であるように規定された１つ以上の述語を介して相互に連結を有する述語の対の間に新規の制約を加えることによって、代替クエリを設けるステップをさらに含む。これにより、ユーザは、当初の検索クエリに基づいて修正された、当初の検索クエリよりもユーザの意図により合致すると予期される結果を提供するような代替クエリをタイムリーに得ることができる。
【００１１】
他の好適な実施形態において、本方法は、否定的であるように規定された１つ以上の述語を介する述語の対、の間の２つ以上の制約から新規の制約の内容を導出するステップをさらに含む。これにより、ユーザは、新規の制約を加えられた述語の対の間の該２つ以上の制約により決まる新規の制約を備えた代替クエリを得ることができる。
【００１２】
さらなる他の好適な実施形態において、この導出するステップは、新規の制約の内容として、述語の対の間の２つ以上の制約の組み合わせの必要条件中の最強の制約を計算するステップを含む。これにより、ユーザは、述語の対の間の２つ以上の制約から得られる可能な制約の中で適切なものと予期される新規の制約を備えた代替クエリを得ることが可能である。
【００１３】
また、本明細書では、本発明の１つ以上の態様に関するコンピュータ・システムおよびコンピュータ・プログラム製品が説明され、請求される。
【００１４】
本発明の他の実施形態によれば、記録の集合から情報を読み出すために用いられる検索クエリを確認するためのコンピュータ実装の方法が提供される。本方法は、各々が肯定的または否定的であるように規定された複数の述語と、各々が複数の述語に関連付けられた１つ以上の制約とを含む検索クエリを受信するステップを含む。これら複数の術語は、１つ以上の制約と合わさって論理グラフを形成する。また、本方法は、このグラフから、検索クエリ中の複数の述語の中に肯定的であるように規定された１つ以上の述語を含むサブグラフを生成するステップを含む。本方法は、対の中の述語がサブグラフ中の相異なる構成要素に属するような、サブグラフ中の述語の対を見出すステップをさらに含む。本方法は、さらに、当該述語の対を見出すのに応じて、代替クエリを設けるために、述語の対の間に新規の制約を加えるステップをさらに含み、この新規の制約は、グラフ中の述語の対の間の２つ以上の制約から導出された内容を有する。
【００１５】
本発明の他の実施形態の方法によれば、たとえ検索クエリが、一般に当該検索クエリが否定的であるように規定された述語を含んでいたとしても、ユーザは、実際にその検索クエリを発行して記録の集合から得られる結果を待つことなく、当初の検索クエリよりもユーザの意図により合致すると予期される結果を提供するような代替クエリをタイムリーに得ることができる。
新規の制約は、新規の制約を加えられる述語の対の間の２つ以上の制約により決まる内容を有すればよい。
【００１６】
本発明の別の実施形態によれば、記録の集合から情報を読み出すために用いられる検索クエリをその上で編集可能なユーザ・インターフェースを提供するためのコンピュータ・プログラム製品が提供される。本コンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読のストレージ媒体を含み、これらプログラム命令は、コンピュータに以下の方法を実行させるため、コンピュータによって実行可能である。本方法は、検索クエリが画面上にグラフの形でグラフィカルに表現されるユーザ・インターフェースの画面を提供するステップを含む。検索クエリ中の各述語はノードによって表される。検索クエリ中の複数の述語に関連付けられた各制約はエッジによって表される。各述語は、画面上での操作を通して肯定的または否定的であるように規定される。また、本方法は、検索クエリの中の、肯定的であるように規定された１つ以上の述語を含むサブグラフが複数の構成要素を有する場合、現在表示されているその検索クエリが無効であることを通知するステップを含む。
【００１７】
本発明のこの実施形態のコンピュータ・プログラム製品によれば、ユーザは、たとえ検索クエリが否定的であるように規定された述語を含んでいても、当該検索クエリを発行して記録の集合から得られる実際の結果を待つことなくその検索クエリの有効性の通知を受けることが可能である。
【００１８】
さらなる特徴および利点が、本発明の諸技法を介して実現される。本明細書において、本発明の他の実施形態および態様が詳しく説明され、それらは請求される発明の一部と見なされる。
【００１９】
本発明と見なされる主題は、具体的に指摘され、本明細書に添付の特許請求の範囲で明確に請求されている。本発明の前述および他の特徴および利点は、添付の図面と併せて以下の詳細な説明によって明らかになろう。
【図面の簡単な説明】
【００２０】
【図１】本発明の例示的な実施形態による、イベント・シーケンス解析システムのブロック図を表す。
【図２】図２Ａは、本発明の例示的な実施形態による、イベント・シーケンス解析システム中で扱われるイベント・シーケンス・データのデータ構造を示す。図２Ｂは、イベント・シーケンス解析のための検索クエリ、およびイベント・シーケンス・データからの、検索クエリと合致するエレメントのリストを読み出すクエリ処理の簡単な例を表す。
【図３】図３Ａおよび図３Ｂは、イベント・シーケンス解析のための否定的述語を備えた検索クエリの例、およびイベント・シーケンス・データから検索クエリと合致したエレメントのリストを読み出すクエリ処理の例を示す。
【図４】本発明の例示的な実施形態による、イベント・シーケンス・データから情報を読み出すため用いられる検索クエリを確認するためのプロセスを表すフローチャートである。
【図５】本発明の例示的な実施形態による、代替検索クエリを設けるために検索クエリを修正するプロセスを表すフローチャートである。
【図６】図６Ａ、図６Ｂ、図６Ｃおよび図６Ｄは、本発明の例示的な実施形態による、検索クエリを修正する処理の一例を表す。
【図７】本発明の例示的な実施形態による、イベント・シーケンス解析のための代替の有効な検索クエリ、およびイベント・シーケンス・データからの、その代替の有効な検索クエリと合致するエレメントのリストを読み出すクエリ処理の一例を表す。
【図８】図８Ａ、図８Ｂおよび図８Ｃは、本発明の例示的な実施形態による、無効なクエリを生じる典型的なユーザの操作の概略図を、ユーザ・インターフェースの編集画面上に表示される検索クエリの一例と共に示す。
【図９】本発明の好適な実施形態による、イベント・シーケンス解析のための否定的述語を備えた複雑な検索クエリの一例を示す。
【図１０】本発明の好適な実施形態による、代替検索クエリを設けるための新規の制約の内容を導出するためのプロセスを表すフローチャートである。
【図１１】図１１Ａ、図１１Ｂ、図１１Ｃ、図１１Ｄおよび図１１Ｅは、本発明の好適な実施形態による、新規制約の内容を導出し、検索クエリを修正する仕方の一例を表す。
【図１２】本発明の１つ以上の実施形態によるコンピュータ・システムを表す。
【発明を実施するための形態】
【００２１】
以降に、具体的な諸実施形態を用いて本発明を説明することとし、以降に説明される諸実施形態は例としてだけ参照されていると理解すべきであり、本発明の範囲を限定することは意図されていない。
【００２２】
本発明による１つ以上の実施形態は、データ解析システムにおいて記録の集合から情報を読み出すのに用いられる検索クエリを確認するためのコンピュータ実装の方法、コンピュータ・システム、およびコンピュータ・プログラム製品を対象としている。
【００２３】
イベント・シーケンス解析は、記録の集合からインサイトを、とりわけイベント・シーケンス・データから有意義なパターンを抽出するための技法の１つである。一連の図１〜１１を参照すると、本発明の１つ以上の実施形態による、イベント・シーケンス解析のための検索クエリを確認するためのコンピュータ・システムおよび方法が示されている。
【００２４】
以降において、最初に一連の図１〜８を参照し、本発明の例示的な実施形態による、イベント・シーケンス解析のために用いられる検索クエリを確認するためのコンピュータ・システムおよび方法を説明することとし、これらにおいては、検索クエリの無効性を検出することができ、無効と判断された検索クエリは、代替検索クエリを設けるために修正することができる。次いで、一連の図９〜１１を参照し、本発明の好適な実施形態による、イベント・シーケンス解析のために用いられる検索クエリを確認するためのコンピュータ・システムおよび方法を説明することとし、これらにおいては、無効と判断されたもっと複雑な検索クエリを修正することが可能である。
【００２５】
図１を参照すると、本発明の例示的な実施形態による、イベント・シーケンス解析システム１００のブロック図が表されている。図１に示されるように、イベント・シーケンス解析システム１００は、インターフェース上で検索クエリがグラフ構造体の形でグラフィカルに編集可能なグラフィカル・ユーザ・インターフェースを提供するための、検索ユーザ・インターフェース１１０と、入力された検索クエリに従って、イベント・シーケンス・データから情報を読み出すための、イベント・シーケンス解析エンジン１２０と、イベント・シーケンス・データを格納するための、イベント集合データベース１３０と、イベント情報をイベント集合データベース１３０の中に記録するための、イベント記録システム１４０とを含むことができる。
【００２６】
イベント記録システム１４０は、１つ以上のイベント源からもたらされるイベント情報を収集し、収集されたイベント情報を記録としてイベント集合データベース１３０の中に記録することが可能である。かかるイベント源には、以下に限らないが、電子健康記録システム、ソーシャル・ネットワーキング・サービス、ウェアラブル・デバイス、センサ・ネットワークなど数多くを含めることができる。
【００２７】
イベント集合データベース１３０は、イベント・シーケンス・データを構成する記録の集合を、１つ以上のストレージ媒体またはデバイスに格納することが可能である。図２Ａを参照すると、イベント集合データベース１３０中に格納されたイベント・シーケンス・データのデータ構造が示されている。図２Ａに示された例は、或る病院で扱われている概略的な臨床データである。
【００２８】
図２Ａに示されるように、イベント・シーケンス・データは一連の記録を含み、その各々が、患者の識別子を保持するための識別子欄と、その患者に関するイベントの発生時間もしくは日付またはその両方を保持するための時間欄と、患者に関するイベントの内容を表すキー・値の対を保持するためのキー・値の対の欄とを含む。キー・値の対の欄に対するキーと対応値との対は、当該イベント・シーケンス・データがそこから取得されたドメインにより決まり得る。一例として臨床データを取れば、各キーは、「症状」、「投薬」または「回復」属性などの類であってよい。「症状」および「回復」属性に対する値には、例えば、「頭痛」、「胃痛」、「微熱」を含めることができよう。「投薬」属性に対する値は、例えば、「ロキソプロフェン」、「スクラルファート」、「イブプロフェン」を含めることができよう。
【００２９】
例示的な実施形態において、各記録は、キー・値の対、および各々が特定のキー・値の対を有する検索クエリ対象の記録を保持する。但し、他の実施形態では、各記録は、キー・値の対の代わりに単にラベルを保持してもよく、検索クエリは、各々が特定のラベルを有する記録を対象としてもよい。
【００３０】
また、イベント・シーケンス・データは臨床データに限定されない。ソーシャル・ネットワーキング・サービス中のメッセージ・データ、センサ・ネットワーク中のセンサ・データ等々を含む、任意の種類のイベント・シーケンス・データがイベント・シーケンス解析の対象となり得る。別の例として、ソーシャル・ネットワーキング・サービス中のメッセージ・データを取り上げると、各キーは「食物」または「形容詞」属性などの類であってよい。「食物」属性に対する値は、例えば、「クッキー」、「パンケーキ」を含むことができる。「形容詞」属性に対する値は、例えば、「おいしい」、「ジューシー」を含むことができよう。
【００３１】
図１に戻って参照すると、検索ユーザ・インターフェース１１０は、ユーザから検索クエリを受信し、イベント・シーケンス解析エンジン１２０に検索クエリを発行するように構成される。この検索クエリは、複数の述語および１つ以上の制約を含むことが可能である。各述語は、各述語によって指定される特定のキー・値の対を有するエレメントのリストを読み出すために使われる。各制約は述語の対に関連付けられ、各制約に関連付けられた述語に対するそれぞれのリストから、各制約を満たすそれぞれのエレメントの対を抽出するために使われる。各制約は、エレメントの対に対する相対的な条件であり、各制約に関連付けられた述語の間の時間ギャップの間隔（これは最小と最大との間の値の範囲を表す）を含み得る。しかして、各制約に関連付けられた述語のそれぞれのリストから、何らかの時間的関係を有するそれぞれのエレメントの対（例えば、５日以内に発生した、一イベントと他のイベントとの対）を抽出することができよう。
【００３２】
この例示的な実施形態において、各制約は、イベント・シーケンス・データが複数の源泉からもたらされる記録を含むので、イベントに関する対象を識別する識別子に対する条件（例えば、臨床データについては同じ患者ＩＤを有する、センサ・データについては同じセンサＩＤまたはセンサ・グループＩＤを有する、など）をさらに含む。但し、制約の内容は、前述の特定の例に限定されなくてよい。他の実施形態において、イベント・シーケンス・データが、単一の源泉だけからもたらされるデータを含んでいる場合、この識別子に対する条件は省略が可能である。例えば、ウェアラブル・デバイスを用いて取得された個人健康ログ・データは、そのウェアラブル・デバイスを着用している単一人からもたらされたイベント・データを含み得る。また、検索クエリの対象は、イベント・シーケンス・データに限定されなくてよい。他の実施形態では、任意の種類の記録の集合がデータ解析の対象となり得る。例えば、所在地（店舗、レストラン、ホテルなど）の位置情報も対象にできる。したがって、制約の内容も前述の例に限定されない。他の実施形態において、各制約は、述語の間の距離的間隔を含み得る。これら所在地の位置情報に対しては、制約は述語の間の地理的距離の間隔を含んでよい（例えば、１ｋｍ内に位置する店舗と駅との対）。
【００３３】
或る特定の実施形態において、検索ユーザ・インターフェース１１０は、ユーザ・インターフェースの編集画面を提供するように構成することができ、この画面上では、検索クエリがグラフの形でグラフィカルに表示され、編集可能であり、このグラフはエッジで連結されたノードから成る。このユーザ・インターフェースの編集画面上では、各述語はノードで表され、２つの述語に関連付けられた各制約は、これら２つの述語に対応する２つのノードに関連付けられたエッジで表される。また、検索ユーザ・インターフェース１１０は、編集画面上に生成された検索クエリを発行する要求を受信し、その検索クエリに対する検索結果をユーザ・インターフェースの画面上に表示するように構成されてよい。
【００３４】
イベント・シーケンス解析エンジン１２０は、検索ユーザ・インターフェース１１０から検索クエリを受信し、その検索クエリと合致する情報を読み出し、検索クエリに対する結果を検索ユーザ・インターフェース１１０に返すことができる。
【００３５】
図２Ｂを参照すると、イベント・シーケンス解析のための検索クエリ、およびイベント・シーケンス・データからの、検索クエリと合致するエレメントのリストを読み出すクエリ処理の簡単な例が表されている。
【００３６】
図２Ｂに示されるように、検索クエリ２００のこの例は、間に制約２０６（「０〜５日」）の付いた２つの述語２０２、２０４（「症状−頭痛」および「投薬−ロキソプロフェン」）を含む。なお、図２Ｂに示された例において、制約２０６は、これら２つの述語の間の時間ギャップの間隔に加えて、２つの述語の間で患者ＩＤが同一であるという黙示の条件を含む。この検索クエリ２００は、「頭痛を有し、５日以内にロキソプロフェンを処方された患者」といったステートメントを満たすエレメントの対のリストを読み出すために用いることができる。
【００３７】
この検索クエリ２００のクエリ処理は、
（ｉ）イベント・シーケンス・データから、第一述語２０２（「症状−頭痛」）に対するリスト２１２を読み出すステップと、
（ｉｉ）イベント・シーケンス・データから、第二述語２０４（「投薬−ロキソプロフェン」）に対するリスト２１４を読み出すステップと、
（ｉｉｉ）図２Ｂ中の矢印線で連結された点線のサークルの対で示されるように、リスト２１２中のエレメントと、リスト２１２中のそのエレメントから５日以内に行われた、リスト２１４中の対応するエレメントとの対を抽出するステップと、
を含んでよい。
【００３８】
この例示的な実施形態において、各述語は、肯定的に、すなわち、包含のためその述語に合致するエレメントのリストを読み出すように、または否定的に、すなわち、それを除外するように規定することができる。述語を肯定的にするか、または否定的にするかは、検索ユーザ・インターフェース１１０によって提供される編集画面上での操作を介して規定することができる。或る特定の実施形態において、各述語は、ＮＯＴ（否定）オプションを有し、これにより述語は肯定的または否定的に規定される。この述語のＮＯＴオプションが偽に設定されると、述語（ＮＯＴオプションなし）は肯定的に規定され、肯定的（または是認的）述語と言われる。これに反し、ＮＯＴオプションが真に設定されると、述語（ＮＯＴオプションあり）は否定的に規定され、否定的述語と言われ、その述語の否認を意味する。
【００３９】
前述のユーザ・インターフェースを用いることによって、ユーザは、イベント・シーケンス解析のための望ましい検索クエリを容易に生成することができる。しかしながら、（１）制約の付いた新規述語の付加、（２）述語の削除、（３）述語のＮＯＴオプションを真にセットするための設定など、ユーザの操作の或る種の組み合わせは、たとえそれが構文的には正しくても、ユーザに対して期待外れの結果をもたらすクエリの類を生成し得る。これらの実際上無用なクエリは、その検索クエリがユーザの意図と整合しない結果をもたらすという意味で「無効」と見なしてよい。特に、否定的術語の存在は、連結されたグラフ構造を有するクエリであってもそのクエリが否定的述語を含む場合は無効になり得るので、ユーザが当該検索クエリの無効性に気付くのを難しくする。
【００４０】
図３Ａおよび３Ｂを参照すると、イベント・シーケンス解析のための、否定的述語を備えた検索クエリの例、およびイベント・シーケンス・データから検索クエリと合致するエレメントのリストを読み出すクエリ処理の例が表されている。図３Ａは、有効な事例を表しており、図３Ｂは無効な事例を表している。
【００４１】
一般に、制約は処理の順序を有し、ＮＯＴオプションは、全ての制約が処理された後で処理されてよい。図３Ａに示されるように、検索クエリ２２０のこの例は、１つの肯定的述語２２２（図３Ａ中では「Ａ」で示され、ＮＯＴオプションなしのキー・値の対「症状−頭痛」を表している）、および制約２２６（「０〜５日」）の付いた１つの否定的述語２２４（図３Ａ中ではＮＯＴオプションありの「Ｂ」で示され、キー・値の対「投薬−ロキソプロフェン」）を表している）を含む。検索クエリ２２０は、「頭痛を有し、だが５日以内にロキソプロフェンを処方されなかった患者」といったステートメントを満たすエレメントの対のリストを読み出すために用いることができる。
【００４２】
この検索クエリ２２０のクエリ処理は、
（ｉ）イベント・シーケンス・データから、述語２２２（Ａ）に対するリスト２３２を読み出すステップと、
（ｉｉ）イベント・シーケンス・データから、述語２２４（Ｂ）に対するリスト２３４を読み出すステップと、
（ｉｉｉ）肯定的述語２２２（Ａ）への制約２２６に合致する、リスト２３４（Ｂ）中のゼロ個以上のエレメント２３６を特定するステップと、
（ｉｖ）１つ以上のそれぞれのエレメント２３６を有するリスト２３２（Ａ）から、リスト２３４（Ｂ）中の５日以内のゼロ個以上のエレメント２３８を除去するステップと、
を含んでよい。
【００４３】
図３Ａ中に表された事例において、イベント・シーケンス解析エンジン１２０は、前述のステートメントが意味を成すように、ユーザの意図に整合する結果を返すことができる。
【００４４】
他方で、図３Ｂに示された検索クエリ２４０の例は、１つの肯定的述語２４２（図３Ｂ中に「Ａ」で示されている）と、制約２４８（「０〜５日」」の付いた１つの否定的述語２４４（図３Ｂ中ではＮＯＴオプションありの「Ｂ」で示されている）と、制約２５０（「０〜１０日」」の付いた他の肯定的述語２４６（図３Ｂ中に「Ｃ」によって示され、これはキー・値の対「回復−頭痛」を表す）とを含む。
【００４５】
この検索クエリ２４０のクエリ処理は、通常、
（ｉ）イベント・シーケンス・データから述語２４２（Ａ）に対するリスト２５２を読み出すステップと、
（ｉｉ）イベント・シーケンス・データから述語２４４（Ｂ）に対するリスト２５４を読み出すステップと、
（ｉｉｉ）イベント・シーケンス・データから述語２４６（Ｃ）に対するリスト２５６を読み出すステップと、
（ｉｖ）肯定的述語２４２（Ａ）への制約２４８に合致する、リスト２５４（Ｂ）中のゼロ個以上のエレメント２５８を特定するステップと、
（ｖ）肯定的述語２４６（Ｃ）への制約２５０にさらに合致する、リスト２５４（Ｂ）中のゼロ個以上のエレメント２６０を特定するステップと、
（ｖｉ）リスト２５２（Ａ）から、述語２４４（Ｂ）に対するリスト２６０中に１つ以上のそれぞれのエレメントを有する、ゼロ個以上のエレメント２６２を除去するステップと、
（ｖｉｉ）リスト２５６（Ｃ）から、述語２４４（Ｂ）に対するリスト２６０中に１つ以上のそれぞれのエレメントを有する、ゼロ個以上のエレメント２６４を除去するステップと、
を含んでよい。
【００４６】
図３Ｂ中に表された事例において、イベント・シーケンス解析エンジン１２０は、肯定的述語２４４、２４６（Ａ、Ｃ）に対して残ったエレメントの２つのリスト、または、いわゆるクロス・ジョイントであってよいこれらリスト（Ａ、Ｃ）の組み合わせ、を含む結果を返すことができようが、この両方ともユーザの意図とは整合しない可能性がある。
【００４７】
この検索クエリをイベント・シーケンス解析エンジン１２０に発行することによって、ユーザは、ユーザが期待外れの結果を得るか、またはユーザが時間切れによってどんな結果も得られないので、この検索クエリのかかる無効性を知ることができる。しかして、ユーザは、少なくとも或る一定の期間、イベント・シーケンス解析エンジン１２０からの実際の応答を待つことができよう。
【００４８】
上記のように、この例示的な実施形態において、検索ユーザ・インターフェース１１０は諸機能を提供し、これらの機能によって、検索クエリを発行することによって実際の応答を待つことなしに、検索クエリの有効性を検証することが可能である。
【００４９】
図１に戻って参照すると、検索ユーザ・インターフェース１１０は、検索クエリの妥当性確認をするためのクエリ妥当性確認モジュール１１２、および当初の検索クエリが無効である判断されたときに、代替検索クエリを設けるために検索クエリを修正するための、クエリ修正モジュール１１４を含むことができる。
【００５０】
検索クエリの妥当性確認をするために、クエリ妥当性確認モジュール１１２は、サブグラフＧ１がグラフＧ２中の述語、すなわち当初の検索クエリ中の述語の中の１つ以上の肯定的述語のサブセット、から成るような仕方で、当初の検索クエリのグラフＧ２からサブグラフＧ１を生成するように構成される。サブグラフＧ１は、グラフＧ２コピーし、そのグラフＧ２のコピーから否定的述語およびそれに連結されている制約を除去することによって生成することが可能である。上記に換えて、サブグラフＧ１は、グラフＧ２から、否定的述語およびその制約を除外しながら肯定的述語およびそれらの間の制約を抽出することによって生成することもできる。当初の検索クエリの有効性を確認するために、ノードおよびエッジが、それぞれ、肯定的述語（すなわち、ＮＯＴオプションなしの述語）およびそれらの間の制約を表すサブグラフＧ１が生成される。
【００５１】
クエリ妥当性確認モジュール１１２は、当初の検索クエリを表現するグラフＧ２およびそれから生成されたサブグラフＧ１を使って、当初の検索クエリの妥当性確認をすることができる。クエリ妥当性確認モジュール１１２は、グラフＧ２自体が連結されていないと判断される場合、当初の検索クエリが無効であると判断し、代替検索クエリを設けることを断念してよい。クエリ妥当性確認モジュール１１２は、グラフＧ２およびサブグラフＧ１の両方が連結されていると判断される場合、当初の検索クエリは有効であると判断してよい。クエリ妥当性確認モジュール１１２は、当初の検索クエリを無効にすることができるが、サブグラフＧ１が複数の構成要素を有する、すなわち、サブグラフＧ１は連結されていないと判断されるが、グラフＧ２は連結されていると判断される場合、クエリ修正モジュール１１４に当初の検索クエリを修正するように要求することが可能である。
【００５２】
クエリ修正モジュール１１４は、サブグラフＧ１は連結されていないと判断されるが、グラフＧ２は連結されていると判断される場合、すなわち、当初の検索クエリは無効であるが修正が可能であると判断される場合、代替検索クエリを設けるために、当初の検索クエリの修正を行うように構成することができる。クエリ修正モジュール１１４は、当初の検索クエリに対する代替検索クエリを設けるために、サブグラフＧ１中の相異なる連結された構成要素に属する肯定的述語の対を見出して、その肯定的述語の対の間に新規の制約を加えるように構成することが可能である。また、クエリ修正モジュール１１４は、新規の制約の内容を導出するように構成することができる。以下の諸フローチャートを参照しながら検索クエリの修正をさらに詳しく説明することとする。
【００５３】
図４を参照すると、イベント・シーケンス・データから情報を読み出すために用いられる検索クエリを確認するためのプロセスがより詳細に示されている。なお、図４に示されたプロセスは、図１に示されたクエリ妥当性確認モジュール１１２を実装している処理装置によって実行することが可能である。
【００５４】
図４に示されたプロセスは、ユーザから検索クエリの確認についての要求を受信するのに応じて、ステップＳ１００で開始してよい。ユーザは、画面上に表示されている検索クエリを確認するように、検索ユーザ・インターフェース１１０に明示または黙示で要求することができる。例えば、述語もしくは制約またはその両方の付加、ＮＯＴオプションの真または偽への設定、制約の内容の変更など、検索クエリの操作が、検索クエリの確認処理を発動することが可能である。
【００５５】
ステップＳ１０１で、処理装置は、１つ以上の述語および１つ以上の制約を含む検索クエリを受信することができる。
【００５６】
ステップＳ１０２で、処理装置は、当初の検索クエリを表現するグラフＧ２を得ることができ、その中では、各肯定的または否定的述語はノードで表され、述語の対に関連付けられた各制約は、対応するノードの対に関連付けられたエッジで表されている。図６Ａは、当初の検索クエリを表現するグラフ２７０の一例を示す。
【００５７】
ステップＳ１０３で、処理装置は、グラフＧ２が連結されているかいないかを判断することが可能である。グラフＧ２が連結されていないと判断される（Ｓ１０３のいいえ）のに応じて、コントロールはステップＳ１０４に移ってよい。ステップＳ１０４で、処理装置は、検索クエリを無効にすることができ、代替検索クエリを設けることを断念して本プロセスを終了するために、コントロールはステップＳ１１１に直接進んでよい。この状態のクエリは処理されないことになる。
【００５８】
他方、グラフＧ２が連結されていると判断される（Ｓ１０３のはい）のに応じて、コントロールはステップＳ１０５に移ってよい。ステップＳ１０５で、処理装置は、グラフＧ２をコピーし、グラフＧ２のコピーから、否定的述語およびそれらに連結されている制約を除去するか、あるいは、否定的述語およびそれらに連結されている制約を除外しながら、肯定的述語およびそれらの間の制約を抽出することによって、グラフＧ２からサブグラフＧ１をさらに生成することができる。サブグラフＧ１は、検索クエリ中の述語の中の１つ以上の肯定的述語から成り得る、すなわち、サブグラフＧ１はいわゆるグラフＧ２の誘導サブグラフであってよく、これは、肯定的述語（ＮＯＴオプションなし）に対応するノードのサブセット、および検索クエリ中の肯定的述語の対の間の制約に対応して、そのサブセット中のノードの対を連結しているエッジを含む。
【００５９】
図６Ｂは、図６Ａに示されたグラフ２７０から生成されたサブグラフ２８０の一例を示す。図６Ａと６Ｂとを比べると、否定的述語２７２とそれに対して設けられた制約２７４ａ、２７４ｂがグラフ２７０から除去されてサブグラフ２８０が形成されている。
【００６０】
ステップＳ１０６で、処理装置は、サブグラフＧ１が複数の連結された構成要素を有するのか、または単一の連結された構成要素を有するのか、すなわち、サブグラフＧ１が連結されていないのか、いるのかどうかを判断することができる。なお、サブグラフＧ１中の各連結された構成要素は、サブグラフＧ１のサブグラフであり、その中では、どの２つのノードもパスで連結されているが、どのノードもサブグラフＧ１中のさらなるノードには連結されていない。どのエッジにも関連付けられていないノードもまた連結された構成要素である。サブグラフＧ１が単一の連結された構成要素を有すると判断される（Ｓ１０６のはい）のに応じ、コントロールはステップＳ１０７に移ってよい。ステップＳ１０７で、処理装置は、検索クエリがそのままで有効であると判断し、本プロセスを終了するため、コントロールはステップＳ１１１に直接進んでよい。この状態のクエリは、イベント・シーケンス解析エンジン１２０に発行し処理することができよう。
【００６１】
他方、サブグラフＧ１が複数の連結された構成要素を有すると判断される（ステップＳ１０６のいいえ）のに応じ、コントロールはステップＳ１０８に移ってよい。ステップＳ１０８で、処理装置は、当該検索クエリを無効にすることができる。ステップＳ１０９で、処理装置は、代替検索クエリを設けるために当該検索クエリの修正を発動することができる。検索クエリの修正は、後記で図５を参照しながらさらに詳しく説明することとする。ステップＳ１１０で、処理装置は、当初の検索クエリから変更された修正検索クエリを代替検索クエリとして提案し、本プロセスを終了するため、コントロールはステップＳ１１１に進んでよい。この状態のクエリは、イベント・シーケンス解析エンジン１２０に発行し処理することができよう。
【００６２】
図５を参照すると、代替検索クエリを設けるために検索クエリを修正するためのプロセスが示されている。なお、図５に示されたプロセスは、少なくとも図１に示されたクエリ修正モジュール１１４を実装している処理装置によって実行することが可能である。図５に示されたプロセスは、図４中のステップＳ１０９で検索クエリの修正プロセスが発動されるのに応じて、ステップＳ２００で開始することができる。
【００６３】
ステップＳ２０１で、処理装置は、各対の中の肯定的述語Ｘ、ＹがサブグラフＧ１中の連結された相異なる構成要素に属し、グラフＧ２中の１つ以上の否定的述語Ｚを介して相互の連結を有するような仕方で、サブグラフＧ１中の肯定的述語Ｘ、Ｙの１つ以上の対を列挙することができる。
【００６４】
さらに図６Ｃを参照すると、サブグラフＧ１中の肯定的述語Ｘ、Ｙの対を見出すやり方がさらに表されている。図６Ｃに示されるように、サブグラフ２８０’は、複数の連結された構成要素２８２ａ、２８２ｂを有し、それらの各々は、それぞれ１つ以上の肯定的述語２８４ａ、２８４ｂを含む。サブグラフ２８０’中の相異なる連結された構成要素２８２ａ、２８２ｂに属し、グラフ２７０中の否定的述語２７２介した相互の連結（図６Ｃ中に矢印２８６で示されている）を有する肯定的述語２８４ａ、２８４ｂが、列挙対象の肯定的述語Ｘ、Ｙの対として見出される。
【００６５】
図５に戻って参照すると、ステップＳ２０２で、処理装置は、ステップＳ２０１で列挙された１つ以上の対の中から１つの未処理の肯定的述語Ｘ、Ｙの対を選択することが可能である。図５に示されたプロセスは、サブグラフＧ１が少なくとも初期に複数の連結された構成要素を有するときに発動されるので、前述した条件に合致する肯定的述語の少なくとも１つの対が存在する。
【００６６】
ステップＳ２０３で、処理装置は、選択された肯定的述語Ｘ、Ｙの対の間に新規の制約を加えることができる。図６Ｃをさらに参照すると、サブグラフ２８０’中の肯定的述語の対の間に新規の制約を加えるやり方がさらに示されている。図６Ｃに示されるように、新規の制約２８８は、サブグラフ２８０’中の相異なる連結された構成要素２８２ａ、２８２ｂに属する肯定的述語２８４ａ、２８４ｂの間に加えられる。
【００６７】
ステップＳ２０４で、処理装置は、グラフＧ２中の否定的述語Ｚを介した肯定的述語Ｘ、Ｙの対の間の制約（Ｘ、Ｚ）、（Ｚ、Ｙ）の内容に基づいて新規の制約の内容を導出することができる。或る特定の実施形態において、肯定的述語Ｘ、Ｙの対の間の制約（Ｘ、Ｚ）、（Ｚ、Ｙ）の組み合わせの必要条件の１つが、新規の制約の内容として計算されてよい。或る好適な実施形態において、新規の制約の内容として、これら必要条件のうちの最強の制約が計算されてよい。
【００６８】
図６Ａに表されているように、グラフＧ２中の肯定的述語（Ｘ、Ｙ）の対の間に１つの否定的述語（Ｚ）があると仮定しよう。この場合、新規の制約の内容は、全ての制約（Ｘ、Ｚ）、（Ｚ、Ｙ）の必要条件中の最強の制約である。例えば、２つの制約の必要条件は次のように計算することができる。
（ＸからＺへの時間：０〜５日）∧（ＺからＹへの時間：０〜１０日）
＝（ＸからＹへの時間：０〜２０日、０〜１５日、０〜３０日、・・・）。
【００６９】
必要条件は、これら制約（Ｘ、Ｚ）、（Ｚ、Ｙ）の全てを満たすために少なくとも満たされるべき、肯定的述語（Ｘ、Ｙ）に対する条件のセットであり、このことは、たとえ条件を仮定しても、制約（Ｘ、Ｚ）、（Ｚ、Ｙ）を満たす否定的述語Ｚのエレメントを除外する可能性はないことを意味する。これら可能な必要条件のうち、最強の条件（ＸからＹへの時間：０〜１５日）を新規の制約の内容として選択することが可能である。もっと複雑な検索クエリに対する新規の制約の内容の導出を、好適な実施形態として後記で説明することとする。
【００７０】
ステップＳ２０５で、処理装置はこの新規の制約を使ってサブグラフＧ１を更新することができる。この肯定的述語Ｘ、Ｙの選択された対は「処理済み」として標識される。ステップＳ２０６で、処理装置は、更新されたサブグラフＧ１’が連結されているかどうかを判断することが可能である。サブグラフＧ１’が連結されていないと判断される（Ｓ２０６のいいえ）のに応じ、コントロールは、肯定的述語の未処理の対をさらに処理するために、ステップＳ２０２に移ってよい。その後、処理装置は、サブグラフが連結されるまで、新規の制約の付加とサブグラフの更新を繰り返し行うことができる。
【００７１】
他方で、サブグラフが連結されていると判断される（Ｓ２０６のはい）のに応じ、コントロールは、ステップＳ２０７に移ってよい。列挙された肯定的述語の対の数は有限なので、このループは有限の反復で完了する。ステップＳ２０７で、処理装置は、グラフＧ２中の新規の制約の全ての付加を反映させることによって、修正されたクエリを表現する更新されたグラフＧ２’を生成することができる。次いで、本プロセスは、ステップＳ２０８で終了してよく、コントロールは、図４中のステップＳ１１０に戻ってよい。新規の制約を使って当該検索クエリから修正された検索クエリは、代替検索クエリとしてプロセスのＳ１１０でユーザに提案することができよう。
【００７２】
図６Ｄを参照すると、修正されたクエリを表現する更新されたグラフ２９０が表されている。図６Ａと６Ｄとを比べると、更新されたグラフ２９０は、当初の検索クエリの当初のグラフ２７０に新規の制約２９４ｃを加えることによって得られた構造体を有する。この状態の得られたクエリは、イベント・シーケンス解析エンジン１２０に発行し処理することができよう。
【００７３】
有効な検索クエリ（すなわち、図４中のＳ１０７で有効と判断された検索クエリ、または、図４中のＳ１１０で提案された代替検索クエリ）は次のように処理することが可能である。
１．その有効な検索クエリ中の各述語｛ｐｉ：ｉ＝１，・・・，Ｎ｝に対して、イベント・シーケンス・データからリストを読み出す。
２．述語｛ｐ１，・・・，ｐＮ｝に対する同値の条件Ｃを初期化する。これは、以下の命題によって、述語ｐｉ、ｐｊのあらゆる対の間の関係を保持するためのデータ構造である。
ｐｉ〜Ｃｐｊ⇔  ｉ＝ｊ
上式の〜Ｃは、同値であることを示す。なお、述語ｐとｑとの間の関係（ｐ〜Ｃｑ）が、同値条件Ｃで同値に設定された場合、述語ｐのリストおよび述語ｑのリストは「リンクされている」と言われる。また、述語ｐのリストおよび述語ｑのリストが「リンクされている」場合、一方のリスト中の或るエレメントが除去されるとき、他方のリンクされたリストの同じインデックスに対応するエレメントも除去され得る。この初期化によって、同値の条件Ｃは、各述語｛ｐ１，・・・，ｐＮ｝がそれ自体だけとリンクされるような仕方で初期化される。
【００７４】
３．有効な当該検索クエリ中の同型（両方とも肯定的または否定的）の述語ｐとｑとの対の間の各制約に対し、同型の述語ｐ、ｑに対するそれぞれのリストがリンクされるように、述語ｐ、ｑに対するそれぞれのリストから、各制約を満たすそれぞれのエレメントの対を抽出する。なお、抽出の後、これら２つのリストは、同じ長さを有し、同じインデックスのエレメントは当該制約を満たす。実際のシステムでは、制約の適用に対する結果の中の冗長さを取り除くことが望ましい。上記により、或る特定の実施形態では、２つ以上のエレメントの対（ａ１，ｂ）および（ａ２，ｂ）が制約を満たす場合、それらの対の最短の１つ（例えば、（ａ１，ｂ）だけ）を抽出することができよう。他の実施形態において、エレメント（ａ１，ｂ）および（ａ２，ｂ）の２つ以上の対が制約を満たす場合、対（ａ１，ｂ）および（ａ２，ｂ）の両方が抽出されることになる、すなわちエレメントｂは重複することになろう。
【００７５】
このとき、述語ｐとｑとの間の関係（ｐ〜Ｃｑ）は、同値の条件Ｃで同値に設定される。これにより、述語ｐのリストと他の述語ｘのリストとが既にリンクされていて（ｘ〜Ｃｐ）、さらに述語ｑのリストと他の述語ｙのリストとが既にリンクされ（ｙ〜Ｃｑ）ている場合、（ｘ〜Ｃｐ）に対するｘのリストおよび（ｙ〜Ｃｑ）に対するｙのリストも同様にリンクされる。
【００７６】
４．上記ステップ３が完了したかどうかを判断する。なお、ステップ３は同値の条件Ｃで完了し、このとき、有効な検索クエリを表現するグラフＧ２またはＧ２’は連結されているので、肯定的述語（ＮＯＴオプションなしの述語）に対する全リストがリンクされている。
【００７７】
有効な当該検索クエリ中の、否定的述語ｐと肯定的述語ｑとの対の間の各制約に対し、肯定的述語ｑに対するリストから、各制約を満たすエレメントを除去する。
【００７８】
図７を参照すると、イベント・シーケンス解析のための代替の有効な検索クエリ２９０の一例、およびイベント・シーケンス・データから代替の有効な検索クエリ２９０に合致するエレメントのリストを読み出すクエリ処理が表されている。
【００７９】
図７に示された代替の有効な検索クエリ２９０のこの例は、１つの肯定的述語２９２ａ（図７中では「Ａ」によって示されている）と、制約２９４ａ（「０〜５日」）の付いた１つの否定的述語２９２ｂ（図７中ではＮＯＴオプションありの「Ｂ」によって示されている）と、制約２９４ｂ（「０〜１０」日）の付いた他の肯定的述語２９２ｃ（図７中では「Ｃ」によって示されている）とを含む。代替の有効な検索クエリ２９０は、新規の制約２９４ｃ（「０〜１５」日）をさらに含む。この代替検索クエリ２９０は、ステートメント「頭痛を有し、だが５日以内にロキソプロフェンを処方されなかった、しかしその後１０日間ロキソプロフェンを処方されずに発症から１５日以内に回復した患者」を満たすエレメントの対のリストを読み出すために用いることができる。
【００８０】
この検索クエリ２４０のクエリ処理は、通常、
（ｉ）各述語２９２ａ、２９２ｂ、２９２ｃ（Ａ、Ｂ、Ｃ）に対する各リスト２９６ａ、２９６ｂ、２９６ｃ（Ａ、Ｂ、Ｃ）を読み出すステップを含んでよい。
Ａ：（０，８／１０）、（１，８／３）、（２，８／５）、（２，８／１８）
Ｂ：（１，８／６）、（２，８／１２）、（２，８／２１）、（３，８／１０）
Ｃ：（０，８／１２、（１，８／５）、（２，８／３０）、（３，８／５）
【００８１】
また、検索クエリ２４０のクエリ処理は、
（ｉｉ）述語２９２ａ、２９２ｃに対するそれぞれのリスト２９６ａ、２９６ｃがリンクされるように、述語２９２ａ（Ａ）および２９２ｃ（Ｃ）に対するそれぞれのリスト２９６ａ、２９６ｃから新規の制約２９４ｃを満たすそれぞれのエレメントの対を抽出するステップも含んでよい。
Ａ：（０，８／１０）、（１，８／３）、（２，８／１８）
Ｃ：（０，８／１２、（１，８／５）、（２，８／３０）
【００８２】
なお、図７に表されているように、抽出の後、１５日以内にＡとＣとの対にならなかったエレメントはＡのリスト２９６ａおよびＣのリスト２９６ｃからフィルタ除去される。同じ長さを有し、同じインデックスの要素がその制約を満たす、リンクされたリスト２９８ａ、２９８ｃが得られる。
【００８３】
検索クエリ２４０のクエリ処理は、
（ｉｉｉ）肯定的述語２９２ａ（Ａ）に付いた制約２９４ａに合致する、リスト２９６ｂ（Ｂ）中のゼロ個以上のエレメント３００を特定するステップと、
（１，８／６）、（２，８／２１）
（ｉｖ）肯定的述語２９２ｃ（Ｃ）に付いた制約２９４ｂにさらに合致する、リスト２９６ｂ（Ｂ）中のゼロ個以上のエレメント３０２を特定するステップと、
（２，８／２１）
（ｖ）リスト３０２中に１つ以上のそれぞれのエレメントを有するリンクされたリスト２９８ａから、ゼロ個以上のエレメント３０４を除去するステップと、
をさらに含むことが可能である。
【００８４】
なお、それぞれのリンクされたリスト２９８ａ、２９８ｃ中のエレメントの対は「リンク」されているので、一方のリスト２９８ａ中の或るエレメント３０４が除去されるとき、他方のリスト２９８ｃの同じインデックスのエレメント３０６も除去され得る。
Ａ：（０，８／１０）、（１，８／３）
Ｃ：（０，８／１２）、（１，８／５）
【００８５】
検索クエリ２４０のクエリ処理は、
（ｖｉ）リスト３０２中に１つ以上のそれぞれのエレメントを有するリンクされたリスト２９８ｃから、ゼロ個以上のエレメントを除去するステップ、
をさらに含むことが可能である。この例では、リンクされたリスト２９８ｃからはエレメントは除去されていない。
Ａ：（０，８／１０）、（１，８／３）
Ｃ：（０，８／１２）、（１，８／５）
【００８６】
以下に、クエリ処理の数式表現をさらに説明することとする。Ｓが記録の全セットを表すセットを指し、Ｐ１，Ｐ２，・・・，ＰＮが、それぞれ述語ｐ１，ｐ２，・・・，ｐＮに対し読み出されたリストを表すセットＳのサブセットを指し、Ｃ１，Ｃ２，・・・，ＣＭが、制約を表すマップ：Ｓ×Ｓ→｛真、偽｝を指すと定義しよう。上記において、ｘ，ｙ∈Ｓに対しＣ（ｘ，ｙ）＝真は、エレメント（ｘ，ｙ）の対が制約Ｃを満たすことを意味するものとする。
【００８７】
各々の記録がＩＤおよび時間を含む記録の全セットは、次のように表すことができる。
Ｓ＝｛（ｉ１，ｔ１），（ｉ２，ｔ２），．．．，（ｉＫ，ｔＫ）｝。
上式のｉｋ∈整数、ｔｋ∈実数）、ｋ＝１，２，・・・，Ｋ。
【００８８】
第一および第二記録が同じＩＤを有し、第二記録が第一記録から５日以内に発生したことを定義する制約は次のように表すことができる。
Ｃ（（ｉ，ｔ），（ｊ，ｓ））＝（ｉ＝ｊ）且つ（ｔ≦ｓ）且つ（ｓ≦ｔ＋５）。
【００８９】
図３Ａに示された有効なクエリに対する検索結果は次のように表すことができる。
Ｒ１＝｛ａ∈ＰＡ｜（〜∃ｂ∈ＰＢ）ＣＡＢ（ａ，ｂ）｝。
上式のＣＡＢ（ａ，ｂ）は、ＣＡＢ（ａ，ｂ）＝真、すなわち、エレメント（ａ，ｂ）の対が制約ＣＡＢを満たすことを意味する。
【００９０】
図３Ｂに示された無効なクエリに対する検索結果は次のように表すことができる。
Ｒ２＝｛（ａ，ｃ）∈ＰＡ×ＰＣ｜（〜∃ｂ∈ＰＢ）（ＣＡＢ（ａ，ｂ）且つＣＢＣ（ｂ，ｃ））｝。
【００９１】
図７に示された代替の有効なクエリに対する検索結果は次のように表すことができる。
Ｒ３＝｛（ａ，ｃ）∈ＰＡ×ＰＣ｜ＣＡＢ（ａ，ｃ）且つ（〜∃ｂ∈ＰＢ）（ＣＡＢ（ａ，ｂ）且つＣＢＣ（ｂ，ｃ））｝。
【００９２】
この場合、大まかに言えば、検索結果のサイズが最大限でも読み出された記録のリストのサイズの線型オーダーであるとき、新しい妥当性確認技法によって「有効性」を判断することができる。なお、図３Ｂに示された無効なクエリの結果は、
｜Ｒ２｜〜｜ＰＡ｜｜ＰＣ｜
となり得る。
【００９３】
図８を参照すると、無効なクエリを生じ得る典型的なユーザの操作の概略図が示されている。また、図８には、編集画面上に表現された検索クエリの例も示されている。
【００９４】
例としてこの臨床データを取り上げると、ユーザは、「何人の患者がロキソプロフェンを使ったか」を知りたがることであろう。図８Ａに示された編集画面上の検索クエリ３１０は、ユーザの関心事項に従ってユーザによって入力することができよう。次いで、ユーザは、「ロキソプロフェンが使われない場合はどうなのか」知りたがることであろう。各述語は、編集画面上の操作を介して肯定的または否定的に規定することができる。この編集画面上で、図８Ａに示された検索クエリ３１０は、図８Ｂに示されるように、ユーザの関心事項に従って述語３１２のＮＯＴオプションを真に設定することによって変更することができよう。
【００９５】
この事例では、検索クエリ３１０’は、クエリ妥当性確認モジュール１１２によって無効と判断されることになり、図８Ｃ中に示されるように、クエリ修正モジュール１１４によって生成された、当初の検索クエリ３１０に対する代替検索クエリ３１０”が、ビジュアル・キュー（連結曲線３１４および吹出し３１６）と一緒に編集画面上に提示され、現在表示されている検索クエリ３１０’は無効であることが通知されることになろう。ビジュアル・キュー３１４、３１６は、新規の制約を付加するために推奨される箇所を示す。また、新規の制約の内容は、編集画面上の表示３１８を用いて提案されることができよう。提案された代替検索クエリ３１０”がユーザに受諾されたならば、その代替検索クエリ３１０”は新規の検索クエリになることになろう。
【００９６】
この例において、ユーザの検索の意図は、「何人の患者が、頭痛を有し、且つ５日以内にロキソプロフェンを用いず、且つ特定の期間内に回復したか」を含むことになろう。この例では、検索ユーザ・インターフェース１１０は、「この特定の期間」を発症から「１５日」と解釈することができる。
【００９７】
この例示的な実施形態において、たとえ、検索クエリが、一般に検索クエリの無効性に気付くのを難しくする否定的述語を含んでいても、検索クエリの有効性は、その検索クエリを実際に発行することなく、それがユーザの意図に整合しない結果をもたらすことが予期されるかどうかの観点から検証することが可能である。さらに、ユーザは、肯定的述語の対の間の２つ以上の制約から得られる可能な制約の中で最も適していると予期される新規の制約を備えた代替クエリを得ることができる。
【００９８】
前述の例示的な実施形態において、修正の対象を、肯定的述語Ｘ、Ｙの対の間で簡単な構造を有する検索クエリとして説明してきた。しかしながら、修正の対象は、前述のような簡単な検索クエリに限定されるものでなく、無効と判断されたもっと複雑な検索クエリも同様に修正することが可能である。以降において、一連の図９〜１１を参照しながら、本発明の好適な実施形態による、イベント・シーケンス解析に用いられる検索クエリを確認するためのコンピュータ・システムおよび方法を説明し、これらにおいては、無効と判断されたもっと複雑な検索クエリを修正することができる。
【００９９】
本発明のこの好適な実施形態による、イベント・シーケンス解析システムのブロック図、ならびに検索クエリを確認するためのプロセスおよび検索クエリを修正するためのプロセスのフローチャートは、前述の例示的な実施形態のものとほぼ同じである。しかして、以降においては、主として、上記の例示的な実施形態と異なる特徴に焦点を当てることとする。
【０１００】
上記の例示的な実施形態と同様に、クエリ修正モジュール１１４は、当初の検索クエリが無効ではあるが修正が可能と判断された場合に、代替検索クエリを設けるために当該検索クエリの修正を行うように構成される。
【０１０１】
代替検索クエリを設けるために、クエリ修正モジュール１１４は、前述の例示的な実施形態と同様に、サブグラフＧ１中の連結された相異なる構成要素に属する肯定的述語Ｘ、Ｙの対を見出し、その肯定的述語Ｘ、Ｙの対の間に新規の制約を加えるように構成される。この好適な実施形態によるクエリ修正モジュール１１４は、１つ以上の否定的述語Ｚ１，Ｚ２，・・・，Ｚｎを介した肯定的述語Ｘ、Ｙの対の間の１つ以上の制約（Ｘ，Ｚ１），（Ｚ１，Ｚ２），・・・，（Ｚｎ，Ｙ）に基づいて新規の制約の内容を導出するようにさらに構成される。新規の制約の内容は、肯定的述語Ｘ、Ｙの対の間の全ての制約（Ｘ，Ｚ１），（Ｚ１，Ｚ２），・・・，（Ｚｎ，Ｙ）の必要条件中の最強の制約であってよい。
【０１０２】
図９は、複雑な検索クエリ３２０、および新規の制約３３２を備えたその代替検索クエリの例を示す。検索クエリ３２０は、２つの肯定的述語３２４ａ、３２４ｂの第一グループ３２２、３つの肯定的述語３２８ａ〜３２８ｃの第二グループ３２６、およびグループ３２２、３２６の間に２つの否定的述語３３０ａ、３３０ｂを含む。図９において、実線および点線で示された述語および制約は、複雑な検索クエリ３２０を表現するグラフＧ２を構成する。実線で示された述語および制約は、サブグラフＧ１だけを構成する。さらに、破線は、代替検索クエリに対する新規の制約３３２を示す。
【０１０３】
図９に示されるように、この検索クエリ中のどの２つの述語もパスで連結されており、しかしてグラフＧ２は連結されている。図９に示されたサブグラフＧ１は、複数の連結された構成要素を有し、その各々は各グループ３２２、３２６に対応する。それぞれ異なる連結された構成要素に属する、肯定的述語３２４ａ（図９中に「Ｘ」で示されている）と、述語３２８ａ（図９中に「Ｙ」で示されている）との対の間に２つの否定的述語３３０ａ、３３０ｂ（図９中に、ＮＯＴオプション付きの「Ｚ１」および「Ｚ２」でそれぞれ示されている）がある。２つの否定的述語（Ｚ１、Ｚ２）を介した肯定的述語Ｘ、Ｙの対の間に４つの制約Ｃ１〜Ｃ４がある。この４つの制約Ｃ１〜Ｃ４は、各々の関係において並列または直列に配置されている。この好適な実施形態において、クエリ修正モジュール１１４は、肯定的述語３２４ａ、３２８ｂの対の間に新規の制約３３２を加えることによって、かかる複雑な検索クエリ３２０を修正することができる。
【０１０４】
図１０を参照すると、肯定的述語Ｘ、Ｙの対の間の新規の制約の内容を導出するためのプロセスが表されている。なお、図１０に示されたプロセスは、少なくとも図１に示されたクエリ修正モジュール１１４を実装している処理装置によって実行することが可能である。図１０に示されたプロセスは、図５中のステップＳ２０４の詳細なプロセスであってよい。しかして、本プロセスは、図５中のステップＳ２０４で新規の制約の導出処理が発動されるのに応じて、ステップＳ３００で開始することができる。
【０１０５】
ステップＳ３０１で、処理装置は、グラフＧ２中の、否定的述語Ｚ１、Ｚ２を介した肯定的述語Ｘ、Ｙの対の間の制約に対応する部分構造体を生成することができる。
【０１０６】
ステップＳ３０２で、処理装置は、直列または並列に配置された制約の対を見出すように試みることができる。ステップＳ３０２で、述語Ｐ、Ｑ、およびＲが２つの制約によって直列に連結されている場合、ＰとＱとの間の制約およびＱとＲとの間の制約は直列の制約として見出される。述語Ｐ、Ｑが２つの並列の制約で連結されている場合、ＰとＱとの間のその２つの制約の対は、並列に配置された一対として見出される。ステップＳ３０３で、処理装置は、制約の対が見出されたかどうかを判断することができる。制約の対が見出されたと判断する（Ｓ３０３のはい）に応じ、コントロールはステップＳ３０４に移ってよい。ステップＳ３０４で、本プロセスは、その見出された対の中の制約が直列に配置されているか並列かに応じて分岐することができる。
【０１０７】
制約の対が並列に配置されていることを見出す（Ｓ３０４の並列）のに応じて、コントロールはステップＳ３０５に分岐してよい。ステップＳ３０５で、処理装置は、第一ルールに基づいて、見出された制約の対を代替制約に置き換えることができ、その後、コントロールはステップＳ３０２に折り返してよい。或る特定の実施形態において、各制約は、各制約に関連付けられた述語の間の「ｔ１〜ｔ２日」の形の時間ギャップの間隔を含む。この特定の実施形態において、部分構造体中に見出された制約の対は、制約の対が開始点中の最新の点で始まり、制約の対が終了点中の最早の点で終わる代替間隔を有する代替制約に置き換えることができる。述語ＰとＱとが２つの並列の制約「ｓ１〜ｓ２日」および「ｔ１〜ｔ２日」によって連結されている場合、この２つの制約は、１つの代替制約「｛ｓ１、ｔ１｝の最大〜｛ｓ２、ｔ２｝の最小の日」に置き換えることができよう。
【０１０８】
制約の対が直列に配置されていることを見出す（Ｓ３０４の直列）のに応じて、コントロールはステップＳ３０６に分岐してよい。ステップＳ３０６で、処理装置は、第二ルールに基づいて、見出された制約の対を代替制約に置き換えることができ、その後、コントロールはステップＳ３０２に折り返してよい。各制約が、述語の間の時間ギャップの間隔を含む或る特定の実施形態において、部分構造体中に見出された制約の対は、制約の対の開始点の和で始まり、制約の対の終了点の和で終わる代替間隔を有する代替制約に置き換えることができる。述語Ｐ、Ｑ、およびＲが２つの制約「ｓ１〜ｓ２日」および「ｔ１〜ｔ２日」によって直列に連結されている場合、この２つの制約は、１つ代替制約「ｓ１＋ｔ１〜ｓ２＋ｔ２日」によって置き換えることができよう。
【０１０９】
直列または並列に配置された制約の対がないのに（Ｓ３０３のいいえ）応じて、コントロールはステップＳ３０７に分岐してよい。ステップＳ３０７で、処理装置は、得られた部分構造体の合成に基づいて、新規の制約の内容を計算することができ、ステップＳ３０８で本プロセスは終了する。
【０１１０】
図１１を参照すると、新規の制約の内容を導出し、検索クエリを修正するやり方の例が示されている。図１１Ａに示されるように、２つの否定的述語（Ｚ１、Ｚ２）を介した肯定的述語Ｘ、Ｙの対の間には４つの制約Ｃ１〜Ｃ４がある。これらの制約Ｃ１、Ｃ２、Ｃ３、およびＣ４は、それぞれ、「０〜３日」、「０〜５日」、「０〜２日」、および「０〜４日」である。
【０１１１】
最初に、制約Ｃ３とＣ４とが直列に配置された対であることが見出される。しかして、図１１Ｂに示されるように、制約Ｃ３およびＣ４は（第二ルールに基づいて）Ｚ１とＹとの間の新規の代替制約Ｃ５「０〜６日」に置き換えることができよう。次いで、Ｃ２とＣ５とが並列に配置された対であることが見出される。しかして、図１１Ｃに示されるように、制約Ｃ２およびＣ５は、（第一ルールに基づいて）Ｚ１とＹとの間の新規の代替制約Ｃ６「０〜５日」に置き換えることができよう。制約Ｃ１とＣ６とが直列に配置された対であることが見出され、図１１Ｄに示されるように、制約Ｃ１およびＣ６は（第二ルールに基づいて）ＸとＹとの間の新規の代替制約Ｃ７「０〜８日」に置き換えることができよう。
【０１１２】
図１１Ｅに示されるように、得られた部分構造体の合成に基づいて、Ｃ７「０〜８日」である新規の制約の内容を計算することができよう。
【０１１３】
並列の制約に対する前述の第一ルールは、以下のように一般化することができる。並列の制約Ｃ１とＣ２とは、代替制約がこれら並列の制約の論理積（Ｃ１  ＡＮＤ  Ｃ２）となるような仕方で、該代替制約によって置き換えることができよう。
【０１１４】
直列の制約に対する前述の第二ルールは、以下のように一般化することができる。述語ＰとＱとの間の制約Ｃ１および述語ＱとＲとの間の制約Ｃ２の直列連結は、制約Ｃ１、Ｃ２の両方を満たす中間の述語Ｑが存在する（「（∃Ｑ）（（Ｐ，Ｑ）がＣ１を満たし且つ（Ｑ，Ｒ）がＣ２を満たす）」と等しい）ような仕方で、述語ＰとＲとの間の代替制約によって置き換えることができよう。
【０１１５】
この好適な実施形態では、たとえ検索クエリが複雑な構造を有していても、無効と判断されたかかる複雑な検索クエリを修正することができる。ユーザは、肯定的述語の対の間の２つ以上の制約に基づいて、最も適切と予期される新規の制約を備えた代替クエリを得ることが可能である。
【０１１６】
クエリがＮＯＴオプションを有さない場合、無効なクエリは連結のないグラフの構造を有するので、検索クエリの無効性を認識するのは難しくない。しかしながら、クエリがＮＯＴオプション有する場合は、たとえ連結されたグラフ構造を有するクエリであっても無効であり得ることに気付くのは難しい。システムが、無効なクエリからユーザの意図を理解できると見なすのは軽いことではない。
【０１１７】
イベント・シーケンス解析エンジン１２０は、その検索処理の過程で検索クエリの妥当性確認をすることはできるが、但し、それだけでは十分でなく、ユーザ・インターフェースが、システム・エラーによる無効なクエリを見分ける検査の失敗に対する理由を示すことができるのが望ましい。本発明の１つ以上の実施形態による新しいクエリの妥当性確認機能を用いることによって、検索ユーザ・インターフェース１１０は、検索クエリを実際に発行することなく、無効なクエリを検出することができる。さらに、本発明の１つ以上の実施形態によるクエリ修正機能を用いることによって、検索ユーザ・インターフェース１１０は、その無効なクエリを修正することが可能である。この妥当性確認および修正は、ユーザが自分の意図と自分が生成したクエリと間のギャップを認識することを可能にする。
【０１１８】
コンピュータのハードウェア構成要素
ここで図１２を参照すると、イベント・シーケンス解析システム１００のために用いることが可能なコンピュータ・システム１０の一例の概略図が示されている。図１２に示されたコンピュータ・システム１０は、コンピュータ・システムとして実装されている。コンピュータ・システム１０は、適切な処理デバイスの単なる一例であって、本明細書に記載された本発明の諸実施形態の用途または機能の範囲についてのいかなる限定も示唆することは意図されていない。ともあれ、コンピュータ・システム１０は、本明細書の上記で述べた機能のいずれをも実装するもしくは実行する、またはその両方を行うことができる。
【０１１９】
コンピュータ・システム１０は、数多の他の汎用または特定用途向けのコンピューティング・システム環境または構成と共に動作可能である。コンピュータ・システム１０と共に使用するのに適し得る周知のコンピューティング・システム、環境、もしくは構成、またはこれらの組み合わせの例には、以下に限らないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、車載デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および前述のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれる。
【０１２０】
コンピュータ・システム１０は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的なコンテキストで表すことが可能である。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造体を含んでよい。
【０１２１】
図１２に示されるように、コンピュータ・システム１０は、汎用コンピューティング・デバイスの形で示されている。コンピュータ・システム１０のコンポーネントは、以下に限らないが、プロセッサ（または処理装置）１２と、メモリ・バス含むバスまたはメモリ・コントローラによってプロセッサ１２に連結されたメモリ１６と、様々なバス・アーキテクチャのいずれかを用いた処理装置またはローカル・バスを含んでよい。
【０１２２】
コンピュータ・システム１０は、通常、様々なコンピュータ・システム可読媒体を含む。かかる媒体は、コンピュータ・システム１０によるアクセスが可能な任意の利用可能な媒体であってよく、これは、揮発性および不揮発性媒体、着脱式および固定式媒体の両方を含む。
【０１２３】
メモリ１６は、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）など、揮発性メモリの形でコンピュータ・システム可読の媒体を含むことができる。コンピュータ・システム１０は、他の着脱式／固定式、揮発性／不揮発性コンピュータ・システム・ストレージ媒体をさらに含んでよい。単なる例として、ストレージ・システム１８は、固定式、不揮発性の磁気媒体からの読み取りおよびこれへの書込みをするように設けることができる。以下にさらに提示し説明するように、ストレージ・システム１８は、本発明の諸実施形態の機能を実行するように構成されたプログラム・モジュールの（例えば、少なくとも１つの）セットを有する少なくとも１つのプログラム製品を含むことができる。
【０１２４】
ストレージ・システム１８中には、例であり限定ではないが、プログラム・モジュールの（少なくとも１つの）セットを有するプログラム／ユーティリティ、ならびにオペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データを格納することが可能である。これらオペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データの各々、またはこれらの何らかの組み合わせは、ネットワーキング環境の実装を含んでよい。プログラム・モジュールは、本明細書で説明したように、一般に、本発明の諸実施形態の機能もしくは方法、またはその両方を実行する。
【０１２５】
また、コンピュータ・システム１０は、キーボード、ポインティング・デバイス、カー・ナビゲーション・システム、オーディオ・システムなど、１つ以上の周辺機器２４、ディスプレイ２６、ユーザがコンピュータ・システム１０とやり取りすることを可能にする１つ以上のデバイス、もしくは、コンピュータ・システム１０が１つ以上の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例えば、ネットワーク・カード、モデムなど）、またはこれらの組み合わせと通信することが可能である。かかる通信は入力／出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インターフェース２２を介して行うことができる。さらにまだ、コンピュータ・システム１０は、ネットワーク・アダプタ２０を介し、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、一般広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、もしくは公衆ネットワーク（例えばインターネット）、またはこれらの組み合わせなど、１つ以上のネットワークと通信することが可能である。図示のように、ネットワーク・アダプタ２０は、バスを介してコンピュータ・システム１０の他のコンポーネントと通信する。当然のことながら、図示はされていないが、他のハードウェアもしくはソフトウェア・コンポーネントまたはその両方を、コンピュータ・システム１０と共に用いることができよう。諸例には、以下に限らないが、マイクロコード、デバイス・ドライバ、冗長処理装置、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、データ・アーカイブ・ストレージ・システムなどが含まれる。
【０１２６】
特定の諸実施形態において、図１中に表されたイベント・シーケンス解析システム１００中のモジュール１１０およびそのサブモジュール１１２、１１４は、以下に限らないが、図１２に示されたハードウェア・コンポーネントと連動するプログラム命令もしくはデータ構造体またはその両方、電子回路構成を含むハードウェア・モジュール、またはこれらの組み合わせとして実装されてよい。図１中に表されたモジュール１１０およびそのサブモジュール１１２、１１４は、図１２に示された単一のコンピュータ・システム中に実装することが可能である。イベント・シーケンス解析エンジン１２０およびイベント記録システム１４０は、それぞれ、モジュール１１０およびそのサブモジュール１１２、１１４が実装されたコンピュータ・システム１０に、または他のコンピュータ・システムに実装することができる。イベント集合データベース１３０は、コンピュータ・システム１０がアクセス可能な任意の内部または外部ストレージ・デバイスまたは媒体を用いて設けることが可能である。
【０１２７】
コンピュータ・プログラムの実装
本発明は、コンピュータ・システム、方法、もしくはコンピュータ・プログラム製品またはこれらの組み合わせとすることができる。このコンピュータ・プログラム製品は、プロセッサに本発明の諸態様を実行させるためのコンピュータ可読のプログラム命令を有する、コンピュータ可読ストレージ媒体（または媒体群）を含むことができる。
【０１２８】
このコンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持または格納できる有形のデバイスとすることができる。本コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電気的ストレージ・デバイス、磁気的ストレージ・デバイス、光学的ストレージ・デバイス、電磁気的ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組み合わせであってよい。コンピュータ可読ストレージ媒体のさらに具体的な例の非包括的リストには、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去およびプログラム可能読み取り専用メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙまたはフラッシュ・メモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ：ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、メモリ・スティック、フレキシブル・ディスク、パンチカードまたは記録された命令を有する溝中の嵩上げ構造体などの機械的符号化デバイス、および前述の任意の適切な組み合わせが含まれる。本明細書で用いられるコンピュータ可読ストレージ媒体は、無線波または他の自由に伝播する電磁波、ウェーブガイドまたは他の送信媒体（例えば、光ファイバ・ケーブルを通過する光パルス）、またはワイヤを通って送信される電気信号など、本質的に一時的な信号であると解釈されるものではない。
【０１２９】
本明細書に述べられたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング／処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくはワイヤレス・ネットワークまたはこれらの組み合わせなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスにダウンロードすることが可能である。このネットワークは、銅送信ケーブル、光送信ファイバ、ワイヤレス通信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバまたはこれらの組み合わせを含んでもよい。それぞれのコンピューティング／処理デバイス中のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、ストレージのため、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体中に転送する。
【０１３０】
本発明のオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令集合アーキテクチャ（ＩＳＡ：ｉｎｓｔｒｕｃｔｉｏｎ−ｓｅｔ−ａｒｃｈｉｔｅｃｔｕｒｅ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは類似のプログラミング言語などの従来式の手続き型プログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで記述されたソース・コードもしくはオブジェクト・コードであってよい。このコンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは（例えばインターネット・サービス・プロバイダを使いインターネットを介し）外部のコンピュータへの接続を行うことも可能である。いくつかの実施形態において、例えば、プログラム可能論理回路、フィールドプログラム可能ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、またはプログラム可能論理アレイ（ＰＬＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ａｒｒａｙ）を含む電子回路は、本発明の諸態様を実行すべく、該電子回路をカスタマイズするためコンピュータ可読プログラム命令の状態情報を利用することによって、該コンピュータ可読プログラム命令を実行することができる。
【０１３１】
本発明の諸態様は、本発明の諸実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら本明細書で説明されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装することが可能である。
【０１３２】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群／動作群を実装するための手段を生成するようにすることができる。また、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイスまたはこれらの組み合わせに対し特定の仕方で機能するよう命令することが可能なこれらのコンピュータ可読プログラム命令を、コンピュータ可読ストレージ媒体に格納し、格納された命令を有するコンピュータ可読ストレージ媒体が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能／動作の諸態様を実装する命令群を包含する製造品を構成するようにすることができる。
【０１３３】
さらに、これらコンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、そのコンピュータ上で、他のプログラム可能装置上で、または他のデバイス上で一連のオペレーション・ステップを実施させて、コンピュータ実装のプロセスを作り出し、当該コンピュータ上で、他のプログラム可能装置上でもしくは他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群／動作群を実装するようにすることも可能である。
【０１３４】
諸図面中のフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品から可能となる実装のアーキテクチャ、機能性、およびオペレーションを表している。この点に関し、フローチャートまたはブロック図中の各ブロックは、特定の論理機能（群）を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、または命令の部分を表し得る。一部の別の実装においては、ブロック中に記載された機能が、図面に記載された順序から外れて行われ得る。例えば、連続して示された２つのブロックが、関与する機能性に応じ、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能または動作を実施する特殊用途ハードウェア・ベースのシステムによって実装でき、または特殊用途ハードウェアとコンピュータ命令との組み合わせを作動または実行できることにも留意すべきである。
【０１３５】
本明細書で使用する用語は、単に特定の実施形態を説明する目的のためのものであり、本発明を限定することは意図されていない。本明細書で用いられる、単数形「或る（ａ、ａｎ）」、および「該（ｔｈｅ）」は、文脈上明確に別途に示されていなければ、複数形も同じように含むことが意図されている。さらに、当然のことながら、本明細書で用いられる場合の用語「含む（ｃｏｍｐｒｉｓｅ）」もしくは「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」またはその両方は、述べられた特徴、完全体、ステップ、オペレーション、要素、もしくはコンポーネント、またはこれらの組み合わせの存在を特定するが、一つ以上の他の特徴、完全体、ステップ、オペレーション、要素、コンポーネント、もしくはこれらの群、またはこれらの組み合わせの存在または追加を排除するものではない。
【０１３６】
添付の請求項中のミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクションの要素全ての、対応する構造、材料、動作および均等物は、もしあれば、具体的に請求された他の請求要素と組み合わせてその機能を実施するための、一切の構造、材料または動作を包含することが意図されている。本発明の１つ以上の態様の記述は、例示および説明の目的で提示されたものであり、網羅的であることも、または本発明を開示した形態に限定することも意図されていない。
【０１３７】
当業者には、記述された諸実施形態の範囲および趣旨から逸脱することのない多くの修改および別形が明白であろう。本明細書で用いられた用語は、諸実施形態の原理、実際上の応用、または市販の技術の技術的な改良を最善に説明し、あるいは他の当業者が本明細書に開示された諸実施形態を理解できるように選択されたものである。
【符号の説明】
【０１３８】
１００  イベント・シーケンス解析システム
１１０  検索ユーザ・インターフェース
１２０  イベント・シーケンス解析エンジン
１３０  イベント集合データベース
１４０  イベント記録システム
１１２  クエリ妥当性確認モジュール
１１４  クエリ修正モジュール
【図１】
2020522788.tif 000003
【図２】
2020522788.tif 000004
【図３】
2020522788.tif 000005
【図４】
2020522788.tif 000006
【図５】
2020522788.tif 000007
【図６】
2020522788.tif 000008
【図７】
2020522788.tif 000009
【図８】
2020522788.tif 000010
【図９】
2020522788.tif 000011
【図１０】
2020522788.tif 000012
【図１１】
2020522788.tif 000013
【図１２】
2020522788.tif 000014
【手続補正書】
【提出日】令和2年6月9日(2020.6.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記録の集合から情報を読み出すために用いられる検索クエリを確認するためのコンピュータ実装の方法であって、前記方法は、
複数の述語と、各々が複数の述語に関連付けられた１つ以上の制約とを含む検索クエリ受信するステップであって、各述語は肯定的または否定的であるように規定され、前記複数の述語が前記１つ以上の制約と合わさって論理グラフを形成する、前記受信するステップと、
前記グラフから、前記検索クエリ中の前記複数の前記述語のうち肯定的であるように規定された１つ以上の述語を含むサブグラフを生成するステップと、
前記サブグラフが複数の構成要素を有すると判断されるのに応じて、前記検索クエリを無効にするステップと、
を含む、方法。
【請求項２】
前記方法が、
前記サブグラフが複数の構成要素を有すると判断されるのに応じて、前記サブグラフ中の異なる構成要素に属する述語の対の間に新規の制約を加えることによって代替クエリをさらに設けるステップであって、前記述語の対は、前記グラフ中の否定的であるように規定された１つ以上の述語を介して相互の連結を有する、前記さらに設けるステップ、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記方法が、
否定的であるように規定された前記１つ以上の述語を介した前記述語の対の間の２つ以上の制約から前記新規の制約の内容を導出するステップ、
をさらに含む、請求項２に記載の方法。
【請求項４】
前記導出するステップが、
前記新規の制約の前記内容として、前記述語の対の間の前記２つ以上の制約の組み合わせの必要条件中の最強の制約を計算するステップ、
を含む、請求項３に記載の方法。
【請求項５】
前記２つ以上の制約が、前記２つ以上の制約に関連付けられた前記述語の対の間に時間ギャップまたは距離の間隔を含み、前記導出するステップが、
前記述語の対の間の前記２つ以上の制約を表す部分構造体を生成するステップと、
前記部分構造体中に直列に配置された制約の第一対を見出すステップと、
前記部分構造体中の前記制約の第一対を第一代替間隔を有する第一代替制約に置き換えるステップであって、前記第一代替間隔は、前記制約の第一対の開始点の和で始まり、前記制約の第一対の終了点の和で終わる、前記置き換えるステップと、
得られた前記部分構造体から前記新規の制約の前記内容を計算するステップと、
を含む、請求項３に記載の方法。
【請求項６】
前記２つ以上の制約が、前記２つ以上の制約に関連付けられた前記述語の対の間の時間ギャップまたは距離の間隔を含み、前記導出するステップが、
前記述語の対の間の前記２つ以上の制約を表す部分構造体を生成するステップと、
前記部分構造体中に並列に配置された制約の第二対を見出すステップと、
前記部分構造体中の前記制約の第二対を第二代替間隔を有する第二代替制約に置き換えるステップであって、前記第二代替間隔は、前記制約の第二対の開始点中の最大で始まり、前記制約の第二対の終了点中の最小で終わる、前記置き換えるステップと、
得られた前記部分構造体から前記新規の制約の前記内容を計算するステップと、
を含む、請求項３に記載の方法。
【請求項７】
前記導出するステップが、
前記述語の対の間の前記２つ以上の制約を表す部分構造体を生成するステップと、
直列に配置された制約の第一対を見出すステップと、
前記制約の第一対を、前記制約の第一対中の前記２つ以上の制約を満たす中間の述語が存在するように、第一代替制約に置き換えるステップと、
並列に配置された制約の第二対を見出すステップと、
前記制約の第二対を、第二代替制約が前記制約の第二対中の前記２つ以上の制約の論理積となるように、前記第二代替制約に置き換えるステップと、
得られた前記部分構造体から前記新規の制約の前記内容を計算するステップと、
を含む、請求項３に記載の方法。
【請求項８】
前記代替クエリを設けるステップが、
前記新規の制約を用いて前記サブグラフを更新するステップと、
前記サブグラフが連結されていると判断されるのに応じて、前記新規の制約を用いて前記検索クエリから修正された前記代替クエリを提案するステップと、
前記サブグラフが連結されていないと判断されるのに応じて、前記サブグラフが連結されるまで、前記加えるステップおよび前記更新するステップを繰り返して行うステップと、
を含む、請求項２に記載の方法。
【請求項９】
前記方法が、
前記グラフが連結されていないと判断されるのに応じ、前記検索クエリを無効にし、前記代替クエリを設けることを断念するステップ、または
前記グラフが連結されていると判断され、前記サブグラフが単一の構成要素を有すると判断されるのに応じ、前記検索クエリが有効であると判断するステップ、
をさらに含む、請求項２に記載の方法。
【請求項１０】
前記検索クエリが、前記検索クエリをその上で編集可能なグラフィカル・ユーザ・インターフェースを介して受信され、前記代替クエリが前記グラフィカル・ユーザ・インターフェース中にビジュアル・キューによって提示され、前記ビジュアル・キューが前記新規の制約を加えるために推奨される箇所を示す、請求項１に記載の方法。
【請求項１１】
前記グラフおよび前記サブグラフ中で、各述語はノードによって表され、各制約はエッジによって表され、否定的であるように規定され各述語は述語の否認であり、各述語は前記集合からのリストを読み出すために用いられ、各制約は、各制約に関連付けられた述語に対するそれぞれのリストから前記制約を満たすそれぞれのエレメントの対を抽出するために用いられる、請求項１に記載の方法。
【請求項１２】
前記方法が、
前記代替検索クエリ中の各述語に対し、前記記録の前記集合からリストを読み出すステップと、
前記代替検索クエリ中の同型の述語の対の間の各制約に対し、前記同型の前記述語に対し読み出されたそれぞれのリストがリンクされるように、各制約に関連付けられた前記述語に対する前記それぞれのリストから各制約を満たすそれぞれのエレメントの対を抽出するするステップと、
前記代替検索クエリ中の肯定的であるように規定された第一述語と否定的であるように規定された第二述語との対の間の各制約に対し、前記第一述語に対応するリストから、各制約を満たすエレメントを除去するステップと、
をさらに含む、請求項２に記載の方法。
【請求項１３】
記録の集合から情報を読み出すために用いられる検索クエリを確認するためのコンピュータ実装の方法であって、前記方法は、
複数の述語と、各々が複数の述語に関連付けられた１つ以上の制約とを含む検索クエリ受信するステップであって、各述語は肯定的または否定的であるように規定され、前記複数の述語が前記１つ以上の制約と合わさって論理グラフを形成する、前記受信するステップと、
前記グラフから、前記検索クエリ中の前記複数の述語のうち肯定的であるように規定された１つ以上の述語を含むサブグラフを生成するステップと、
前記対中の前記１つ以上の述語が前記サブグラフ中の相異なる構成要素に属するように、前記サブグラフ中の述語の対を見出すステップと、
代替クエリを設けるために、前記述語の対の間に新規の制約を加えるステップであって、前記新規の制約が、前記グラフ中の前記述語の対の間の２つ以上の制約から導出された内容を有する、前記加えるステップと、
を含む、方法。
【請求項１４】
前記方法が、
前記グラフが連結されていないと判断されるのに応じ、前記検索クエリを無効にし、前記代替クエリを設けることを断念するステップ、
をさらに含む、請求項１３に記載の方法。
【請求項１５】
前記新規の制約の前記内容が、前記２つ以上の制約の組み合わせの必要条件中の最強の制約である、
請求項１３に記載の方法。
【請求項１６】
プログラム命令を実行することによって、記録の集合から情報を読み出すために用いられる検索クエリを確認するためのコンピュータ・システムであって、前記コンピュータ・システムは、
前記プログラム命令を実体的に格納するメモリと、
前記プログラム命令を実行するため、前記メモリと通信しているプロセッサと、
を含み、前記プログラム命令が、
複数の述語と、各々が複数の述語に関連付けられた１つ以上の制約とを含む検索クエリ受信し、各述語は肯定的または否定的であるように規定され、前記複数の述語が前記１つ以上の制約と合わさって論理グラフを形成し、
前記グラフから、前記検索クエリ中の前記複数の前記述語のうち肯定的であるように規定された１つ以上の述語を含むサブグラフを生成し、および
前記サブグラフが複数の構成要素を有すると判断されるのに応じて、前記検索クエリを無効にする、
ための命令を含む、コンピュータ・システム。
【請求項１７】
コンピュータに、請求項１乃至１５のいずれか１項に記載の方法を実行させるためのコンピュータ・プログラム。
【請求項１８】
記録の集合から情報を読み出すために用いられる検索クエリをその上で編集可能なユーザ・インターフェースを提供するためのコンピュータ・プログラムであって、コンピュータに、
グラフの形で検索クエリがグラフィカルにその上で表現される前記ユーザ・インターフェースの画面を提供するステップであって、前記検索クエリ中の各述語は前記グラフ中にノードで表され、前記検索クエリ中の複数の述語に関連付けられた各制約は前記グラフ中にエッジで表され、各述語は、前記画面上での操作を介して肯定的または否定的であるように規定される、前記提供するステップと、
前記検索クエリの中の肯定的であるように規定された１つ以上の述語を含むサブグラフが複数の構成要素を有する場合、現在表示されている前記検索クエリが無効であることを通知するステップと
を実行させるためのコンピュータ・プログラム。
【国際調査報告】
2020522788.tif 000015
2020522788.tif 000016