(57)【特許請求の範囲】
【請求項１】
コンピュータドメインのオントロジを言語間にマッピングする方法であって、
コンピュータシステムが、第１言語の第１オントロジを受付けるステップを含み、前記第１オントロジは、第１複数の見出語と、前記複数の見出語間の複数の関係とを有し、
前記コンピュータシステムが、第２言語の第２複数の見出語を受付けるステップを含み、前記第２複数の見出語は、ウェブドメインの前記第２言語のバージョンから生成され、前記第１複数の見出語は、同じ前記ウェブドメインの前記第１言語のバージョンから生成され、
前記コンピュータシステムが、前記第２言語の前記第２複数の見出語の各々を前記第１言語の前記第１複数の見出語内の対応する見出語にマッピングするステップと、
前記コンピュータシステムが、前記第１オントロジ内の前記複数の関係をテンプレートとして使用して前記第２複数の見出語を相互に関連付けすることによって、前記第２言語の前記第２複数の見出語間の関係を作成するステップと、
前記コンピュータシステムが、前記第２複数の見出語と前記第２複数の見出語間の関係とを含む第２オントロジを生成するステップとを含む、方法。
【請求項２】
前記第１オントロジは、前記第１複数の見出語によって表される概念の相互関係を符号化する言語に依存しないオントロジを含む、請求項１に記載の方法。
【請求項３】
前記第２複数の見出語は、所定の長さよりも短く、少なくとも所定の回数でコーパスに出現するｎグラムを含む、請求項１または２に記載の方法。
【請求項４】
前記第１オントロジの前記複数の関係は、前記第２オントロジに直接挿入される、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記第２言語の前記第２複数の見出語の各々を前記第１言語の前記第１複数の見出語内の対応する見出語にマッピングするステップは、前記第２言語の前記第２複数の見出語を前記第１言語に翻訳することを含む、請求項１から４のいずれか１項に記載の方法。
【請求項６】
命令を含むコンピュータ可読プログラムであって、前記命令は、１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに以下の操作を実行させ、当該操作は、
第１言語の第１オントロジを受付ける操作を含み、前記第１オントロジは、第１複数の見出語と、前記複数の見出語間の複数の関係とを有し、
第２言語の第２複数の見出語を受付ける操作を含み、前記第２複数の見出語は、ウェブドメインの前記第２言語のバージョンから生成され、前記第１複数の見出語は、同じ前記ウェブドメインの前記第１言語のバージョンから生成され、
前記第２言語の前記第２複数の見出語の各々を前記第１言語の前記第１複数の見出語内の対応する見出語にマッピングする操作と、
前記第１オントロジ内の前記複数の関係をテンプレートとして使用して、前記第２複数の見出語を相互に関連付けすることによって、前記第２言語の前記第２複数の見出語間の関係を作成する操作と、
前記第２複数の見出語と前記第２複数の見出語間の関係とを含む第２オントロジを生成する操作とを含む、コンピュータ可読プログラム。
【請求項７】
前記第１オントロジは、前記第１複数の見出語によって表される概念の相互関係を符号化する言語に依存しないオントロジを含む、請求項６に記載のコンピュータ可読プログラム。
【請求項８】
前記第２複数の見出語は、所定の長さよりも短く、少なくとも所定の回数でコーパスに出現するｎグラムを含む、請求項６または７に記載のコンピュータ可読プログラム。
【請求項９】
前記第１オントロジの前記複数の関係は、前記第２オントロジに直接挿入される、請求項６から８のいずれか１項に記載のコンピュータ可読プログラム。
【請求項１０】
前記第２言語の前記第２複数の見出語の各々を前記第１言語の前記第１複数の見出語内の対応する見出語にマッピングする操作は、前記第２言語の前記第２複数の見出語を前記第１言語に翻訳することを含む、請求項６から９のいずれか１項に記載のコンピュータ可読プログラム。
【請求項１１】
システムであって、
１つ以上のプロセッサと、
命令を含む１つ以上の記憶装置とを備え、前記命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに以下の操作を実行させ、当該操作は、
第１言語の第１オントロジを受付ける操作を含み、前記第１オントロジは、第１複数の見出語と、前記複数の見出語間の複数の関係とを有し、
第２言語の第２複数の見出語を受付ける操作を含み、前記第２複数の見出語は、ウェブドメインの前記第２言語のバージョンから生成され、前記第１複数の見出語は、同じ前記ウェブドメインの前記第１言語のバージョンから生成され、
前記第２言語の前記第２複数の見出語の各々を前記第１言語の前記第１複数の見出語内の対応する見出語にマッピングする操作と、
前記第１オントロジ内の前記複数の関係をテンプレートとして使用して前記第２複数の見出語を相互に関連付けすることによって、前記第２言語の前記第２複数の見出語の相互関係を作成する操作と、
前記第２複数の見出語と前記第２複数の見出語間の関係とを含む第２オントロジを生成する操作とを含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１４年１１月１０日に出願され、「言語入力データからのＮグラムから概念関係の自動一括生成」と題された米国仮特許出願第６２／０７７８６８号の優先権を主張する。また、本願は、２０１４年１１月１０日に出願され、「見出語と汎用オントロジとのマッピング」と題された米国仮特許出願第６２／０７７８８７号の優先権を主張する。これらの出願の各々は、あらゆる目的で参照により本明細書に組み込まれる。
【０００２】
以下の２０１５年７月７日と同一日付に出願された３つの出願は、すなわち、２０１５年７月７日にFabrice Nauzeらによって出願され、「言語入力データからＮグラムおよび概念関係の自動生成」と題された米国特許出願第１４／７９３６７７号（代理人整理番号８８３２５−９３４１６０）、２０１５年７月７日にMargaret Salomeらによって出願され、「自然言語処理アプリケーション用のオントロジの自動生成」と題された米国特許出願第１４／７９３７０１号（代理人整理番号８８３２５−９１３８２６）、および２０１５年７月７日にFabrice Nauzeらによって出願され、「コンピュータ自然言語処理における見出語と汎用オントロジとのマッピング」と題された米国特許出願第１４／７９３６５８号（代理人番号：８８３２５−９３４１６１）は、相互関連している。これらの出願の各々は、参照により本明細書に組み込まれる。
【背景技術】
【０００３】
背景
一般的な意味では、オントロジは、基本概念および概念間の相互関係に関する哲学的研究である。オントロジは、どの実体が存在するか、その実体をどのように階層に論理的に分類するか、およびどのような類似性および／または相違性を用いて、オントロジの概念グループを互いに分離するかに関する課題を取り扱う。コンピュータおよび情報科学において、通常のオントロジは、特定のコンピューティングドメインに本質的に存在する種類、性質および関係の命名および定義に変換される。例えば、オントロジは、一連の計算に必要とされる変数を区画化し、これらの変数間の関係を形成することができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
簡単な要約
一実施形態において、オントロジを言語間にマッピングする方法は、第１言語の第１オントロジを受信するステップを含むことができる。第１オントロジは、第１複数の見出語と、複数の見出語間の複数の関係とを含む。また、この方法は、第２言語の第２複数の見出語を受信するステップと、第２言語の第２複数の見出語の各々を第１言語の第１複数の見出語の各々にマッピングするステップとを含むことができる。さらに、この方法は、第１オントロジ内の複数の関係を用いて第２言語の第２複数の見出語間の関係を作成することによって、第２言語の第２オントロジを生成するステップを含むことができる。
【０００５】
別の実施形態において、非一時的なコンピュータ可読媒体が提供される。コンピュータ可読媒体は、一連の命令を含むことができる。命令は、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに以下の操作の処理を実行させる。当該操作は、第１言語の第１オントロジを受信する操作を含み、第１オントロジは、第１複数の見出語と、複数の見出語間の複数の関係とを有する。また、当該操作は、第２言語の第２複数の見出語を受信する操作と、第２言語の第２複数の見出語の各々を第１言語の第１複数の見出語内の対応する見出語にマッピングする操作とを含むことができる。さらに、当該操作は、第１オントロジ内の複数の関係を用いて、第２言語の第２複数の見出語の相互関係を作成することによって、第２言語の第２オントロジを生成する操作とを含むことができる。
【０００６】
さらに別の実施形態において、システムが提供される。このシステムは、１つ以上のプロセッサと、１つ以上のプロセッサと通信可能に結合され、プロセッサによって読取可能なメモリとを含むことができる。メモリは、一連の命令を含むことができる。命令は、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに以下の操作を実行させる。当該操作は、第１言語の第１オントロジを受信する操作を含み、第１オントロジは、第１複数の見出語と、複数の見出語間の複数の関係とを有する。また、当該操作は、第２言語の第２複数の見出語を受信する操作と、第２言語の第２複数の見出語の各々を第１言語の第１複数の見出語内の対応する見出語にマッピングする操作とを含むことができる。さらに、当該操作は、第１オントロジ内の複数の関係を用いて、第２言語の第２複数の見出語の相互関係を作成することによって、第２言語の第２オントロジを生成する操作とを含むことができる。
【０００７】
明細書および図面の残りの部分を参照することによって、本発明の本質および利点をさらに理解することができる。いくつかの図面において、同様の参照番号を用いて、同様の構成要素を参照する。いくつかの例において、参照番号にサブラベルを付けることによって、複数の類似する構成要素のうち１つを表す。存在するサブラベルを指定せず、参照番号を使用する場合、複数の類似する構成要素の全体を参照することを意図している。
【図面の簡単な説明】
【０００８】
【図１】いくつかの実施形態に従って、自然言語処理に使用されるオントロジを示す図である。
【図２Ａ】いくつかの実施形態に従って、２つの異なるオントロジを生成するための並列言語解析パイプラインを示す図である。
【図２Ｂ】いくつかの実施形態に従って、汎用オントロジを使用する言語解析パイプラインを示す図である。
【図２Ｃ】いくつかの実施形態に従って、見出語翻訳を使用する言語解析パイプラインを示す図である。
【図３Ａ】いくつかの実施形態に従って、見出語マッピング中のオントロジを示す図形である。
【図３Ｂ】いくつかの実施形態に従って、関係マッピング中のオントロジを示す図である。
【図４Ａ】いくつかの実施形態に従って、同義語データベースを用いてオントロジを生成するためのシステムを示す図である。
【図４Ｂ】いくつかの実施形態に従って、言語翻訳サービスデータベースを用いてオントロジを生成するためのシステムを示す図である。
【図５】いくつかの実施形態に従って、自然言語処理に使用されるオントロジを生成するための方法を示すフローチャートである。
【図６】いくつかの実施形態を実現するための分散システムを示す簡略ブロック図である。
【図７】一実施形態に従って、サービスをクラウドサービスとして提供することができるシステム環境の構成要素を示す簡略ブロック図である。
【図８】さまざまな実施形態を実装することができる例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【０００９】
詳細な説明
一般的に、オントロジ、階層および分類法は、検索システムおよび情報検索システムにしばしば使用され、再現率を改善する。例えば、「ＢＭＷ」が「車の商標」であることを分かると、検索作業の再現率を改善し、分類作業の精度を向上させることができる。通常、オントロジは、最初に単語を見出語に関連し、その後、オントロジ／階層関係を用いて、見出語を他の見出語に関連することによって、言語特有モジュールとして構築される。しかしながら、本明細書に説明するように、オントロジにおける見出語の相互に関連する関係は、殆ど言語に依存しないモジュールに抽象化することができる。本明細書に記載の実施形態は、この抽象化を達成する方法を提供する。これによって、第１言語の既存オントロジに基づいて、第２言語のオントロジを形成することができる。
【００１０】
いくつかの実施形態において、プロセスは、第１オントロジを選択または定義することによって開始する。この第１オントロジは、「グラウンドトルース」オントロジまたは「汎用」オントロジと呼ばれ、英語などの共通語で形成されてもよい。この第１オントロジは、見出語として符号化された概念間の関係を記述することができる。その後、このプロセスは、入力コーパスのセグメント化／トークン化、品詞解析、およびトークンの見出し語化の後に始動される言語解析パイプラインを利用することができる。次に、このプロセスは、第１オントロジにおける見出語（必要に応じて、それらの品詞）と第２オントロジにおける見出語との間のマッピングを定義することができる。汎用オントロジを用いて各言語の見出語および関係をマッピングすることによって、新しい言語オントロジの実装に必要な時間が最小限に抑えられ、オントロジの質が特定の言語で関係を符号化する人間に依存しないため、言語間の全体的な質を高めることができる。
【００１１】
いくつかの実施形態において、プロセスは、言語に依存しないオントロジを第１オントロジとして構築することができる。第１オントロジは、見出語として符号化された概念の相互関係を含む。例えば、「タンデム」は「自転車」であり、「自転車」は「車両」である。次に、プロセスは、第１オントロジの第１言語と異なる第２言語を選択することができる。第２言語は、第２オントロジにとって望ましい言語であってもよい。次に、プロセスは、第１言語の単語と第２言語の単語との間のマッピングを生成することができる。プロセスは、言語間に共通の意味をマッピングするデータベースを利用することもできる。このマッピングは、第１言語の単語が第２言語の対応する単語にマッピングされるように包括的なものであってもよく、または品詞（ＰｏＳ）間のマッピングが容易になるように特定的なものであってもよい。例えば、包括的なマッピングの場合、「見出語（第２言語）→見出語（第１言語）」となるが、品詞別のマッピングの場合、「ＰｏＳ＋見出語（第２言語）→見出語（第１言語）」となる。
【００１２】
第１言語の見出語および第２言語の見出語をマッピングした後、マッピングされた見出語は、次の言語解析パイプラインに渡すことができる。具体的には、第２オントロジにおける見出語の相互関係を用いて、第１オントロジにおける見出語間の関係を直接にマッピングすることができる。基本的に、第１オントロジに定義された関係を用いて、第２オントロジにおける見出語を相互に関連付けることによって、対応関係を形成する。このプロセスは、２つのオントロジ間に単語のマッピングを自動的に作成し、このマッピングを用いて第２オントロジの相互関係を形成する。このようにして、第１オントロジは、第２オントロジのテンプレートとして使用され、第２言語の単語は、テンプレートの関係間のノードを充填する。したがって、ユーザは、第２オントロジのために、手動で関係を割り当てるまたは語彙を決定する必要がない。
【００１３】
このプロセスは、常に経時的に更新することができる。第１オントロジは、特定のコーパス、例えばウェブサイトまたはウェブドメインに関連付けられてもよい。コーパスが経時的に変化する（例えば、ウェブページが更新される）場合、第１オントロジは、第１言語で変化し得る。新しい語彙を追加したり、古い語彙を削除したり、関係を調整したりすることができる。この場合、第２言語の新しい語彙を第２オントロジに追加することができ、使用されていない語彙は、第２オントロジから削除することができる。第２オントロジの関係は、調整された第１オントロジの関係に従って調整することもできる。この自動化プロセスは、自動的に最新状態に維持される第１オントロジに基づいて、複数の言語特有オントロジを生成することができる。
【００１４】
図１は、いくつかの実施形態に従って、自然言語処理に使用されるオントロジを表すダイヤグラム１００を示す。ダイヤグラム１００は、意味によって概念をグループ化し、相互関係を用いてグループ化概念を他の概念に関連付ける汎用オントロジを示している。例えば、自転車（Bike）１１４は、人力駆動二輪車という概念を表すことができる。オントロジは、自転車（Bike）１１４という同様の概念を記述する他の単語または同義語１０４のセットを含むことができる。自転車（Bike）１１４は、他の概念と階層的に関連してもよい。例えば、自転車（Bike）１１４は車両（Vehicle）１０２であり、車両（Vehicle）１０２は、車両の概念を表すことができる同義語のセットを有する。階層内の親子関係は、親と子との間に「〜の一種である」という関係である。別の例として、オフロードバイク（Dirt Bike）１０６、タンデムバイク（Tandem）１０８、およびツーリングバイク（Touring）１１０は、すべて自転車（Bike）１１４を表す親ノードの分類である。
【００１５】
汎用オントロジは、１つ以上の単語によって表される概念を用いて構築される。しかしながら、個々の単語、特に英語の単語は、複数の概念を表していることに注意すべきである。一例において、「自転車」という用語は、名詞および動詞の両方を表すことができる。図１に示すオントロジは、「自転車」という用語を動詞（「自転車で行く」）として使用する第２概念も含む。動詞の自転車（Bike）１１６という概念は、対応の名詞と同様に、同様の概念を表す同義語１１２のセットを含む。動詞の自転車１１６は、親の動詞「移動」（Move）１１８の子であり、したがって親の動詞とは「〜の一種である」という関係を有する。
【００１６】
以下に説明するように、汎用オントロジを用いて概念を言語間にマッピングする場合、その言語に使用された単語だけでなく品詞を用いて、概念を区別することがしばしば有用である。これらの概念は、本明細書において「見出語」として呼ばれる。さまざまな言語間の概念を結ぶマッピングエンジンを使用することによって、汎用オントロジの見出語を言語特有オントロジの見出語にマッピングすることができる。例示的なマッピングエンジンは、以下の図４Ａ〜４Ｂに説明される。また、図１に示された汎用オントロジは、言語に依存しない方法で、概念および関係を表現することができる。例示のために、英語で汎用オントロジを表しているが、任意の言語を用いて汎用オントロジを表すことができる。
【００１７】
図２Ａは、いくつかの実施形態に従って、２つの異なるオントロジを生成するための並列言語解析パイプライン２００ａを示す。言語解析パイプラインを用いて、コーパス２０２から言語特有オントロジを生成することができる。コーパスは、ウェブドメイン、文献セット、技術文書などを含むことができる。一般的に、コーパスは、特定のコンテキストに使用された特定言語のサブセットである。例えば、コーパスは、航空業界に共通の用語を広く使用する航空会社のウェブドメインを含むことができる。一般言語のサブセットに限定された特定のコーパスを使用することによって、コーパス２０２に特有であり、一般言語のオントロジよりも小さく効率的なオントロジであり、コーパス２０２に特有な定義のみを含むオントロジを得ることができ、再現率および検索効率を向上させることができる。
【００１８】
一般的に、異なる言語のオントロジを生成するために、２つの言語解析パイプラインが必要である。この例において、英語オントロジ２１４−１およびフランス語オントロジ２１４−２を各々生成するために、英語解析パイプラインおよびフランス語解析パイプラインが必要となる。解析を行うために、英語コーパス２０２−１およびフランス語コーパス２０２−２をパイプラインに提供する必要がある。いくつかのケースのにおいて、英語のコーパス２０２−１およびフランスのコーパス２０２−２は、異なる訳語で実質的に同様の内容を表すことができる。例えば、各コーパス２０２は、異なる言語に翻訳された同様のウェブページを表すことができる。別々のオントロジを生成するためには、言語解析パイプラインで各コーパスを別々に実行する必要がある。
【００１９】
コーパス２０２からオントロジ２１４を生成するプロセスは、以下のように実施され得る。コーパス２０２は、コーパス２０２内の目標テキストを分離するコーパス解析エンジン２０４に提供され得る。コーパス解析エンジン２０４は、メタデータ、コメント、表示コードおよび／または他の非実質的なテキストをコーパス２０２から削除することによって、オントロジ２１４の可能な単語のリストを生成することができる。例えば、ウェブドメインの場合、コーパス解析エンジン２０４は、ＨＴＭＬの書式コード、開発者のコメント、メタデータおよび／または属性などを除去し、画面上でユーザに表示されるテキストのみを検索エンジンに与えることができる。
【００２０】
次に、見出語生成エンジン２０６は、単語を受け取り、見出語を生成することができる。見出語は、ｎグラムを構成する単一の単語または複数の単語により構成されてもよい。例えば、電子メールサービスを説明するウェブサイトの場合、「Ｅメール」という用語は、単一語の見出語であり、「検索フィルタ」という用語は、単一の概念を参照する二単語の見出語である。見出語生成エンジン２０６は、ｎグラムを生成するための最大数および／または最小数ｎを定義する入力を受付ることができる。例えば、入力は、ｎグラムを作成するための最小数１および最大数４を定義することができる。次いで、見出語生成エンジン２０６は、コーパス解析エンジン２０４によって与えられたテキストをスキャンし、連続する単一語または複数語の組み合わせとしてテキストに出現することが可能な（予測される）見出語のリストを生成する。
【００２１】
見出語フィルタリング／集約エンジン２０８は、見出語生成エンジン２０６から可能な見出語のリストを受け取り、見出語候補を絞り込み、オントロジ２１４に出現する見出語の最終リストを生成することができる。見出語フィルタリング／集約エンジン２０８は、見出語候補のリストをフィルタリングするために使用できるいくつかのパラメータ定義を含むことができる。例えば、１つのパラメータは、オントロジ見出語のリストに残しておくために、見出語候補をコーパスに使用する必要性である使用頻度を定義することができる。コーパス２０２に１回または２回のみ出現した見出語候補は、広義の意味を有しておらずまたはオントロジ２１４に有用な意味をもたらさない個々の単語のグループであると決めることができる。したがって、残すべき見出語候補は少なくとも最小回数でコーパス２０２に出現することが要求される。他のパラメータは、見出語候補を比較する対象としての辞書または他の利用可能な見出語データベースを定義することができる。これによって、既知の見出語と一致する見出語はリストに残され、他の見出語が破棄されまたはさらに処理される。いくつかの実施形態において、見出語フィルタリング／集約エンジン２０８は、ユーザインターフェイスに表示される画面を生成することができる。これによって、ユーザは、任意の自動フィルタリング処理を行う前または後に、見出語候補のリストを検査することができる。ユーザは、残っている見出語候補のリストを素早く検査し、リストに属さない見出語候補をリストから除去することができる。
【００２２】
この時点で、コーパス２０２内の大量の未処理テキストは、オントロジ２１４の見出語の最終リストに変換されている。言語解析パイプラインの次の部分、関係割り当てエンジン２１０および関係視覚化／絞り込みエンジン２１２は、多くの場合、プロセスの最も難しく時間のかかる段階であると考えられる。関係割り当てエンジン２１０は、コーパス２０２における見出語の相対位置並びに見出語の品詞、辞書定義および既知の同義語に基づいて、見出語の相互関係を自動的に生成する試みを行うことができる。次いで、関係視覚化／絞り込みエンジン２１２を用いて、グラフィックインターフェイスにおいて予備の関係割り当てをユーザに表示させることができる。次いで、ユーザは、表示装置上で図形または木フォーマットに表示された関係を視覚的に操作して、見出語間の関係の最終セットを生成することができる。その後、最終的な見出語２１６および最終的な関係２１８の組み合わせは、言語解析パイプラインからオントロジ２１４として出力することができる。
【００２３】
フランス語オントロジ２１４−２および英語オントロジ２１４−１を生成するために、言語解析パイプラインの各ステップは、各言語ごとに実行されなければならない。このことは、ユーザが、手動で見出語フィルタリング／集約エンジン２０８からの最終的な見出語リストを検査し、手動で最終的な関係２１８を形成する必要があることを意味する。これには、オントロジを生成するための広範なユーザ関与、複数の言語の専門知識を必要とするユーザ関与が必要となる。
【００２４】
図２Ｂは、いくつかの実施形態に従って、汎用オントロジを使用する言語解析パイプライン２００ｂを示す。上述したように、汎用オントロジ２１４−１は、必要に応じて英語などの特定言語によって表されるが、言語に依存しないものであってもよい。汎用オントロジ２１４−１は、見出語セット２１６−１と、見出語セット２１６−１に対応する関係セット２１８−１とを含む。フランス語コーパス２０２−２からフランス語オントロジ２１４−２を生成するために、汎用オントロジ２１４−１を用いて、言語解析パイプラインにおいてフランス語の見出語間の関係を生成するステップのうち、時間のかかるステップを省くことができる。
【００２５】
上述したように、コーパス解析エンジン２０４−２を用いて、フランス語コーパス２０２−２を解析することができ、見出語生成エンジン２０６−２を用いて、見出語セットを生成することができる。見出語フィルタリング／集約エンジン２０８−２を用いて、見出語候補をフィルタリングおよび編集することによって、フランス語オントロジ２１４−２の見出語２１６−２の最終セットを生成する。この時に、言語間見出語マッピングエンジン２２０は、フランス語オントロジ２１４−２の見出語２１６−２の最終セットを受け取り、見出語２１６−２の最終セットの意味を汎用オントロジ２１４−１の見出語２１６−１にマッピングすることができる。
【００２６】
言語間見出語マッピングエンジン２２０によって使用された、フランス語オントロジ２１４−２の見出語２１６−２の最終セットを汎用オントロジ２１４−１の見出語２１６−１にマッチングするための方法は、特定の実施形態によって異なる可能性がある。いくつかの実施形態において、既存のデータベースを用いて、言語特有同義語または同義語のセットを共有索引レイヤに関連付けすることによって、言語間の見出語を関連付けすることができる。例えば、Euro WordNetプロジェクトは、異なる言語の概念間の意味を関連付けするデータベースを提供する。他の実施形態において、自動言語翻訳サービス（例えば、Google（登録商標）翻訳）を用いて、言語間の同義語を生成することができる。例えば、見出語２１６−２の最終セットからの見出語は、汎用オントロジ２１４−１の言語に翻訳され、汎用オントロジ２１４−１の見出語２１６−１の見出語にマッピングされることができる。いくつかの実施形態において、既に言語を汎用オントロジにマッピングした場合、コーパスを用いて、汎用オントロジ言語に並列データが存在している見出語を生成することができる。例えば、並列コーパスにおいて、整列された新しい言語の文章が、汎用オントロジ言語の並列文章に直接マッピングされる。よく知られている統計的方法を用いて、両方の言語の単語および複数トークン語を整列することができる。次に、見出語およびマッピングを自動的に生成することができる。
【００２７】
見出語２１６−２の最後セットを汎用オントロジ２１４−１の見出語２１６−１にマッピングした後、関係マッピングエンジン２２２によって、汎用オントロジの関係２１８−１を見出語２１６−２の最後セットに直接にマッピングすることができる。多くの場合、フランス語関係２１８−２を生成するために、関係２１８−１をフランス語オントロジ２１４−２の見出語２１６−２の最終セットに直接にマッピングすることができる。場合によって、フランス語オントロジ２１４−２の見出語２１６−２の最後セット内の見出語は、汎用オントロジ２１４−１の見出語２１６−１に直接に類似していない可能性がある。この状況は、以下でさらに詳しく説明する。いくつかの実施形態において、関係マッピングエンジン２２２は、単に汎用オントロジから関係を読み込み、読み込んだ関係をフランス語オントロジ２１４−２に直接に適用することができる。これによって、フランス語関係２１８−２は、汎用オントロジの関係２１８−１と同様となる。フランス語オントロジと汎用オントロジとの間に直接マッピングできない見出語が存在する場合、必要に応じて手動で追加の関係を追加することができる。この作業は、あまり使用されない。
【００２８】
図２Ｃは、いくつかの実施形態に従って、見出語翻訳を使用する言語解析パイプライン２００ｃを示す。この実施形態において、汎用オントロジ２１４−１を特定のコーパス用に開発することができる。例えば、英語のウェブドメインのマスタバージョンを用いて、特定のウェブドメインに特有の汎用オントロジを生成することができる。多国籍企業の場合によくあるように、ウェブドメインのマスターバージョンをさまざまな言語に翻訳し、国際的な顧客基盤を提供することができる。英語のウェブドメインのマスタバージョンの翻訳を別々に解析する代わりに、汎用オントロジ２１４−１を用いて、さまざまな他の言語のオントロジを自動的に生成することができる。
【００２９】
見出語変換エンジン２２４は、汎用オントロジ２１４−１に存在する見出語２１６−１の各々に対応して、フランス語などの別の言語の見出語２１６−２の最終セットを生成することができる。場合によって、英語単語を翻訳する時に、フランス語に使用できる同義語セットを生成することがある。例えば、「bicycle」という英語単語は、フランス語で５つの同義語のセットを生成することができる。フランス語の同義語をウェブドメインのフランス語翻訳の実際のコーパスと比較して、フランス語オントロジ２１４−２に使用されるべき同義語を判断することができる。フランス語オントロジ２１４−２の見出語２１６−２の最終セットを生成した後、関係マッピングエンジン２２２を用いて、フランス語オントロジ２１４−２の関係２１８−２を生成することができる。留意すべきことは、この実施形態において、言語解析パイプラインでウェブドメインのフランス語コーパスを処理することなく、汎用オントロジ２１４−１に基づいて、完全なフランス語オントロジ２１４−２を生成したことである。
【００３０】
図３Ａは、いくつかの実施形態に従って、見出語マッピング中のオントロジを表すダイヤグラム３００ａを示す。プロセスのこの段階において、言語解析パイプラインによってフランス語の見出語を生成することができる。例えば、パリの自転車輸送を取り扱うウェブドメインを解析して、図３Ａに示された見出語を生成することができる。フランス語の見出語の言語を汎用オントロジの言語（例えば英語）に翻訳することによって、フランス語の見出語を汎用オントロジの見出語にマッピングすることができる。上述したように、各見出語概念は、概念を言語間にマッピングするために使用される１つ以上の同義語を有することができる。図３Ａには、車両（vehicle）３０２および車両（vehicule）３１４の概念がマッピングされ、バイク（Bike）３０４および（Biyclette）３１６の概念がマッピングされ、特定の種類のバイク、例えば、ツーリングバイク（touring)３０６および(Tourisme)３２０、モータバイク(Motor Bike)３１０および(Moto)３２２、および／またはタンデムバイク(Tandem)３１２および(Tandem)３２４がマッピングされる。
【００３１】
なお、オフロードバイク(Dirt Bike)３０８の概念は、特定のフランス語コーパスからのフランス語見出語のセットにおいて、対応する単語を有していない。いくつかの実施形態において、言語間の相違が予期されるべきであり、ある言語の見出語が必ずしも別の言語の見出語と直接に整列できるとは限らない。
【００３２】
図３Ｂは、いくつかの実施形態に従って、関係マッピング中のオントロジを表すダイヤグラム３００ｂを示す。図３Ｂのマッピングされた見出語を用いて、汎用オントロジからの見出語の相互関係をマッピングおよび複製することによって、フランス語オントロジを形成することができる。ダイヤグラム３００ｂに示すように、フランス語オントロジは、車両の見出語（vehicule）３１４と、自転車の見出語（Biyclette）３１６との間に「ある種の」関係を用いて形成される。フランス語専門家でフランス語コーパス中の見出語間の関係を整理する代わりに、汎用オントロジの既存の関係を用いて、フランス語オントロジにおける対応する関係を自動的に生成することができる。
【００３３】
図４Ａは、いくつかの実施形態に従って、同義語データベースを用いてオントロジを生成するためのシステム４００ａを示す。言語解析パイプライン４０４は、コーパス４０２（例えば、ウェブドメイン）を入力として受け取り、見出語を生成すること（４０６）ができる。見出語マッピングエンジン４０８は、生成された見出語を汎用オントロジ４１２の概念にマッピングすることができる。見出語マッピングエンジン４０８は、追加のリソース、例えば、言語間の概念をマッピングする市販のまたは専門の同義語データベース４１６を用いて、見出語のマッピングを行うことができる。見出語マッピングエンジン４０８は、ＡＰＩまたはウェブインターフェイス４２０を介して、データベース４１６にアクセスすることができる。次に、関係マッピングエンジン４１０は、汎用オントロジ４１２からの関係を再利用して、上述したように最終的な言語特有オントロジ４１４を生成することができる。
【００３４】
図４Ｂは、いくつかの実施形態に従って、言語翻訳サービスデータベースを用いてオントロジを生成するためのシステム４００ｂを示す。システム４００ｂの実施形態は、ＡＰＩまたはウェブインターフェイス４２４がウェブ翻訳サービス４２２を用いて、コーパス４０２の見出語と汎用オントロジ４１２の見出語との間のマッピングを生成する点を除き、システム４００ａの実施形態と同様である。
【００３５】
図５は、いくつかの実施形態に従って、自然言語処理に使用されるオントロジを生成するための方法を示すフローチャート５００である。この方法は、見出語と見出語の相互関係とを含む第１言語の第１オントロジを受信するステップ（５０２）を含むことができる。第１オントロジは、関係によって関連付けされた言語に依存しない見出語概念のセットであってもよい。第１オントロジは、ウェブドメインまたは文書のセットなどの特定のコーパスに特有であってもよい。いくつかの実施形態において、第１オントロジは、言語解析パイプラインを用いて生成することができる。言語解析パイプラインは、コーパスから見出語を抽出およびフィルタリングし、言語エキスパートから見出語間の関係を受付けることができる。
【００３６】
また、この方法は、第２言語の第２セットの見出語を受付るステップ（５０４）を含むことができる。第２言語は、第１オントロジすなわち汎用オントロジを表すために使用された第１言語とは異なってもよい。第２セットの見出語は、第１オントロジの見出語の生成と同様に、言語解析パイプラインから生成することができる。いくつかの実施形態において、第２セットの見出語のコーパスと第１オントロジのコーパスとは、同一のコーパスから異なる言語で導き出すことができる。さらに、方法は、第２言語の見出語の各々を第１言語の見出語にマッピングするステップ（５０６）を含むことができる。このステップは、第２言語の見出語を第１言語の同義語セットに翻訳した後、第１オントロジの見出語に出現する同義語を識別することによって達成され得る。最後に、この方法は、第１オントロジ内の複数の関係を用いて、第２言語の見出語間の関係を作成することによって、第２言語の第２オントロジを生成するテップ（５０８）をさらに含むことができる。
【００３７】
理解すべきことは、図５に示された具体的なステップは、本発明のさまざまな実施形態に従って、オントロジを生成するための具体的な方法を提供することである。別の実施形態に従って、他の一連のステップを実行することもできる。例えば、本発明の代替的な実施形態は、異なる順序で上記で概説したステップを実行することができる。さらに、図５に示された各ステップは、各ステップに応じてさまざまなシーケンスで実行できる複数のサブステップを含むことができる。さらに、特定の応用に応じて、ステップを追加または削除することができる。当業者であれば、多くの変形例、修正例および代替例を認識するだろう。
【００３８】
本明細書に記載の方法の各々は、コンピュータシステムによって実施することができる。これらの方法の各ステップは、コンピュータシステムによって自動的に実行されてもよく、および／またはユーザの関与で入力／出力を提供してもよい。例えば、ユーザは、方法の各ステップに入力を提供し、各入力は、コンピュータシステムによって生成された、その入力を必要とする特定の出力に対応する。各入力は、対応する要求出力に応じて、受信されてもよい。さらに、入力は、ユーザから受信されてもよく、他のコンピュータシステムからデータストリームとして受信されてもよく、メモリ位置から検索されてもよく、ネットワークを介して検索されてもよく、および／またはウェブサービスから要求されてもよい。同様に、出力は、ユーザに提供されてもよく、データストリームとして別のコンピュータシステムに提供されてもよく、メモリ位置に保存されされてもよく、ネットワークを介して送信されてもよく、ウェブサービスに提供されてもよい。簡潔に言えば、本明細書に記載の方法の各ステップは、コンピュータシステムによって実行されてもよく、ユーザの関与が必須ではないコンピュータシステムに入力または出力される任意数の入力、出力、および／または要求を含むことができる。ユーザの関与が必要としないステップは、人間の介入なしにコンピュータシステムによって自動的に実行されるとも言える。したがって、本開示に照らして、本明細書に記載の各方法の各ステップは、ユーザからの入力を受け取り、ユーザに出力を与えるように変更してもよく、または人間の介入なしに、プロセッサが判断を行い、コンピュータシステムによって自動的に実行されてもよい。さらに、本明細書に記載の各方法のいくつかの実施形態は、有形の非一時的記憶媒体に記憶され、有形のソフトウェア製品を形成する一組の命令として実装されてもよい。
【００３９】
図６は、実施形態のうちの１つを実現するための分散システム６００を示す簡略図である。図示の実施形態において、分散システム６００は、１つ以上のネットワーク６１０を介して、ウェブブラウザまたは専用クライアント（たとえば、オラクルフォーム）などのようなクライアントアプリケーションを実行および作動するように構成された１つ以上のクライアントコンピューティング装置６０２、６０４、６０６および６０８を含む。サーバ６１２は、ネットワーク６１０を介して、リモートクライアントコンピューティング装置６０２、６０４、６０６および６０８と通信可能に連結されてもよい。
【００４０】
さまざまな実施形態において、サーバ６１２は、システムの１つ以上のコンポーネントによって提供される１つ以上のサービスまたは１つ以上のソフトウェアアプリケーションを実行するように構成され得る。いくつかの実施形態において、これらのサービスは、ウェブサービスまたはクラウドサービスとして、またはSaaS（Software as a Service）モデルに基づいて、クライアントコンピューティング装置６０２、６０４、６０６および／または６０８のユーザに提供されてもよい。よって、クライアントコンピューティング装置６０２、６０４、６０６および／または６０８を操作するユーザは、１つ以上のクライアントアプリケーションを用いて、サーバ６１２と情報を交換することによって、これらのコンポーネントによって提供されたサービスを利用することができる。
【００４１】
図示の構成において、システム６００のソフトウェア要素６１８、６２０および６２２は、サーバ６１２上に実装されている。他の実施形態において、システム６００の１つ以上の構成要素および／またはこれらのコンポーネントによって提供されたサービスは、１つ以上のクライアントコンピューティング装置６０２、６０４、６０６および／または６０８によって実現されてもよい。クライアントコンピューティング装置を操作するユーザは、１つ以上のクライアントアプリケーションを用いて、これらのコンポーネントによって提供されたサービスを利用することができる。これらの構成要素は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせで実現されてもよい。理解すべきことは、分散システム６００と異なるさまざまなシステム構成が可能であることである。したがって、図示された実施形態は、実施形態のシステムを実現するための分散システムの一例であり、限定する意図をしていない。
【００４２】
クライアントコンピューティング装置６０２、６０４、６０６および／または６０８は、たとえば、Microsoft Windows Mobile（登録商標）のようなソフトウェア、および／またはｉＯＳ、Windowsフォン、アンドロイド、ブラックベリー１０およびパームＯＳなどのさまざまなモバイルオペレーティングシステムを実行することができ、インターネット、電子メール、ショートメッセージサービス（ＳＭＳ）、ブラックベリー（登録商標）または他の通信プロトコルが有効化された手持ち式携帯装置（たとえば、iPhone（登録商標）、携帯電話、Ipad（登録商標）、タブレット、携帯情報端末（ＰＤＡ）または着用できる装置（Google Glass（登録商標）ヘッドマウントディスプレイ）であってもよい。クライアントコンピューティング装置は、例示として、Microsoft Windows（登録商標）オペレーティングシステム、Apple Macintosh（登録商標）オペレーティングシステムおよび／またはＬｉｎｕｘ（登録商標）オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび／またはラップトップコンピュータを含む汎用のパーソナルコンピュータであってもよい。クライアントコンピューティング装置は、たとえば、さまざまなＧＮＵ／Ｌｉｎｕｘオペレーティングシステム、たとえば、Google Chrome OSを含むがこれに限定されない市販のＵＮＩＸ（登録商標）またはＵＮＩＸに類似するさまざまなオペレーティングシステムを動かすワークステーションコンピュータであってもよい。代替的にまたは追加的には、クライアントコンピューティング装置６０２、６０４、６０６および６０８は、ネットワーク６１０を介して通信可能なシンクライアントコンピュータ、インターネット対応のゲームシステム（たとえば、Kinect（登録商標）ジェスチャ入力装置を備えるまたは備えないMicrosoft Xboxゲームコンソール）、および／またはパーソナルメッセージング装置などの他の電子機器であってもよい。
【００４３】
例示の分散システム６００は、４つのクライアントコンピューティング装置を備えると示されているが、任意の数のクライアントコンピューティング装置をサポートすることができる。他の装置、たとえばセンサを有する装置は、サーバ６１２と情報を交換することができる。
【００４４】
分散システム６００のネットワーク６１０は、ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネットプロトコル）、ＳＮＡ（システムネットワークアーキテクチャ）、ＩＰＸ（インターネットパケット交換）、Apple Talkなどを含むがこれらに限定されないさまざまな市販プロトコルのいずれかを使用してデータ通信をサポートすることができ、当業者に熟知される任意種類のネットワークであってもよい。単なる例示として、ネットワーク６１０は、イーサネット（登録商標）、トークンリングおよび／またはその他に基づくローカルエリアネットワーク（ＬＡＮ）であってもよい。ネットワーク６１０は、広域ネットワークまたはインターネットであってもよい。ネットワーク６１０は、仮想プライベートネットワーク（ＶＰＮ）を含むがこれに限定されない仮想ネットワーク、イントラネット、エクストラネット、公衆交換電話ネットワーク（ＰＳＴＮ）、赤外線ネットワーク、無線ネットワーク（たとえば、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）８０２．１１プロトコルスイート、Bluetooth（登録商標）、および／または任意の他の無線プロトコルの下で動作するネットワーク）および／またはこれらのネットワークと他のネットワークの組み合わせを含むことができる。
【００４５】
サーバ６１２は、１つ以上の汎用コンピュータ、専用サーバコンピュータ（例示として、ＰＣ（パーソナルコンピュータ）サーバ、ＵＮＩＸ（登録商標）サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバを含む）、サーバファーム、サーバクラスタ、または任意の他の適切な構成および／または組み合わせから構成されてもよい。さまざまな実施形態において、サーバ６１２は、前述の開示に記載された１つ以上のサービスまたはソフトウェアアプリケーションを動かすように構成することができる。たとえば、サーバ６１２は、本開示の実施形態に従って上記に説明した処理を実行するためのサーバに対応することができる。
【００４６】
サーバ６１２は、上述したものいずれかを含むオペレーティングシステム、および任意の市販サーバオペレーティングシステムを動かすことができる。また、サーバ６１２は、ＨＴＴＰ（ハイパーテキスト転送プロトコル）サーバ、ＦＴＰ（ファイル転送プロトコル）サーバ、ＣＧＩ（共通ゲートウェイインターフェイス）サーバ、Java（登録商標）サーバ、データベースサーバなどを含むさまざまな追加サーバアプリケーションおよび／または中間層アプリケーションのいずれかを動かすことができる。例示的なデータベースサーバは、Oracle（登録商標）、Microsoft（登録商標）、Sybase（登録商標）、IBM（登録商標）などの会社から市販されているものを含むがこれらに限定されない。
【００４７】
いくつかの実現例において、サーバ６１２は、クライアントコンピューティング装置６０２、６０４、６０６、および６０８のユーザから受信したデータフィードおよび／またはイベント更新を分析および統合する１つ以上のアプリケーションを含んでもよい。例示として、データフィードおよび／またはイベント更新は、Twitter（登録商標）フィード、Facebook（登録商標）更新または１つ以上の第３情報源および連続データストリームから受信したリアルタイム更新を含むがこれらに限定されない。リアルタイム更新は、センサデータアプリケーション、金融相場表示機、ネットワーク性能測定ツール（たとえば、ネットワーク監視およびトラフィック管理アプリケーション）、ページ遷移（Clickstream）解析ツール、自動車交通監視装置などに関連するリアルタイムイベントを含むことができる。また、サーバ６１２は、クライアントコンピューティング装置６０２、６０４、６０６および６０８の１つ以上の表示装置を介して、データフィードおよび／またはリアルタイムイベントを表示するための１つ以上のアプリケーションを含むこともできる。
【００４８】
また、分散システム６００は、１つ以上のデータベース６１４および６１６を含むこともできる。データベース６１４および６１６は、さまざまな場所に常駐することができる。例示として、１つ以上のデータベース６１４および６１６は、サーバ６１２の近く（および／またはその中）の非一時記憶媒体に常駐することができる。代替的には、データベース６１４および６１６は、リモートサーバ６１２から離れており、ネットワークに基づく接続または専用接続を介して、サーバ６１２と通信している。一組の実施形態において、データベース６１４および６１６は、記憶領域ネットワーク（ＳＡＮ）に常駐することができる。同様に、サーバ６１２に寄与する機能を実行するための任意の必要なファイルは、必要に応じて、サーバ６１２上に／またはサーバ６１２から離れた場所に保存されてもよい。一組の実施形態において、データベース６１４および６１６は、たとえば、Oracleにより提供されるデータベースなどの関係データベースを含むことができる。これらの関係データベースは、ＳＱＬフォーマット命令に応じて、データを取得、保存および更新するように構成されている。
【００４９】
図７は、本開示の実施形態に従ったシステム環境７００の１つ以上の構成要素を示す簡略ブロック図である。実施形態に従ったシステムの１つ以上の構成要素によって提供されるサービスは、クラウドサービスとして提供されることができる。図示の実施形態において、システム環境７００は、１つ以上のクライアントコンピューティング装置７０４、７０６および７０８を含む。ユーザは、クライアントコンピューティング装置を用いて、クラウドサービスを提供するクラウドインフラストラクチャシステム７０２と情報を交換することができる。クライアントコンピューティング装置は、ウェブブラウザ、専用クライアントアプリケーション（たとえば、オラクルフォーム）または他のアプリケーションなどのクライアントアプリケーションを作動するように構成されることができる。ユーザは、クライアントアプリケーションを用いてクラウドインフラストラクチャシステム７０２と情報を交換することによって、クラウドインフラストラクチャシステム７０２により提供されたサービスを利用することができる。
【００５０】
理解すべきことは、図示のクラウドインフラストラクチャシステム７０２は、図示された構成要素以外の構成要素を備えてもよいことである。さらに、図示の実施形態は、本発明の実施形態を組み込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態において、クラウドインフラストラクチャシステム７０２は、図示よりも多いまたは少ない構成要素を有してもよく、２つ以上の構成要素を組み合わせてもよく、または異なる構成または配置の構成要素を有してもよい。
【００５１】
クライアントコンピューティング装置７０４、７０６および７０８は、上述したクライアントコンピューティング装置６０２、６０４、６０６および６０８と同様であってもよい。
【００５２】
例示的なシステム環境７００は、３つのクライアントコンピューティング装置を備えると示されているが、任意の数のクライアントコンピューティング装置をサポートすることができる。他の装置、たとえばセンサを有する装置は、クラウドインフラストラクチャシステム７０２と情報を交換することができる。
【００５３】
ネットワーク７１０は、クライアント７０４、７０６および７０８とクラウドインフラストラクチャシステム７０２との間のデータの通信および交換を促進することができる。各ネットワークは、上記でネットワーク６１０に関して説明したプロトコルをさまざまな市販プロトコルのいずれかを用いてデータ通信をサポートすることができ、当業者に熟知する任意の種類のネットワークであってもよい。
【００５４】
クラウドインフラストラクチャシステム７０２は、上記でサーバ６１２に関して説明した構成要素を含み得る１つ以上のコンピュータおよび／またはサーバを含むことができる。
【００５５】
特定の実施形態において、クラウドインフラストラクチャシステムによって提供されたサービスは、需要に応じて、クラウドインフラストラクチャシステムからユーザに提供できるオンラインデータの記憶およびバックアップ、ウェブベースの電子メールサービス、ホストされたオフィススイートおよび文章連携サービス、データベース処理、管理できる技術サポートサービスなどの多くのサービスを含んでよい。クラウドインフラストラクチャシステムによって提供されるサービスは、ユーザのニーズを満たすように動的に拡張できる。クラウドインフラストラクチャシステムによって提供されたサービスの特定の例示は、本明細書において、「サービスインスタンス」と呼ばれる。一般的には、インターネットなどの通信ネットワークを介して、クラウドサービスプロバイダのシステムからユーザに提供できる任意のサービスは、「クラウドサービス」と呼ばれる。典型的には、パブリッククラウド環境において、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客のオンプレミスサーバおよびシステムとは異なる。たとえば、クラウドサービスプロバイダのシステムは、アプリケーションを提供することができ、ユーザは、必要に応じて、インターネットなどの通信ネットワークを介して、アプリケーションを注文し、使用することができる。
【００５６】
いくつかの例において、コンピュータネットワーククラウドインフラストラクチャ内のサービスは、保護されたコンピュータネットワークのストレージアクセス、ホストされたデータベース、ホストされたウェブサーバ、ソフトウェアアプリケーション、またはクラウドベンダによってユーザに提供された他のサービス、または当該技術分野に知られている他のサービスを含むことができる。たとえば、サービスは、インターネットを介して、クラウド上のリモートストレージに対して、パスワードにより保護されたアクセスを含むことができる。別の例として、サービスは、ウェブサービスにホストされている関係データベースおよびネットワーク上の開発者により私的使用のためのスクリプト言語ミドルウェアエンジンを含むことができる。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされている電子メールソフトウェアアプリケーションに対するアクセスを含むことができる。
【００５７】
特定の実施形態において、クラウドインフラストラクチャシステム７０２は、セルフサービスのサブスクリプションに基づく、柔軟なスケーラビリティ、信頼性、高可用性および安全性を有する方法で、顧客に提供できる一連のアプリケーション、ミドルウェアおよびデータベースサービスを含むことができる。このようなクラウドインフラストラクチャシステムの例示として、本願譲受人により提供されたOracleパブリッククラウドが挙げられる。
【００５８】
さまざまな実施形態において、クラウドインフラストラクチャシステム７０２は、顧客から申込んだクラウドインフラストラクチャシステム７０２のサービスを自動的に提供、管理および追跡するように構成されることができる。クラウドインフラストラクチャシステム７０２は、さまざまな展開モデルを介して、クラウドサービスを提供することができる。たとえば、サービスは、クラウドサービスを販売する組織に所有された（たとえば、Oracleに所有された）クラウドインフラストラクチャシステム７０２を有するパブリッククラウドモデルで提供され、一般人または異なる業界の企業に利用されることができる。別の例として、サービスは、単一の組織に専用されたクラウドインフラストラクチャシステム７０２を有するプライベートクラウドモデルで提供され、組織内の１つ以上の実体に利用されることができる。また、クラウドサービスは、集団クラウドモデルで提供されてもよい。よって、クラウドインフラストラクチャシステム７０２およびクラウドインフラストラクチャシステム７０２により提供されたサービスは、関連する集団内の複数の組織によって共有される。また、クラウドサービスは、２つ以上の異なるモデルの組み合わせからなるハイブリッドクラウドモデルで提供されてもよい。
【００５９】
いくつかの実施形態において、クラウドインフラストラクチャシステム７０２によって提供されたサービスは、SaaS（Software as a Service）カテゴリ、PaaS（Platform as a Service）カテゴリ、IaaS（Infrastructure as a Service）カテゴリ、またはハイブリッドサービスを含む他のカテゴリのサービスに準拠して提供された１つ以上のサービスを含むことができる。顧客は、サブスクリプションの申込みによって、クラウドインフラストラクチャシステム７０２によって提供された１つ以上のサービスを注文することができる。これに応じて、クラウドインフラストラクチャシステム７０２は、顧客のサブスクリプション申込書に含まれたサービスを提供する処理を行う。
【００６０】
いくつかの実施形態において、クラウドインフラストラクチャシステム７０２によって提供されたサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含むがこれらに限定されない。いくつかの例において、アプリケーションサービスは、SaaSプラットフォームを介して、クラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに準拠するクラウドサービスを提供するように構成されてもよい。たとえば、SaaSプラットフォームは、統合の開発および展開プラットフォーム上でオンデマンドアプリケーションのスイートを構築し、提供するように、機能することができる。SaaSプラットフォームは、SaaSサービスを提供するために、基礎のソフトウェアおよびインフラストラクチャを管理し、制御することができる。SaaSプラットフォームにより提供されたサービスを利用することによって、顧客は、クラウドインフラストラクチャシステム上で動作するアプリケーションを利用することができる。顧客は、別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスを提供することができる。例示としては、販売実績管理、企業統合、および大規模組織のビジネス柔軟性に対する解決策を提供するサービスを含むがこれらに限定されない。
【００６１】
いくつかの実施形態において、プラットフォームサービスは、PaaSプラットフォームを介してクラウドインフラストラクチャシステムによって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに準拠するクラウドサービスを提供するように構成されてもよい。プラットフォームサービスの例としては、共有されている共通アーキテクチャ上で既存のアプリケーションを統合する能力、およびプラットフォームにより提供された共有サービスを活用する新規アプリケーションを構築する能力を組織（たとえば、Oracle）に与えるサービスを含むがこれに限定されない。PaaSプラットフォームは、PaaSサービスを提供するために、基礎のソフトウェアおよびインフラストラクチャを管理し、制御することができる。顧客は、クラウドインフラストラクチャシステム上で動作するアプリケーションを利用することができる。顧客は、別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスを提供することができる。プラットフォームサービスの例としては、oracle Javaクラウドサービス（JCS）、Oracleデータベースクラウドサービス（DBCS）およびその他を含むがこれらに限定されない。
【００６２】
PaaSプラットフォームにより提供されたサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムにサポートされているプログラミング言語およびツールを利用することができ、展開されたサービスを制御することができる。いくつかの実施形態において、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス（たとえば、Oracle Fusionミドルウェアサービス）、およびJavaクラウドサービスを含むことができる。一実施形態において、データベースクラウドサービスは、データベースリソースを蓄積する能力を組織に与えることができる共有サービス展開モデルをサポートすることができ、DBaaS（Database as a Service）をクラウドデータベースとして顧客に提供することができる。ミドルウェアクラウドサービスは、クラウドインフラストラクチャシステム上でさまざまなビジネスアプリケーションを開発および展開するためのプラットフォームを顧客に提供することができ、Javaクラウドサービスは、クラウドインフラストラクチャシステム上でJavaアプリケーションを展開するためのプラットフォームを顧客に提供することができる。
【００６３】
種々の異なるインフラストラクチャサービスは、IaaSプラットフォームによって、クラウドインフラストラクチャシステムに提供されてもよい。これらのインフラストラクチャサービスは、SaaSプラットフォームおよびPaaSプラットフォームにより提供されたサービスを利用する顧客のために、ストレージ、ネットワークおよびその他の基本的なコンピューティングリソースとしての基礎コンピューティングリソースの管理と制御を容易にする。
【００６４】
特定の実施形態において、クラウドインフラストラクチャシステム７０２はまた、クラウドインフラストラクチャシステムを利用する顧客に、さまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース７３０を含むことができる。一実施形態において、インフラストラクチャリソース７３０は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されたサービスを実行するために、事前に統合され且つ最適化されたサーバリソース、ストレージリソースおよびネットワークリソースなどのハードウェアの組み合わせを含んでもよい。
【００６５】
いくつかの実施形態において、クラウドインフラストラクチャシステム７０２内のリソースは、複数のユーザに共有されることができ、各々の需要に応じて動的に再割当てることができる。また、リソースは、異なるタイムゾーンでユーザに割当てることができる。たとえば、クラウドインフラストラクチャシステム７３０は、指定時間内でクラウドインフラストラクチャシステムのリソースを第一時間帯における第一グループのユーザに利用させ、その後、同様のリソースを異なる時間帯における別のグループのユーザに再配分することができ、リソースを最大に利用する。
【００６６】
特定の実施形態において、複数の内部共有サービス７３２は、提供され、クラウドインフラストラクチャシステム７０２の異なる構成要素またはモジュールに共有されおよびクラウドインフラストラクチャシステム７０２によって提供されたサービスに共有されることができる。これらの内部共有サービスは、安全性および識別サービス、統合サービス、企業リポジトリサービス、企業管理サービス、ウイルススキャンおよびホワイトリストサービス、高可用性のバックアップおよびリカバリサービス、クラウドサポートを可能にするサービス、メールサービス、通知サービス、およびファイル転送サービスなどを含むがこれらに限定されない。
【００６７】
特定の実施形態において、クラウドインフラストラクチャシステム７０２は、クラウドインフラストラクチャシステム内のクラウドサービス（たとえば、SaaSサービス、PaaSサービスおよびIaaSサービス）を包括的に管理する機能を提供することができる。一実施形態において、クラウド管理機能は、クラウドインフラストラクチャシステム７０２などによって受信した顧客のサブスクリプションを提供、管理、および追跡する機能を含んでもよい。
【００６８】
一実施形態において、図示のように、クラウド管理機能は、１つ以上のモジュール、たとえば、オーダー管理モジュール７２０、オーダーオーケストレーションモジュール７２２、オーダー支給モジュール７２４、オーダー管理および監視モジュール７２６、およびＩＤ管理モジュール７２８によって提供される。これらのモジュールは、１つ以上のコンピュータおよび／またはサーバを含んでもよく、これらを用いて形成されてもよい。これらのコンピュータおよび／またはサーバは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、または任意の他の適切な配置および／またはこれらの組み合わせであってもよい。
【００６９】
例示的な操作７３４において、顧客は、クライアント装置、たとえば、クライアント装置７０４、７０６または７０８を使用して、クラウドインフラストラクチャシステム７０２により提供された１つ以上のサービスをリクエストし、クラウドインフラストラクチャシステム７０２によって提供された１つ以上のサービスをオーダーすることによって、クラウドインフラストラクチャシステム７０２と情報を交換することができる。特定の実施形態において、顧客は、クラウドユーザインターフェイス（ＵＩ）、クラウドＵＩ  ７１２、クラウドＵＩ  ７１４および／またはクラウドＵＩ  ７１６にアクセスし、これらのＵＩを介して、サブスクリプションをオーダーすることができる。クラウドインフラストラクチャシステム７０２が顧客のオーダーに応答して受信したオーダー情報は、顧客と、クラウドインフラストラクチャシステム７０２により提供され、顧客が購読しようとする１つ以上のサービスとを識別する情報を含むことができる。
【００７０】
顧客がオーダーした後、オーダー情報は、クラウドＵＩ７１２、７１４および／または７１６を介して受信される。
【００７１】
操作７３６において、オーダーは、オーダーデータベース７１８に保存される。オーダーデータベース７１８は、クラウドインフラストラクチャシステム７０２によって操作され、または他のシステム要素と連動して操作されるいくつかのデータベースのうち１つであってもよい。
【００７２】
操作７３８において、オーダー情報は、オーダー管理モジュール７２０に転送される。いくつかの例において、オーダー管理モジュール７２０は、オーダーに関連する請求および会計機能、たとえば、オーダーの確認、および確認後オーダーの記入を実行するように構成されてもよい。
【００７３】
操作７４０において、オーダーに関する情報は、オーダーオーケストレーションモジュール７２２に伝達される。オーダーオーケストレーションモジュール７２２は、オーダー情報を利用して、顧客がオーダーしたサービスおよびリソースの提供を用意する。いくつかの例において、オーダーオーケストレーションモジュール７２２は、オーダー支給モジュール７２４のサービスを用いて、オーダーしたサービスをサポートするように、リソースの提供を用意することができる。
【００７４】
特定の実施形態において、オーダーオーケストレーションモジュール７２２は、各オーダーに関連したビジネスプロセスを管理することができ、ビジネスロジックを適用することによって、オーダーに対して支給をするか否かを判断することができる。操作７４２において、新規サブスクリプションのオーダーを受信すると、オーダーオーケストレーションモジュール７２２は、リソースを割当て、サブスクリプションオーダーを満たすために必要なリソースを構成するように、リクエストをオーダー支給モジュール７２４に送信する。オーダー支給モジュール７２４は、顧客がオーダーしたサービス用のリソースを割当てることができる。オーダー支給モジュール７２４は、クラウドインフラストラクチャシステム７０２により提供されたクラウドサービスと、リクエストされたサービスを提供するためのリソースを供給するために使用される物理的な実装層との間の抽象化レベルを形成する。このように、オーダーオーケストレーションモジュール７２２は、たとえば、サービスおよびリソースをその場で支給するかまたは事前に支給するか、リクエストに応じて割当てる／与えるかなどの実装詳細から独立している。
【００７５】
操作７４４において、サービスおよびリソースを支給した後、クラウドインフラストラクチャシステム７０２のオーダー支給モジュール７２４は、提供されるサービスの通知をクライアント装置７０４、７０６および／または７０８を操作する顧客に送信することができる。
【００７６】
操作７４６において、オーダー管理および監視モジュール７２６は、顧客のサブスクリプションオーダーを管理および追跡することができる。いくつかの例において、オーダー管理および監視モジュール７２６は、サブスクリプションオーダー内のサービスの利用統計、たとえば、ストレージの使用量、データの転送量、ユーザの数、システムの起動時間およびシステムの停止時間を収集するように構成されることができる。
【００７７】
特定の実施形態において、クラウドインフラストラクチャシステム７００は、ＩＤ管理モジュール７２８を含むことができる。ＩＤ管理モジュール７２８は、クラウドインフラストラクチャシステム７００に、識別サービス、たとえば、アクセス管理および認可サービスを提供するように構成することができる。いくつかの実施形態において、ＩＤ管理モジュール７２８は、クラウドインフラストラクチャシステム７０２によって提供されたサービスを利用したい顧客に関する情報を制御することができる。このような情報は、顧客のＩＤを承認する情報、およびさまざまなシステムリソース（たとえば、ファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど）に対して許可された顧客の実行権限を記載する情報を含むことができる。ＩＤ管理モジュール７２８は、各顧客に関する記述情報、記述情報にアクセスおよび変更する方法、および記述情報にアクセスおよび変更した顧客に対する管理を含むことができる。
【００７８】
図８は、本発明のさまざまな実施形態を実現することができるコンピュータシステム８００の一例を示す図である。コンピュータシステム８００を用いて、上述したコンピュータシステムのいずれかを実現することができる。図示のように、コンピュータシステム８００は、バスサブシステム８０２を介して、複数の周辺サブシステムと連通する処理ユニット８０４を含む。周辺サブシステムは、処理加速ユニット８０６と、Ｉ／Ｏサブシステム８０８と、記憶サブシステム８１８と、通信サブシステム８２４とを含むことができる。記憶サブシステム８１８は、有形コンピュータ可読記憶媒体８２２と、システムメモリ８１０とを含む。
【００７９】
バスサブシステム８０２は、コンピュータシステム８００のさまざまな構成要素およびサブシステムが必要に応じて相互通信させるための機構を形成する。図示には、バスサブシステム８０２を単一のバスとして概略的に示しているが、代替的な実施形態において、バスサブシステムは、複数のバスを利用してもよい。バスサブシステム８０２は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを備えるいくつかの種類のバス構造のいずれかを有してもよい。たとえば、このようなアーキテクチャは、業界標準アーキテクチャ（ISA）バス、マイクロチャネルアーキテクチャ（MCA）バス、拡張ISA（EISA）バス、ビデオエレクトロニクス規格協会（VESA）ローカルバス、および周辺構成要素相互接続（PCI）バスを含むことができる。これらのバスは、IEEE P1386.1規格に準拠した製造されたメザニンバスとして実現することができる。
【００８０】
１つ以上の集積回路（たとえば、従来のマイクロプロセッサまたはマイクロコントローラ）として実装することができる処理ユニット８０４は、コンピュータシステム８００の操作を制御する。処理ユニット８０４は、１つ以上のプロセッサを含むことができる。これらのプロセッサは、シングルコアプロセッサであってもよく、マルチコアプロセッサであってもよい。特定の実施形態において、処理ユニット８０４は、各々シングルコアプロセッサまたはマルチコアプロセッサを備える１つ以上の独立した処理ユニット８３２および／または８３４として実装されてもよい。他の実施形態において、処理ユニット８０４は、２つのデュアルコア（dual-core）プロセッサを単一のチップに集積することにより形成されたクアッドコア（Quad-core）処理ユニットとして実装されてもよい。
【００８１】
さまざまな実施形態において、処理ユニット８０４は、プログラムコードに応じてさまざまなプログラムを実行することができ、複数のプログラムまたはプロセスを同時に実行することができる。任意の時点で、実行されるプログラムコードの一部または全てはプロセッサ８０４および／または記憶サブシステム８１８に常駐する。適切なプログラミングによって、プロセッサ８０４は、上述したさまざまな機能を提供することができる。コンピュータシステム８００は、デジタルシグナルプロセッサ（DSP）および専用プロセッサなどを含むことができる処理加速ユニット８０６をさらに備えてもよい。
【００８２】
Ｉ／Ｏサブシステム８０８は、ユーザインターフェイス入力装置と、ユーザインターフェイス出力装置とを含むことができる。ユーザインターフェイス入力装置は、キーボード、マウスまたはトラックボールなどのポインティング装置、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声命令認識システムを備える音声入力装置、マイクロフォン、および他の種類の入力装置を含んでもよい。また、ユーザインターフェイス入力装置は、たとえば、Microsoft Kinect（登録商標）モーションセンサのようなモーション検知および／またはジェスチャ認識装置を含んでもよい。Microsoft Kinect（登録商標）モーションセンサは、ジェスチャおよび音声命令を利用する自然ユーザインターフェース（NUI）を介して、Microsoft Xbox（登録商標）３６０ゲームコントローラなどの入力装置を制御することができ、それと対話することができる。また、ユーザインターフェイス入力装置は、Google Glass（登録商標）瞬き検出器のような眼球ジェスチャ認識装置を含むことができる。Google Glass（登録商標）瞬き検出器は、ユーザの眼球活動（たとえば、写真を撮るときおよび／またはメニューを選択するときの「瞬き」）を検出し、眼球活動を入力装置（たとえば、Google Glass（登録商標））に入力する入力に変換する。さらに、ユーザインターフェイス入力装置は、音声命令を介してユーザと音声認識システム（たとえば、Siri（登録商標）ナビゲータ）との対話を可能にする音声認識検出装置を含んでもよい。
【００８３】
また、ユーザインターフェイス入力装置は、三次元（３Ｄ）マウス、ジョイスティックまたはポインティングスティック、ゲームパッド、グラフィックタブレット、スピーカなどのオーディオ／ビジュアル装置、デジタルカメラ、デジタルビデオカメラ、ポータブルメディアプレーヤ、ウェブカメラ、イメージスキャナ、指紋スキャナ、バーコードリーダ、３Ｄスキャナ、３Ｄプリンタ、レーザ距離計、および視線追跡装置を含むがこれらに限定されない。さらに、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影装置、磁気共鳴像装置、超音波放射断層撮影装置、および医療用超音波装置などのような医用画像入力装置を含んでもよい。また、ユーザインターフェイス入力装置は、たとえば、ＭＩＤＩキーボードおよび電子楽器などの音声入力装置を含んでもよい。
【００８４】
ユーザインターフェイス出力装置は、ディスプレイサブシステム、インジケータライト、またはオーディオ出力装置などの非視覚ディスプレイを含んでもよい。ディスプレイサブシステムは、たとえば、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）またはプラズマディスプレイを使用するフラットパネル装置、投射装置またはタッチスクリーンであってもよい。一般に、「出力装置」という用語を使用する場合、コンピュータシステム８００から情報をユーザまたは他のコンピュータに出力するためのすべての可能な種類の装置および機構を含むことを意図している。たとえば、ユーザインターフェイス出力装置は、文字、画像およびオーディオ／ビデオ情報を視覚的に伝達するさまざまな表示装置、たとえば、モニタ、プリンタ、スピーカ、ヘッドフォン、カーナビゲーションシステム、プロッタ、音声出力装置、およびモデムを含むがこれらに限定されない。
【００８５】
コンピュータシステム８００は、記憶サブシステム８１８を含む。記憶サブシステム８１８は、ソフトウェア要素を備え、図示では、これらのソフトウェア要素は、システムメモリ８１０内に配置されている。コンピュータシステム８００は、処理ユニット８０４にロード可能かつ実行可能なプログラム命令、およびこれらのプログラムの実行により生成されたデータを記憶することができる。
【００８６】
コンピュータシステム８００の構成およびタイプに応じて、システムメモリ８１０は、揮発性メモリ（たとえば、ランダムアクセスメモリ（random access memory：ＲＡＭ））であってもよく、および／または、不揮発性メモリ（たとえば、読取り専用メモリ（read-only memory：ＲＯＭ）、フラッシュメモリ）であってもよい。一般に、ＲＡＭは、処理ユニット８０４がすぐにアクセス可能なデータおよび／またはプログラムモジュール、および／または、処理ユニット８０４によって現在操作および実行されているデータおよび／またはプログラムモジュールを収容する。いくつかの実現例では、システムメモリ８１０は、スタティックランダムアクセスメモリ（static random access memory：ＳＲＡＭ）またはダイナミックランダムアクセスメモリ（dynamic random access memory：ＤＲＡＭ）などの複数の異なるタイプのメモリを含み得る。いくつかの実現例では、始動中などにコンピュータシステム８００内の要素間で情報を転送することを助ける基本ルーチンを含む基本入力／出力システム（basic input/output system：ＢＩＯＳ）が、一般にＲＯＭに格納され得る。一例としておよび非限定的に、システムメモリ８１０は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム（relational database management system：ＲＤＢＭＳ）などを含み得るアプリケーションプログラム８１２、プログラムデータ８１４およびオペレーティングシステム８１６も示す。一例として、オペレーティングシステム８１６は、マイクロソフトウィンドウズ（登録商標）、Apple Macintosh（登録商標）および／もしくはＬｉｎｕｘ（登録商標）オペレーティングシステムのさまざまなバージョン、さまざまな市販のＵＮＩＸ（登録商標）もしくはＵＮＩＸライクオペレーティングシステム（さまざまなＧＮＵ／Ｌｉｎｕｘオペレーティングシステム、Google Chrome（登録商標）ＯＳなどを含むが、これらに限定されるものではない）、ならびに／または、ｉＯＳ、Windows（登録商標）フォン、アンドロイド（登録商標）ＯＳ、ブラックベリー（登録商標）１０ ＯＳおよびパーム（登録商標）ＯＳオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
【００８７】
また、記憶サブシステム８１８は、いくつかの実施例の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形のコンピュータ可読記憶媒体を提供し得る。プロセッサによって実行されたときに上記の機能を提供するソフトウェア（プログラム、コードモジュール、命令）が記憶サブシステム８１８に格納され得る。これらのソフトウェアモジュールまたは命令は、処理ユニット８０４によって実行され得る。また、記憶サブシステム８１８は、本発明に従って使用されるデータを格納するためのリポジトリを提供し得る。
【００８８】
また、記憶サブシステム８１０は、コンピュータ可読記憶媒体８２２にさらに接続可能なコンピュータ可読記憶媒体リーダ８２０を含み得る。コンピュータ可読記憶媒体８２２は、システムメモリ８１０とともに、または必要に応じてシステムメモリ８１０と組み合わせて、コンピュータ可読情報を一時的および／または永久に収容、格納、送信および検索するための記憶媒体に加えて、リモート記憶装置、ローカル記憶装置、固定的な記憶装置および／または取外し可能な記憶装置を包括的に表すことができる。
【００８９】
また、コードまたはコードの一部を含むコンピュータ可読記憶媒体８２２は、当該技術分野において公知のまたは使用される任意の適切な媒体を含み得て、当該媒体は、情報の格納および／または送信のための任意の方法または技術において実現される揮発性および不揮発性の、取外し可能および取外し不可能な媒体などであるが、これらに限定されるものではない記憶媒体および通信媒体を含む。これは、ＲＡＭ、ＲＯＭ、電子的消去・プログラム可能ＲＯＭ（electronically erasable programmable ROM：ＥＥＰＲＯＭ）、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（digital versatile disk：ＤＶＤ）、または他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体などの有形のコンピュータ可読記憶媒体を含み得る。また、これは、データ信号、データ送信などの無形のコンピュータ可読媒体、または、所望の情報を送信するために使用可能であり且つコンピュータシステム８００によってアクセス可能なその他の媒体を含み得る。
【００９０】
一例として、コンピュータ可読記憶媒体８２２は、取外し不可能な不揮発性磁気媒体から読取るまたは当該媒体に書込むハードディスクドライブ、取外し可能な不揮発性磁気ディスクから読取るまたは当該ディスクに書込む磁気ディスクドライブ、ならびに、ＣＤ  ＲＯＭ、ＤＶＤおよびブルーレイ（登録商標）ディスクまたは他の光学式媒体などの取外し可能な不揮発性光学ディスクから読取るまたは当該ディスクに書込む光学式ディスクドライブを含み得る。コンピュータ可読記憶媒体８２２は、ジップ（登録商標）ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス（universal serial bus：ＵＳＢ）フラッシュドライブ、セキュアデジタル（secure digital：ＳＤ）カード、ＤＶＤディスク、デジタルビデオテープなどを含み得るが、これらに限定されるものではない。また、コンピュータ可読記憶媒体８２２は、フラッシュメモリベースのＳＳＤ、企業向けフラッシュドライブ、ソリッドステートＲＯＭなどの不揮発性メモリに基づくソリッドステートドライブ（solid-state drive：ＳＳＤ）、ソリッドステートＲＡＭ、ダイナミックＲＡＭ、スタティックＲＡＭなどの揮発性メモリに基づくＳＳＤ、ＤＲＡＭベースのＳＳＤ、磁気抵抗ＲＡＭ（magnetoresistive RAM：ＭＲＡＭ）ＳＳＤ、およびＤＲＡＭとフラッシュメモリベースのＳＳＤとの組み合わせを使用するハイブリッドＳＳＤを含み得る。ディスクドライブおよびそれらの関連のコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの不揮発性記憶装置をコンピュータシステム８００に提供し得る。
【００９１】
通信サブシステム８２４は、他のコンピュータシステムおよびネットワークとのインターフェイスを提供する。通信サブシステム８２４は、他のシステムからデータを受信したり、コンピュータシステム８００から他のシステムにデータを送信するためのインターフェイスの役割を果たす。たとえば、通信サブシステム８２４は、コンピュータシステム８００がインターネットを介して１つ以上の装置に接続することを可能にし得る。いくつかの実施例では、通信サブシステム８２４は、（たとえば３Ｇ、４ＧまたはＥＤＧＥ（enhanced data rates for global evolution）などの携帯電話技術、高度データネットワーク技術を用いて）無線音声および／またはデータネットワークにアクセスするための無線周波数（radio frequency：ＲＦ）トランシーバ構成要素、ＷｉＦｉ（ＩＥＥＥ１６０２．１１ファミリ標準または他のモバイル通信技術またはそれらの任意の組み合わせ）、全地球測位システム（global positioning system：ＧＰＳ）レシーバ構成要素、および／または、他の構成要素を含み得る。いくつかの実施例では、通信サブシステム８２４は、無線インターフェイスに加えて、または無線インターフェイスの代わりに、有線ネットワーク接続（たとえばイーサネット）を提供し得る。
【００９２】
また、いくつかの実施例において、通信サブシステム８２４は、コンピュータシステム８００を使用し得る１人以上のユーザを代表して、構造化されたおよび／または構造化されていないデータフィード８２６、イベントストリーム８２８、イベント更新８３０などの形態で入力通信を受信し得る。
【００９３】
一例として、通信サブシステム８２４は、ツイッター（登録商標）フィード、フェースブック（登録商標）更新、リッチ・サイト・サマリ（Rich Site Summary：ＲＳＳ）フィードなどのウェブフィードなどのデータフィード８２６をリアルタイムでソーシャルネットワークおよび／または他の通信サービスのユーザから受信し、および／または、１つ以上の第三者情報源からリアルタイム更新を受信するように構成され得る。
【００９４】
また、通信サブシステム８２４は、連続的なデータストリームの形態でデータを受信するように構成され得て、当該データは、連続的である場合もあれば本質的に明確な端部を持たない状態で境界がない場合もあるリアルタイムイベントのイベントストリーム８２８および／またはイベント更新８３０を含み得る。連続的なデータを生成するアプリケーションの例としては、たとえばセンサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール（たとえばネットワークモニタリングおよびトラフィック管理アプリケーション）、クリックストリーム分析ツール、自動車交通モニタリングなどを含み得る。
【００９５】
また、通信サブシステム８２４は、構造化されたおよび／または構造化されていないデータフィード８２６、イベントストリーム８２８、イベント更新８３０などを、コンピュータシステム８００に結合された１つ以上のストリーミングデータソースコンピュータと通信し得る１つ以上のデータベースに出力するように構成され得る。
【００９６】
コンピュータシステム８００は、手持ち式携帯機器（たとえばiPhone（登録商標）携帯電話、Ipad（登録商標）計算タブレット、ＰＤＡ）、ウェアラブル装置（たとえばGoogle Glass（登録商標）ヘッドマウントディスプレイ）、ＰＣ、ワークステーション、メインフレーム、キオスク、サーバラックまたはその他のデータ処理システムを含むさまざまなタイプのうちの１つであってもよい。
【００９７】
コンピュータおよびネットワークが絶え間なく進化し続けるため、図示されているコンピュータシステム８００の説明は、特定の例として意図されているにすぎない。図に示されているシステムよりも多くのまたは少ない数の構成要素を有する多くの他の構成が可能である。例えば、ハードウェア、ファームウェア、（アプレットを含む）ソフトウェア、または組み合わせにおいて、カスタマイズされたハードウェアも使用されてもよく、および／または、特定の要素が実装されてもよい。さらに、ネットワーク入力／出力装置などの他の計算装置への接続が利用されてもよい。本明細書で提供される開示および教示に基づいて、当業者は、さまざまな実施例を実現するための他の手段および／または方法を理解するであろう。
【００９８】
前述の説明において、説明の目的で、本発明の実施形態を完全に理解できるようにするために、多くの具体的な詳細を記載する。しかしながら、これらの具体的な詳細がなくても本発明を実施できることは明らかであろう。場合によって、一部の周知の構造および装置は、ブロック図で示される。
【００９９】
上記の説明は、例示的な実施形態を提供するもののみであり、本開示の範囲、適用性または構成を限定するものではない。むしろ、例示的な実施形態の上記の説明は、例示的な実施形態を実施可能な説明を当業者に提供する。理解すべきことは、添付の特許請求の範囲に記載された発明の精神および範囲から逸脱することなく、要素の機能および要素の配置にさまざまな変更を加えることができることである。
【０１００】
本発明の実施形態を完全に理解するために、上記の記載において、具体的な詳細を説明した。しかしながら、当業者には、これらの具体的な詳細がなくても、本発明の実施形態を実施できることが理解されるであろう。例えば、不必要な詳細で実施形態を不明瞭にしないように、回路、システム、ネットワーク、プロセスおよび他の構成要素をブロック要素として示してもよい。他の例において、実施形態を不明瞭にしないように、不必要な詳細なしで、周知の回路、プロセス、アルゴリズム、構造および技術を示してもよい。
【０１０１】
また、留意すべきことは、各々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示された処理として説明されていることである。フローチャートは、操作を順次処理として説明しているが、多くの操作は、並行でまたは同時に実行することができる。さらに、操作の順序を再配置してもよい。処理は、その操作が完了した時点で終了するが、図に示されていない追加のステップを含んでもよい。処理は、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。処理が関数に対応する場合、その終了は、呼び出し関数またはメイン関数の戻りに対応することができる。
【０１０２】
「コンピュータ可読媒体」という用語は、命令および／またはデータを記憶、格納または搬送することができる可搬型または固定型記憶装置、光記憶装置、無線チャネル、およびさまざまな他の媒体を含むが、これらに限定されない。コードセグメントまたは機械実行可能な命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、もしくは命令、データ構造またはプログラム文の任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を転送および／または受取ることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータおよびデータなどは、メモリ共有、メッセージ転送、トークン転送、ネットワーク送信などの任意の適切な手段を介して、伝達され、転送され、または送信され得る。
【０１０３】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実施されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードに実施される場合、必要な作業を実行するプログラムコードまたはコードセグメントは、機械可読媒体に格納されてもよい。プロセッサは、必要な作業を実行することができる。
【０１０４】
上記の明細書では、本発明の局面は、その具体的な実施例を参照して記載されているが、本発明はこれに限定されるものではないことを当業者は認識するであろう。上記の発明のさまざまな特徴および局面は、個々にまたは一緒に使用されてもよい。さらに、実施例は、明細書のより広い精神および範囲から逸脱することなく、本明細書に記載されているものを越えたどのような環境およびアプリケーションでも利用可能である。したがって、明細書および図面は、限定的ではなく例示的であるものとみなされるべきである。
【０１０５】
さらに、例示の目的のために、特定の順序で方法を記載した。代替の実施形態において、記載された順序と異なる順序で方法を実行してもよい。また、上述した方法は、ハードウェア構成要素によって実行されてもよく、または一連の機械実行可能な命令で具体化されてもよい。機械実行可能な命令を用いて、汎用または専用プロセッサもしくは命令でプログラムされたロジック回路に指示して、方法を実行することができる。これらの機械実行可能な命令は、１つ以上の機械可読媒体、例えば、ＣＤ−ＲＯＭまたは他の種類の光ディスク、フロッピー（登録商標）ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気または光カード、フラッシュメモリ、または電子命令の記憶に適した他の種類の機械可読媒体を含む。代替的に、これらの方法は、ハードウェアおよびソフトウェアの組み合わせによって実行されてもよい。
【図１】
0006320637.tif 000002
【図２Ａ】
0006320637.tif 000003
【図２Ｂ】
0006320637.tif 000004
【図２Ｃ】
0006320637.tif 000005
【図３Ａ】
0006320637.tif 000006
【図３Ｂ】
0006320637.tif 000007
【図４Ａ】
0006320637.tif 000008
【図４Ｂ】
0006320637.tif 000009
【図５】
0006320637.tif 000010
【図６】
0006320637.tif 000011
【図７】
0006320637.tif 000012
【図８】
0006320637.tif 000013