(57)【要約】【課題】対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を生成する技法を提供する。【解決手段】一例において、コンピュータ実装の方法は、プロセッサに動作可能に連結されたデバイスによって、クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、該クライアント・アプリケーション・プログラム・インターフェースの記述を改変し、クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得るステップを含む。本コンピュータ実装の方法は、該デバイスによって、クライアント・アプリケーション・プログラム・インターフェースの改変された記述と、１つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの１つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成するために、クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析するステップをさらに含むことができる。【選択図】図１
2021508866.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリ中に格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、前記コンピュータ実行可能コンポーネントが、
クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、前記クライアント・アプリケーション・プログラム・インターフェースの前記記述を改変し、前記クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得る、
プレプロセッサ・コンポーネントと、
前記クライアント・アプリケーション・プログラム・インターフェースの前記改変された記述と、１つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの１つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成するために、前記クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析する、
オントロジ・コンポーネントと、
を含む、システム。
【請求項２】
前記オントロジが、エンティティのプリファレンスを表すプリファレンスデータにさらに基づく、請求項１に記載のシステム。
【請求項３】
前記エンティティの前記プリファレンスに従って解析を行うため、前記プリファレンスデータが前記オントロジ・コンポーネントに送信される、請求項２に記載のシステム。
【請求項４】
前記エンティティの前記プリファレンスが、前記エンティティによって開始されたテキストベースのクエリを介して前記オントロジ・コンポーネントに送信される、請求項２に記載のシステム。
【請求項５】
前記オントロジ・コンポーネントが、エンティティによって開始されたテキストベースのクエリに基づいてアプリケーション・プログラム・インターフェースを推奨する、請求項１に記載のシステム。
【請求項６】
前記プレプロセッサ・コンポーネントが、前記エンティティの予測されるインテントと比較するための階層的インテントを生成する、請求項３に記載のシステム。
【請求項７】
前記プレプロセッサ・コンポーネントが、適合していると判断されている用語の頻度に基づいて、前記テキスト・データを抽出する、請求項１に記載のシステム。
【請求項８】
アプリケーション・プログラム・インターフェース推奨を促進するコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含み、前記プログラム命令はプロセッサによって実行可能であり、前記プロセッサに、
クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、前記クライアント・アプリケーション・プログラム・インターフェースの前記記述を改変し、前記クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得させ、
前記クライアント・アプリケーション・プログラム・インターフェースの前記改変された記述と、１つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの１つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成するために、前記クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析させる、
コンピュータ・プログラム製品。
【請求項９】
前記オントロジが、エンティティのプリファレンスを表すプリファレンスデータにさらに基づく、請求項８に記載のコンピュータ・プログラム製品。
【請求項１０】
前記エンティティの前記プリファレンスが、前記エンティティによって開始されたテキストベースのクエリに基づいて処理される、請求項９に記載のコンピュータ・プログラム製品。
【請求項１１】
前記プログラム命令が、前記プロセッサに前記エンティティの予測されるインテントと比較するための階層的インテントを生成させるため、前記プロセッサによってさらに実行可能である、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１２】
前記プログラム命令が、前記プロセッサに用語に関連付けられて定義された条件に基づいて、前記テキスト・データを抽出させるため、前記プロセッサによってさらに実行可能である、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１３】
前記定義された条件が、適合していると判断されている前記用語の頻度を含む、請求項１２に記載のコンピュータ・プログラム製品。
【請求項１４】
プロセッサに動作可能に連結されたデバイスによって、クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、前記クライアント・アプリケーション・プログラム・インターフェースの前記記述を改変し、前記クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得るステップと、
前記デバイスによって、前記クライアント・アプリケーション・プログラム・インターフェースの前記改変された記述と、１つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの１つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成するために、前記クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析するステップと、
を含むコンピュータ実装の方法。
【請求項１５】
前記オントロジがプリファレンスデータにさらに基づく、請求項１４に記載のコンピュータ実装の方法。
【請求項１６】
前記プリファレンスデータがエンティティのプリファレンスを表す、請求項１５に記載のコンピュータ実装の方法。
【請求項１７】
前記エンティティの前記プリファレンスが、前記エンティティによって開始されたテキストベースのクエリを介して処理される、請求項１６に記載のコンピュータ実装の方法。
【請求項１８】
前記デバイスによって、アプリケーション・プログラム・インターフェースを推奨するステップをさらに含む、請求項１４に記載のコンピュータ実装の方法
【請求項１９】
前記推奨するステップが、エンティティによって開始されたテキストベースのクエリに基づく、請求項１８に記載のコンピュータ実装の方法。
【請求項２０】
前記デバイスによって、前記エンティティの予測されるインテントと比較するための階層的インテントを生成するステップをさらに含む、請求項１７に記載のコンピュータ実装の方法。
【請求項２１】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリ中に格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、前記コンピュータ実行可能コンポーネントが、
エンティティによって提供されたフィードバック・データに基づいて、前記エンティティから受信された、対象領域オントロジを表す対象領域オントロジ・データを解析し、
前記対象領域オントロジ・データに基づいて、コミュニティを生成するため、アプリケーション・プログラム・インターフェース推奨システムを訓練する、
ニューラル・ネットワーク・コンポーネント、
を含む、前記プロセッサと、
を含むシステム。
【請求項２２】
前記ニューラル・ネットワーク・コンポーネントが、前記対象領域オントロジ・データに基づいて、前記エンティティのクエリからのテキスト・データを前記コミュニティに割り当てる、請求項２１に記載のシステム。
【請求項２３】
テキスト・データが第一テキスト・データであり、前記コンピュータ実行可能コンポーネントが、
前記エンティティの予測されるインテントを判断するために、前記クエリから第二テキスト・データを抽出するプレプロセッサ・コンポーネント、
をさらに含む、請求項２２に記載のシステム。
【請求項２４】
アプリケーション・プログラム・インターフェース推奨を促進するコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含み、前記プログラム命令はプロセッサによって実行可能であり、前記プロセッサに、
エンティティによって提供されたフィードバック・データに基づいて、前記エンティティから受信された、対象領域オントロジを表す対象領域オントロジ・データを解析させ、
前記対象領域オントロジ・データに基づいて、コミュニティを生成するため、アプリケーション・プログラム・インターフェース推奨システムを訓練させる、
コンピュータ・プログラム製品。
【請求項２５】
前記プログラム命令が、前記プロセッサに、前記対象領域オントロジ・データに基づいて、前記エンティティのクエリからのテキスト・データを前記コミュニティに割り当てさせるため前記プロセッサによってさらに実行可能である、請求項２４に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、アプリケーション・プログラム・インタフェース・クエリに関し、さらに具体的には、対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨に関する。
【背景技術】
【０００２】
自然言語のクエリを使ってサービスを推奨する既存のアプローチは、教師有りおよび教師なしアプローチに基づいている。教師付きアプローチは、特定のサービスでアノテートされた自然言語クエリを伴うデータセットに依拠する。このアノテーション・プロセスはマニュアルであり、通常、深い対象領域の知識を用いるので、これらのアプローチは、異種のデータセット、特に新しい対象領域からのデータセットには容易に適用可能でない。例えば、これらは、主として、キーワードの一致、エンティティ関係、トピック、およびクラスタに基づいている。しかしながら、キーワードおよびエンティティ関係は、クエリとサービスとの間の意味的類似性を無視する。トピックおよびクラスタは、意味的類似性を把握するが、但し、これらは諸サービスも間の関係を明示的に捉えるマッシュアップに依拠する。しかしながら、新しい対象領域ではかかるデータは容易に利用可能でない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を生成する技法を提供する。
【課題を解決するための手段】
【０００４】
以下は、本開示の１つ以上の実施形態の基本的理解を提供するための要約である。この要約は、主要なまたは重要な要素を明確化したり、またはこれら特定の実施形態の何らかの範囲、または特許請求の何らかの範囲を叙述することは意図されていない。その唯一の目的は、後記で提示するより詳細な説明の前置きとして簡単な形で本開示の概念を提示することである。本明細書に記載の１つ以上の実施形態において、対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨を促進する、デバイス、システム、コンピュータ実装の方法、装置、もしくはコンピュータ・プログラム製品またはこれらの組み合せが説明される。
【０００５】
或る実施形態によれば、或るシステムは、コンピュータ実行可能コンポーネントを格納するメモリ、および該メモリ中に格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを含むことができる。本システムのこれらコンピュータ実行可能コンポーネントは、クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、該クライアント・アプリケーション・プログラム・インターフェースの記述を改変し、クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得る、プレプロセッサ・コンポーネントを含むことが可能である。また、本システムのこれら実行可能コンポーネントは、クライアント・アプリケーション・プログラム・インターフェースの改変された記述と、１つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの１つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成するために、クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析する、オントロジ・コンポーネントを含むことができる。
【０００６】
別の実施形態によれば、アプリケーション・プログラム・インターフェース推奨を促進するコンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含むことができる。本プログラム命令はプロセッサによって実行が可能であり、このプロセッサは、クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、該クライアント・アプリケーション・プログラム・インターフェースの記述を改変し、クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得ることができる。また、本プログラム命令は、該クライアント・アプリケーション・プログラム・インターフェースの改変された記述と、１つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの１つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成するために、クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析するため、プロセッサによって実行が可能である。
【０００７】
さらに別の実施形態によれば、コンピュータ実装の方法が提供される。本コンピュータ実装の方法は、プロセッサに動作可能に連結されたデバイスによって、クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって該クライアント・アプリケーション・プログラム・インターフェースの記述を改変し、クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得るステップを含む。本コンピュータ実装の方法は、該デバイスによって、クライアント・アプリケーション・プログラム・インターフェースの改変された記述と、１つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの１つ以上の従前の記述との間の意味的類似性に基づいて、オントロジを生成するために、クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを解析するステップをさらに含むことができる。
【０００８】
別の実施形態によれば、或るシステムは、コンピュータ実行可能コンポーネントを格納するメモリ、および該メモリ中に格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを含むことができる。本システムのコンピュータ実行可能コンポーネントは、エンティティによって提供されたフィードバック・データに基づいて、該エンティティから受信した対象領域のオントロジを表す対象領域オントロジを解析する、オントロジ・コンポーネントを含むことが可能である。また、本システムのコンピュータ実行可能コンポーネントは、対象領域オントロジ・データに基づいて、コミュニティを生成するために、アプリケーション・プログラム・インターフェース推奨システムを訓練する、ニューラル・ネットワーク・コンポーネントも含むことができる。
【０００９】
別の実施形態によれば、アプリケーション・プログラム・インターフェース推奨を促進するコンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含むことができる。本プログラム命令はプロセッサによって実行が可能であり、プロセッサは、エンティティによって提供されたフィードバック・データに基づいて、該エンティティから受信した対象領域のオントロジを表す対象領域オントロジを解析することができる。また、本プログラム命令は、該プロセッサによって、対象領域オントロジ・データに基づいて、コミュニティを生成するために、アプリケーション・プログラム・インターフェース推奨システムを訓練するため実行が可能である。
【００１０】
いくつかの実施形態において、システム、コンピュータ実装の方法、もしくはコンピュータ・プログラム製品、またはこれらの組み合せに関連して説明した上記のエレメントの１つ以上は、コンピュータ実装の方法、コンピュータ・プログラム製品、またはシステムなどの異なった形態で具現化することができる。
【図面の簡単な説明】
【００１１】
【図１】本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。
【図２】本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。
【図３】本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。
【図４】本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステム・ネットワークを示す。
【図５】本明細書に記載の１つ以上の実施形態による、対象領域オントロジを利用するクエリ突合わせを促進する例示、非限定のブロック図を示す。
【図６】本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、例示、非限定のフロー図を示す。
【図７】本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、さらなる例示、非限定のフロー図を示す。
【図８】本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する長・短期メモリ・オートエンコーダに対する例示、非限定のフロー図を示す。
【図９】本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、コンピュータ実装の方法の例示、非限定のフロー図を示す。
【図１０】本明細書に記載の１つ以上の実施形態を促進可能な例示、非限定の動作環境のブロック図を示す。
【発明を実施するための形態】
【００１２】
以降の詳細な説明は単なる例示であって、諸実施形態もしくは諸実施形態の応用または使用、またはその両方を限定することは意図されていない。さらに、上記の背景技術または要約のセクション、または詳細な説明のセクションにおいて提示されたいかなる明示または暗示の情報にも拘束されることは意図されてない。
【００１３】
以降で、これらの図面を参照しながら１つ以上の実施形態が説明され、図面全体を通して同じ要素を参照するために同じ参照符号が使われる。以下の記述において、１つ以上の実施形態のより徹底した理解を提供するために、説明目的で多くの具体的詳細が明示される。但し、当然のことながら、様々な事例において、これら１つ以上の実施形態はこれらの具体的詳細がなくても実践が可能である。
【００１４】
自然言語のクエリを使ってサービスを推奨する既存のアプローチは、教師有りおよび教師なしアプローチに基づいている。教師付きアプローチは、特定のサービスでアノテートされた自然言語クエリを伴うデータセットに依拠する。このアノテーション・プロセスはマニュアルであり、通常、深い対象領域の知識を用いるので、これらのアプローチは、異種のデータセット、特に新しい対象領域からのデータセットには容易に適用可能でない。例えば、これらは、主として、キーワードの一致、エンティティ関係、トピック、およびクラスタに基づいている。しかしながら、キーワードおよびエンティティ関係は、クエリとサービスとの間の意味的類似性を無視する。トピックおよびクラスタは、意味的類似性を把握するが、但し、これらは諸サービスも間の関係を明示的に捉えるマッシュアップに依拠する。しかしながら、新しい対象領域ではかかるデータは容易に利用可能でない。
【００１５】
サービスを推奨するためサービス記述に依拠するフレームワークは、前述した問題を是正することができる。このフレームワークの１つ以上の実施形態は、新しいデータセットに対する自動推奨機能として直ちに適用可能であるという利点を有する。諸サービスの間の関係を把握するために、このフレームワークの１つ以上の実施形態はコミュニティを構築するための異なったアプローチを提供することができ、このコミュニティとはサービスのグループに対する１つの抽象化を表す。該コミュニティとユーザ・クエリとに基づいて、このフレームワークの１つ以上の実施形態は、トップｋ個のサービスを推奨するためクエリ突合わせアプローチを適用することができる。このフレームワークは、複数の収集されたデータセットに亘り、エンティティに有意義な推奨を提供するために、該複数の収集データセットに対比して評価することができる。本明細書で用いられる用語「エンティティ」（および「エンティティ群」）は、ハードウェア、ソフトウェア、マシン、人間などであるか、それらを含んでよい。
【００１６】
本明細書に記載の１つ以上の実施形態は、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を生成することができる。さらに、本明細書に記述する１つ以上の実施形態は、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨の生成を促進する、システム、コンピュータ実装の方法、装置およびコンピュータ・プログラム製品を含む。
【００１７】
図１は、本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。
【００１８】
図１に表されるように、インテント・ジェネレータ・コンポーネント１００は、いくつかのサブコンポーネント（例えば、プレプロセッサ・コンポーネント１０２、コミュニティ・エクストラクタ・コンポーネント１０４など）、プロセッサ１０６、およびメモリ１０８を含むことができ、これらは、様々な実施形態において、電気的にもしくは通信可能にまたはその両方で連結することが可能である。なお、いくつかの実施形態では、これらサブコンポーネント（例えば、プレプロセッサ・コンポーネント１０２、コミュニティ・エクストラクタ・コンポーネント１０４など）は、インテント・ジェネレータ・コンポーネント１００の外部にあってもよい。
【００１９】
プロセッサ１０６の諸態様は、マシン（単数または複数）内に具現化された、例えば、１つ以上のマシンに関連付けられた１つ以上のコンピュータ可読媒体群（または諸媒体）中に具現化された、マシン実行可能コンポーネント（単数または複数）を構成することが可能である。かかるコンポーネント（単数または複数）は、１つ以上のマシン、例えば、コンピュータ（単数または複数）、コンピューティング・デバイス（単数または複数）、仮想マシン（単数または複数）などによって実行されると、それらマシン（単数または複数）にインテント・ジェネレータ・コンポーネント１００によって記述されたオペレーションを実行させることができる。また、或る態様において、インテント・ジェネレータ・コンポーネント１００は、コンピュータ実行可能コンポーネントおよび命令を格納するメモリ１０８も含んでよい。
【００２０】
一実施形態において、プレプロセッサ・コンポーネント１０２は、入力として自然言語のサービス記述を受信し、特化型自然言語プログラム・パイプラインを用いてそれらを前処理することができる。前処理は、１つ以上の機能を含むことが可能である。例えば、テキスト入力１１０の句読点を除去することができる。さらに、テキスト入力１１０から名詞句を抽出するために品詞（ＰＯＳ：ｐａｒｔ−ｏｆ−ｓｐｅｅｃｈ）タグ記号を適用することが可能である。これらのステップの後、高頻度もしくは稀と考えられる単語またはその両方を除去することができる。最高頻度の単語は、高い単語数を有し得るが、意味論的な意味をほとんど持たないので、高頻度の単語の残留を許すことによって、関連する言語モデルの効果性が低減される可能性がある。また、ほとんどの希少単語も、それらの、他の単語との共起が偶然に左右されるので除去されてよい。例えば、サービス記述が、単語「マイクロデータ」への単一回の言及を包含している場合、「マイクロデータ」に近い全ての単語が、単一の文から来ている可能性が高く、したがって、それらの共起を他の文に一般化することはできない。例えば、３つ以下の文書中に出現する稀な単語、および諸文書の１０パーセント以上に出現する高頻度の単語は除去されてよい。なお、用語を除去または抽出するために任意の閾値数を使ってよく、前述の数は単なる例である。
【００２１】
或るトピックモデルの解釈可能性は、トピックに関連付けられる最多頻度の用語によって評価することが可能である。効果的な推論モデルに基づく事後コーパス固有のストップ・ワードの除去の後、モデルの解釈可能性をさらに増強することができる。コーパス固有のストップ・ワードとは、多くの文書に出現するが、その頻度は、高頻度単語と見なすに十分なほど高くない用語である。高頻度単語の閾値を下げることには、他の多くの情報価値のある単語を失うリスクがある。また一方、ストップ・ワードは、いくつかの低品質トピック（例えば、首尾一貫した合理的な意味を持たない単語群）に分離される傾向がある。結果的に、低品質トピックを選択して、それらトピック中の最高頻度の用語を特定的に除去することが可能である。
【００２２】
さらに、インテント・ジェネレータ・コンポーネント１００は、アプリケーション・プログラム・インターフェース（ＡＰＩ：ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ）の記述に基づいて、それらの間の意味的類似性を判断するように構成することができる。例えば、第一クライアント・アプリケーション・プログラム・インターフェースに関連付けられた記述は、前述のプレプロセッサ・コンポーネント１０２の処理によって改変することが可能で、改変されたＡＰＩ記述が得られる。改変されたＡＰＩ記述は、次いで、改変されたＡＰＩ記述を別のクライアントＡＰＩ記述と対比し、２つの間の意味的類似性を判断することができる。その結果、或る特定の類似性閾値が満たされた場合、インテント・ジェネレータ・コンポーネント１００は、さらなる処理へと進むことが可能である。
【００２３】
コミュニティ・エクストラクタ・コンポーネント１０４は、前処理されたＡＰＩ記述を受信し、それらの関連性に従ってコミュニティを形成することができる。各コミュニティ内（または、いくつかの実施形態では、１つ以上のコミュニティ内）で、葉ノードが、トピックモデリング技法によって推定されたトピックである、階層構造体を構築することが可能で、各トピック（葉）（または、いくつかの実施形態では、１つ以上のトピック）は、サービス記述のリストに連結することができ、非葉のノードはインテントを表すことができる。なお、この構造体の深さは、抽象化の異なるレベルのインテントを示すことが可能である。ルート・ノードにより近いインテントは、抽象的且つ全般的なインテント（例えば、投資）を表すことができ、一方、トピックにより近いインテントは、詳細かつ具体的なインテント（例えば、株式取引）を表すことができる。共通の上位トピックを共有するトピックは、より高度の関連性を有すると見なすことが可能である。例えば、トピック「音楽」、「ＴＶ」、および「ビデオ」はゆるやかに関係しているが、他方、「場所」、「経路」、および「地図」は密接に関係していると見なすことができる。
【００２４】
コミュニティは、３つのアプローチを介して抽出することが可能である。その第一は、各学習されたトピック（または、いくつかの実施形態では、１つ以上の学習されたトピック）が単一のコミュニティを形成する、トピックモデリング技法を用いるベースライン・アプローチである。なお、このベースライン・アプローチは、階層的インテント・ツリーを構築しない。第二のアプローチは、最初にトピックを推定し、次いでそれらのトピックに対するコミュニティを識別するためにコミュニティ検出法を適用する、ボトム・アップ・アプローチとすることができる。第三のアプローチは、各サービスに対する（または、１つ以上のサービスに対する）潜在型のハイレベル低次元のベクトル表現を学習し、次いで、ｋミーンズ・クラスタ・アプローチを用いて、類似ベクトルを一コミュニティにグループ化するトップ・ダウン・アプローチとすることが可能である。その後、各クラスタ内の（またはいくつかの実施形態では、１つ以上のクラスタ内の）サービスにトピックモデリング法を適用することができる。
【００２５】
トピック非負値行列因数分解（ＴＮＭＦ：ｔｏｐｉｃ  ｎｏｎ−ｎｅｇａｔｉｖｅ  ｍａｔｒｉｘ  ｆａｃｔｏｒｉｚａｔｉｏｎ）は、短いテキストからトピックを見出すために設計された方法である。非負値行列因数分解（ＮＭＦ：ｎｏｎ−ｎｅｇａｔｉｖｅ  ｍａｔｒｉｘ  ｆａｃｔｏｒｉｚａｔｉｏｎ）に対する従来式のモデリングは、検索語−文書行列を分解することができ、これは所与の文書中の当該用語の出現度を示す。しかしながら、短いテキストに対して、検索語−文書行列は極めて疎となり得て、これはモデルが確かなトピックを学習することを妨げる可能性がある。ＴＮＭＦは、頻繁に共起する用語は共通なトピックに関連している可能性が極めて高いとの想定をすることによってこの問題を処理する。例えば、用語「住所」と「郵便番号」とが同じ文書に数回にわたって共起する場合、これらは共通のトピック（例えば、場所）について言及している可能性が高い。しかして、ＴＮＭＦは、代わりに、用語相関行列を分解することによって確かなトピックを学習することが可能である。この行列は疎の問題に煩わされないので、たとえ文書の数が増えても、語彙のサイズは安定している。
【００２６】
ＴＮＭＦでは、各用語ｔｉは、用語出現ベクトル（ｗｉ，１，・・・、ｗｉ，ｍ）として表すことが可能で、このｗｉ，ｍは、用語ｔｉとｔｍとの共起に基づいて決まる。ｗｉ，ｍを評価するために、用語ｔｉおよびｔｍに対する正の相互情報量（ＰＰＭＩ：ｐｏｓｉｔｉｖｅ  ｐｏｉｎｔ  ｍｕｔｕａｌ  ｉｎｆｏｒｍａｔｉｏｎ）が計算される。用語出現ベクトルを計算した後、用語相関行列Ｓを生成するために、共通ベクトル類似性指標（例えば、コサイン係数）が計算される。用語行列Ｓが学習されたならば、トピック学習問題は、以下の目的関数を最小化する用語−トピック行列Ｕを見出すこととして定式化される。
【００２７】
【数１】
2021508866.tif 000003
【００２８】
式（１）は、このモデルが最小化しようとする目的関数である。しかして式（１）は、非負値行列因数分解の算式である。Ｆは、行列のフロベニウス形式を表し、
【００２９】
【数２】
2021508866.tif 000004
は
【数３】
2021508866.tif 000005
【００３０】
として表される。対称非負値行列因数分解を、用語相関行列に適用し、トピックを抽出し、検索語−トピック行列Ｕを学習することができる。次いで、当初の検索語−文書行列Ｘと、ここでの検索語−トピック行列Ｕとに基づいて、トピック−文書行列Ｖを解くことが可能である。これらの結果、インテント・ジェネレータ・コンポーネント１００は、ショート・テキストを受信し、そのショート・テキストをプレプロセッサ１０２に通して実行して無関係のテキストを抜き取り、改良されたテキスト・データを得、次いで、コミュニティ・エキストラクタ・コンポーネント１０４によって実行されるＴＮＭＦに基づいてその改良テキスト・データを特定のトピックに関連付けるように構成することができる。
【００３１】
抽象的でなく、且つ、例えば、ユーザのテキスト・クエリから対象領域およびクライアント固有のＡＰＩ推奨を促進するために必要な処理能力に起因して、人間による一組の精神的な活動として行うことのできない、高度に技術的な性質の問題（例えば、ソフトウェア・テキスト検索、意味タグ付け、テキスト頻度の算定、数百万の用語から成るコーパス内の共通点のない用語／文の突合わせなど）を解決するためにハードウェアもしくはソフトウェアまたはその両方を使用するため、インテント・ジェネレータ１００を用いることができる。さらに、実行される処理の一部は、メモリ・オペレーションに関する定義されたタスクを遂行するために特殊化されたコンピュータによって行われてよい。例えば、用語の頻度などに基づいて、テキスト入力の事前処理に関連するタスクを遂行するために特殊化されたコンピュータを用いることが可能である。
【００３２】
図２は、本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
【００３３】
インテント・ジェネレータ・コンポーネント２００は、クエリ・マッチャ・コンポーネント２０２を含むことができる。クエリ・マッチャ・コンポーネント２０２は、エンティティからのクエリに基づいて、そのエンティティにサービスのリストを推奨／出力することが可能である。クエリ２０６に基づいて、関係性を判断するため、諸コミュニティおよびその下にあるトピックをクエリ２０６に対比してチェックすることができる。例えば、関係性をチェックするためにクエリ２０６と当該トピックとの間の一致性スコアＭ（クエリ、トピック）（例えば、クエリ中の各単語と所与のトピック中の各トップ・キーワードと間の類似性スコアの和）が生成されてよい。単語類似性は、Ｗｕ−Ｐａｌｍｅｒスコアに基づいて計算が可能で、これは、分類学に関連して単語の意味の深さを検討することによって２つの単語の意味の関係度を計算する。また、Ｗｕ−Ｐａｌｍｅｒスコアは、単語の最小共通包摂（ｌｅａｓｔ  ｃｏｍｍｏｎ  ｓｕｂｓｕｍｅｒ）（例えば、特定の上位ノード）の深さも計算することができる。
【００３４】
【数４】
2021508866.tif 000006
式（３）：類似性（ｕ，ｖ）＝ｍａｘ（Ｗｕ−Ｐａｌｍｅｒ（ｕｉ，ｖｊ））（４）、このｕは、クエリ２０６中の単語であり、ｗはトピックの用語であり、ｕｉおよびｖｊは単語の意味である。
【００３５】
ノードのセットおよび一ルートによって形成されたオントロジを考えてみる。このオントロジにおいて、Ｃ１およびＣ２が、類似性を計算する対象のオントロジ・エレメントであるとしよう。この類似性は、Ｃ１およびＣ２がルート・ノードから離れている距離（Ｎ１およびＮ２）と、共通の直近上位ノードがルート・ノードから離れている距離（Ｎ）とに基づいて計算される。この類似性は、類似＿Ｗｕ−Ｐａｌｍｅｒとして定義され、類似性（Ｗｕ−Ｐａｌｍｅｒ（Ｃ１，Ｃ２））が
【００３６】
【数５】
2021508866.tif 000007
【００３７】
に等しくなり得る、として表現される。ワードネットに関して、同義語のセット（ｓｙｎｓｅｔ）ｓ１およびｓ２の類似性が、Ｌｅａｓｔ  Ｃｏｍｍｏｎ  Ｓｕｂｓｕｍｅｒ（ＬＣＳ））の深さとともに、ワードネット分類学中の２つのｓｙｎｓｅｔの深さを考慮しながら計算される。算式は、
【００３８】
【数６】
2021508866.tif 000008
【００３９】
である。Ｍ（クエリ，トピック）はクエリ中の各単語ｕおよびトピック中の単語ｗに対する類似＿Ｗｕ−Ｐａｌｍｅｒの計算を表す。クエリ中のｕおよびトピック中の単語ｗに対しＭ（クエリ，トピック）によって返された最大値に基づいて類似性（クエリ，トピック）を計算する。
【００４０】
しかして、検討対象のトピックが相異なるコミュニティに属し、共通の上位トピックを共有しない場合、それらトピックの親ノードを識別することが可能で、識別されたインテントの下でのサービスを候補として返すことができる。
【００４１】
候補としてサービスの或るセットが与えられた場合、潜在的意味インデックス（ＬＳＩ：ｌａｔｅｎｔ  ｓｅｍａｎｔｉｃ  ｉｎｄｅｘ）を用いて、それら候補サービスとクエリ２０６との間の一致性スコアを計算することが可能である。ＬＳＩは、用語出現頻度−逆文書頻度（ＴＦ−ＩＤＦ：ｔｅｒｍ  ｆｒｅｑｕｅｎｃｙ−ｉｎｖｅｒｓｅ  ｄｏｃｕｍｅｎｔ  ｆｒｅｑｕｅｎｃｙ）行列を生成し、特異値分解（ＳＶＤ：ｓｉｎｇｕｌａｒ  ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ）を用いてＴＦ−ＩＤＦ行列を近似計算することによって、ｋ次元の空間を生成することができる。ＳＶＤは、コラム間の類似性構造を保持しながら、当初の行列の次元を低減する。これにより、エンティティのクエリ２０６は、ｋ次元のＬＳＩ空間にマップすることが可能となる。クエリ２０６と所与の文書との類似性は２つのベクトルのコサイン類似性を用いて計算することができる。結果として、エンティティに対し、出力２０８として、最高の類似性スコアを備えたＡＰＩサービスを推奨することが可能である。
【００４２】
また、コミュニティ・エクストラクタ・コンポーネント１０４は、ニューラル・ネットワーク・コンポーネント２０４も含んでよい。例えば、人工知能（ＡＩ：ａｒｔｉｆｉｃｉａｌ  ｉｎｔｅｌｌｉｇｅｎｃｅ）は、本開示の態様による、１つ以上の機能の自動化を促進することが可能である。メモリおよびプロセッサならびに他のコンポーネントは、諸図面に関連する機能を含むことができる。本開示の態様は、ＡＰＩ推奨の生成に関して、それらの様々な態様を遂行するための様々なＡＩベースのスキームを用いることが可能である。例えば、１つ以上のトリガ・イベントを検出し、それら１つ以上のトリガ・イベントの結果として活動を決定し、ＡＰＩ推奨を生成する等々のためのプロセスは、例の自動分類システムおよびプロセスによって促進することができる。別の例において、頻度に基づいて、或る用語を忌避しながら別の用語を選好するためのプロセスは、該例の自動分類システムおよびプロセスによって促進することができる。
【００４３】
或る例のクラシファイヤは、入力属性ベクトル、ｘ＝（ｘ１，ｘ２，ｘ３，ｘ４，ｘｎ）を、その入力が或るクラスに属する信頼区間にマップする関数、すなわちｆ（ｘ）＝信頼区間（クラス）であってよい。かかる分類には、自動的に行うことが可能な処置（例えば、高頻度のテキストを抽出する）を予知または推定するための確率的もしくは統計的ベースまたはその両方の解析（例えば、解析ユーティリティを取り入れて）を用いることができる。サポート・ベクトル・マシン（ＳＶＭ：ｓｕｐｐｏｒｔ  ｖｅｃｔｏｒ  ｍａｃｈｉｎｅ）は用いることが可能なクラシファイヤの一例である。ＳＶＭは、あり得る入力の空間の超曲面を見出すことによって作動することが可能で、この超曲面は、非トリガ・イベントからトリガ基準を分けるよう試みる。直観的に、これは、分類により、訓練データに近いが同じではない試験データを補正する。他の有方向および無方向のモデル分類アプローチは、例えば、ナィーブベイズ、ベイジアンネットワーク、回帰ニュ−ラル・ネットワーク・デシジョン・ツリー、ファージィ論理モデル、および使用可能な独立性の異なるパターンを提供する確率的分類モデルが含まれる。また、本明細書で用いる分類には、優先度モデルを展開するために用いられる統計的回帰が含まれてよい。
【００４４】
本開示の諸態様は、（例えば、一般的な訓練データによって）明示で訓練された、および（例えば、トリガ・イベントに関連する用語抽出の観察によって）非明示的に訓練された、クラシファイヤを用いることができる。例えば、ＳＶＭは、クラシファイヤ・コンストラクタ、および特徴選択モジュール内の学習または訓練フェーズを用いて構成することが可能である。しかして、クラシファイヤ（単数または複数）は、以下に限らないが、用語抽出、用語重み付け、用語フィルタリング、トピックとの用語の関連付けなどを含め、いくつかの機能を自動的に学習し、実行するために使うことができる。これらの基準は、以下に限らないが、事前定義された値、寄与減衰テーブルまたは他のパラメータ、優先度、もしくはポリシーなどを含んでよい。なお、ニューラル・ネットワーク・コンポーネント２０４は、また本開示の様々な他のコンポーネントのサブコンポーネントであってもよい。例えば、図３に関連して説明するオントロジ・コンポーネントは、ニューラル・ネットワークもまた含むことが可能である。
【００４５】
図３は、本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
【００４６】
別の実施形態において、インテント・ジェネレータ・コンポーネント３００は、オントロジ・コンポーネント３０２を含むことができる。オントロジ・コンポーネント３０２は、公式に、トピック、特性、クライアント固有もしくは対象領域固有のまたはその両方のクエリに基づいて存在する、コミュニティとクエリとの相互関係を公式に挙げ、定義することが可能である。オントロジ・コンポーネント３０２は、インテント・ジェネレータ・コンポーネント３００の計算のために必要な変数を区分し、それらの間の関係性を確立することができる。
【００４７】
オントロジ・コンポーネント３０２は、クエリ・マッチャ・コンポーネント２０２により生成された一致性と、出力２０８（例えば、推奨、信頼度スコアなど）と、エンティティからのフィードバックなどとに基づいて、関連するオントロジを再帰的に改変するように構成することが可能である。例えば、出力２０８のための出力データが生成された後、その出力データはオントロジ・コンポーネント３０２によって受信されてよい。オントロジ・コンポーネント３０２は、次いで、その出力データから新規の対象領域のオントロジを生成し、その新規の対象領域オントロジを、コミュニティ・エクストラクタ・コンポーネント１０４、プレプロセッサ・コンポーネント１０２、もしくはクエリ・マッチャ・コンポーネント２０２、またはこれらの組み合せに送信することができる。オントロジ・コンポーネント３０２が新規の対象領域オントリジを生成するのに基づいて、プレプロセッサ・コンポーネント１０２は、さらなるサービス、トピック、もしくはコミュニティ、またはこれらの組み合せを生成するために、その新規の対象領域オントロジに従って新しい入力を前処理することが可能となる。
【００４８】
別の実施形態において、エンティティは、自分固有の対象領域オントロジまたはプリファレンスを、インテント・ジェネレータ・コンポーネント３００が突合せを行うために、インテント・ジェネレータ・コンポーネント３００に与えてよい。例えば、エンティティのテキストベースのクエリから生成された出力２０８（例えば、ＡＰＩ推奨）に基づいて、エンティティは、該エンティティが推奨されたＡＰＩを選好するか、または該エンティティが別のＡＰＩを選好することになるかを決めることができる。結果として、オントロジ・コンポーネント３０２は、今後の繰り返しの突合せプロセスをさらに改良するため、エンティティのプリファレンスに関連するプリファレンスデータを受信することが可能である。しかして、さらなるＡＰＩ推奨を生成するとき、同じエンティティに対する将来の推奨には、このエンティティのプリファレンスを考慮に入れることができる。
【００４９】
図４は、本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステム・ネットワークを示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
【００５０】
別の実施形態において、システムが取ることのできる１つのアプローチは、最初に（前述した）ＴＮＭＦを使ってトピックを学習し、次いで、ルヴァンのコミュニティ検出法（ＬＣＤ：Ｌｏｕｖａｉｎ’ｓ  ｃｏｍｍｕｎｉｔｙ  ｄｅｔｅｃｔｉｏｎ）と呼ばれるグリーディ最適化アルゴリズムを使用して、トピックとサービスとの間の対（つい）での関連付けを形成する、構築ネットワーク４００を用いてコミュニティを抽出することである。さらに具体的には、ネットワーク４００は、学習されたトピック−文書行列Ｖに基づいて構築される。ネットワーク４００において、ノードは、サービス（または文書）およびトピックを表すことができる。Ｖ中の対応するエントリが非ゼロの場合、トピックとサービスとの間に重み付きエッジを形成することができる。しかして、この重みはそのエントリの値である。
【００５１】
ネットワーク４００が、示されているように完結された後、それからコミュニティを抽出するために、ＬＣＤを適用することが可能である。ＬＣＤはグリーディ最適化アルゴリズムであり、ＬＣＤによる最適化の対象値は、モジュラリティと呼ばれるスケール値である（図示のように−１〜１の間の範囲にある）。モジュラリティは、外側コミュニティのエッジに対する内側コミュニティのエッジの密度を測定する。しかして、モジュラリティを最適化することは、コミュニティの区画化につながり得る。全てのあり得る区画に亘って繰り返しを行うことは極めて非実際的である。しかして、以下の２つのフェーズを変化が生じなくなるまで反復的に繰り返すヒューリスティック・アプローチを用いてよい。
【００５２】
第一フェーズでは、全てのノードがそれら自体のコミュニティに割り当てられる。ノードｉをそれ自体のコミュニティ４０２からその隣接のコミュニティ４０４ｊ（当初はモードｊだけを包含している）に移動するためのモジュラリティの変更が計算される。このモジュラリティの変更は、次のヒューリスティック関数、
【００５３】
【数７】
2021508866.tif 000009
【００５４】
を使用して計算できる。このΣｉｎは、ｉがその中へと移動しているコミュニティ（Ｃ）（例えばコミュニティ４０４）の内側のエッジの全ての重みの和であり（いくつかの実施形態では、Σｉｎは、Ｃの内側のリンクの和を表すと見なすことができる）、ΣｔｏｔはＣ中のノードへのリンクの和を表す。Σｔｏｔは、当該コミュニティ（例えば、コミュニティ４０２）中のエッジの全ての重みの和である。変数ｋｉはｉの重み付き程度である（いくつかの実施形態では、ｋｉはノードｉへのリンクの重みの和と見なすことができる）。ｋｉ，ｉｎは、コミュニティ（例えば、コミュニティ４０２）中のｉと他のノードとの間のリンクの重みの和であり、ｍはネットワーク中の全てのリンクの重みの和である。
【００５５】
いくつかの実施形態において、Σｉｎは、Ｃの内側のリンクの和を表す。Σｔｏｔは、Ｃ中のノードへのリンクの和を表す。ｋｉは、ノードｉへのリンクの重みの和である。ｋｉ，ｉｎは、ｉからＣ中の諸ノードへのリンクの重みの和であり、ｍは当該ネットワーク中の全てのリンクの重みの和である。
【００５６】
ノードｉが連結されている、全てのコミュニティに対し値が計算されたならば、ノードｉは、最大のΔＱがもたらされるようにコミュニティ４０４中に結合することができる。このプロセスは、ネットワーク中の全てのコミュニティに逐次的に適用することが可能である。第二フェーズの過程で、同じコミュニティ中のノードは、一緒にグループ化され、そのグループ全体を一ノードとして扱ってよく、しかして、新しいネットワークを構築することができる。次いで、第一フェーズを再適用することができ、このプロセスが、モジュラリティに、定義された閾値より大きな変化がなくなるまで反復される。
【００５７】
図５は、本明細書に記載の１つ以上の実施形態による、対象領域・オントロジを利用するクエリ突合わせを促進する例示、非限定のブロック図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
【００５８】
テキスト５０２（例えば、「地図、場所、住所」）を包含するクエリ２０６に基づいて、関係性を判断するために、クエリ２０６に対比して、コミュニティおよび内在するトピックをチェックすることができる。例えば、クエリ２０６の単語「場所」に対する関係度をチェックするために、供された類似用語（例えば、「地図」および「住所」）を用いて一致性スコアＭ（クエリ，トピック）を生成することが可能である。さらに、クエリ２０６とトピックとの間に一致性スコアＭ（例えば、クエリ中の各単語と所与のトピック中の各キーワードとの間の類似性スコアの和）を生成することができる。したがって、単語「地図」、「場所」、および「住所」はトピック１に関連していると判断することが可能で、このトピック１は、コミュニティ発見プロセス５０４の過程で、コミュニティ１に関係するものと判断されている。その後に、コミュニティ１に関連付けられている特定の文書に基づいて、候補ＡＰＩ５０６を識別するために潜在意味インデックス付け（ＬＳＩ）を行ってよい。
【００５９】
結果として、候補群として或るサービスのセットを所与として、ＬＳＩを用いて、候補サービスとクエリとの間の一致性スコアを計算することが可能である。ＬＳＩは、用語出現頻度−逆文書頻度（ＴＦ−ＩＤＦ）行列を生成し、特異値分解（ＳＶＤ）を用いそれを近似計算することによって、ｋ次元の空間を生成する。ＳＶＤは、コラム間の類似性構造を保持しながら、当初の行列の次元を低減する。これにより、エンティティのクエリ２０６は、ｋ次元のＬＳＩ空間にマップされる。しかして、クエリ２０６と所与の文書との類似性は２つのベクトルのコサイン類似性を用いて計算することができる。
【００６０】
図６は、本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
【００６１】
別の実施形態において、階層的インテントを学習するために、ＡＰＩ推奨プロセス６００は、ブロック６０２で、ＡＰＩに関連付けられた用語を受信するステップを含んでよい。例えば、ＡＰＩのデータ・ストア、ＡＰＩ記述、もしくはＡＰＩに関連付けられた用語またはこれらの組み合せが、インテント・ジェネレータ・コンポーネント１００、２００、３００にアップロードされてよい。次いで、インテント・ジェネレータ・コンポーネント１００、２００、３００は、プレプロセッサ・コンポーネント１０２を用いて、アップロードされたＡＰＩ用語の前処理を開始することができる。これらＡＰＩ用語の前処理は、以下に限らないが、１）句点を除去し、品詞のタグを抽出する、２）高頻度のもしくは稀な用語をフィルタする、３）標準的なストップ・ワードを除去する、もしくは４）繰り返されるが情報価値のないよくある単語を抜き出す、またはこれらの組み合せを含め、いくつかの異なる方法によって行うことが可能である。一実施形態において、繰り返されるが情報価値のないよくある単語を抽出し除去するためにＴＮＭＦが使われてよい。
【００６２】
前処理が行われた後、ブロック６０６で、インテント・ジェネレータ・コンポーネント１００、２００、３００は、用語の関係性に基づいて、コミュニティを形成するために２つのアプローチのうちの１つを取ることを決めることができる。第一のアプローチは、ブロック６０８で、前処理された用語にＴＮＭＦおよびコミュニティ検出（例えば、図４に関連して説明したルヴァンのコミュニティ検出法（ＬＣＤ））を適用するステップを含む。第二のアプローチは、ブロック６１０で、前処理済みの用語に長・短期メモリ（ＬＳＴＭ：ｌｏｎｇ  ｓｈｏｒｔ−ｔｅｒｍ  ｍｅｍｏｒｙ）、ｋミーンズ・クラスタリング、およびトピックモデリング（図８に関連して説明する）を適用するステップを含む。ブロック６０８、６１０からの出力は、両方とも、ブロック６１２で、キーワードを生成し、ＡＰＩに対しコミュニティを割り当てるために使用される。さらなる実施形態では、ＴＮＭＦを用い、ＬＣＤのアプローチなしでコミュニティを形成することが可能なことにも留意すべきである。
【００６３】
図７は、本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、さらなる例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
【００６４】
ブロック７０２で、或るエンティティから、ＡＰＩ推奨に対するテキストベースのクエリを受信することができる。このテキストベースのクエリは、関心のあるＡＰＩに関連する記述を含んでよい。例えば、このエンティティは、或る場所に関連するＡＰＩを求めているかもしれない。ブロック７０４で、このテキストベースのクエリに基づいて、エンティティの予測インテントを判断するために、記述から対象となる単語および動詞を抽出することができる。ブロック６１２で、クラスタまたはコミュニティごとに（コミュニティ・エクストラクタ・コンポーネント１０４を用いて）生成されたキーワードに基づいて、ブロック７０８で、エンティティの予測されるインテントが、前述した階層的インテント学習プロセスを参照して生成された階層的インテントと突合せられる。エンティティのインテントと階層的インテントとの突合わせによって、一致したインテントに基づいて場所に関連付けられたＡＰＩをブロック７１０で推奨するのに使用するデータを得ることができる。
【００６５】
インテント・ジェネレータ・コンポーネント１００、２００、３００は、推奨されたＡＰＩに基づいてエンティティからのフィードバックをエンティティに促して、受信し、ブロック７１２で、エンティティのフィードバックを収集するように構成することができる。例えば、ブロック７１０でＡＰＩが推奨された後、インテント・ジェネレータ・コンポーネント１００、２００、３００は、エンティティに、推奨したＡＰＩに関するフィードバックを促すことが可能である。このフィードバックは、エンティティによって開始されたクエリに照らして、エンティティが、ＡＰＩが役立つと見るかどうかを表すことができる。このフィードバックは、推奨されたＡＰＩが適用できないこと、推奨されたＡＰＩがエンティティの欲するものであること、または推奨されたＡＰＩが、エンティティの欲する属性の一部だけを含むことの表明を含んでよい。収集されたエンティティのフィードバックは、次いでブロック７１４に送信することができ、該ブロックで、クライアントまたは対象領域固有のオントロジを決めるために用いることができる。例えば、エンティティのフィードバックが、推奨されたＡＰＩがエンティティの問い合わせたものとはるかに外れていることを示している場合、インテント・ジェネレータ・コンポーネント３００は、そのエンティティがそれ自身のオントロジを有している可能性があり、インテント・ジェネレータ・コンポーネント１００、２００、３００が、より正確な推奨結果を提供できるように、今後のプロセスに適用されることを望んでいる可能性があることを判断することができる。結果として、将来において、クライアントまたは対象領域固有のオントロジに関連付けられたデータは、エンティティのインテントと階層的インテントとを一致させるためにも用いることができる。
【００６６】
図８は、本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、長・短期メモリ・オートエンコーダに対する例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
【００６７】
別の実施形態において、オートエンコーダに基づく長・短期メモリ（ＬＳＴＭ）は、サービス記述に対する埋込みを構築し、その後、当初の文を再構成するためにその埋込みを復号するように訓練することができる。この埋込は、当初のサービス記述のハイレベルの低次元表現と見なしてよい。さらに、ｋミーンズ・クラスタリング法を使って、このサービス埋込を異なるクラスタ群またはコミュニティ群に分割することができる。
【００６８】
ＬＳＴＭは単語の間の局所な依存性を把握する機能を含んでおり、隣接する単語は組み合されて特定の意味を表現する。ＬＳＴＭは、勾配消失（および爆発）問題を回避できる回帰ニューラル・ネットワーク（ＲＮＮ：ｒｅｃｕｒｒｅｎｔ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）の一種類である。ＬＳＴＭユニットは、３つのコンポーネント、忘却、入力、および出力を含むことができる。これらのコンポーネントは、どのように情報が流れるかを制御するために、互いに相互作用する。忘却コンポーネントは、前段のメモリ・セルからの、どの情報が（期限切れのため）もはや有効でなく、放棄されるべきかを判断する。入力コンポーネントは、どの情報が新しく、更新を必要とするかを判断し、出力コンポーネントは、メモリ・セルからの値をフィルタする活性化機能である。
【００６９】
例えば、図８に図示されるように、エレメント８０２は、エレメント８０４で符号化が可能なテキストを入力するステップを含むことができる。オートエンコーダは、追加のラベルを必要としない、教師なし（または自己教師あり）技法を活用して、サービス記述のコンパクトな表現を学習することができる。ＬＳＴＭベースのオートエンコーダは、２つのＬＳＴＭを含むニューラル・モデルであってよく、１つのＬＳＴＭは、単語のシーケンスを固定長のベクトル表現に符号化することが可能で、これにより、エレメント８０６で、圧縮表現を生成する。この最後のＬＳＴＭユニットの出力は、サービス記述の埋込みを生成することができる。エレメント８０８で、第二のＬＳＴＭが、その表現を別の記号のシーケンスに復号することが可能である。提案されたモデルのエンコーダおよびデコーダは、ソース・シーケンスを所与として、対象シーケンスの条件付き確率を最大化するため一緒に訓練することができ、これによりエレメント８１０で対象を生成する。低次元表現が得られた後、エレメント８１２で、ｋミーンズ・クラスタリング法を適用してサービスを、ｋの指定されたクラスタまたはコミュニティに分割することが可能である。最後に、エレメント８１４で、各コミュニティ内のサービスにＴＮＭＦを適用してコミュニティごとのトピックを抽出することができる。
【００７０】
図９は、本明細書に記載の１つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、コンピュータ実装の方法９００の例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。
【００７１】
別の実施形態において、コンピュータ実装の方法９００は、プロセッサに動作可能に連結されたデバイスによって、クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、該クライアント・アプリケーション・プログラム・インターフェースの記述を（例えば、プレプロセッサ・コンポーネント１０２を用いて）改変し、クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得るステップを含む。本コンピュータ実装の方法は、該クライアント・アプリケーション・プログラム・インターフェースの改変された記述と、１つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの１つ以上の従前の記述との間の意味的類似性に基づいて、（例えば、オントロジ・コンポーネント３０２を用いて）オントロジを生成するために、クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを（例えば、オントロジ・コンポーネント３０２を用いて）解析するステップをさらに含むことができる。
【００７２】
開示された主題の様々な態様に対するコンテキストを提供するために、図１０、および以下の説明は、本開示の主題の様々な態様が実装可能な適切な環境の一般的表現を提供することを意図している。図１０は、本明細書に記載の１つ以上の実施形態が促進可能な例示、非限定の動作環境のブロック図を示す。図１０を参照すると、本開示の様々な諸態様を実装するために適切な動作環境１０００は、同様に、コンピュータ１０１２を含んでよい。また、コンピュータ１０１２は、処理ユニット１０１４、システム・メモリ１０１６、およびシステム・バス１０１８を含む。システム・バス１０１８は、以下に限らないが、システム・メモリ１０１６と処理ユニット１０１４との連結を含め、諸システム・コンポーネントを連結する。処理ユニット１０１４は、様々の利用可能なプロセッサの任意のものであってよい。また、デュアルマイクロプロセッサおよび他のマイクロプロセッサ・アーキテクチャも、処理ユニット１０１４として用いることができる。システム・バス１０１８は、メモリ・バスまたはメモリ・コントローラ、周辺バスまたは外部バス、もしくは、以下に限らないが、業界標準アーキテクチャ（ＩＳＡ：Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、マイクロチャネル・アーキテクチャ（ＭＳＡ：Ｍｉｃｒｏ−Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、拡張ＩＳＡ（ＥＩＳＡ：Ｅｘｔｅｎｄｅｄ  ＩＳＡ）、インテリジェント・ドライブエレクトロニクス（ＩＤＥ：Ｉｎｔｅｌｌｉｇｅｎｔ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、ＶＥＳＡローカル・バス（ＶＬＢ：ＶＥＳＡ  Ｌｏｃａｌ  Ｂｕｓ）、周辺機器相互接続（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、カード・バス、ユニバーサル・シリアル・バス（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、アドバンスト・グラフィクス・ポート（ＡＧＰ：Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）、ファイアーワイヤ（ＩＥＥＥ  １３９４）、および小型計算機システム・インターフェース（ＳＣＳＩ：Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）を含め、任意の多様な利用可能なバス・アーキテクチャを用いたローカル・バスを含むバス構造体（単数または複数）のいくつかの種類のいずれかであってよい。
【００７３】
また、システム・メモリ１０１６は、揮発性メモリ１０２０、および不揮発性メモリメモリ１０２２を含んでよい。立ち上げの過程などで、コンピュータ１０１２内の素子の間で情報を伝送する基本ルーティンを包含する、基本入力／出力システム（ＢＩＯＳ：ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）は、不揮発性メモリ１０２２中に格納される。限定でなく例示として、不揮発性メモリ１０２２は、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、プログラマブルＲＯＭ（ＰＲＯＭ：ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ：ｅｌｅｃｔｒｉｃａｌｌｙ  ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ：ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）（例えば、強誘電性ＲＡＭ（ＦｅＲＡＭ））を含むことができる。また、揮発性メモリ１０２０はＲＡＭを含むことができ、これは、例えば外部キャッシュ・メモリとして機能する。限定でなく例示として、ＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ：ｓｔａｔｉｃ  ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ：ｄｙｎａｍｉｃ  ＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ：ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ：ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ  ＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ：ｅｎｈａｎｃｅｄ  ＳＤＲＡＭ）、同期リンクＤＲＡＭ（ＳＬＤＲＡＭ：Ｓｙｎｃｈｌｉｎｋ  ＤＲＡＭ）、ダイレクト・ラムバスＲＡＭ（ＤＲＲＡＭ：ｄｉｒｅｃｔ  Ｒａｍｂｕｓ  ＲＡＭ  ）、ダイレクト・ラムバス・ダイナミックＲＡＭ（ＤＲＤＲＡＭ：ｄｉｒｅｃｔ  Ｒａｍｂｕｓ  ｄｙｎａｍｉｃ  ＲＡＭ）、およびラムバス・ダイナミックＲＡＭなど多くの形で利用可能である。
【００７４】
また、コンピュータ１０１２は着脱型／固定型、揮発性／不揮発性のコンピュータ・ストレージ媒体を含むことができる。例えば、図１０にはディスク・ストレージ１０２４が示されている。また、ディスク・ストレージ１０２４は、以下に限らないが、磁気ディスク・ドライブ、フレキシブル・ディスク・ドライブ、テープ・ドライブ、Ｊａｚドライブ（Ｒ）、Ｚｉｐドライブ（Ｒ）、ＬＳ−１００ドライブ（Ｒ）、フラッシュ・メモリ・カード、またはメモリ・スティックなどのデバイスを含んでよい。ディスク・ストレージ１０２４は、ストレージ媒体を別々に、または、以下に限らないが、コンパクト・ディスクＲＯＭデバイス（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｋ  ＲＯＭ）、ＣＤ記録可能ドライブ（ＣＤ−Ｒ  Ｄｒｉｖｅ：ＣＤ  ｒｅｃｏｒｄａｂｌｅ  ｄｒｉｖｅ）、ＣＤ書き換え可能ドライブ（ＣＤ−ＲＷ  Ｄｒｉｖｅ：ＣＤ  ｒｅｗｒｉｔａｂｌｅ  ｄｒｉｖｅ）、またはデジタル多用途ディスク（ＤＶＤ−ＲＯＭ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）などの光ディスク・ドライブを含む、他のストレージ媒体との組み合わせで、含んでもよい。ディスク・ストレージ１０２４のシステム・バス１０１８への連結を容易にするために、通常、インターフェース１０２６など、着脱型または固定型インターフェースが用いられる。また、図１０には、ユーザと、適した動作環境１０００中に表された基本的コンピュータ・リソースとの間の仲介としての役割をするソフトウェアが描かれている。かかるソフトウェアは、例えば、オペレーティング・システム１０２８を含むことができる。オペレーティング・システム１０２８は、ディスク・ストレージ１０２４上に格納することができ、コンピュータ１０１２のリソースを制御し、割り当てる役割をする。
【００７５】
システムのアプリケーション１０３０は、例えば、システム・メモリ１０１６中もしくはディスク・ストレージ１０２４上に格納されたプログラム・モジュール１０３２およびプログラム・データ１０３４を介して、オペレーティング・システム１０２８によるリソースのマネジメントを利用する。当然のことながら、本開示は、様々なオペレーティング・システムまたはオペレーティング・システムの組み合せとともに実装することが可能である。ユーザは、入力デバイス（単数または複数）１０３６を介して、コンピュータ１０１２の中にコマンドまたは情報を入力する。入力デバイス１０３６は、以下に限らないが、マウスなどのポインティング・デバイス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星受信アンテナ、スキャナ、ＴＶチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどを含む。これらのおよび他のデバイスは、インターフェース・ポート（単数または複数）１０３８を介し、システム・バス１０１８を通って処理ユニット１０１４に連結される。インターフェース・ポート（単数または複数）１０３８は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス（ＵＳＢ）を含む。出力デバイス（単数または複数）１０４０は、入力デバイス（単数または複数）１０３６と同じ型のいくつかのポートを使用する。しかして、例えば、ＵＳＢポートは、コンピュータ１０１２への入力とコンピュータ１０１２から出力デバイス１０４０への出力情報とを供給するために使用することができる。出力アダプタ１０４２は、数ある出力デバイス１０４０の中で、モニタ、スピーカ。およびプリンタなど特別なアダプタを必要とするいくつかの出力デバイス１０４０があることを示すために提示されている。出力アダプタ１０４２は、限定でなく例示として、出力デバイス１０４０とシステム・バス１０１８との間の連結の手段を提供するビデオおよびサウンド・カードを含む。遠隔コンピュータ（単数または複数）１０４４など、他のデバイスもしくはデバイスのシステムまたはその両方が入力および出力両方の機能を備えていることに留意すべきである。
【００７６】
コンピュータ１０１２は、遠隔コンピュータ（単数または複数）１０４４など、１つ以上の遠隔コンピュータへのロジック接続を用いて、ネットワーク化環境中で動作することができる。遠隔コンピュータ（単数または複数）１０４４は、コンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサ・ベースの電気機器、ピア・デバイスまたは他の一般的なネットワーク・ノードなどであってよく、通常、これらも同様にコンピュータ１０１２に関連して説明したような構成要素の多くまたは全てを含むことができる。簡潔化のため、メモリ・ストレージ・デバイス１０４６だけが、遠隔コンピュータ（単数または複数）１０４４と一緒に示されている。遠隔コンピュータ（単数または複数）１０４４は、ネットワーク・インターフェース１０４８を通してコンピュータ１０１２と論理的に接続され、次いで通信接続１０５０を介して物理的に連結されている。ネットワーク・インターフェース１０４８は、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ−ａｒｅａ  ｎｅｔｗｏｒｋ）、広域ネットワーク（ＷＡＮ：ｗｉｄｅ−ａｒｅａ  ｎｅｔｗｏｒｋ）、セルラ・ネットワークなど、有線もしくはワイヤレス通信ネットワークまたはその両方を包含する。ＬＡＮ技術は、ファイバ・ディストリビューテッド・データ・インターフェース（ＦＤＤＩ：Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）、銅線配線データ・インターフェース（ＣＤＤＩ：Ｃｏｐｐｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）、イーサネット（Ｒ）、トークン・リングなどを含む。ＷＡＮ技術は、以下に限らないが、二点間リンク、統合サービス・ディジタル・ネットワーク（ＩＳＤＮ：Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｄｉｇｉｔａｌ  Ｎｅｔｗｏｒｋ）およびその変形などの回線交換ネットワーク、パケット交換ネットワーク、およびデジタル加入者回線（ＤＳＬ：Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）を含む。通信接続（単数または複数）１０５０は、ネットワーク・インターフェース１０４８をシステム・バス１０１８に連結するために用いられるハードウェア／ソフトウェアのことを言う。例示の明瞭化のため、通信接続１０５０がコンピュータ１０１２の内側に示されているが、これはコンピュータ１０１２の外部にあってもよい。また、ネットワーク・インターフェース１０４８への接続のためのハードウェア／ソフトウェアは、例示のためだけであるが、標準の電話グレードのモデム、ケーブル・モデム、およびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、およびイーサネット（Ｒ）カードなど、内部および外部の技術を含むことが可能である。
【００７７】
本開示は、任意の可能な技術的詳細の集約度で、システム、方法、装置、もしくはコンピュータ・プログラム製品またはこれらの組み合せとすることができる。このコンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラムを有するコンピュータ可読ストレージ媒体（または媒体群）を含むことが可能である。このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持し格納できる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のデバイスの任意の適切な組み合せであってよい。コンピュータ可読ストレージ媒体のさらに具体的な例の非包括的リストには、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去およびプログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、メモリ・スティック、フレキシブル・ディスク、パンチカードまたは記録された命令を有する溝中の嵩上げ構造体などの機械的符号化デバイス、および前述の任意の適切な組み合せが含まれる。本明細書で用いられるコンピュータ可読ストレージ媒体は、無線波または他の自由に伝播する電磁波、ウェーブガイドまたは他の送信媒体（例えば、光ファイバを通過する光パルス）、またはワイヤを通って送信される電気信号など、本質的に一時的な信号であると解釈されるものではない。
【００７８】
本明細書に述べられたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング／処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくはワイヤレス・ネットワークまたはこれらの組み合せなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスにダウンロードすることが可能である。このネットワークには、銅送信ケーブル、光送信ファイバ、ワイヤレス通信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバまたはこれらの組み合せが含まれてよい。それぞれのコンピューティング／処理デバイス中のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、ストレージのため、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体の中に転送する。本開示のオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令集合アーキテクチャ（ＩＳＡ：ｉｎｓｔｒｕｃｔｉｏｎ−ｓｅｔ−ａｒｃｈｉｔｅｃｔｕｒｅ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合せで記述されたソース・コードもしくはオブジェクト・コードであってよい。このコンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは（例えばインターネット・サービス・プロバイダを使いインターネットを介し）外部のコンピュータへの接続を行うことも可能である。いくつかの実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、またはプログラマブル論理アレイ（ＰＬＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ａｒｒａｙ）を含む電子回路は、本開示の諸態様を実行すべく、該電子回路をカスタマイズするためコンピュータ可読プログラム命令の状態情報を利用することによって、該コンピュータ可読プログラム命令を実行することができる。
【００７９】
本開示の諸態様は、本開示の諸実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら本明細書で説明されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合せは、コンピュータ可読プログラム命令によって実装することが可能である。これらのコンピュータ可読プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラマブル・データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群／動作群を実装するための手段を生成するようにすることができる。また、コンピュータ、プログラマブル・データ処理装置、もしくは他のデバイスまたはこれらの組み合せに対し特定の仕方で機能するよう命令することが可能なこれらのコンピュータ可読プログラム命令を、コンピュータ可読ストレージ媒体に格納し、格納された命令を有するコンピュータ可読ストレージ媒体が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能／動作の諸態様を実装する命令群を包含する製造品を構成するようにすることができる。さらに、これらコンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードし、そのコンピュータ上で、他のプログラマブル装置上で、または他のデバイス上で一連のオペレーション・ステップを実施させて、コンピュータ実装のプロセスを作り出し、当該コンピュータ上で、他のプログラマブル装置上でもしくは他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群／動作群を実装するようにすることも可能である。
【００８０】
諸図面中のフローチャートおよびブロック図は、本開示の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品から可能となる実装のアーキテクチャ、機能性、およびオペレーションを表している。この点に関し、フローチャートまたはブロック図中の各ブロックは、特定の論理機能（単数または複数）を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、または命令の部分を表し得る。
いくつかの別の実装においては、ブロック中に記載された機能が、図面に記載された順序から外れて行われてよい。例えば、連続して示された２つのブロックが、関与する機能性に応じ、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能または動作を実施する特殊用途ハードウェア・ベースのシステムによって実装でき、または特殊用途ハードウェアとコンピュータ命令との組み合わせによって実行できることにも留意すべきである。
【００８１】
本主題を、コンピュータもしくはコンピュータ群またはその両方で実行される、コンピュータ・プログラム製品のコンピュータ実行可能命令の一般的コンテキストで前述してきたが、当業者は、本開示が、他のプログラム・モジュールと組み合せて実装するまたは実装されることが可能であることも認識するであろう。一般に、プログラム・モジュールは、特定のタスクを実行するもしくは特定の抽象データ型を実装するまたはその両方を行うルーティン、プログラム、コンポーネント、データ構造体などを含む。さらに、当業者は、本発明のコンピュータ実装の方法が、シングルプロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、およびコンピュータ、ハンドヘルド・コンピューティング・デバイス（例えば、ＰＤＡ、電話）、マイクロプロセッサ・ベースのまたはプログラマブルな消費者または産業用電子機器などを含め、他のコンピュータ・システム構成によっても実践可能であることをよく認識していよう。また、これら例示の態様は、通信ネットワークを介してリンクされた遠隔の処理デバイス群によってタスクが実行される分散コンピューティング環境においても実践可能である。また一方、本開示の、全ての態様でなくても、その一部はスタンドアローン・コンピュータ上で実践することができる。分散コンピューティング環境において、プログラム・モジュールは、ローカルおよび遠隔両方のメモリ・ストレージ・デバイスに配置することが可能である。
【００８２】
本出願中での使用において、用語「コンポーネント」、「システム」、「インターフェース」などは、コンピュータ関連のエンティティ、または１つ以上の特定の機能を備えた演算マシンに関連するエンティティに言及することがあり得、もしくはそれらを含むことがあり得、またはその両方があり得る。本明細書で開示されたエンティティは、ハードウェア、ハードウェアとソフトウェアとの組み合せ、ソフトウェア、または実行中のソフトウェアにいずれかであり得る。例えば、或るコンポーネントは、限定はされないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、もしくはコンピュータ、またはこれらの組み合せであり得る。例として、サーバ上で実行されているアプリケーションおよびそのサーバの両方が一コンポーネントであってよい。１つ以上のコンポーネントが、プロセッサもしくは実行のスレッドまたはその両方に存在することができ、或るコンポーネントが１つのコンピュータに局在すること、もしくは２つ以上のコンピュータに分散されること、またはその両方が可能である。別の例では、それぞれのコンポーネントを、格納された様々なデータ構造を有する様々なコンピュータ可読媒体から実行することが可能である。これらコンポーネントは、例えば１つ以上のデータ・パケット（例えば、ローカル・システム、分散システム中で、もしくは、インターネットなどのネットワークを通して他のシステムと信号を介して別のコンポーネントと相互作用している１つのコンポーネントからのデータ）を有する信号によって、ローカルもしくは遠隔またはその両方のプロセスを介して通信することができる。別の例として、或るコンポーネントは、電子または電気回路により作動される機械的部品によって提供される特定の機能を備えた装置であってよく、該回路は、プロセッサにより実行されるソフトウェアまたはファームウェア・アプリケーションによって作動される。かかる場合、そのプロセッサは、装置の内部にあっても外部にあってもよく、そのソフトウェアまたはファームウェアの少なくとも一部を実行することができる。さらなる別の例として、或るコンポーネントは、機械的部品なしに、電子コンポーネントを介して特定の機能を提供する装置であってよく、この電子コンポーネントは、プロセッサ、またはその電子コンポーネントの機能を少なくとも部分的に提供するソフトウェアまたはファームウェアを実行するための他の手段を含むことが可能である。或る態様において、或るコンポーネントは、例えばクラウド・コンピューティング・システム内で、仮想マシンを介して電子コンポーネントをエミュレートすることができる。
【００８３】
さらに、用語「または」は、排他的「または」ではなく包括的「または」を意味するように意図されている。すなわち、別途に指定されてるか、または文脈から明瞭な場合を除き、「ＸはＡまたはＢを用いる」は、自然な包含的順列のうちの任意のものを意味するように意図されている。すなわち、「ＸはＡまたはＢを用いる」は、ＸがＡを用いる、ＸがＢを用いる、またはＸがＡとＢとの両方を用いるのうちのいずれによっても満たされる。さらに、本明細書および添付の図面中で使用される冠詞「或る（ａ、ａｎ）」は、別途に指定されているか、または文脈から単数形を対象とすることが明瞭な場合を除き、一般に「１つ以上」を意味すると解釈されるべきである。本明細書で用いられる用語「例示の」もしくは「例示的な」またはその両方は、例、具体例、または事例としての役割を意味するために使われる。疑問が出ないように言えば、本明細書で開示された主題はかかる例には限定されない。さらに、本明細書で、「例示の」もしくは「例示的な」またはその両方として説明されたいずれの態様または設計も、必ずしも他の態様または設計よりも好ましいかまたは有利であるとも、当業者に既知の等価の例示的な構造または技法の排除を意味するとも解釈されるべきでない。
【００８４】
本明細書で用いられている用語「プロセッサ」は、実質上、以下に限定はされないが、シングルコア・プロセッサ、ソフトウェアのマルチスレッド実行機能を備えたシングルコア・プロセッサ、マルチコア・プロセッサ、ソフトウェアのマルチスレッド実行機能を備えたマルチコア・プロセッサ、ハードウェアのマルチスレッド技術を備えたマルチコア・プロセッサ、並列プラットフォーム、および分散共有メモリを備えた並列プラットフォームを含む、任意のコンピューティング処理ユニットまたはデバイスを言及してよい。さらに、プロセッサは、集積回路、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、デジタル信号プロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プログラマブル・ロジック・コントローラ（ＰＬＣ：ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｃｏｎｔｒｏｌｌｅｒ）、複合プログラマブル・ロジック・デバイス（ＣＰＬＤ：ｃｏｍｐｌｅｘ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ）、ディスクリート・ゲートまたはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、または、本明細書に記載の機能を遂行するために設計されたこれらの任意の組み合わせを言及してよい。さらに、プロセッサは、スペース利用の最適化またはユーザ装置のパフォーマンスの向上のために、以下に限らないが、分子または量子ドットベースのトランジスタ、スイッチ、およびゲートなどナノスケールのアーキテクチャを利用することが可能である。また、プロセッサは、計算処理ユニットの組み合せとして実装することもできる。本開示において、「格納」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、および実質的には、或るコンポーネントのオペレーションおよび機能に関連する任意の情報ストレージ・コンポーネントは、「メモリ・コンポーネント」、「メモリ」中に具現化されたエントリ、またはメモリを含むコンポーネントを言及するために用いられる。当然のことながら、本明細書に記載のメモリもしくはメモリ・コンポーネントまたはその両方は、揮発性もしくは不揮発性であってよく、または揮発性および不揮発性メモリの両方を含むことも可能である。限定でなく例示として、不揮発性メモリは、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ）（例えば、強誘電性ＲＡＭ（ＦｅＲＡＭ））を含むことができる。揮発性メモリはＲＡＭを含むことができ、これは、例えば外部キャッシュ・メモリとして機能することが可能である。限定でなく例示として、ＲＡＭは、同期ＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、同期リンクＤＲＡＭ（ＳＬＤＲＡＭ：Ｓｙｎｃｈｌｉｎｋ  ＤＲＡＭ）、ダイレクト・ラムバスＲＡＭ（ＤＲＲＡＭ）、ダイレクト・ラムバス・ダイナミックＲＡＭ（ＤＲＤＲＡＭ）、およびラムバス・ダイナミックＲＡＭ（ＲＤＲＡＭ）など多くの形で利用可能である。さらに、本明細書に開示のシステムまたはコンピュータ実装の方法のメモリ・コンポーネントは、含むことに限定はされないが、これらのまたは他の適切な型のメモリを含むように意図されている。
【００８５】
上記で説明してきたことは、システムおよびコンピュータ実装の方法の単なる例を含む。当然のことながら、本開示を説明するために、コンポーネントまたはコンピュータ実装の方法のあらゆる考えられる組み合せを記述するのは不可能であるが、  当業者は、本開示の多くのさらなる組み合せおよび並び替えが可能であることを理解できよう。詳細な説明、クレーム、付属書、および図面の中で、用語「含む」、「有する」、「所有する」および類似用語が使用されている範囲内において、かかる用語は、用語「を含めて（ｃｏｍｐｒｉｓｉｎｇ）」は、クレーム中で用いられる場合移行語として解釈されるので、用語「を含めて」と同様に包括的であることが意図されている。
【００８６】
上記様々な実施形態の説明は、例示目的で提示されたもので、網羅的であることも、または開示された実施形態に限定することも意図されていない。当業者には、説明された実施形態の範囲および趣旨から逸脱することのない多くの改変および変形が明白であろう。本明細書で用いられた用語は、諸実施形態の原理、実際上の応用、または市販の技術の技術的な改良を最善に説明し、または他の当業者が本明細書に開示された諸実施形態を理解できるように選択されたものである。
【図１】
2021508866.tif 000010
【図２】
2021508866.tif 000011
【図３】
2021508866.tif 000012
【図４】
2021508866.tif 000013
【図５】
2021508866.tif 000014
【図６】
2021508866.tif 000015
【図７】
2021508866.tif 000016
【図８】
2021508866.tif 000017
【図９】
2021508866.tif 000018
【図１０】
2021508866.tif 000019
【国際調査報告】
2021508866.tif 000020
2021508866.tif 000021