"少なくとも1つの非一時的なコンピュータ可読媒体上に有形に記憶されたコンピュータプログラム命令を実行する少なくとも1つのコンピュータプロセッサによって実施される方法であって、システムであって、文書コーパス内で第1のタイプのアノテーションを生成するために前記文書コーパス内のテキストを構文解析するように適合された第1の自然言語処理コンポーネントと、第2のタイプのアノテーションではなく、前記第1のタイプのアノテーションの構造化探索を実施するように適合された探索コンポーネントとを備える、システムと共に使用するためのものであり、A前記文書コーパス内で前記第2のタイプの第1のアノテーションを識別すること、B前記第2のタイプのアノテーションの構造化探索を前記探索コンポーネントが実施することを可能にするように、前記探索コンポーネントを修正することであって、それにより、修正探索コンポーネントを生成する、修正すること、C前記第2のタイプのアノテーションを参照する用語を含むクエリを受信すること、および、D前記クエリを使用して前記文書コーパスに関する探索を実施するために前記修正探索コンポーネントを使用することを含む方法。Aは、前記文書コーパスに対する前記第1のアノテーションの追加を検出することを含む請求項1に記載の方法。Aの前に、前記文書コーパスは、前記第2のタイプのいずれのアノテーションも含まず、Bは、前記文書コーパスに対する前記第2のタイプの前記第1のアノテーションの追加の検出に応答して前記探索コンポーネントを修正することを含む請求項2に記載の方法。EAの前に、前記文書コーパス内の第1のテキストを構文解析するために第2の自然言語処理コンポーネントを使用することであって、それにより、前記第2のタイプの前記第1のアノテーションを生成し、前記第2のタイプの前記第1のアノテーションを前記文書コーパスに追加する、使用することをさらに含む請求項1に記載の方法。FEの前に、前記第2のタイプのアノテーションを生成するためにテキストを構文解析するように適合された前記第2の自然言語処理コンポーネントを前記システムに追加することをさらに含み、Bは、前記システムに対する前記第2の自然言語処理コンポーネントの追加に応答して前記探索コンポーネントを修正することを含む請求項4に記載の方法。Eは、前記第2のタイプのアノテーションに対応する概念を表すテキストを前記文書コーパス内で認識するために前記第2の自然言語処理コンポーネントを使用することであって、それにより、前記文書コーパス内で前記第2のタイプのアノテーションを生成し、前記第2のタイプの前記第1のアノテーションを前記認識されたテキストに関連付ける、使用することを含む請求項4に記載の方法。Bは、前記少なくとも1つのコンピュータプロセッサによって自動的に実施される請求項1に記載の方法。Bは、人間ユーザによって手動で実施される請求項1に記載の方法。前記探索コンポーネントは、前記第1のタイプのアノテーションの構造化探索、テキストの非構造化探索、ならびに、テキストと前記第1のタイプのアノテーションの混合探索を実施するように適合される請求項1に記載の方法。Bは、前記第2のタイプのアノテーションの定義を含むように、前記第1のタイプのアノテーションの定義を含むクエリ言語定義を修正することを含む請求項1に記載の方法。前記システムは、クエリ定式化ユーザインタフェースであって、前記クエリをユーザが定式化するのを支援するように適合された、クエリ定式化ユーザインタフェースをさらに含み、E前記クエリ定式化ユーザインタフェースを自動的に修正することであって、それにより、前記クエリ定式化ユーザインタフェースが、前記第2のアノテーションを参照する用語を含むように前記クエリを前記ユーザが定式化するのを支援することを可能にする、修正することをさらに含む請求項1に記載の方法。Bは、前記第2のタイプのアノテーションの定義を含むように、前記第1のタイプのアノテーションの定義を含むクエリ言語定義を修正することを含む請求項11に記載の方法。前記文書コーパスは、前記第2のタイプのアノテーションを含み、Dは、D1前記第2のアノテーションを参照するクエリの用語を使用して前記文書コーパス内で前記第2のタイプのアノテーションに関する選択を実施するために前記探索コンポーネントを使用することを含む請求項1に記載の方法。コンピュータプログラム命令が有形に記憶されている非一時的なコンピュータ可読媒体であって、前記コンピュータプログラム命令は、システムと共に使用するための方法を実施するために少なくとも1つのコンピュータプロセッサによって実行可能であり、前記システムは、文書コーパス内で第1のタイプのアノテーションを生成するために前記文書コーパス内のテキストを構文解析するように適合された第1の自然言語処理コンポーネントと、第2のタイプのアノテーションではなく、前記第1のタイプのアノテーションの構造化探索を実施するように適合された探索コンポーネントとを備え、前記方法は、A前記文書コーパス内で前記第2のタイプの第1のアノテーションを識別すること、B前記第2のタイプのアノテーションの構造化探索を前記探索コンポーネントが実施することを可能にするように、前記探索コンポーネントを修正することであって、それにより、修正探索コンポーネントを生成する、修正すること、C前記第2のタイプのアノテーションを参照する用語を含むクエリを受信すること、および、D前記クエリを使用して文書コーパスに関する探索を実施するために前記修正探索コンポーネントを使用することを含むコンピュータ可読媒体。Aは、前記文書コーパスに対する前記第1のアノテーションの追加を検出することを含む請求項14に記載のコンピュータ可読媒体。Aの前に、前記文書コーパスは、前記第2のタイプのいずれのアノテーションも含まず、Bは、前記文書コーパスに対する前記第2のタイプの前記第1のアノテーションの追加の検出に応答して前記探索コンポーネントを修正することを含む請求項15に記載のコンピュータ可読媒体。EAの前に、前記文書コーパス内の第1のテキストを構文解析するために第2の自然言語処理コンポーネントを使用することであって、それにより、前記第2のタイプの前記第1のアノテーションを生成し、前記第2のタイプの前記第1のアノテーションを前記文書コーパスに追加する、使用することをさらに含む請求項14に記載のコンピュータ可読媒体。FEの前に、前記第2のタイプのアノテーションを生成するためにテキストを構文解析するように適合された前記第2の自然言語処理コンポーネントを前記システムに追加することをさらに含み、Bは、前記システムに対する前記第2の自然言語処理コンポーネントの追加に応答して前記探索コンポーネントを修正することを含む請求項17に記載のコンピュータ可読媒体。Eは、前記第2のタイプのアノテーションに対応する概念を表すテキストを前記文書コーパス内で認識するために前記第2の自然言語処理コンポーネントを使用することであって、それにより、前記文書コーパス内で前記第2のタイプのアノテーションを生成し、前記第2のタイプの前記第1のアノテーションを前記認識されたテキストに関連付ける、使用することを含む請求項17に記載のコンピュータ可読媒体。Bは、前記少なくとも1つのコンピュータプロセッサによって自動的に実施される請求項14に記載のコンピュータ可読媒体。Bは、人間ユーザによって手動で実施される請求項14に記載のコンピュータ可読媒体。前記探索コンポーネントは、前記第1のタイプのアノテーションの構造化探索、テキストの非構造化探索、ならびに、テキストと前記第1のタイプのアノテーションの混合探索を実施するように適合される請求項14に記載のコンピュータ可読媒体。Bは、前記第2のタイプのアノテーションの定義を含むように、前記第1のタイプのアノテーションの定義を含むクエリ言語定義を修正することを含む請求項14に記載のコンピュータ可読媒体。前記システムは、クエリ定式化ユーザインタフェースであって、前記クエリをユーザが定式化するのを支援するように適合された、クエリ定式化ユーザインタフェースをさらに含み、F前記クエリ定式化ユーザインタフェースを自動的に修正することであって、それにより、前記クエリ定式化ユーザインタフェースが、前記第2のアノテーションを参照する用語を含むように前記クエリを前記ユーザが定式化するのを支援することを可能にする、修正することをさらに含む請求項14に記載のコンピュータ可読媒体。Bは、前記第2のタイプのアノテーションの定義を含むように、前記第1のタイプのアノテーションの定義を含むクエリ言語定義を修正することを含む請求項24に記載のコンピュータ可読媒体。前記文書コーパスは、前記第2のタイプのアノテーションを含み、Dは、D1前記第2のアノテーションを参照するクエリの用語を使用して前記文書コーパス内で前記第2のタイプのアノテーションに関する選択を実施するために前記探索コンポーネントを使用することを含む請求項14に記載のコンピュータ可読媒体。少なくとも1つの非一時的なコンピュータ可読媒体上に有形に記憶されたコンピュータプログラム命令を実行する少なくとも1つのコンピュータプロセッサによって実施される方法であって、システムであって、文書コーパス内で第1のタイプのアノテーションを生成するために前記文書コーパス内のテキストを構文解析するように適合された第1の自然言語処理コンポーネントと、第2のタイプのアノテーションではなく、前記第1のタイプのアノテーションの構造化探索を実施するように適合された探索コンポーネントとを備える、システムと共に使用するためのものであり、A前記第2のタイプのアノテーションを生成するためにテキストを構文解析するように適合された第2の自然言語処理コンポーネントの前記システムに対する追加を検出すること、B前記第2のタイプのアノテーションの構造化探索を前記探索コンポーネントが実施することを可能にするように、前記検出に応答して前記探索コンポーネントを修正することであって、それにより、修正探索コンポーネントを生成する、修正すること、C前記第2のタイプのアノテーションを参照する用語を含むクエリを受信すること、および、D前記クエリを使用し前記文書コーパスに関する探索を実施するために前記修正探索コンポーネントを使用することを含む方法。前記文書コーパスは、Bが実施される時間に、前記第2のタイプのいずれのアノテーションも含まない請求項27に記載の方法。Aは、前記システムに対して前記第2の自然言語処理コンポーネントを追加することを含む請求項27に記載の方法。コンピュータプログラム命令が有形に記憶されている非一時的なコンピュータ可読媒体であって、前記コンピュータプログラム命令は、システムと共に使用するための方法を実施するために少なくとも1つのコンピュータプロセッサによって実行可能であり、前記システムは、文書コーパス内で第1のタイプのアノテーションを生成するために前記文書コーパス内のテキストを構文解析するように適合された第1の自然言語処理コンポーネントと、第2のタイプのアノテーションではなく、前記第1のタイプのアノテーションの構造化探索を実施するように適合された探索コンポーネントとを備え、前記方法は、A前記第2のタイプのアノテーションを生成するためにテキストを構文解析するように適合された第2の自然言語処理コンポーネントの前記システムに対する追加を検出すること、B前記第2のタイプのアノテーションの構造化探索を前記探索コンポーネントが実施することを可能にするように、前記検出に応答して前記探索コンポーネントを修正することであって、それにより、修正探索コンポーネントを生成する、修正すること、C前記第2のタイプのアノテーションを参照する用語を含むクエリを受信すること、および、D前記クエリを使用して文書コーパスに関する探索を実施するために前記修正探索コンポーネントを使用することを含むコンピュータ可読媒体。前記文書コーパスは、Bが実施される時間に、前記第2のタイプのいずれのアノテーションも含まない請求項30に記載のコンピュータ可読媒体。Aは、前記システムに対して前記第2の自然言語処理コンポーネントを追加することを含む請求項30に記載のコンピュータ可読媒体。こうした探索を実施するためのいくつかの技法が存在するが、構造化文書を、特にこうした構造化文書が経時的に増大し変化する構造化文書の動的コーパスの一部であるときに、探索するための改良型技法についての必要性が存在する。システムは、テキストとテキストのアノテーションの両方を含む構造化文書を含む文書コーパスを含む。システムはまた、構造化文書の構造化探索を実施するように適合されている探索エンジンを含む。新しいタイプのアノテーションがシステムに追加されると、探索エンジンは、新しいタイプのアノテーションについての構造化探索を実施することが可能になるように自動的に更新される。たとえば、新しいタイプのアノテーションを生成するように適合された新しい自然言語処理NLPコンポーネントがシステムに追加される場合、システムは、新しいタイプのアノテーションの定義を含むようにクエリ言語を自動的に更新する。探索エンジンは、その後すぐに、新しいタイプのアノテーションを参照する構造化クエリを処理することが可能であるとすることができる。本発明のいくつかの実施形態によって実施される1つの機能は、構造化文書に関して構造化探索を実行することである。上述したように、Structureddocument構造化文書は、テキストおよび/または他のコンテキストが、コーディングによってアノテートされた文書であり、コーディングは、コーディングに対応するコンテキストの語義的なおよび/または文法的な意味を示す。structuredsearch構造化探索は、文書構造に対して特定の参照を行うクエリを実行する探索である。こうしたクエリは、structuredquery構造化クエリである。たとえば、特定の構造化文書コーパス内の構造化文書が、患者のアレルギーに関する情報を記憶するために、タイプ<allergy>のアノテーションを使用すると仮定する。この場合、ペニシリンアレルギーを有する全ての患者を識別するために定式化され、かつ、<allergy>=penicillinなどの構文を使用して定式化されるクエリは、構造化クエリである。その理由は、クエリが、文書構造、すなわち<allergy>アノテーションに対して特定の参照を行うからである。こうしたクエリを実行する探索は、構造化クエリである。こうした探索を実施する探索エンジンは、テキストpenicillinについてまたは、ペニシリンを表す他のトークンについて文書コーパスにおいて<allergy>アノテーションだけを探索することができる。対照的に、<penicillinallergy>などのクエリは、平易なテキストpenicillinallergだけからなるため、非構造化クエリである。こうしたクエリは、文書構造を全く参照しない。結果として、こうした非構造化探索は、構造化探索に比べて正確さに欠ける結果を生じる可能性がある。その理由は、非構造化探索が、テキストpenicillinallergyに遭遇することに応答して、患者が、目下、ペニシリンアレルギーを持っていないことをこうしたテキストがたとえ示さないたとえば、患者の母親がペニシリンアレルギーを持っていたことをテキストが示す場合があるときでも偽陽性を生成し、また、患者が、目下、ペニシリンアレルギーを持っていることを、penicillinallergyたとえば、PNallergy以外のテキストが示すことを認めることに失敗することによって、偽陰性を生成する場合があるからである。したがって、構造化探索は、非構造化探索比べより関連性のある結果を生成しうるため有利である。しかし、構造化クエリは、長々しく、生成するのに時間がかかる。その理由は、構造化クエリが、見出されるコンテンツたとえば、テキストだけでなく、こうしたコンテンツがその中で見出される特定のタイプ複数可のアノテーション複数可をも参照しなければならないからである。したがって、人間オペレータが特定の文書コーパスにわたって実行するためのこうしたクエリを生成するために、人間オペレータは、文書コーパス内で探索するために、どのタイプのアノテーションが利用可能であるかを知らなければならない。特に、アノテーションタイプの数が非常に大きい場合、また、たとえば新しい文書が文書コーパス内に以前には存在しないタイプを含む結果として、アノテーションタイプの数が経時的に増大する場合、人間オペレータがこれを行うことは難しい可能性がある。さらに、システムが構造化クエリを実行するために、探索される文書コーパスは、まず、構造化形態になるようにアノテートされなければならない。これは、こうしたアノテーションを実施するために設計および構築コンポーネントを必要とする。結果として、構造化クエリの1つの欠点は、構造化クエリがこうしたコンテンツに関して実施されうる前に、非構造化コンテンツを構造化コンテンツに変換するときの先行投資が必要とされることである。対照的に、非構造化クエリを実行することは、非構造化コンテンツに関して実施されうるため、こうした先行投資を全く必要としない。さらに、構造化クエリの生成は、エラーを受ける。人間オペレータは、たとえば、<allergy>=penicillinの代わりに誤って<irritant刺激物>=penicillinについてクエリを定式化する場合がある。こうしたクエリを実行しようと試みることは、任意のマッチング文書を見出すためにエラーまたは失敗をもたらす場合がある。いくつかの既存のシステムは、ユーザが構造化クエリを定式化するのを支援する。たとえば、いくつかのシステムは、目下のカーソルロケーションのクエリに挿入されることができる許容される用語アノテーションタイプの名前などのドロップダウンリストをユーザに提供するクエリ定式化ユーザインタフェースを含む。たとえば、こうしたユーザインタフェースは、<allergy>、<currentmedication>、および<prognosis予後>などのアノテーションタイプの選択を含むドロップダウンリストをユーザに提供することができる。同様に、他のクエリ定式化ユーザインタフェースは、ユーザが目下タイプしている用語を完結させるために許容される用語をユーザにプロンプト表示するauto-completeオートコンプリート機能を提供する。たとえば、ユーザが、<allをタイプする場合、システムは、用語<allergy>および<allergen>をユーザにプロンプト表示することができ、ユーザは、その中から選択して、クエリ内の目下の用語を完結させることができる。ユーザにこうした支援を提供するために、いずれのこうしたクエリ定式化ユーザインタフェースも、探索される文書コーパス内に存在し、したがって、クエリ内に含まれることを許容されるアノテーションタイプのセットの知識を持たなければならない。クエリ言語は、アノテーションタイプのセットの定義を含むことができ、クエリ定式化ユーザインタフェースは、クエリ言語、したがってクエリ言語内のアノテーションタイプの知識によってプログラムされることができる。クエリ定式化ユーザインタフェースに新しいアノテーションタイプを認識する能力を提供することは、したがって、クエリ言語が更新されることを必要とする場合がある。文書コーパス内の全てのアノテーションについての、完全で正確で最新の知識を含むように、クエリ言語を更新すること、または、その他の方法でクエリ定式化ユーザインタフェースを更新することは、特に探索される文書コーパスが経時的に増大し変化する場合、また、文書コーパス内での探索について利用可能なアノテーションの数およびタイプが増大し変化する場合、難しい作業である可能性がある。クエリ定式化ユーザインタフェースは、クエリ言語の知識によってハードコードされる、またはその他の方法でプログラムされることができる。結果として、クエリ定式化ユーザインタフェースは、<allergy>、<allergen>、および<severity重篤度>などのアノテーションに対して特定の参照を行う構造化クエリを人間オペレータが定式化するのを支援することが可能であるとすることができる。さらに、特定の探索エンジンが、特定の文書コーパスを探索するときに使用するに配備されると仮定する。こうした配備の前に、探索エンジンは、アノテーションタイプのセットの定義を含むクエリ言語の知識を有するように探索エンジンをプログラムすることなどによって、文書コーパス内でアノテーションタイプのセットの知識によってハードコードされることができる。クエリ言語は、特定のオントロジー内でコードの互いの関係の定義を含むことができる。たとえば、クエリ言語は、<allergy>タイプのアノテーションが、<allergen>および<severity>などのサブアノテーションサブコードを有することを示すことができる。結果として、クエリ言語の知識を有する探索エンジンは、<allergy>、<allergen>、および<severity>などのアノテーションタイプに対して参照を行う構造化クエリを実行することが可能であるとすることができる。しかし、こうしたシステムは、新しいアノテーションタイプすなわち、探索エンジンおよび/またはクエリ定式化ユーザインタフェース内に以前にハードコードされていないアノテーションタイプが導入されると、困難に直面する。こうした新しいアノテーションタイプは、たとえば、新しいアノテーションタイプを含む新しい構造化文書を文書コーパスに追加することによって、または、新しい非構造化文書を文書コーパスに追加し、次に、自然言語処理NLPを新しい文書に適用し、それにより、新しいタイプを有する1つまたは複数のアノテーションを含むアノテーションを新しい文書に追加することによって導入されることができる。こうしたシステムでは、探索エンジンは、新しいアノテーションタイプに対して参照を行う構造化クエリを処理することが可能である場合がある。その理由は、探索エンジンによって使用されるクエリ言語が新しいアノテーションタイプの定義を含まないからである。同様に、システムのクエリ定式化ユーザインタフェースは、新しいアノテーションタイプをユーザにプロンプト表示することが可能でない場合がある。その理由は、クエリ定式化ユーザインタフェースによって使用されるクエリ言語が新しいアノテーションタイプの知識を持たないからである。通常、既存のシステムにおいてこれらの問題に対処するために、システム管理者または他の人間ユーザが、クエリ言語を手動で更新する、またはその他の方法で、追加されたアノテーションタイプの知識によって探索エンジンおよび/またはクエリ定式化ユーザインタフェースを更新することが必要である。こうした手動による更新を必要とすることは、長々しく、時間がかかり、エラーを起こし易い。こうした更新が正確に実施されるときでさえ、文書コーパスに対する新しいアノテーションタイプの追加と、新しいアノテーションタイプを反映するようにクエリ言語が更新されるとき、したがって探索エンジンおよびクエリ定式化ユーザインタフェースが新しいアノテーションタイプの知識を得るときとの間に、ある程度の固有の遅延が存在し、それにより、システムのユーザがシステムを最適利用できない期間が生じる。文書コーパス内のコーディングは、前もって予測できない仕方で経時的に変化する場合がある。たとえば、1文書コーパスのユーザのニーズは、たとえば、規制の変化、処置レジメンに対する修正、および新しい調査研究のニーズの結果として経時的に進化する場合があり、2オントロジーは、用語を追加または洗練し、古い用語を軽視し、軽視される用語を新しい用語に置換えることによって経時的に進化する場合があり、3自然言語処理NLPアルゴリズムは、経時的に進化する場合があり、結果として、テキスト内のコーディングの精度を改善するために、文書コーパス内で以前にエンコードされた文書を再処理し、それにより再コード再アノテーション化することが可能とすることができる。したがって、文書が経時的にできる限り有用のままであることを保証するために、先に挙げた変化に応答して、経時的に文書内でマークアップを修正する能力を有することが必要である。しかし、既存のシステムは、こうしたマークアップ修正に応答して、自分の探索エンジンおよびクエリ定式化ユーザインタフェースを自動的に更新することが可能でない。本発明の実施形態は、探索エンジン、クエリ定式化ユーザインタフェース、および構造化探索システムの他のコンポーネントが、文書コーパスに追加されたアノテーションタイプの知識によって即座にかつ自動的に更新されることを可能にすることによって、既存の構造化探索システムのこれらのまた他の欠点に対処する。本発明の特定の実施形態を述べる前に、構造化探索を一般に実行するプロセスが、まず、より詳細に述べられる。文書コーパスに関して構造化探索を実施するプロセスは、2つの高位ステップ、すなわち、1選択たとえば、ペニシリンに対してアレルギー性があり、かつ、30歳と40歳との間である、文書コーパス内で表される全ての患者を見出すこと、および、2予測たとえば、こうしたそれぞれの患者について、患者のカレントメディケーションを論じる、患者についての文書複数可の部分複数可を取出すことを含む。選択クエリは、以下の形態の任意の形態など、種々の形態の任意の形態を、個々にまたは互いに組合せることができる。以下の形態とは、フリーフォームテキスト探索、文書たとえば、PenicillininAllergySectionアレルギーセクション内のペニシリン内のある概念たとえば、セクションに制限されたフリーフォームテキスト探索、コーディングアノテーション探索、たとえば、-オントロジーからの特定のコードの存在または非存在についての探索、-コードの一般化の存在についての探索たとえば、コードNeoplasm新生物についての探索は、タイプNeoplasmのコードと、オントロジーで表現されるISA関係によってNeoplasmコードに関連するオントロジー内の任意のコードの両方にマッチングすることができる、-所与の範囲たとえば、否定、極性たとえば、possibleたぶんおよびlikelyおそらく、時間、または対象の範囲内のコードまたはコードの一般化についての探索、-コンプレックスアノテーションについての探索であって、マッチングされる値複数可だけでなく、その値複数可に対してマッチングされる複雑なアノテーション内のコンポーネント複数可サブコード複数可をもクエリが指定する、探索。たとえば、allergyコンプレックスアノテーションでは、クエリは、allergyアノテーションのallergenフィールドアブアノテーション内のpenicillinについての探索を指定するであろう。ヘッダたとえば、患者名、患者年齢、処置する内科医複数可、文書タイプ、文章表題内のコンテキスト情報に関して実施されるコンテキスト情報探索、たとえば、-範囲探索たとえば、訪問日時、患者年齢、-フリーフォームテキスト探索たとえば、患者名、文書表題、-コーデッド情報たとえば、文書タイプ、受診の理由についての探索であって、クエリ用語を拡張するために、オントロジーを使用することによって一般化されることができる、探索。たとえば、noteメモタイプの文書についての探索は、タイプnoteの文書と、そのタイプがnoteのサブタイプである文書の両方についての探索に一般化されることができる。である。選択クエリは、たとえば、構造化クエリ、非構造化クエリ、または、構造化クエリと非構造化クエリの組合せ本明細書でmixedquery混合クエリと呼ばれるとすることができる。クエリの予測は、クエリの結果として、どの情報たとえば、選択によって識別された文書セットの一部または集合体が返送されるかを決定する。予測は、たとえば、以下のものの任意の1つまたは複数が、クエリの結果として返送されることを指定することができる。以下のものとは、選択用語たとえば、CurrentMedicationセクションによって識別される、各マッチング文書のあるセクション、各マッチング文書内のあるタイプのコーディングたとえば、タイプ<allergy>のコーディング、各マッチング文書についてのコンテキスト情報たとえば、患者名、患者年齢、処置する内科医、全てのマッチング文書のセットからの集約情報たとえば、全てのマッチのカウント、マッチのファセットである。本発明の実施形態による、構造化文書のある特徴および構造化文書を生成するためのある技法を一般的に述べたが、本発明の実施形態による、構造化文書を探索するためのある技法がここで述べられる。本発明の一実施形態では、図1に示すように、システム100は、複数の構造化文書104a~104n本明細書で、総称的に文書コーパス104と呼ばれるを含むコンテンツストア102を含む。ここで、nは任意の数字とすることができる。コンテンツストア102はまた、構造化文書104a~104nおよびユーザ情報108によって使用されるオントロジー106などの、文書コーパス104に関連するデータを含む。コンテンツストア102内の文書104a~104nは、たとえば、XMLフォーマットで表されることができる。文書104a~104nはそれぞれ、テキストおよび対応するマークアップ本明細書でアノテーションannotationまたはコーディングcodingとも呼ばれるを含むことができる。より具体的には、文書104aは、テキスト114aおよび対応するマークアップ116aを含み、文書104bは、テキスト114bおよび対応するマークアップ116bを含み、文書104nは、テキスト114nおよび対応するマークアップ116nを含む。システム100はまた、自然言語処理NLPフレームワーク110を含み、NLPフレームワーク110は、非構造化または半構造化データ平易なテキスト文書などをアノテートエンコードし、それにより、コンテンツストア102に追加されることができる構造化文書を生成するために使用されることができる。たとえば、既存の構造化文書104a~104b内のマークアップ116a~116nは、構造化文書104a~104nを生成するために、以前にNLP処理フレームワーク110によって生成され、非構造化文書に追加されている場合がある。NLPフレームワークは、文書内のセクションを認識すること、それらのセクションを離散的セクションとしてマークアップすること、オントロジー106SNOMEDCTなどに対して一般的な用語マッチングを実施すること、オントロジー106からのコードを使用してマッチングされた任意の用語をママークアップすることなど、NLPフレームワークが所有する文書に関して任意の種類のマークアップを実施することができる。より一般的には、NLP処理フレームワーク110は、先に参照した先に参照した2つの米国特許第7,584,103号および第7,716,040号に開示される任意の種類の概念を認識し、こうした認識された概念を表すアノテーションによって文書構造化文書104a~104nなどを相応してマークアップすることができる。こうした概念は、種々の方法のうちの任意の方法でエンコードされることができる。たとえば、ある概念は、単一値としてエンコードされることができる。たとえばSystolicBloodPressureMeasurement収縮期血圧測定概念は、特定の患者の収縮期血圧測定を表す単一数字を使用してエンコードされることができる。しかし、概念は、複数の値を使用して表されることができる点で複雑であるとすることができる。たとえば、概念SystolicBloodPressureMeasurementは、患者の血圧を測定するために使用されたデバイスに関する情報および患者の血圧が測定されたときの患者の状態たとえば、患者が立った状態で、寝た状態で、身体運動後に、または安静時などに測定が行われたかどうかに関する情報をさらに含むことができる。別の例として、SmokingStatus喫煙状態概念は、1患者の喫煙状態たとえば、目下の喫煙者、過去の喫煙者、または非喫煙者、2どれほどを患者が目下喫煙しているかたとえば、パック/日単位で測定される、および3過去の喫煙者について、患者がいつ喫煙を辞めたかを表す値を含むフィールド本明細書でsub-annotationサブアノテーションおよびsub-codeサブコードとも呼ばれるを使用してエンコードされることができる。先に述べたようい、こうした概念は、テキストおよびテキストのマークアップたとえば、XMLタグの組合せを使用して文書内で表されることができる。一般に、特定のテキストに対応するマークアップは、特定のテキストによって表される語義的および/または文法的概念を指定する。システム100はまた、複数のアノテーションタイプの定義162a~162nを含むクエリ言語定義160を含む。図1に4つの定義162a~162dが示されるが、クエリ言語定義160は、任意の数のアノテーションタイプ定義を含むことができる。一般に、アノテーションタイプ定義162a~162dはそれぞれ、コーディング内のアノテーションタイプを表すシンボルシンボル<allergy>など、アノテーションタイプの許容されるサブアノテーションタイプ、およびアノテーションタイプのインスタンス内で使用するための許容される値などの、特定の対応するアノテーションのタイプの関連特性を定義する。各アノテーション定義は、特定の概念をエンコードするためのアノテーションのタイプを定義することができ、異なるタイプのアノテーションは、異なる概念をエンコードすることができる。クエリ言語定義160は、対応するクエリ言語の他の態様を定義することができ、アノテーション定義162a~162nだけが、例示を容易にするために図1に示される。システス100はまた、文書コーパス104に関して構造化探索を実施するための探索エンジン120、および、ユーザ170が処理される構造化クエリを探索エンジン120によって定式化するのを支援するためのクエリ定式化ユーザインタフェース150を含む。より具体的には、ユーザ170は、部分的なまたは完全なクエリを表すテキスト入力、用語のドロップダウンリストから1つまたは複数の用語を選択するマウス入力、あるいはその任意の組合せなどのクエリ定式化入力152をクエリ定式化ユーザインタフェース150に提供する。クエリ定式化ユーザインタフェース150は、クエリ定式化入力152に基づいて構造化クエリ154を生成し、構造化クエリ154を探索エンジン120に提供する。探索エンジン120は、クエリ154を処理することによって文書コーパス104の構造化探索を実施し、もしあれば探索結果122をユーザ170に返送する。NLP処理フレームワーク110、探索エンジン120、およびクエリ定式化ユーザインタフェース150などのシステム100のコンポーネントは、文書コーパス104ならびに文書コーパス104が含むテキスト114a~114nおよびアノテーション116a~116nに直接作用する、または、テキスト114a~114nおよびアノテーション116a~116nの中間文書モデル図示せずを通して作用することができる。たとえば、これらのコンポーネント110、120、および150の任意の1つまたは複数は、JavaBeansなどのデータオブジェクトを使用して文書114a~114n内の概念を表すことができる。異なるオブジェクトクラスが、各概念アノテーションタイプについて定義されることができ、各データオブジェクトは、特定のオブジェクトクラスのインスタンスとすることができる。各クラスは、データオブジェクト内に記憶された値にアクセスするための自分自身の方法のセットを定義することができる。たとえば、SmokingStatusアノテーションタイプに対応するSmokingStatusクラスは、getStatus、getPacksPerDay、およびgetDateStoppedSmokingなどの方法を定義することができる。しかし、オブジェクトクラスおよびデータオブジェクトの使用は、本発明の要件ではない。したがって、以下の説明は、オブジェクトクラスおよびデータオブジェクトを使用することなく、文書コーパス104内のテキスト114a~114nおよびアノテーション116a~116nの直接の処理を述べることになる。しかし、当業者は、オブジェクトクラスおよびデータオブジェクトを使用し、他の方法で同じ機能を実施するために、本明細書で述べる技法を修正する方法を理解するであろう。NLP処理フレームワーク110、探索エンジン120、およびクエリ定式化ユーザインタフェース150などのシステム100のコンポーネントは、クエリ言語定義160にアクセスすることができる。結果として、探索エンジン120は、クエリ言語定義160に対するそのアクセスの結果として、特定の時点においてクエリ言語定義160内のアノテーション定義162a~162dの目下のセットによって定義されるアノテーションタイプを参照する構造化クエリを処理することによって構造化探索を実施することが可能とすることができる。逆に、探索エンジン120は、特定の時点においてクエリ言語定義160内のアノテーション定義162a~162dの目下のセットによって定義されないアノテーションタイプを参照する構造化クエリを処理することによって構造化探索を実施することが可能でないとすることができる。たとえば、図1の場合に、構造化クエリが、クエリ言語定義160内のアノテーションタイプ定義162a~162dの任意の定義によって定義されないアノテーションタイプを参照する場合、探索エンジン120は、こうしたクエリを正しく実行するためにエラーまたは失敗を信号送信することができる。同様に、クエリ定式化ユーザインタフェース150は、クエリ言語定義160に対するそのアクセスの結果として、特定の時点においてクエリ言語定義160内のアノテーション定義162a~162dの目下のセットによって定義されるアノテーションタイプを参照する構造化クエリを定式化するときの支援をユーザに提供することが可能とすることができる。たとえば、クエリ定式化ユーザインタフェースは、クエリ言語定義160によって定義されるアノテーションタイプ162a~162dを表すラベルのドロップダウンリストをユーザに提供すること、および/または、クエリ言語定義160によって定義されるアノテーションタイプ162a~162dを表すラベルのオートコンプリーションを提供することが可能とすることができる。逆に、クエリ定式化ユーザインタフェース150は、特定の時点においてクエリ言語定義160内のアノテーション定義162a~162dの目下のセットによって定義されないアノテーションタイプを参照する構造化クエリを定式化するときの支援をユーザに提供することが可能でないとすることができる。たとえば、クエリ定式化ユーザインタフェース150によって提供されるドロップダウンリストは、クエリ言語定義160が生成されて以来または最後に更新されて以来文書コーパス104に追加されたアノテーションのタイプを表すラベルなどの、特定の時点においてクエリ言語定義160内のアノテーション定義162a~162dの目下のセットによって定義されないアノテーションタイプを表すラベルを含まない場合がある。同様に、クエリ定式化ユーザインタフェース150は、特定の時点においてクエリ言語定義160内のアノテーション定義162a~162dの目下のセットによって定義されないアノテーションタイプを表すラベルをオートコンプリートすることが可能でないとすることができる。本発明の実施形態による、これらの問題を克服するために使用されることができる技法の例がここで述べられる。図1のシステム100の例とすることができるが、図1に示すシステム100より時期が早い、図2に示すシステム200aを考える。特に、図2では、NLP処理フレームワーク110は、コンテンツが特定のタイプのアノテーションでマークアップされるべきであることを認識し、また、そのタイプのアノテーションのインスタンスを生成し、文書コーパス104内の文書内に挿入するための単一NLP処理コンポーネント112aだけを含む。例のために、NLP処理コンポーネント112aは、患者の収縮期血圧を表すコンテンツをアノテートするためにタイプSystolicBloodPressureのアノテーションを認識し生成すると仮定する。同様に、図2Aにおいて、文書コーパス104は、テキスト114aおよび対応するアノテーション116aを含む単一文書104aだけを含む。例のために、テキスト114aは、患者の収縮期血圧を表すテキストを含み、また、こうしたテキストは、対応するアノテーション116a内のタイプSystolicBloodPressure収縮期血圧のアノテーションによってアノテートマークアップされる。このアノテーションは、文書104aを走査し、患者の収縮期血圧を表すテキストを文書104aが含んでいたことを認識することに応答してNLP処理コンポーネント112aによって生成されている場合がある。図2のクエリ言語定義160は、単一アノテーション定義162aだけを含む。例のために、アノテーション定義162aがアノテーションタイプSystolicBloodPressureを定義すると仮定する。したがって、クエリ定式化ユーザインタフェース150は、SystolicBloodPressureなどの、アノテーションタイプを参照する構造化クエリをユーザが定式化するのを支援することが可能であり、探索エンジン120は、こうした構造化クエリを処理することによって構造化探索を実施することが可能である。したがって、図2Aに示す時点で、探索エンジン120は、SystolicBloodPressureアノテーションタイプ以外のアノテーションタイプを参照する構造化クエリを処理することによって構造化探索を実施することが可能でないとすることができる。たとえば、SmokingStatusアノテーションタイプを参照するクエリを処理することによって構造化探索を実施するために探索エンジン120を使用しようとするユーザによる試みは、探索エンジン120に、こうしたクエリを正しく実行するためにエラーまたは失敗を信号送信するようにさせる。同様に、図2Aに示す時点で、クエリ定式化ユーザインタフェース150は、SmokingStatusアノテーションタイプなどの、SystolicBloodPressureアノテーションタイプ以外のアノテーションタイプを参照する構造化クエリを定式化するときの支援をユーザに提供することが可能でない場合がある。ここで、図1のシステム100の例とすることができるが、図1に示すシステム100より時期が早く、かつ、図2に示すシステム200aより時期が遅い、図2Bに示すシステム200bを考える。さらに、本発明の一実施形態において図2Bのシステム200bによって実施される方法300のフローチャートを示す。特に、図2Bにて、新しい文書104bが、文書コーパス104に追加された図3、ステップ302。新しい文書104bは、患者の喫煙状態を表すテキスト114bを含む。図2Bに示す特定の例では、文書104bは、平易なテキスト文書であり、したがって、テキスト114bのアノテーションを全く含まない。図2Bにて、新しいNLP処理コンポーネント112bが、NLP処理フレームワーク110に追加された図3、ステップ304。NLP処理コンポーネント112bは、1患者の喫煙状態を表すテキストを認識すること、および、2こうしたテキストをアノテートするために、SmokingStatusアノテーションタイプのインスタンスを生成し、文書に挿入することが可能である。NLP処理フレームワーク110は、新しいNLP処理コンポーネント112bを使用して、患者の喫煙状態を表す新しい文書内のテキストを認識することができる図3、ステップ306。簡潔にするために、新しい文書104bのテキスト114b内のまさに1つの節が患者の喫煙状態を表すと仮定する。この場合、NLP処理コンポーネント112bは、こうしたテキストを認識し、SmokingStatusアノテーションタイプのインスタンスであるアノテーションを生成し図3、ステップ308、アノテーション116bとして文書104b内にアノテーションを挿入することができる図3、ステップ310。文書104b内にアノテーション116bを挿入することは、テキスト114bとアノテーション116bが、その後互いに相関するように、アノテーション116bを対応するテキスト114bに関連付けることを含むことができる。その結果は、図2Cのシステム200cによって示される。NLP処理フレームワーク110は、たとえば、文書コーパス104に対する新しい文書104bの追加に応答して、新しい文書104bに対して目下のNLP処理コンポーネント112a~112dの全てを適用することによってステップ306~310を実施することができる。あるいは、たとえば、NLP処理フレームワーク110は、文書コーパス104内の文書104a~104bの全てに対して新しいNLP処理コンポーネント112bだけを適用することによってステップ306~310を実施することができる。この場合、患者の喫煙状態を表す既存の文書104a内の任意のテキストはまた、タイプSmokingStatusのアノテーションでアノテートされることになる。NLP処理フレームワーク110は、文書コーパス104内のアノテーションができる限り最新になることを保証するために、文書コーパス104内の文書の全てに対してNLP処理フレームワーク110内のNLP処理コンポーネントの全てを定期的にたとえば、1時間ごとに、毎日、毎週適用することができる。したがって、NLP処理フレームワーク110は、文書コーパス104に対して文書が全く追加されないときでも、新しいアノテーションタイプのインスタンスを生成することができる。たとえば、やはり文書コーパス104が文書104aだけを含む図2Aのシステムを考える。ここで、文書104aは、患者の収縮期血圧を表すテキストと患者の喫煙状態を表すテキストの両方を含むと仮定する。図2AのNLP処理フレームワーク110は、文書104aを処理する場合、NLP処理コンポーネント112aを使用して、文書104a内でタイプSystolicBloodPressureのアノテーションを生成することになるが、文書104aに対してタイプSmokingStatusのアノテーションを生成しないことになる。その理由は、図2BのSmokingStatusNLP処理コンポーネント112bが、図2AのNLP処理フレームワーク110にいまだ追加されていないからである。しかし、SmokingStatusNLP処理コンポーネント112bが、図2Bに示すようにNLP処理フレームワーク110に追加され、NLP処理フレームワーク110が、次に文書104aの未修正テキスト114aにSmokingStatusNLP処理コンポーネント112bを適用する場合、SmokingStatusNLP処理コンポーネント112bは、文書104a内で患者の喫煙状態を表すテキストを認識し、相応して文書104a内でSmokingStatusアノテーションを生成することになる。この例が示すように、文書コーパス104に対する新しい文書の追加は、新しいアノテーションタイプのインスタンスの生成について必要でない。元の文書104aが、患者の喫煙状態を表すテキストを元の文書104aに追加することによって修正された場合、同様の結果が生じることになる。この場合、文書104aの修正バージョンに対して新しいSmokingStatusNLP処理コンポーネント112bを適用することは、NLP処理コンポーネント112bに、修正されたテキストを認識させ、相応してSmokingStatusアノテーションを生成させ、文書104a内に挿入させる。これは、文書コーパス104に対する新しい文書の追加が、新しいアノテーションタイプのインスタンスの生成について必要でないことをさらに示す。クエリ言語定義160は、新しいアノテーションタイプすなわち、新しいNLPコンポーネント112bによって認識されるアノテーションタイプの定義を含むために更新される図3、ステップ312。結果として、クエリ言語定義160は、図2Dのシステム200dに示すように、新しいアノテーションタイプの定義162bを含む。こうした更新は、種々の方法で実施されることができる。たとえば、クエリ言語定義160は、文書コーパス104に対する新しいタイプのアノテーションたとえば、アノテーション116bの追加に応答して更新されることができる。アノテーションのタイプがクエリ言語定義160内に対応するアノテーション定義を持たない場合、アノテーションはnew新しいタイプである。こうしたアノテーションは、たとえば、文書コーパス104内に現れる、そのタイプの最初のものとすることができる。クエリ言語定義160は、たとえば、自動的にたとえば、自然言語処理フレームワーク110によってまたはシステム200の人間ユーザによって手動で修正されることができる。たとえば、クエリ言語定義160がSmokingStatusアノテーションタイプの定義を含まず、かつ、NLP処理フレームワーク110が、文書コーパス104内の文書104a~104dのうちの1つの文書に対してタイプSmokingStatusのアノテーションを追加する場合、こうしたアノテーションは、newタイプのアノテーションである。システム100は、文書コーパス104に対するこうしたアノテーションの追加に応答してクエリ言語定義160を更新することができる。文書コーパス104に対する新しいアノテーションの追加は、種々の方法のうちの任意の方法で検出されることができる。たとえば、NLP処理フレームワーク110は、対応するアノテーションを文書コーパス104内に挿入するための新しいNLP処理コンポーネントNLP処理コンポーネント112bの最初の使用によって、新しいタイプのアノテーションが文書コーパス104に追加されたと判定し、こうした判定に応答して、NLP処理フレームワーク110は、クエリ言語更新202をクエリ言語定義160に送出することができる図2C。クエリ言語更新202は、新しいアノテーション定義162bおよびクエリ言語定義160に対して新しいアノテーション定義162bを追加するための対応する命令を含むことができる。更新202を受信することに応答して、クエリ言語定義160は、クエリ言語定義160がアノテーション定義162bを既に含んでいない場合アノテーション定義162bを含むように更新されることができる。別の例として、システム100のNLP処理フレームワーク110または何らかの他のコンポーネントは、文書コーパス104が最後に走査されてから文書コーパス104内で起こらなかったタイプを有するアノテーションを識別すること、または、クエリ言語定義160内で定義を持たないタイプを有するアノテーションを識別することなどによって、新しいタイプのアノテーションを検出するために自然言語処理を適用することによって文書コーパス104を定期的に構文解析することができる。こうした新しいアノテーションタイプを検出することに応答して、クエリ言語定義160は、新しいアノテーションタイプの定義を含むように更新されることができる。新しいタイプのアノテーションを有する文書がNLP処理フレームワーク110を使用してアノテートされている必要がないことに留意された。たとえば、NLP処理フレームワーク110によって生成されない既存のアノテーションを含む文書は、文書コーパス104内にインポートされることができる。別の例として、文書コーパス104内のある文書は、手動で、または、NLP処理フレームワーク110以外の何らかの他のメカニズムを使用してアノテートされることができる。こうした文書は、クエリ言語定義160を更新するために使用されることができる新しいタイプのアノテーションを識別するためにNLPフレームワーク110を使用してまたは使用せずに走査されることができる。新しいタイプを有するアノテーションは、NLPフレームワーク110内のNLP処理コンポーネント112aによって認識されることが可能なタイプを持つ場合があるまたは持たない場合がある。たとえば、タイプCurrentMedicationの既存のアノテーションを含む新しい文書は、NLPフレームワーク110内のNLP処理コンポーネント112a~112nがいずれも、1患者のカレントメディケーションを表すコンテンツを認識すること、または、2タイプCurrentMedicationのアノテーションを生成することが可能でなくても、文書コーパス104内にインポートされることができる。それでも、新しい文書内のタイプCurrentMedicationのアノテーションは、システム100によって識別され、クエリ言語定義160の更新をトリガーするために使用されることができる。これらの例が示すように、新しいNLP処理コンポーネントが全くNLPフレームワーク110に追加されない場合でも、新しいタイプのアノテーションが検出されることができ、対応するアノテーション定義が、クエリ言語定義160に追加されることができる。さらに、既存のタイプのアノテーションに対する修正は、上述した技法と同様の技法を使用して検出されることができる。たとえば、システム100は、文書コーパス104内の新しいまたは既存の文書を走査し、既存のタイプであるが、クエリ言語定義160内の対応するアノテーション定義において反映されないフィールドサブコードを含むアノテーションを検出する場合、新しく発見されたフィールドを反映するためにそのアノテーション定義を更新することができる。さらに、新しいNLP処理コンポーネントすなわち、クエリ言語定義160内の対応するアノテーション定義を持たないタイプのアノテーションを生成することが可能であるNLP処理コンポーネントの単なる追加は、新しいNLP処理コンポーネントによって生成されることが可能なアノテーションのタイプの定義を含むために、クエリ言語定義160の更新をトリガーすることができる。クエリ言語定義160は、新しいNLP処理コンポーネントによって生成されることが可能なタイプのアノテーションが文書コーパス104内で起こるか否かによらず、こうした新しいNLP処理コンポーネントの追加に応答して、更新されることができる。新しいアノテーション定義162bを含むためにクエリ言語定義160が更新されると、ユーザは、次に、クエリ定式化入力152をクエリ定式化ユーザインタフェース150に提供することができ図3、ステップ314、その間に、クエリ定式化ユーザインタフェース150は、新しいアノテーションタイプを参照する構造化クエリをユーザ170が定式化するのを支援することができる図3、ステップ316。クエリ定式化ユーザインタフェース150は、種々の形態の任意の形態をとることができる。たとえば、クエリ定式化ユーザインタフェース150は、ユーザ170がそれを通してクエリ154をタイプすることができるテキストベースユーザインタフェースを含むことができる。別の例として、ユーザインタフェース150は、グラフィカルユーザインタフェースを含むことができ、グラフィカルユーザインタフェースを通して、ユーザ170は、キーワードGETおよびFORなど、アノテーションタイプおとびフィールドの名前SmokingStatusおよびpacksPerDayパック/日など、およびブール代数コネクタANDおよびORなどを選択して、クエリ154を形成することができる。先に述べたように、クエリ定式化ユーザインタフェース150は、クエリ言語定義160にアクセスすることができ、したがって、新しいアノテーションタイプの定義162bがクエリ言語定義160にたった今追加された場合であっても、新しいアノテーションタイプの名前をユーザにプロンプト表示する、またはその他の方法で、新しいアノテーションタイプに関連する支援を提供することができる。換言すれば、クエリ定式化ユーザインタフェース150は、単にクエリ言語定義160に対するアノテーション定義162bの追加に応答して、また、システム100またはシステム100の任意のコンポーネントをポーズする、リコンパイルする、リローンチする、リブートする、またはその他の方法で再構成する必要なしで、新しいタイプのアノテーションを参照する構造化クエリをユーザ170が定式化するのを支援することが自動的に可能になる。たとえば、クエリ定式化ユーザインタフェース150は、目下のカーソルロケーションでクエリに挿入されることができる許容される用語アノテーションタイプの名前などのドロップダウンリストをユーザ170に提供することができる。このリストは、新しいアノテーションタイプの名前または他の識別子たとえば、SmokingStatusを含むことができる。ユーザ170は、こうした名前または識別子を選択し、それにより、クエリ定式化ユーザインタフェース150に、新しいアノテーションタイプを参照する用語を構造化クエリ154に追加させることができる。クエリ定式化ユーザインタフェース150は、アノテーションタイプ162a~162dによって定義されるアノテーションのタイプに関する情報をクエリ言語定義160から得ることによってドロップダウンリスト150を生成することができる。別の例として、クエリ定式化ユーザインタフェースは、構造化クエリ154を定式化するプロセスにおいてユーザ170によって目下タイプされる用語を完結させるために、許容される用語をユーザ170にプロンプト表示することができるautocomplete機能を含むことができる。こうした許容される用語は、新しく追加されたアノテーションタイプの名前または他の識別子を含むことができる。たとえば、構造化クエリ154をタイプするプロセスにおいて、ユーザ170は、Smokをタイプし、クエリ定式化ユーザインタフェース150は、Smokの許容されるコンプリーションとしてSmokingStatusを提供することができる。ユーザ170は、次に、SmokingStatusを選択し、それにより、クエリ定式化ユーザインタフェース150に、構造化クエリ154に用語SmokingStatusを追加させることができる。ユーザ170は、所望に応じて、他の用語を構造化クエリ154に追加することができる。クエリ定式化ユーザインタフェース150は、結果として得られる構造化クエリ154を探索エンジン120に提供することができ、探索エンジン120は、構造化クエリ154に基づいて文書コーパス104に関して構造化探索を実施することができ、それにより、探索結果122を生成することができる図3、ステップ318。探索エンジン120は、探索結果122をユーザ170に提供することができる図3、ステップ320。先に述べたように、探索エンジン120は、クエリ言語定義160にアクセスすることができ、したがって、その定義162bがクエリ言語定義160にたった今追加されたアノテーションの新しいタイプを構造化クエリ154が参照する場合であっても、構造化クエリ154を処理することができる。換言すれば、探索エンジン120は、単にクエリ言語定義160に対するアノテーション定義162bの追加に応答して、また、システム100またはシステム100の任意のコンポーネントをポーズする、リコンパイルする、リローンチする、リブートする、またはその他の方法で再構成する必要なしで、新しいタイプのアノテーションを参照する構造化クエリを処理することが自動的に可能になる。構造化探索を実施するプロセス図3、ステップ318は、2つのステップ、すなわち選択および予測を含むことができる。選択および予測図示せずを実施する探索エンジン120のサブコンポーネントは、クエリ言語定義160にアクセスすることができ、したがって、その定義162bがクエリ言語定義160にたった今追加されたアノテーションのタイプを参照するクエリ用語を使用して、選択および予測をそれぞれ実施することができる。たとえば、.SmokingStatus.packsPerDay>2AND.SmokingStatus.status=ACTIVEなどのクエリを考える。探索エンジン120の選択コンポーネントは、文書コーパス104によって記載される患者から、1日当たり2パックより多くを目下喫煙している全ての患者を選択することによって、こうしたクエリを処理することができる。別の例として、クエリGETSmokingStatusFOR.finding.codeisA<Neoplasm>を考える。このクエリは、選択要求FOR.finding.codeisA<Neoplasm>および予測要求GETSmokingStatusを含む。探索エンジン120の選択コンポーネントは、任意の種類の新生物の臨床所見の論議を含む、文書コーパス104内の全ての文書を見出すために選択要求を処置することによって、また、選択要求からもたらされた、文書コーパス104内に記載される患者の喫煙状態を返送するために予測要求を処理することによって、こうしたクエリを処理することができる。したがって、一般に、クエリ言語定義160によって定義されるクエリ言語を使用して形成されることができるクエリは、経時的に、自動的に、文書コーパス104内に含まれるアノテーションの経時的な変化に応答して増大し変化することができる。先の説明が明確にするように、本発明の実施形態は種々の利点を有する。たとえば、本明細書で開示される技法は、非常に特異的な構造化クエリが高い信頼性を持って処理されることを可能にする。その理由は、探索可能なアノテーションタイプのセットが文書コーパス104内の構造化コンテンツに直接対応しており、また、処理されるクエリが、単に平易なテキストではなく、こうしたアノテーションタイプを特に参照することができるからである。これは、構造化クエリが、文書コーパス104内のコンテンツの語義的および/または文法的意味を考慮することを可能にし、それにより、偽陽性と偽陰性の両方を減少させる。本発明の実施形態の別の利点は、本発明の実施形態が、動的に拡張可能である文書を探索するために使用されるクエリ言語を使用可能にすることである。こうした拡張は、文書コーパス104内の対応する探索可能な構造化文書104a~104nの変化に応答して自動的に行われることができる。結果として、こうした拡張を行うためのさらなる努力は、エンドユーザまたはシステム管理者の部分に関して全く必要とされない。さらに、こうした自動的でかつ動的な拡張の結果として、ユーザが文書104a~104nの最新のmostcurrent状態を反映することがいつの時点でも常に可能であり、探索エンジン120がこうしたクエリを処理することがいつの時点でも常に可能である。これは、考えられる最大の表現力を有するクエリがいつでも実施されることを可能にし、それにより、ユーザが、必要とする情報を迅速にかつ正確に見出すことができる可能性を高める。既存の構造化クエリシステムの1つの欠点は、非構造化コンテンツをアノテートして、そのコンテンツを構造化コンテンツに変換するコンポーネントを、そのコンテンツに関して構造化クエリを実施することが可能になる前に生成するよう、こうしたシステムの設計者にシステムが要求することである。既存の構造化クエリシステムの関連する欠点は、こうしたシステムのクエリ言語定義を手動で構成して、クエリ言語定義が新しい種類の構造化コンテンツに関して構造化探索を実施することが可能になるようにさせることが必要であることである。さらに上述したように、非構造化クエリシステムの対応する利点は、システムがこうした先行投資を必要としないこと、および、非構造化クエリが、こうしたコンテンツをアノテートすることなく、いずれの非構造化コンテンツ上でも実行されうることである。しかし、非構造化クエリシステムの欠点は、システムが、構造化クエリを実施できず、したがって、構造化クエリシステムの精度および深度を有する探索結果を得ることができないことである。本発明の実施形態は、構造化クエリシステムと非構造化クエリシステムの両方の利点を含むシステムを提供することによってこれらの問題に対処する。特に、本発明の実施形態は、非構造化コンテンツが、構造化クエリを使用して、しかし、システムを手動で構成して、システムがこうした構造化クエリを実施することが可能になるようにさせることをシステムの設計者または管理者に要求することなく、クエリされることを可能にする。代わりに、本発明の実施形態は、非構造化コンテンツを自動的にアノテートして、そのコンテンツを構造化コンテンツに変換すると共に、新しくアノテートされたコンテンツに関して構造化クエリをシステムが実施できるように、システムのクエリ言語定義を自動的に更新することができる。結果として、システムのユーザは、新しいコンテンツが最小の努力でシステムに追加されるため、新しいコンテンツに関して構造化クエリを実施できる。本発明の実施形態の別の利点は、本発明の実施形態が、混合コンテンツデータセット、すなわち非構造化コンテンツたとえば、物語テキストと構造化テキストたとえば、離散的事実の両方を含むデータセットの進化的かつ動的な理解を生じるために使用されることができることがでる。非構造化コンテンツがアノテートされるため、非構造化コンテンツの意味のより深い理解が得られ、アノテーションの形態で記録される。システム内の新しくアノテートされたコンテンツを含む混合コンテンツに関して構造化クエリをシステムが実施することを可能にするためにシステムのクエリ言語を動的に更新することは、混合コンテンツから情報がより容易に抽出されることを可能にする。こうした情報は、その後、コンテンツをさらにアノテートするために使用されることができる。結果として、本発明の実施形態は、システムのコンテンツのより深い理解が経時的に得られる正フィードバックループを可能にする。特定の実施形態によって本発明が上述されたが、先の実施形態は、単に例証として提供され、本発明の範囲を限定または規定しないことが理解される。限定はしないが以下を含む種々の他の実施形態もまた特許請求の範囲内にある。たとえば、本明細書で述べる要素およびコンポーネントはさらに、さらなるコンポーネントに分割されることができる、または、共に結合されて、同じ機能を実施するためのより少数のコンポーネントを形成することができる。上述したように、構造化文書は、テキストおよび/またはコンテンツが、アノテーションによってマークアップされる文書である。こうしたアノテーションは、XMLタグの形態などで、構造化文書自体内にあるとすることができる。あるいは、たとえば、アノテーションは、文書の外部にあるとすることができるが、その意味がアノテーションによって示されるコンテンツにリンクされるまたはその他の方法で関連付けられることができる。XMLが、本発明の種々の実施形態の説明に関連して使用されるが、これらは、例に過ぎず、本発明の制限を構成しない。アノテーションは、XML以外の表現を使用して表されることができる。先に述べたいくつかの例では、構造化文書は、スピーチをトランスクライブすることによって生成される。しかし、これは、本発明の制限ではない。むしろ、本発明の実施形態に関連して使用される構造化文書は、スピーチをトランスクライブすることによってだけでなく、任意の方法で生成されることができる。たとえば、構造化文書は、文書内のテキストによって表される概念たとえば、セクションをエンコードするコーディングアノテーションによって既存の平易なテキスト文書をマークアップすることによる本発明の実施形態に従って生成されることができる。本明細書で述べるいくつかの例では、アノテートされるtextテキストが参照されるが、テキストは、本発明の実施形態を適用することができるある種類のコンテンツの例として単に提供され、本発明の制限を構成しない。むしろ、文書内のtextに対する本明細書におけるいずれの参照も、オーディオ、ビデオ、および/または他のコンテンツに同様に当てはまる。同様に、本明細書で述べるいくつかの例は、document文書の使用を含むが、本明細書で使用される用語documentは、テキストを含む、または、テキストを含むだけである文書に限定されない。むしろ、本明細書で使用される用語documentは、任意の種類のコンテンツを含む、コンピュータ可読媒体上に有形に記憶された任意のデータ構造当てはまる。クエリ言語定義160は、システム100の他のコンポーネントと別個であるとして図1および図2A~2Dに示されるが、これは、本発明の要件ではない。たとえば、クエリ言語定義160は、自然言語処理フレームワーク110、探索エンジン120、およびクエリ定式化ユーザインタフェース150の1つまたは複数に統合されることができる。結果として、クエリ言語定義160を修正することは、探索エンジン120を修正して、修正型探索エンジンを生成することができ、かつ/または、クエリ定式化ユーザインタフェース150を修正して、修正型クエリ定式化ユーザインタフェースを生成することができる。クエリ言語定義160の異なる表現が、NLP処理フレームワーク110、探索エンジン120、およびクエリ定式化ユーザインタフェース150によって使用されることができる。さらに、クエリ言語定義160a~160dは、任意の方法でアノテーション定義162a~162dを表すことができる。NLP処理コンポーネント112a~112nは、図1および図2A~2DのNLP処理フレームワークに含まれるものとして示されるが、これは、本発明の制限ではない。代わりに、たとえば、NLP処理コンポーネント112a~112nは、NLP処理フレームワーク110の外部にあるとすることができ、その場合、NLP処理コンポーネント112a~112nは、自然言語処理を文書コーパス104に適用するときにどのNLP処理コンポーネント112a~112nを使用すべきかをNLP処理フレームワーク110がわかるように、NLP処理フレームワーク110によって登録されることができる。クエリ定式化ユーザインタフェース150はオプションである。さらに、たとえクエリ定式化ユーザインタフェース150が使用される場合でも、クエリ定式化ユーザインタフェース150は、探索エンジン120と同じシステムの一部である必要はない。構造化クエリ154は、クエリ定式化ユーザインタフェース150を使用することなく生成されることができる。たとえば、構造化クエリ154は、ユーザ170によってではなく、ソフトウェアによって自動的に生成されることができる。上述した技法は、たとえば、ハードウェア、コンピュータ可読媒体上に有形に記憶されたソフトウェア、ファームウェア、またはその任意の組合せで実装されることができる。上述した技法は、プロセッサを含むプログラム可能なコンピュータ上で実行される1つまたは複数のコンピュータプログラム、プロセッサによって読出し可能な記憶媒体たとえば、揮発性および不揮発性メモリおよび/または記憶要素、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスで実装されることができる。プログラムコードは、入力デバイスを使用して入力される入力に適用されて、述べた機能を実施し、出力を生成することができる。出力は、1つまたは複数の出力デバイスに提供されることができる。添付特許請求の範囲内の各コンピュータプログラムは、アセンブリ言語、機械言語、高位手続き型プログラミング言語、またはオブジェクト指向プログラミング言語などの任意のプログラミング言語で実装されることができる。プログラミング言語は、たとえば、コンパイル済みまたはインタープリト済みプログラミング言語とすることができる。こうした各コンピュータプログラムは、コンピュータプロセッサが実行するために、機械可読記憶デバイスで有形に具現化されるコンピュータプログラム製品で実装されることができる。本発明の方法ステップは、コンピュータ可読媒体上に有形に具現化されるプログラムを実行するコンピュータプロセッサによって実施されて、入力に作用し、出力を生成することによって本発明の機能を実施することができる。適したプロセッサは、例として、汎用マイクロプロセッサと専用プロセッサの両方含む。一般に、プロセッサは、読出し専用をメモリおよび/またはランダムアクセスメモリから命令およびデータを受信する。コンピュータプログラム命令を有形に具現化するのに適した記憶デバイスは、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスを含む、半導体メモリデバイスなどの不揮発性メモリ、内部ハードディスクおよび取外し可能なディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMの全ての形態を含む。上記の全ては、特別に設計されたASIC特定用途向け集積回路またはFPGAフィールドプログラマブルゲートアレイによって補完される、または、それに組込まれることができる。コンピュータは、一般に、内部ディスク図示せずまたは取外し可能なディスクなどの記憶媒体からプログラムおよびデータを受信することもできる。これらの要素はまた、従来のデスクトップまたはワークステーションならびに本明細書で述べる方法を実装するコンピュータプログラムを実行するのに適した他のコンピュータにおいて見出されることになり、それらの要素は、任意のデジタルプリントエンジンまたはマーキングエンジン、ディスプレイモニタ、あるいは、紙、フィルム、ディスプレイスクリーン、または他の出力媒体上にカラーまたはグレースケールピクセルを生成することが可能な他のラスター出力デバイスと共に使用されることができる。"