図面 (/)

技術 対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨の促進

出願人 インターナショナル・ビジネス・マシーンズ・コーポレーション
発明者 リン、チェンカリア、アナップシャオ、ジンブコビッチ、マヤアネルシス、ニコラオス
出願日 2018年12月12日 (2年5ヶ月経過) 出願番号 2020-532617
公開日 2021年3月4日 (2ヶ月経過) 公開番号 2021-508391
状態 未査定
技術分野 学習型計算機 検索装置
主要キーワード 階層構造体 集約度 モジュラリティ バス構造体 最多頻度 プレプロセッサ スペース利用 推奨データ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2021年3月4日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (11)

課題

解決手段

一例において、コンピュータ実装の方法は、第一クライアント・アプリケーション・プログラム・インターフェースの第一記述に関連付けられたテキスト・データを除去することによって生成される改変クライアント・アプリケーション・プログラム・インターフェースに基づいて、第一クライアント・アプリケーション・プログラム・インターフェースと、第二クライアント・アプリケーション・プログラム・インターフェースとの間の意味的類似性を判断するステップを含む。本コンピュータ実装の方法は、その意味的類似性に基づいて、その第一記述と、第二クライアント・アプリケーション・プログラム・インターフェースの第二記述とを突合わせ、1つ以上の一致するクライアント・アプリケーション・プログラム・インターフェースを得るステップをさらに含むことができる。さらに、本コンピュータ実装の方法は、それら1つ以上の一致したクライアント・アプリケーション・プログラム・インターフェースに基づいて、第一クライアント・アプリケーション・プログラム・インターフェースを或るコミュニティに関連付けるステップをさらに含むことが可能である。

概要

背景

自然言語クエリを使ってサービス推奨する既存のアプローチは、教師有りおよび教師なしアプローチに基づいている。教師付きアプローチは、特定のサービスでアノテートされた自然言語クエリを伴うデータセットに依拠する。このアノテーション・プロセスはマニュアルであり、通常、深い対象領域の知識を用いるので、これらのアプローチは、異種のデータセット、特に新しい対象領域からのデータセットには容易に適用可能でない。例えば、これらは、主として、キーワードの一致、エンティティ関係トピック、およびクラスタに基づいている。しかしながら、キーワードおよびエンティティ関係は、クエリとサービスとの間の意味的類似性を無視する。トピックおよびクラスタは、意味的類似性を把握するが、但し、これらは諸サービスも間の関係を明示的に捉えるマッシュアップに依拠する。しかしながら、新しい対象領域ではかかるデータは容易に利用可能でない。

概要

対象領域およびクライアント固有アプリケーションプログラムインターフェース推奨を生成する技法を提供する。一例において、コンピュータ実装の方法は、第一クライアント・アプリケーション・プログラム・インターフェースの第一記述に関連付けられたテキスト・データを除去することによって生成される改変クライアント・アプリケーション・プログラム・インターフェースに基づいて、第一クライアント・アプリケーション・プログラム・インターフェースと、第二クライアント・アプリケーション・プログラム・インターフェースとの間の意味的類似性を判断するステップを含む。本コンピュータ実装の方法は、その意味的類似性に基づいて、その第一記述と、第二クライアント・アプリケーション・プログラム・インターフェースの第二記述とを突合わせ、1つ以上の一致するクライアント・アプリケーション・プログラム・インターフェースを得るステップをさらに含むことができる。さらに、本コンピュータ実装の方法は、それら1つ以上の一致したクライアント・アプリケーション・プログラム・インターフェースに基づいて、第一クライアント・アプリケーション・プログラム・インターフェースを或るコミュニティに関連付けるステップをさらに含むことが可能である。

目的

対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を生成する技法を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

コンピュータ実行可能コンポーネントを格納するメモリと、前記メモリ中に格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、前記コンピュータ実行可能コンポーネントが、第一クライアントアプリケーションプログラムインターフェースと、前記第一クライアント・アプリケーション・プログラム・インターフェースの第一記述に関連付けられたテキスト・データを除去することによって生成された改変クライアント・アプリケーション・プログラム・インターフェースに基づく第二クライアント・アプリケーション・プログラム・インターフェースと、の間の意味的類似性を判断し、前記意味的類似性に基づいて、前記第一記述と、前記第二クライアント・アプリケーション・プログラム・インターフェースの第二記述とを突合わせ、1つ以上の一致するクライアント・アプリケーション・プログラム・インターフェースを得、および前記1つ以上の一致したクライアント・アプリケーション・プログラム・インターフェースに基づいて、前記第一クライアント・アプリケーション・プログラム・インターフェースを或るコミュニティに関連付ける、インテントジェネレータ・コンポーネントを含む、前記プロセッサと、を含む、システム

請求項2

前記コンピュータ実行可能コンポーネントが、前記第一クライアント・アプリケーション・プログラム・インターフェースに関連付けられた第一データを受信し、前記第一クライアント・アプリケーション・プログラム・インターフェースに関連付けられたテキスト・データを除去することによって前記第一データを前処理し、前記改変クライアント・アプリケーション・プログラム・インターフェースを得るプレプロセッサ・コンポーネント、をさらに含む、請求項1に記載のシステム。

請求項3

前記コミュニティが第一コミュニティであり、前記インテント・ジェネレータ・コンポーネントが、前記改変クライアント・アプリケーション・プログラム・インターフェースを含む第二コミュニティを生成し、前記第二コミュニティが推奨を生成するために用いられる、請求項1に記載のシステム。

請求項4

前記コンピュータ実行可能コンポーネントが、前記意味的類似性に基づいて、前記クライアント・アプリケーション・プログラム・インターフェースと、前記1つ以上のクライアント・アプリケーション・プログラム・インターフェースとを突合わせるクエリマッチャ・コンポーネント、をさらに含む、請求項1に記載のシステム。

請求項5

前記テキスト・データが、前記クライアント・アプリケーション・プログラム・インターフェース内で繰り返されていると判断されたテキストを表現する冗長なテキストを含む、請求項1に記載のシステム。

請求項6

前記インテント・ジェネレータ・コンポーネントが、トピック非負値行列因数分解を用いて前記冗長なテキストを抽出することによって前記冗長なテキストを除去する、請求項5に記載のシステム。

請求項7

前記1つ以上のコミュニティが、トピック非負値行列因数分解に関連付けられたトピックモデリングに基づいて生成される、請求項1に記載のシステム。

請求項8

前記1つ以上のコミュニティが、キーワードを生成するために用いられる、請求項7に記載のシステム。

請求項9

アプリケーション・プログラム・インターフェース推奨を促進するコンピュータプログラム製品であって、前記コンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含み、前記プログラム命令はプロセッサによって実行可能であり、前記プロセッサに、第一クライアント・アプリケーション・プログラム・インターフェースと、前記第一クライアント・アプリケーション・プログラム・インターフェースの第一記述に関連付けられたテキスト・データを除去することによって生成された改変クライアント・アプリケーション・プログラム・インターフェースに基づく第二クライアント・アプリケーション・プログラム・インターフェースと、の間の意味的類似性を判断させ、前記意味的類似性に基づいて、前記第一記述と、前記第二クライアント・アプリケーション・プログラム・インターフェースの第二記述とを突合わせ、1つ以上の一致するクライアント・アプリケーション・プログラム・インターフェースを得させ、前記1つ以上の一致するクライアント・アプリケーション・プログラム・インターフェースに基づいて、前記第一クライアント・アプリケーション・プログラム・インターフェースを或るコミュニティに関連付けさせる、コンピュータ・プログラム製品。

請求項10

前記プログラム命令は、前記プロセッサに、前記第一クライアント・アプリケーション・プログラム・インターフェースに関連付けられた第一データを受信させ、前記第一クライアント・アプリケーション・プログラム・インターフェースに関連付けられたテキスト・データを除去することによって前記第一データを前処理させ、前記改変クライアント・アプリケーション・プログラム・インターフェースを得させる、ため前記プロセッサによってさらに実行可能である、請求項9に記載のコンピュータ・プログラム製品。

請求項11

前記コミュニティが第一コミュニティであり、インテント・ジェネレータ・コンポーネントが、前記改変クライアント・アプリケーション・プログラム・インターフェースを含む第二コミュニティを生成し、前記第二コミュニティが推奨を生成するために用いられる、請求項9に記載のコンピュータ・プログラム製品。

請求項12

前記プログラム命令が、前記プロセッサに、前記意味的類似性に基づいて、前記クライアント・アプリケーション・プログラム・インターフェースと、前記1つ以上のクライアント・アプリケーション・プログラム・インターフェースとを突合わせさせる、ため前記プロセッサによってさらに実行可能である、請求項9に記載のコンピュータ・プログラム製品。

請求項13

前記テキスト・データが、前記クライアント・アプリケーション・プログラム・インターフェース内で繰り返されていると判断されたテキストを表現する冗長なテキストを含む、請求項9に記載のコンピュータ・プログラム製品。

請求項14

前記プログラム命令が、前記プロセッサに、トピック非負値行列因数分解を用いて前記冗長テキストを抽出することによって前記冗長テキストを除去させるため、前記プロセッサによってさらに実行可能である、請求項13に記載のコンピュータ・プログラム製品。

請求項15

プロセッサに動作可能に連結されたデバイスによって、第一クライアント・アプリケーション・プログラム・インターフェースと、前記第一クライアント・アプリケーション・プログラム・インターフェースの第一記述に関連付けられたテキスト・データを除去することによって生成された改変クライアント・アプリケーション・プログラム・インターフェースに基づく第二クライアント・アプリケーション・プログラム・インターフェースと、の間の意味的類似性を判断するステップと、前記デバイスによって、前記意味的類似性に基づいて、前記第一記述と、前記第二クライアント・アプリケーション・プログラム・インターフェースの第二記述とを突合わせ、1つ以上の一致するクライアント・アプリケーション・プログラム・インターフェースを得るステップと、前記デバイスによって、前記1つ以上の一致したクライアント・アプリケーション・プログラム・インターフェースに基づいて、前記第一クライアント・アプリケーション・プログラム・インターフェースを或るコミュニティに関連付けるステップと、を含む、コンピュータ実装の方法。

請求項16

前記デバイスによって、前記第一クライアント・アプリケーション・プログラム・インターフェースに関連付けられた第一データを受信し、前記第一クライアント・アプリケーション・プログラム・インターフェースに関連付けられたテキスト・データを除去することによって前記第一データを前処理し、前記改変クライアント・アプリケーション・プログラム・インターフェースを得るステップをさらに含む、請求項15に記載のコンピュータ実装の方法。

請求項17

前記コミュニティが第一コミュニティであり、インテント・ジェネレータ・コンポーネントが、前記改変クライアント・アプリケーション・プログラム・インターフェースを含む第二コミュニティを生成し、前記第二コミュニティが推奨を生成するために用いられる、請求項15に記載のコンピュータ実装の方法。

請求項18

前記デバイスによって、前記意味的類似性に基づいて、前記クライアント・アプリケーション・プログラム・インターフェースと、前記1つ以上のクライアント・アプリケーション・プログラム・インターフェースとを突合わせるステップ、をさらに含む、請求項15に記載のコンピュータ実装の方法。

請求項19

前記テキスト・データが、前記クライアント・アプリケーション・プログラム・インターフェース内で繰り返されていると判断されたテキストを表現する冗長なテキストを含む、請求項15に記載のコンピュータ実装の方法。

請求項20

インテント・ジェネレータ・コンポーネントが、トピック非負値行列因数分解を用いて前記冗長なテキストを抽出することによって前記冗長なテキストを除去する、請求項19に記載のコンピュータ実装の方法。

請求項21

コンピュータ実行可能コンポーネントを格納するメモリと、前記メモリ中に格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、前記コンピュータ実行可能コンポーネントが、アプリケーション・プログラム・インターフェース記述に関連する第一テキスト・データを含むクエリを受信し、前記クエリの前記第一テキスト・データと前記クエリに関連するトピックの第二テキスト・データとを対比することによって、前記第一テキスト・データと前記第二テキスト・データとの間の類似性に基づくスコア・データを生成する、クエリ・マッチャ・コンポーネントを含む、前記プロセッサと、を含むシステム。

請求項22

前記第二テキスト・データが、前記トピックに関連するテキストを表すテキスト・データであると判断されている、請求項21に記載のシステム。

請求項23

前記スコア・データが、前記クエリを受信するのに応答して出力することになる推奨を表す推奨データを含む、請求項21に記載のシステム。

請求項24

アプリケーション・プログラム・インターフェース推奨を促進するコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含み、前記プログラム命令はプロセッサによって実行可能であり、前記プロセッサに、アプリケーション・プログラム・インターフェース記述に関連する第一テキスト・データを含むクエリを受信させ、前記クエリの前記第一テキスト・データと前記クエリに関連するトピックの第二テキスト・データとを比較することによって、前記第一テキスト・データと前記第二テキスト・データとの間の類似性に基づいてスコア・データを生成させる、コンピュータ・プログラム製品。

請求項25

前記第二テキスト・データが、前記トピックに関連するテキストを表すテキスト・データであると判断されている、請求項24に記載のコンピュータ・プログラム製品。

技術分野

0001

本開示は、アプリケーションプログラムインタフェースクエリに関し、さらに具体的には、対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨に関する。

背景技術

0002

自然言語のクエリを使ってサービスを推奨する既存のアプローチは、教師有りおよび教師なしアプローチに基づいている。教師付きアプローチは、特定のサービスでアノテートされた自然言語クエリを伴うデータセットに依拠する。このアノテーション・プロセスはマニュアルであり、通常、深い対象領域の知識を用いるので、これらのアプローチは、異種のデータセット、特に新しい対象領域からのデータセットには容易に適用可能でない。例えば、これらは、主として、キーワードの一致、エンティティ関係トピック、およびクラスタに基づいている。しかしながら、キーワードおよびエンティティ関係は、クエリとサービスとの間の意味的類似性を無視する。トピックおよびクラスタは、意味的類似性を把握するが、但し、これらは諸サービスも間の関係を明示的に捉えるマッシュアップに依拠する。しかしながら、新しい対象領域ではかかるデータは容易に利用可能でない。

発明が解決しようとする課題

0003

対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を生成する技法を提供する。

課題を解決するための手段

0004

以下は、本開示の1つ以上の実施形態の基本的理解を提供するための要約である。この要約は、主要なまたは重要な要素を明確化したり、またはこれら特定の実施形態の何らかの範囲、または特許請求の何らかの範囲を叙述することは意図されていない。その唯一の目的は、後記で提示するより詳細な説明の前置きとして簡単な形で本開示の概念を提示することである。本明細書に記載の1つ以上の実施形態において、対象領域およびクライアント固有のアプリケーション・プログラム・インタフェース推奨を促進する、デバイス、システムコンピュータ実装の方法、装置、もしくはコンピュータプログラム製品またはこれらの組み合せが説明される。

0005

或る実施形態によれば、或るシステムは、コンピュータ実行可能コンポーネントを格納するメモリ、および該メモリ中に格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを含むことができる。本システムのこれらコンピュータ実行可能コンポーネントは、第一クライアント・アプリケーション・プログラム・インターフェースと、第一クライアント・アプリケーション・プログラム・インターフェースの第一記述に関連付けられたテキスト・データを除去することによって生成された改変クライアント・アプリケーション・プログラム・インターフェースに基づく第二クライアント・アプリケーション・プログラム・インターフェースと、の間の意味的類似性を判断する、インテントジェネレータ・コンポーネントを含むことができる。また、本インテント・ジェネレータ・コンポーネントは、意味的類似性に基づいて、第一記述と、第二クライアント・アプリケーション・プログラム・インターフェースの第二記述とを突合わせ、1つ以上の一致するクライアント・アプリケーション・プログラム・インターフェースを得る。さらに、本インテント・ジェネレータ・コンポーネントは、1つ以上の一致したクライアント・アプリケーション・プログラム・インターフェースに基づいて、第一クライアント・アプリケーション・プログラム・インターフェースを或るコミュニティに関連付ける。

0006

別の実施形態によれば、アプリケーション・プログラム・インターフェース推奨を促進するコンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含むことができる。本プログラム命令はプロセッサによって実行が可能であり、このプロセッサは、第一クライアント・アプリケーション・プログラム・インターフェースと、第一クライアント・アプリケーション・プログラム・インターフェースの第一記述に関連付けられたテキスト・データを除去することによって生成された改変クライアント・アプリケーション・プログラム・インターフェースに基づく第二クライアント・アプリケーション・プログラム・インターフェースと、の間の意味的類似性を判断することが可能である。また、本プログラム命令は、該プロセッサによって、意味的類似性に基づいて、第一記述と、第二クライアント・アプリケーション・プログラム・インターフェースの第二記述と、を突合わせ、1つ以上の一致するクライアント・アプリケーション・プログラム・インターフェースを得るために実行可能である。さらに、本プログラム命令は、該プロセッサによって、1つ以上の一致したクライアント・アプリケーション・プログラム・インターフェースに基づいて、第一クライアント・アプリケーション・プログラム・インターフェースを或るコミュニティに関連付けるために実行が可能である。

0007

さらに別の実施形態によれば、コンピュータ実装の方法が提供される。本コンピュータ実装の方法は、プロセッサに動作可能に連結されたデバイスによって、第一クライアント・アプリケーション・プログラム・インターフェースと、第一クライアント・アプリケーション・プログラム・インターフェースの第一記述に関連付けられたテキスト・データを除去することによって生成された改変クライアント・アプリケーション・プログラム・インターフェースに基づく第二クライアント・アプリケーション・プログラム・インターフェースと、の間の意味的類似性を判断するステップを含むことが可能である。また、本コンピュータ実装の方法は、該デバイスによって、意味的類似性に基づいて、第一記述と、第二クライアント・アプリケーション・プログラム・インターフェースの第二記述とを突合わせ、1つ以上の一致するクライアント・アプリケーション・プログラム・インターフェースを得るステップも含むことができる。さらに、本コンピュータ実装の方法は、該デバイスによって、1つ以上の一致したクライアント・アプリケーション・プログラム・インターフェースに基づいて、第一クライアント・アプリケーション・プログラム・インターフェースを或るコミュニティに関連付けるステップを含むことが可能である。

0008

別の実施形態によれば、或るシステムは、コンピュータ実行可能コンポーネントを格納するメモリ、および該メモリ中に格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを含むことができる。本システムのこれらコンピュータ実行可能コンポーネントは、アプリケーション・プログラム・インターフェース記述に関連する第一テキスト・データを含むクエリを受信し、第一テキスト・データと第二テキスト・データとを比較することによって、クエリの第一テキスト・データとそのクエリに関連するトピックの第二テキスト・データとの間の類似性に基づいてスコア・データを生成するクエリ・マッチャ・コンポーネントを含むことが可能である。

0009

別の実施形態によれば、アプリケーション・プログラム・インターフェース推奨を促進するコンピュータ・プログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含むことができる。このプログラム命令は、プロセッサによって実行可能にすることができ、該プロセッサは、アプリケーション・プログラム・インターフェース記述に関連する第一テキスト・データを含むクエリを受信し、第一テキスト・データと第二テキスト・データとを比較することによって、クエリの第一テキスト・データとそのクエリに関連するトピックの第二テキスト・データとの間の類似性に基づいてスコア・データを生成することが可能である。

0010

いくつかの実施形態において、システム、コンピュータ実装の方法、もしくはコンピュータ・プログラム製品、またはこれらの組み合せに関連して説明した上記のエレメントの1つ以上は、コンピュータ実装の方法、コンピュータ・プログラム製品、またはシステムなどの異なった形態で具現化することができる。

図面の簡単な説明

0011

本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。
本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。
本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。
本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステム・ネットワークを示す。
本明細書に記載の1つ以上の実施形態による、対象領域オントロジを利用するクエリ突合わせを促進する例示、非限定のブロック図を示す。
本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、例示、非限定のフロー図を示す。
本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、さらなる例示、非限定のフロー図を示す。
本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する長・短期メモリ・オートエンコーダに対する例示、非限定のフロー図を示す。
本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、コンピュータ実装の方法の例示、非限定のフロー図を示す。
本明細書に記載の1つ以上の実施形態を促進可能な例示、非限定の動作環境のブロック図を示す。

実施例

0012

以降の詳細な説明は単なる例示であって、諸実施形態もしくは諸実施形態の応用または使用、またはその両方を限定することは意図されていない。さらに、上記の背景技術または要約のセクション、または詳細な説明のセクションにおいて提示されたいかなる明示または暗示の情報にも拘束されることは意図されてない。

0013

以降で、これらの図面を参照しながら1つ以上の実施形態が説明され、図面全体を通して同じ要素を参照するために同じ参照符号が使われる。以下の記述において、1つ以上の実施形態のより徹底した理解を提供するために、説明目的で多くの具体的詳細が明示される。但し、当然のことながら、様々な事例において、これら1つ以上の実施形態はこれらの具体的詳細がなくても実践が可能である。

0014

自然言語のクエリを使ってサービスを推奨する既存のアプローチは、教師有りおよび教師なしアプローチに基づいている。教師付きアプローチは、特定のサービスでアノテートされた自然言語クエリを伴うデータセットに依拠する。このアノテーション・プロセスはマニュアルであり、通常、深い対象領域の知識を用いるので、これらのアプローチは、異種のデータセット、特に新しい対象領域からのデータセットには容易に適用可能でない。例えば、これらは、主として、キーワードの一致、エンティティ関係、トピック、およびクラスタに基づいている。しかしながら、キーワードおよびエンティティ関係は、クエリとサービスとの間の意味的類似性を無視する。トピックおよびクラスタは、意味的類似性を把握するが、但し、これらは諸サービスも間の関係を明示的に捉えるマッシュアップに依拠する。しかしながら、新しい対象領域ではかかるデータは容易に利用可能でない。

0015

サービスを推奨するためサービス記述に依拠するフレームワークは、前述した問題を是正することができる。このフレームワークの1つ以上の実施形態は、新しいデータセットに対する自動推奨機能として直ちに適用可能であるという利点を有する。諸サービスの間の関係を把握するために、このフレームワークの1つ以上の実施形態はコミュニティを構築するための異なったアプローチを提供することができ、このコミュニティとはサービスのグループに対する1つの抽象化を表す。該コミュニティとユーザ・クエリとに基づいて、このフレームワークの1つ以上の実施形態は、トップk個のサービスを推奨するためクエリ突合わせアプローチを適用することができる。このフレームワークは、複数の収集されたデータセットに亘り、エンティティに有意義な推奨を提供するために、該複数の収集データセットに対比して評価することができる。本明細書で用いられる用語「エンティティ」(および「エンティティ群」)は、ハードウェアソフトウェアマシン、人間などであるか、それらを含んでよい。

0016

本明細書に記載の1つ以上の実施形態は、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を生成することができる。さらに、本明細書に記述する1つ以上の実施形態は、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨の生成を促進する、システム、コンピュータ実装の方法、装置およびコンピュータ・プログラム製品を含む。

0017

図1は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。

0018

図1に表されるように、インテント・ジェネレータ・コンポーネント100は、いくつかのサブコンポーネント(例えば、プレプロセッサ・コンポーネント102、コミュニティ・エクストラクタ・コンポーネント104など)、プロセッサ106、およびメモリ108を含むことができ、これらは、様々な実施形態において、電気的にもしくは通信可能にまたはその両方で連結することが可能である。なお、いくつかの実施形態では、これらサブコンポーネント(例えば、プレプロセッサ・コンポーネント102、コミュニティ・エクストラクタ・コンポーネント104など)は、インテント・ジェネレータ・コンポーネント100の外部にあってもよい。

0019

プロセッサ106の諸態様は、マシン(単数または複数)内に具現化された、例えば、1つ以上のマシンに関連付けられた1つ以上のコンピュータ可読媒体群(または諸媒体)中に具現化された、マシン実行可能コンポーネント(単数または複数)を構成することが可能である。かかるコンポーネント(単数または複数)は、1つ以上のマシン、例えば、コンピュータ(単数または複数)、コンピューティング・デバイス(単数または複数)、仮想マシン(単数または複数)などによって実行されると、それらマシン(単数または複数)にインテント・ジェネレータ・コンポーネント100によって記述されたオペレーションを実行させることができる。また、或る態様において、インテント・ジェネレータ・コンポーネント100は、コンピュータ実行可能コンポーネントおよび命令を格納するメモリ108も含んでよい。

0020

一実施形態において、プレプロセッサ・コンポーネント102は、入力として自然言語のサービス記述を受信し、特化型自然言語プログラム・パイプラインを用いてそれらを前処理することができる。前処理は、1つ以上の機能を含むことが可能である。例えば、テキスト入力110の句読点を除去することができる。さらに、テキスト入力110から名詞句を抽出するために品詞POS:part−of−speech)タグ記号を適用することが可能である。これらのステップの後、高頻度もしくは稀と考えられる単語またはその両方を除去することができる。最高頻度の単語は、高い単語数を有し得るが、意味論的な意味をほとんど持たないので、高頻度の単語の残留許すことによって、関連する言語モデルの効果性が低減される可能性がある。また、ほとんどの希少単語も、それらの、他の単語との共起偶然に左右されるので除去されてよい。例えば、サービス記述が、単語「マイクロデータ」への単一回の言及を包含している場合、「マイクロデータ」に近い全ての単語が、単一の文から来ている可能性が高く、したがって、それらの共起を他の文に一般化することはできない。例えば、3つ以下の文書中に出現する稀な単語、および諸文書の10パーセント以上に出現する高頻度の単語は除去されてよい。なお、用語を除去または抽出するために任意の閾値数を使ってよく、前述の数は単なる例である。

0021

或るトピックモデル解釈可能性は、トピックに関連付けられる最多頻度の用語によって評価することが可能である。効果的な推論モデルに基づく事後コーパス固有ストップワードの除去の後、モデルの解釈可能性をさらに増強することができる。コーパス固有のストップ・ワードとは、多くの文書に出現するが、その頻度は、高頻度単語と見なすに十分なほど高くない用語である。高頻度単語の閾値下げることには、他の多くの情報価値のある単語を失うリスクがある。また一方、ストップ・ワードは、いくつかの低品質トピック(例えば、首尾一貫した合理的な意味を持たない単語群)に分離される傾向がある。結果的に、低品質トピックを選択して、それらトピック中の最高頻度の用語を特定的に除去することが可能である。

0022

さらに、インテント・ジェネレータ・コンポーネント100は、アプリケーション・プログラム・インターフェース(API:application program interface)の記述に基づいて、それらの間の意味的類似性を判断するように構成することができる。例えば、第一クライアント・アプリケーション・プログラム・インターフェースに関連付けられた記述は、前述のプレプロセッサ・コンポーネント102の処理によって改変することが可能で、改変されたAPI記述が得られる。改変されたAPI記述は、次いで、改変されたAPI記述を別のクライアントAPI記述と対比し、2つの間の意味的類似性を判断することができる。その結果、或る特定の類似性閾値が満たされた場合、インテント・ジェネレータ・コンポーネント100は、さらなる処理へと進むことが可能である。

0023

コミュニティ・エクストラクタ・コンポーネント104は、前処理されたAPI記述を受信し、それらの関連性に従ってコミュニティを形成することができる。各コミュニティ内(または、いくつかの実施形態では、1つ以上のコミュニティ内)で、葉ノードが、トピックモデリング技法によって推定されたトピックである、階層構造体を構築することが可能で、各トピック(葉)(または、いくつかの実施形態では、1つ以上のトピック)は、サービス記述のリストに連結することができ、非葉のノードはインテントを表すことができる。なお、この構造体の深さは、抽象化の異なるレベルのインテントを示すことが可能である。ルート・ノードにより近いインテントは、抽象的且つ全般的なインテント(例えば、投資)を表すことができ、一方、トピックにより近いインテントは、詳細かつ具体的なインテント(例えば、株式取引)を表すことができる。共通の上位トピックを共有するトピックは、より高度の関連性を有すると見なすことが可能である。例えば、トピック「音楽」、「TV」、および「ビデオ」はゆるやかに関係しているが、他方、「場所」、「経路」、および「地図」は密接に関係していると見なすことができる。

0024

コミュニティは、3つのアプローチを介して抽出することが可能である。その第一は、各学習されたトピック(または、いくつかの実施形態では、1つ以上の学習されたトピック)が単一のコミュニティを形成する、トピックモデリング技法を用いるベースライン・アプローチである。なお、このベースライン・アプローチは、階層的インテント・ツリーを構築しない。第二のアプローチは、最初にトピックを推定し、次いでそれらのトピックに対するコミュニティを識別するためにコミュニティ検出法を適用する、ボトムアップ・アプローチとすることができる。第三のアプローチは、各サービスに対する(または、1つ以上のサービスに対する)潜在型のハイレベル低次元のベクトル表現を学習し、次いで、kミーンズ・クラスタ・アプローチを用いて、類似ベクトルを一コミュニティにグループ化するトップ・ダウン・アプローチとすることが可能である。その後、各クラスタ内の(またはいくつかの実施形態では、1つ以上のクラスタ内の)サービスにトピックモデリング法を適用することができる。

0025

トピック非負値行列因数分解(TNMF:topic non−negative matrix factorization)は、短いテキストからトピックを見出すために設計された方法である。非負値行列因数分解(NMF:non−negative matrix factorization)に対する従来式のモデリングは、検索語文書行列を分解することができ、これは所与の文書中の当該用語の出現度を示す。しかしながら、短いテキストに対して、検索語−文書行列は極めて疎となり得て、これはモデルが確かなトピックを学習することを妨げる可能性がある。TNMFは、頻繁に共起する用語は共通なトピックに関連している可能性が極めて高いとの想定をすることによってこの問題を処理する。例えば、用語「住所」と「郵便番号」とが同じ文書に数回にわたって共起する場合、これらは共通のトピック(例えば、場所)について言及している可能性が高い。しかして、TNMFは、代わりに、用語相関行列を分解することによって確かなトピックを学習することが可能である。この行列は疎の問題に煩わされないので、たとえ文書の数が増えても、語彙のサイズは安定している。

0026

TNMFでは、各用語tiは、用語出現ベクトル(wi,1,・・・、wi,m)として表すことが可能で、このwi,mは、用語tiとtmとの共起に基づいて決まる。wi,mを評価するために、用語tiおよびtmに対する正の相互情報量(PPMI:positive point mutual information)が計算される。用語出現ベクトルを計算した後、用語相関行列Sを生成するために、共通ベクトル類似性指標(例えば、コサイン係数)が計算される。用語行列Sが学習されたならば、トピック学習問題は、以下の目的関数を最小化する用語−トピック行列Uを見出すこととして定式化される。

0027

0028

式(1)は、このモデルが最小化しようとする目的関数である。しかして式(1)は、非負値行列因数分解の算式である。Fは、マトリックスフロベニウス形式を表し、

0029

0030

として表される。対称非負値行列因数分解を、用語相関行列に適用し、トピックを抽出し、検索語−トピック行列Uを学習することができる。次いで、当初の検索語−文書行列Xと、ここでの検索語−トピック行列Uとに基づいて、トピック−文書行列Vを解くことが可能である。これらの結果、インテント・ジェネレータ・コンポーネント100は、ショート・テキストを受信し、そのショート・テキストをプレプロセッサ・コンポーネント102に通して実行して無関係のテキストを抜き取り、改良されたテキスト・データを得、次いで、コミュニティ・エキストラクタ・コンポーネント104によって実行されるTNMFに基づいてその改良テキスト・データを特定のトピックに関連付けるように構成することができる。

0031

抽象的でなく、且つ、例えば、ユーザのテキスト・クエリから対象領域およびクライアント固有のAPI推奨を促進するために必要な処理能力に起因して、人間による一組の精神的な活動として行うことのできない、高度に技術的な性質の問題(例えば、ソフトウェア・テキスト検索意味タグ付け、テキスト頻度の算定、数百万の用語から成るコーパス内の共通点のない用語/文の突合わせなど)を解決するためにハードウェアもしくはソフトウェアまたはその両方を使用するため、インテント・ジェネレータ100を用いることができる。さらに、実行される処理の一部は、メモリ・オペレーションに関する定義されたタスク遂行するために特殊化されたコンピュータによって行われてよい。例えば、用語の頻度などに基づいて、テキスト入力の事前処理に関連するタスクを遂行するために特殊化されたコンピュータを用いることが可能である。

0032

図2は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。

0033

インテント・ジェネレータ・コンポーネント200は、クエリ・マッチャ・コンポーネント202を含むことができる。クエリ・マッチャ・コンポーネント202は、エンティティからのクエリに基づいて、そのエンティティにサービスのリストを推奨/出力することが可能である。クエリ206に基づいて、関係性を判断するため、諸コミュニティおよびその下にあるトピックをクエリ206に対比してチェックすることができる。例えば、関係性をチェックするためにクエリ206と当該トピックとの間の一致性スコアM(クエリ、トピック)(例えば、クエリ中の各単語と所与のトピック中の各トップ・キーワードと間の類似性スコアの和)が生成されてよい。単語類似性は、Wu−Palmerスコアに基づいて計算が可能で、これは、分類学に関連して単語の意味の深さを検討することによって2つの単語の意味の関係度を計算する。また、Wu−Palmerスコアは、単語の最小共通包摂(least common subsumer)(例えば、特定の上位ノード)の深さも計算することができる。

0034

式(3):類似性(u,v)=max(Wu−Palmer(ui,vj))(4)、このuは、クエリ206中の単語であり、wはトピックの用語であり、uiおよびvjは単語の意味である。

0035

ノードのセットおよび一ルートによって形成されたオントロジを考えてみる。このオントロジにおいて、C1およびC2が、類似性を計算する対象のオントロジ・エレメントであるとしよう。この類似性は、C1およびC2がルート・ノードから離れている距離(N1およびN2)と、共通の直近上位ノードがルート・ノードから離れている距離(N)とに基づいて計算される。この類似性は、類似_Wu−Palmerとして定義され、類似性(Wu−Palmer(C1,C2))が

0036

0037

に等しくなり得る、として表現される。ワードネットに関して、同義語のセット(synset)s1およびs2の類似性が、Least Common Subsumer(LCS))の深さとともに、ワードネット分類学中の2つのsynsetの深さを考慮しながら計算される。算式は、

0038

0039

である。M(クエリ,トピック)はクエリ中の各単語uおよびトピック中の単語wに対する類似_Wu−Palmerの計算を表す。クエリ中のuおよびトピック中の単語wに対しM(クエリ,トピック)によって返された最大値に基づいて類似性(クエリ,トピック)を計算する。

0040

しかして、検討対象のトピックが相異なるコミュニティに属し、共通の上位トピックを共有しない場合、それらトピックの親ノードを識別することが可能で、識別されたインテントの下でのサービスを候補として返すことができる。

0041

候補としてサービスの或るセットが与えられた場合、潜在的意味インデックス(LSI:latent semantic index)を用いて、それら候補サービスとクエリ206との間の一致性スコアを計算することが可能である。LSIは、用語出現頻度−逆文書頻度(TF−IDF:term frequency−inverse document frequency)行列を生成し、特異値分解SVD:singular value decomposition)を用いてTF−IDF行列を近似計算することによって、k次元の空間を生成することができる。SVDは、コラム間の類似性構造を保持しながら、当初の行列の次元を低減する。これにより、エンティティのクエリ206は、k次元のLSI空間にマップすることが可能となる。クエリ206と所与の文書との類似性は2つのベクトルのコサイン類似性を用いて計算することができる。結果として、エンティティに対し、出力208として、最高の類似性スコアを備えたAPIサービスを推奨することが可能である。

0042

また、コミュニティ・エクストラクタ・コンポーネント104は、ニューラル・ネットワーク・コンポーネント204も含んでよい。例えば、人工知能AI:artificial intelligence)は、本開示の態様による、1つ以上の機能の自動化を促進することが可能である。メモリおよびプロセッサならびに他のコンポーネントは、諸図面に関連する機能を含むことができる。本開示の態様は、API推奨の生成に関して、それらの様々な態様を遂行するための様々なAIベーススキームを用いることが可能である。例えば、1つ以上のトリガ・イベントを検出し、それら1つ以上のトリガ・イベントの結果として活動を決定し、API推奨を生成する等々のためのプロセスは、例の自動分類システムおよびプロセスによって促進することができる。別の例において、頻度に基づいて、或る用語を忌避しながら別の用語を選好するためのプロセスは、該例の自動分類システムおよびプロセスによって促進することができる。

0043

或る例のクラシファイヤは、入力属性ベクトル、x=(x1,x2,x3,x4,xn)を、その入力が或るクラスに属する信頼区間にマップする関数、すなわちf(x)=信頼区間(クラス)であってよい。かかる分類には、自動的に行うことが可能な処置(例えば、高頻度のテキストを抽出する)を予知または推定するための確率的もしくは統計的ベースまたはその両方の解析(例えば、解析ユーティリティ取り入れて)を用いることができる。サポート・ベクトル・マシン(SVM:support vector machine)は用いることが可能なクラシファイヤの一例である。SVMは、あり得る入力の空間の超曲面を見出すことによって作動することが可能で、この超曲面は、非トリガ・イベントからトリガ基準を分けるよう試みる直観的に、これは、分類により、訓練データに近いが同じではない試験データを補正する。他の有方向および無方向のモデル分類アプローチは、例えば、ナィーブベイズベイジアンネットワーク回帰ニュ−ラル・ネットワーク・デシジョン・ツリー、ファージ論理モデル、および使用可能な独立性の異なるパターンを提供する確率的分類モデルが含まれる。また、本明細書で用いる分類には、優先度モデル展開するために用いられる統計的回帰が含まれてよい。

0044

本開示の諸態様は、(例えば、一般的な訓練データによって)明示で訓練された、および(例えば、トリガ・イベントに関連する用語抽出の観察によって)非明示的に訓練された、クラシファイヤを用いることができる。例えば、SVMは、クラシファイヤ・コンストラクタ、および特徴選択モジュール内の学習または訓練フェーズを用いて構成することが可能である。しかして、クラシファイヤ(単数または複数)は、以下に限らないが、用語抽出、用語重み付け、用語フィルタリング、トピックとの用語の関連付けなどを含め、いくつかの機能を自動的に学習し、実行するために使うことができる。これらの基準は、以下に限らないが、事前定義された値、寄与減衰テーブルまたは他のパラメータ優先度、もしくはポリシーなどを含んでよい。なお、ニューラル・ネットワーク・コンポーネント204は、また本開示の様々な他のコンポーネントのサブコンポーネントであってもよい。例えば、図3に関連して説明するオントロジ・コンポーネントは、ニューラル・ネットワークもまた含むことが可能である。

0045

図3は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステムのブロック図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。

0046

別の実施形態において、インテント・ジェネレータ・コンポーネント300は、オントロジ・コンポーネント302を含むことができる。オントロジ・コンポーネント302は、公式に、トピック、特性、クライアント固有もしくは対象領域固有のまたはその両方のクエリに基づいて存在する、コミュニティとクエリとの相互関係を公式に挙げ、定義することが可能である。オントロジ・コンポーネント302は、インテント・ジェネレータ・コンポーネント300の計算のために必要な変数区分し、それらの間の関係性を確立することができる。

0047

オントロジ・コンポーネント302は、クエリ・マッチャ・コンポーネント202により生成された一致性と、出力208(例えば、推奨、信頼度スコアなど)と、エンティティからのフィードバックなどとに基づいて、関連するオントロジを再帰的に改変するように構成することが可能である。例えば、出力208のための出力データが生成された後、その出力データはオントロジ・コンポーネント302によって受信されてよい。オントロジ・コンポーネント302は、次いで、その出力データから新規の対象領域のオントロジを生成し、その新規の対象領域オントロジを、コミュニティ・エクストラクタ・コンポーネント104、プレプロセッサ・コンポーネント102、もしくはクエリ・マッチャ・コンポーネント202、またはこれらの組み合せに送信することができる。オントロジ・コンポーネント302が新規の対象領域オントリジを生成するのに基づいて、プレプロセッサ・コンポーネント102は、さらなるサービス、トピック、もしくはコミュニティ、またはこれらの組み合せを生成するために、その新規の対象領域オントロジに従って新しい入力を前処理することが可能となる。

0048

別の実施形態において、エンティティは、自分固有の対象領域オントロジまたは選好を、インテント・ジェネレータ・コンポーネント300が突合せを行うために、インテント・ジェネレータ・コンポーネント300に与えてよい。例えば、エンティティのテキストベースのクエリから生成された出力208(例えば、API推奨)に基づいて、エンティティは、該エンティティが推奨されたAPIを選好するか、または該エンティティが別のAPIを選好することになるかを決めることができる。結果として、オントロジ・コンポーネント302は、今後の繰り返しの突合せプロセスをさらに改良するため、エンティティの選好に関連する選好データを受信することが可能である。しかして、さらなるAPI推奨を生成するとき、同じエンティティに対する将来の推奨には、このエンティティの選好を考慮に入れることができる。

0049

図4は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する例示、非限定のシステム・ネットワークを示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。

0050

別の実施形態において、システムが取ることのできる1つのアプローチは、最初に(前述した)TNMFを使ってトピックを学習し、次いで、ルヴァンのコミュニティ検出法(LCD:Louvain’s community detection)と呼ばれるグリーディ最適化アルゴリズムを使用して、トピックとサービスとの間の対(つい)での関連付けを形成する、構築ネットワーク400を用いてコミュニティを抽出することである。さらに具体的には、ネットワーク400は、学習されたトピック−文書行列Vに基づいて構築される。ネットワーク400において、ノードは、サービス(または文書)およびトピックを表すことができる。V中の対応するエントリが非ゼロの場合、トピックとサービスとの間に重み付きエッジを形成することができる。しかして、この重みはそのエントリの値である。

0051

ネットワーク400が、示されているように完結された後、それからコミュニティを抽出するために、LCDを適用することが可能である。LCDはグリーディ最適化アルゴリズムであり、LCDによる最適化の対象値は、モジュラリティと呼ばれるスケール値である(図示のように−1〜1の間の範囲にある)。モジュラリティは、外側コミュニティのエッジに対する内側コミュニティのエッジの密度を測定する。しかして、モジュラリティを最適化することは、コミュニティの区画化つながり得る。全てのあり得る区画に亘って繰り返しを行うことは極めて非実際的である。しかして、以下の2つのフェーズを変化が生じなくなるまで反復的に繰り返すヒューリスティック・アプローチを用いてよい。

0052

第一フェーズでは、全てのノードがそれら自体のコミュニティに割り当てられる。ノードiをそれ自体のコミュニティ402からその隣接のコミュニティ404j(当初はモードjだけを包含している)に移動するためのモジュラリティの変更が計算される。このモジュラリティの変更は、次のヒューリスティック関数

0053

0054

を使用して計算できる。このΣinは、iがその中へと移動しているコミュニティ(C)(例えばコミュニティ404)の内側のエッジの全ての重みの和であり(いくつかの実施形態では、Σinは、Cの内側のリンクの和を表すと見なすことができる)、ΣtotはC中のノードへのリンクの和を表す。Σtotは、当該コミュニティ(例えば、コミュニティ402)中のエッジの全ての重みの和である。変数kiはiの重み付き程度である(いくつかの実施形態では、kiはノードiへのリンクの重みの和と見なすことができる)。ki,inは、コミュニティ(例えば、コミュニティ402)中のiと他のノードとの間のリンクの重みの和であり、mはネットワーク中の全てのリンクの重みの和である。

0055

いくつかの実施形態において、Σinは、Cの内側のリンクの和を表す。Σtotは、C中のノードへのリンクの和を表す。kiは、ノードiへのリンクの重みの和である。ki,inは、iからC中の諸ノードへのリンクの重みの和であり、mは当該ネットワーク中の全てのリンクの重みの和である。

0056

ノードiが連結されている、全てのコミュニティに対し値が計算されたならば、ノードiは、最大のΔQがもたらされるようにコミュニティ404中に結合することができる。このプロセスは、ネットワーク中の全てのコミュニティに逐次的に適用することが可能である。第二フェーズの過程で、同じコミュニティ中のノードは、一緒にグループ化され、そのグループ全体を一ノードとして扱ってよく、しかして、新しいネットワークを構築することができる。次いで、第一フェーズを再適用することができ、このプロセスが、モジュラリティに、定義された閾値より大きな変化がなくなるまで反復される。

0057

図5は、本明細書に記載の1つ以上の実施形態による、対象領域オントロジを利用するクエリ突合わせを促進する例示、非限定のブロック図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。

0058

テキスト502(例えば、「地図、場所、住所」)を包含するクエリ206に基づいて、関係性を判断するために、クエリ206に対比して、コミュニティおよび内在するトピックをチェックすることができる。例えば、クエリ206の単語「場所」に対する関係度をチェックするために、供された類似用語(例えば、「地図」および「住所」)を用いて一致性スコアM(クエリ,トピック)を生成することが可能である。さらに、クエリ206とトピックとの間に一致性スコアM(例えば、クエリ中の各単語と所与のトピック中の各キーワードとの間の類似性スコアの和)を生成することができる。したがって、単語「地図」、「場所」、および「住所」はトピック1に関連していると判断することが可能で、このトピック1は、コミュニティ発見プロセス504の過程で、コミュニティ1に関係するものと判断されている。その後に、コミュニティ1に関連付けられている特定の文書に基づいて、候補API506を識別するために潜在意味インデックス付け(LSI)を行ってよい。

0059

結果として、候補群として或るサービスのセットを所与として、LSIを用いて、候補サービスとクエリとの間の一致性スコアを計算することが可能である。LSIは、用語出現頻度−逆文書頻度(TF−IDF)行列を生成し、特異値分解(SVD)を用いそれを近似計算することによって、k次元の空間を生成する。SVDは、コラム間の類似性構造を保持しながら、当初の行列の次元を低減する。これにより、エンティティのクエリ206は、k次元のLSI空間にマップされる。しかして、クエリ206と所与の文書との類似性は2つのベクトルのコサイン類似性を用いて計算することができる。

0060

図6は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。

0061

別の実施形態において、階層的インテントを学習するために、API推奨プロセス600は、ブロック602で、APIに関連付けられた用語を受信するステップを含んでよい。例えば、APIのデータ・ストア、API記述、もしくはAPIに関連付けられた用語またはこれらの組み合せが、インテント・ジェネレータ・コンポーネント100、200、300にアップロードされてよい。次いで、インテント・ジェネレータ・コンポーネント100、200、300は、プレプロセッサ・コンポーネント102を用いて、アップロードされたAPI用語の前処理を開始することができる。これらAPI用語の前処理は、以下に限らないが、1)句点を除去し、品詞のタグを抽出する、2)高頻度のもしくは稀な用語をフィルタする、3)標準的なストップ・ワードを除去する、もしくは4)繰り返されるが情報価値のないよくある単語を抜き出す、またはこれらの組み合せを含め、いくつかの異なる方法によって行うことが可能である。一実施形態において、繰り返されるが情報価値のないよくある単語を抽出し除去するためにTNMFが使われてよい。

0062

前処理が行われた後、ブロック606で、インテント・ジェネレータ・コンポーネント100、200、300は、用語の関係性に基づいて、コミュニティを形成するために2つのアプローチのうちの1つを取ることを決めることができる。第一のアプローチは、ブロック608で、前処理された用語にTNMFおよびコミュニティ検出(例えば、図4に関連して説明したルヴァンのコミュニティ検出法(LCD))を適用するステップを含む。第二のアプローチは、ブロック610で、前処理済みの用語に長・短期メモリ(LSTM:long short−term memory)、kミーンズ・クラスタリング、およびトピックモデリング(図8に関連して説明する)を適用するステップを含む。ブロック608、610からの出力は、両方とも、ブロック612で、キーワードを生成し、APIに対しコミュニティを割り当てるために使用される。さらなる実施形態では、TNMFを用い、LCDのアプローチなしでコミュニティを形成することが可能なことにも留意すべきである。

0063

図7は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、さらなる例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。

0064

ブロック702で、或るエンティティから、API推奨に対するテキストベースのクエリを受信することができる。このテキストベースのクエリは、関心のあるAPIに関連する記述を含んでよい。例えば、このエンティティは、或る場所に関連するAPIを求めているかもしれない。ブロック704で、このテキストベースのクエリに基づいて、エンティティの予測インテントを判断するために、記述から対象となる単語および動詞を抽出することができる。ブロック612で、クラスタまたはコミュニティごとに(コミュニティ・エクストラクタ・コンポーネント104を用いて)生成されたキーワードに基づいて、ブロック708で、エンティティの予測されるインテントが、前述した階層的インテント学習プロセスを参照して生成された階層的インテントと突合せられる。エンティティのインテントと階層的インテントとの突合わせによって、一致したインテントに基づいて場所に関連付けられたAPIをブロック710で推奨するのに使用するデータを得ることができる。

0065

インテント・ジェネレータ・コンポーネント100、200、300は、推奨されたAPIに基づいてエンティティからのフィードバックをエンティティに促して、受信し、ブロック712で、エンティティのフィードバックを収集するように構成することができる。例えば、ブロック710でAPIが推奨された後、インテント・ジェネレータ・コンポーネント100、200、300は、エンティティに、推奨したAPIに関するフィードバックを促すことが可能である。このフィードバックは、エンティティによって開始されたクエリに照らして、エンティティが、APIが役立つと見るかどうかを表すことができる。このフィードバックは、推奨されたAPIが適用できないこと、推奨されたAPIがエンティティの欲するものであること、または推奨されたAPIが、エンティティの欲する属性の一部だけを含むことの表明を含んでよい。収集されたエンティティのフィードバックは、次いでブロック714に送信することができ、該ブロックで、クライアントまたは対象領域固有のオントロジを決めるために用いることができる。例えば、エンティティのフィードバックが、推奨されたAPIがエンティティの問い合わせたものとはるかに外れていることを示している場合、インテント・ジェネレータ・コンポーネント300は、そのエンティティがそれ自身のオントロジを有している可能性があり、インテント・ジェネレータ・コンポーネント100、200、300が、より正確な推奨結果を提供できるように、今後のプロセスに適用されることを望んでいる可能性があることを判断することができる。結果として、将来において、クライアントまたは対象領域固有のオントロジに関連付けられたデータは、エンティティのインテントと階層的インテントとを一致させるためにも用いることができる。

0066

図8は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、長・短期メモリ・オートエンコーダに対する例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。

0067

別の実施形態において、オートエンコーダに基づく長・短期メモリ(LSTM)は、サービス記述に対する埋込みを構築し、その後、当初の文を再構成するためにその埋込みを復号するように訓練することができる。この埋込は、当初のサービス記述のハイレベルの低次元表現と見なしてよい。さらに、kミーンズ・クラスタリング法を使って、このサービス埋込を異なるクラスタ群またはコミュニティ群に分割することができる。

0068

LSTMは単語の間の局所依存性を把握する機能を含んでおり、隣接する単語は組み合されて特定の意味を表現する。LSTMは、勾配消失(および爆発)問題を回避できる回帰ニューラル・ネットワーク(RNN:recurrent neural network)の一種類である。LSTMユニットは、3つのコンポーネント、忘却、入力、および出力を含むことができる。これらのコンポーネントは、どのように情報が流れるかを制御するために、互いに相互作用する。忘却コンポーネントは、前段のメモリ・セルからの、どの情報が(期限切れのため)もはや有効でなく、放棄されるべきかを判断する。入力コンポーネントは、どの情報が新しく更新を必要とするかを判断し、出力コンポーネントは、メモリ・セルからの値をフィルタする活性化機能である。

0069

例えば、図8に図示されるように、エレメント802は、エレメント804で符号化が可能なテキストを入力するステップを含むことができる。オートエンコーダは、追加のラベルを必要としない、教師なし(または自己教師あり)技法を活用して、サービス記述のコンパクトな表現を学習することができる。LSTMベースのオートエンコーダは、2つのLSTMを含むニューラル・モデルであってよく、1つのLSTMは、単語のシーケンス固定長のベクトル表現に符号化することが可能で、これにより、エレメント806で、圧縮表現を生成する。この最後のLSTMユニットの出力は、サービス記述の埋込みを生成することができる。エレメント808で、第二のLSTMが、その表現を別の記号のシーケンスに復号することが可能である。提案されたモデルのエンコーダおよびデコーダは、ソース・シーケンスを所与として、対象シーケンスの条件付き確率最大化するため一緒に訓練することができ、これによりエレメント810で対象を生成する。低次元表現が得られた後、エレメント812で、kミーンズ・クラスタリング法を適用してサービスを、kの指定されたクラスタまたはコミュニティに分割することが可能である。最後に、エレメント814で、各コミュニティ内のサービスにTNMFを適用してコミュニティごとのトピックを抽出することができる。

0070

図9は、本明細書に記載の1つ以上の実施形態による、対象領域およびクライアント固有のアプリケーション・プログラム・インターフェース推奨を促進する、コンピュータ実装の方法900の例示、非限定のフロー図を示す。簡潔化のため、本明細書に記載された他の実施形態中で用いられているのと同じエレメントの繰り返しの説明は省略する。

0071

別の実施形態において、コンピュータ実装の方法900は、プロセッサに動作可能に連結されたデバイスによって、クライアント・アプリケーション・プログラム・インターフェースの記述に関連付けられたテキスト・データを除去することによって、該クライアント・アプリケーション・プログラム・インターフェースの記述を(例えば、プレプロセッサ・コンポーネント102を用いて)改変し、クライアント・アプリケーション・プログラム・インターフェースの改変された記述を得るステップを含む。本コンピュータ実装の方法は、該クライアント・アプリケーション・プログラム・インターフェースの改変された記述と、1つ以上の従前のクライアント・アプリケーション・プログラム・インターフェースの1つ以上の従前の記述との間の意味的類似性に基づいて、(例えば、オントロジ・コンポーネント302を用いて)オントロジを生成するために、クライアント・アプリケーション・プログラム・インターフェースに関連するパフォーマンスを(例えば、オントロジ・コンポーネント302を用いて)解析するステップをさらに含むことができる。

0072

開示された主題の様々な態様に対するコンテキストを提供するために、図10、および以下の説明は、本開示の主題の様々な態様が実装可能な適切な環境の一般的表現を提供することを意図している。図10は、本明細書に記載の1つ以上の実施形態が促進可能な例示、非限定の動作環境のブロック図を示す。図10を参照すると、本開示の様々な諸態様を実装するために適切な動作環境1000は、同様に、コンピュータ1012を含んでよい。また、コンピュータ1012は、処理ユニット1014、システム・メモリ1016、およびシステム・バス1018を含む。システム・バス1018は、以下に限らないが、システム・メモリ1016と処理ユニット1014との連結を含め、諸システム・コンポーネントを連結する。処理ユニット1014は、様々の利用可能なプロセッサの任意のものであってよい。また、デュアルマイクロプロセッサおよび他のマイクロプロセッサ・アーキテクチャも、処理ユニット1014として用いることができる。システム・バス1018は、メモリ・バスまたはメモリ・コントローラ周辺バスまたは外部バス、もしくは、以下に限らないが、業界標準アーキテクチャISA:Industrial Standard Architecture)、マイクロチャネル・アーキテクチャ(MSA:Micro−Channel Architecture)、拡張ISA(EISA:Extended ISA)、インテリジェントドライブエレクトロニクス(IDE:Intelligent Drive Electronics)、VESAローカル・バス(VLB:VESA Local Bus)、周辺機器相互接続PCI:Peripheral Component Interconnect)、カード・バス、ユニバーサルシリアル・バス(USB:Universal Serial Bus)、アドバンスト・グラフィクスポート(AGP:Advanced Graphics Port)、ファイアーワイヤIEEE 1394)、および小型計算機システム・インターフェース(SCSI:Small Computer Systems Interface)を含め、任意の多様な利用可能なバス・アーキテクチャを用いたローカル・バスを含むバス構造体(単数または複数)のいくつかの種類のいずれかであってよい。

0073

また、システム・メモリ1016は、揮発性メモリ1020、および不揮発性メモリ1022を含んでよい。立ち上げの過程などで、コンピュータ1012内の素子の間で情報を伝送する基本ルーティンを包含する、基本入力/出力システム(BIOS:basicinput/output system)は、不揮発性メモリ1022中に格納される。限定でなく例示として、不揮発性メモリ1022は、読み取り専用メモリ(ROM:read only memory)、プログラマブルROMPROM:programmable ROM)、電気的プログラマブルROM(EPROM:electrically programmable ROM)、電気的消去可能プログラマブルROM(EEPROM:electrically erasable programmable ROM)、フラッシュ・メモリ、または不揮発性ランダムアクセス・メモリ(RAM:random access memory)(例えば、強誘電性RAM(FeRAM))を含むことができる。また、揮発性メモリ1020はRAMを含むことができ、これは、例えば外部キャッシュ・メモリとして機能する。限定でなく例示として、RAMは、スタティックRAM(SRAM:static RAM)、ダイナミックRAMDRAM:dynamic RAM)、同期DRAM(SDRAM:synchronous DRAM)、ダブル・データ・レートSDRAM(DDR SDRAM:double data rate SDRAM)、拡張SDRAM(ESDRAM:enhanced SDRAM)、同期リンクDRAM(SLDRAM:Synchlink DRAM)、ダイレクトラムバスRAM(DRRAM:direct Rambus RAM )、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM:direct Rambus dynamic RAM)、およびラムバス・ダイナミックRAMなど多くの形で利用可能である。

0074

また、コンピュータ1012は着脱型/固定型揮発性不揮発性のコンピュータ・ストレージ媒体を含むことができる。例えば、図10にはディスクストレージ1024が示されている。また、ディスク・ストレージ1024は、以下に限らないが、磁気ディスクドライブフレキシブル・ディスク・ドライブ、テープ・ドライブ、Jazドライブ(R)、Zipドライブ(R)、LS−100ドライブ(R)、フラッシュ・メモリ・カード、またはメモリ・スティックなどのデバイスを含んでよい。ディスク・ストレージ1024は、ストレージ媒体を別々に、または、以下に限らないが、コンパクト・ディスクROMデバイスCD−ROM:compact disk ROM)、CD記録可能ドライブ(CD−R Drive:CD recordable drive)、CD書き換え可能ドライブ(CD−RW Drive:CD rewritable drive)、またはデジタル多用途ディスク(DVD−ROM:digital versatile disk)などの光ディスク・ドライブを含む、他のストレージ媒体との組み合わせで、含んでもよい。ディスク・ストレージ1024のシステム・バス1018への連結を容易にするために、通常、インターフェース1026など、着脱型または固定型インターフェースが用いられる。また、図10には、ユーザと、適した動作環境1000中に表された基本的コンピュータ・リソースとの間の仲介としての役割をするソフトウェアが描かれている。かかるソフトウェアは、例えば、オペレーティング・システム1028を含むことができる。オペレーティング・システム1028は、ディスク・ストレージ1024上に格納することができ、コンピュータ1012のリソースを制御し、割り当てる役割をする。

0075

システムのアプリケーション1030は、例えば、システム・メモリ1016中もしくはディスク・ストレージ1024上に格納されたプログラム・モジュール1032およびプログラム・データ1034を介して、オペレーティング・システム1028によるリソースのマネジメントを利用する。当然のことながら、本開示は、様々なオペレーティング・システムまたはオペレーティング・システムの組み合せとともに実装することが可能である。ユーザは、入力デバイス(単数または複数)1036を介して、コンピュータ1012の中にコマンドまたは情報を入力する。入力デバイス1036は、以下に限らないが、マウスなどのポインティング・デバイス、トラックボールスタイラスタッチパッドキーボードマイクロフォンジョイスティック、ゲーム・パッド、衛星受信アンテナスキャナTVチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどを含む。これらのおよび他のデバイスは、インターフェース・ポート(単数または複数)1038を介し、システム・バス1018を通って処理ユニット1014に連結される。インターフェース・ポート(単数または複数)1038は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス(USB)を含む。出力デバイス(単数または複数)1040は、入力デバイス(単数または複数)1036と同じ型のいくつかのポートを使用する。しかして、例えば、USBポートは、コンピュータ1012への入力とコンピュータ1012から出力デバイス1040への出力情報とを供給するために使用することができる。出力アダプタ1042は、数ある出力デバイス1040の中で、モニタスピーカ。およびプリンタなど特別なアダプタを必要とするいくつかの出力デバイス1040があることを示すために提示されている。出力アダプタ1042は、限定でなく例示として、出力デバイス1040とシステム・バス1018との間の連結の手段を提供するビデオおよびサウンド・カードを含む。遠隔コンピュータ(単数または複数)1044など、他のデバイスもしくはデバイスのシステムまたはその両方が入力および出力両方の機能を備えていることに留意すべきである。

0076

コンピュータ1012は、遠隔コンピュータ(単数または複数)1044など、1つ以上の遠隔コンピュータへのロジック接続を用いて、ネットワーク化環境中で動作することができる。遠隔コンピュータ(単数または複数)1044は、コンピュータ、サーバルータ、ネットワークPC、ワークステーション、マイクロプロセッサ・ベースの電気機器ピア・デバイスまたは他の一般的なネットワーク・ノードなどであってよく、通常、これらも同様にコンピュータ1012に関連して説明したような構成要素の多くまたは全てを含むことができる。簡潔化のため、メモリ・ストレージ・デバイス1046だけが、遠隔コンピュータ(単数または複数)1044と一緒に示されている。遠隔コンピュータ(単数または複数)1044は、ネットワーク・インターフェース1048を通してコンピュータ1012と論理的に接続され、次いで通信接続1050を介して物理的に連結されている。ネットワーク・インターフェース1048は、ローカル・エリア・ネットワーク(LAN:local−area network)、広域ネットワークWAN:wide−area network)、セルラ・ネットワークなど、有線もしくはワイヤレス通信ネットワークまたはその両方を包含する。LAN技術は、ファイバディストリビューテッド・データ・インターフェース(FDDI:Fiber Distributed Data Interface、銅線配線データ・インターフェース(CDDI:Copper Distributed Data Interface)、イーサネット(R)、トークンリングなどを含む。WAN技術は、以下に限らないが、二点間リンク統合サービスディジタル・ネットワーク(ISDN:Integrated Services Digital Network)およびその変形などの回線交換ネットワークパケット交換ネットワーク、およびデジタル加入者回線(DSL:Digital Subscriber Line)を含む。通信接続(単数または複数)1050は、ネットワーク・インターフェース1048をシステム・バス1018に連結するために用いられるハードウェア/ソフトウェアのことを言う。例示の明瞭化のため、通信接続1050がコンピュータ1012の内側に示されているが、これはコンピュータ1012の外部にあってもよい。また、ネットワーク・インターフェース1048への接続のためのハードウェア/ソフトウェアは、例示のためだけであるが、標準の電話グレードモデムケーブル・モデム、およびDSLモデムを含むモデム、ISDNアダプタ、およびイーサネット(R)カードなど、内部および外部の技術を含むことが可能である。

0077

本開示は、任意の可能な技術的詳細の集約度で、システム、方法、装置、もしくはコンピュータ・プログラム製品またはこれらの組み合せとすることができる。このコンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラムを有するコンピュータ可読ストレージ媒体(または媒体群)を含むことが可能である。このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持し格納できる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のデバイスの任意の適切な組み合せであってよい。コンピュータ可読ストレージ媒体のさらに具体的な例の非包括的リストには、携帯型コンピュータディスケットハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去およびプログラム可能読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フレキシブル・ディスク、パンチカードまたは記録された命令を有する溝中の嵩上げ構造体などの機械符号化デバイス、および前述の任意の適切な組み合せが含まれる。本明細書で用いられるコンピュータ可読ストレージ媒体は、無線波または他の自由に伝播する電磁波、ウェーブガイドまたは他の送信媒体(例えば、光ファイバを通過する光パルス)、またはワイヤを通って送信される電気信号など、本質的に一時的な信号であると解釈されるものではない。

0078

本明細書に述べられたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング/処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくはワイヤレス・ネットワークまたはこれらの組み合せなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスにダウンロードすることが可能である。このネットワークには、銅送信ケーブル光送信ファイバワイヤレス通信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバまたはこれらの組み合せが含まれてよい。それぞれのコンピューティング/処理デバイス中のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、ストレージのため、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体の中に転送する。本開示のオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令命令集合アーキテクチャ(ISA:instruction−set−architecture)命令、マシン命令マシン依存命令、マイクロコードファームウェア命令、状態設定データ、集積回路用構成データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合せで記述されたソース・コードもしくはオブジェクト・コードであってよい。このコンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは(例えばインターネット・サービス・プロバイダ使いインターネットを介し)外部のコンピュータへの接続を行うことも可能である。いくつかの実施形態において、例えば、プログラマブル論理回路フィールドプログラマブルゲートアレイFPGA:field−programmable gate array)、またはプログラマブル論理アレイPLA:programmable logic array)を含む電子回路は、本開示の諸態様を実行すべく、該電子回路をカスタマイズするためコンピュータ可読プログラム命令の状態情報を利用することによって、該コンピュータ可読プログラム命令を実行することができる。

0079

本開示の諸態様は、本開示の諸実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら本明細書で説明されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合せは、コンピュータ可読プログラム命令によって実装することが可能である。これらのコンピュータ可読プログラム命令を、汎用コンピュータ特殊用途コンピュータ、またはマシンを形成する他のプログラマブルデータ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群動作群を実装するための手段を生成するようにすることができる。また、コンピュータ、プログラマブル・データ処理装置、もしくは他のデバイスまたはこれらの組み合せに対し特定の仕方で機能するよう命令することが可能なこれらのコンピュータ可読プログラム命令を、コンピュータ可読ストレージ媒体に格納し、格納された命令を有するコンピュータ可読ストレージ媒体が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能/動作の諸態様を実装する命令群を包含する製造品を構成するようにすることができる。さらに、これらコンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードし、そのコンピュータ上で、他のプログラマブル装置上で、または他のデバイス上で一連のオペレーション・ステップを実施させて、コンピュータ実装のプロセスを作り出し、当該コンピュータ上で、他のプログラマブル装置上でもしくは他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群/動作群を実装するようにすることも可能である。

0080

諸図面中のフローチャートおよびブロック図は、本開示の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品から可能となる実装のアーキテクチャ、機能性、およびオペレーションを表している。この点に関し、フローチャートまたはブロック図中の各ブロックは、特定の論理機能(単数または複数)を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、または命令の部分を表し得る。いくつかの別の実装においては、ブロック中に記載された機能が、図面に記載された順序から外れて行われてよい。例えば、連続して示された2つのブロックが、関与する機能性に応じ、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能または動作を実施する特殊用途ハードウェア・ベースのシステムによって実装でき、または特殊用途ハードウェアとコンピュータ命令との組み合わせによって実行できることにも留意すべきである。

0081

本主題を、コンピュータもしくはコンピュータ群またはその両方で実行される、コンピュータ・プログラム製品のコンピュータ実行可能命令の一般的コンテキストで前述してきたが、当業者は、本開示が、他のプログラム・モジュールと組み合せて実装するまたは実装されることが可能であることも認識するであろう。一般に、プログラム・モジュールは、特定のタスクを実行するもしくは特定の抽象データ型を実装するまたはその両方を行うルーティン、プログラム、コンポーネント、データ構造体などを含む。さらに、当業者は、本発明のコンピュータ実装の方法が、シングルプロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、およびコンピュータ、ハンドヘルド・コンピューティング・デバイス(例えば、PDA、電話)、マイクロプロセッサ・ベースのまたはプログラマブルな消費者または産業用電子機器などを含め、他のコンピュータ・システム構成によっても実践可能であることをよく認識していよう。また、これら例示の態様は、通信ネットワークを介してリンクされた遠隔の処理デバイス群によってタスクが実行される分散コンピューティング環境においても実践可能である。また一方、本開示の、全ての態様でなくても、その一部はスタンドアローン・コンピュータ上で実践することができる。分散コンピューティング環境において、プログラム・モジュールは、ローカルおよび遠隔両方のメモリ・ストレージ・デバイスに配置することが可能である。

0082

本出願中での使用において、用語「コンポーネント」、「システム」、「インターフェース」などは、コンピュータ関連のエンティティ、または1つ以上の特定の機能を備えた演算マシンに関連するエンティティに言及することがあり得、もしくはそれらを含むことがあり得、またはその両方があり得る。本明細書で開示されたエンティティは、ハードウェア、ハードウェアとソフトウェアとの組み合せ、ソフトウェア、または実行中のソフトウェアにいずれかであり得る。例えば、或るコンポーネントは、限定はされないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、もしくはコンピュータ、またはこれらの組み合せであり得る。例として、サーバ上で実行されているアプリケーションおよびそのサーバの両方が一コンポーネントであってよい。1つ以上のコンポーネントが、プロセッサもしくは実行のスレッドまたはその両方に存在することができ、或るコンポーネントが1つのコンピュータに局在すること、もしくは2つ以上のコンピュータに分散されること、またはその両方が可能である。別の例では、それぞれのコンポーネントを、格納された様々なデータ構造を有する様々なコンピュータ可読媒体から実行することが可能である。これらコンポーネントは、例えば1つ以上のデータ・パケット(例えば、ローカル・システム、分散システム中で、もしくは、インターネットなどのネットワークを通して他のシステムと信号を介して別のコンポーネントと相互作用している1つのコンポーネントからのデータ)を有する信号によって、ローカルもしくは遠隔またはその両方のプロセスを介して通信することができる。別の例として、或るコンポーネントは、電子または電気回路により作動される機械的部品によって提供される特定の機能を備えた装置であってよく、該回路は、プロセッサにより実行されるソフトウェアまたはファームウェア・アプリケーションによって作動される。かかる場合、そのプロセッサは、装置の内部にあっても外部にあってもよく、そのソフトウェアまたはファームウェアの少なくとも一部を実行することができる。さらなる別の例として、或るコンポーネントは、機械的部品なしに、電子コンポーネントを介して特定の機能を提供する装置であってよく、この電子コンポーネントは、プロセッサ、またはその電子コンポーネントの機能を少なくとも部分的に提供するソフトウェアまたはファームウェアを実行するための他の手段を含むことが可能である。或る態様において、或るコンポーネントは、例えばクラウド・コンピューティング・システム内で、仮想マシンを介して電子コンポーネントをエミュレートすることができる。

0083

さらに、用語「または」は、排他的「または」ではなく包括的「または」を意味するように意図されている。すなわち、別途に指定されているか、または文脈から明瞭な場合を除き、「XはAまたはBを用いる」は、自然な包含的順列のうちの任意のものを意味するように意図されている。すなわち、「XはAまたはBを用いる」は、XがAを用いる、XがBを用いる、またはXがAとBとの両方を用いるのうちのいずれによっても満たされる。さらに、本明細書および添付の図面中で使用される詞「或る(a、an)」は、別途に指定されているか、または文脈から単数形を対象とすることが明瞭な場合を除き、一般に「1つ以上」を意味すると解釈されるべきである。本明細書で用いられる用語「例示の」もしくは「例示的な」またはその両方は、例、具体例、または事例としての役割を意味するために使われる。疑問が出ないように言えば、本明細書で開示された主題はかかる例には限定されない。さらに、本明細書で、「例示の」もしくは「例示的な」またはその両方として説明されたいずれの態様または設計も、必ずしも他の態様または設計よりも好ましいかまたは有利であるとも、当業者に既知の等価の例示的な構造または技法の排除を意味するとも解釈されるべきでない。

0084

本明細書で用いられている用語「プロセッサ」は、実質上、以下に限定はされないが、シングルコア・プロセッサ、ソフトウェアのマルチスレッド実行機能を備えたシングルコア・プロセッサ、マルチコア・プロセッサ、ソフトウェアのマルチスレッド実行機能を備えたマルチコア・プロセッサ、ハードウェアのマルチスレッド技術を備えたマルチコア・プロセッサ、並列プラットフォーム、および分散共有メモリを備えた並列プラットフォームを含む、任意のコンピューティング処理ユニットまたはデバイスを言及してよい。さらに、プロセッサは、集積回路特定用途向け集積回路ASIC:application specific integrated circuit)、デジタル信号プロセッサ(DSP:digital signal processor)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル・ロジック・コントローラ(PLC:programmable logic controller)、複合プログラマブル・ロジック・デバイス(CPLD:complex programmable logic device)、ディスクリート・ゲートまたはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、または、本明細書に記載の機能を遂行するために設計されたこれらの任意の組み合わせを言及してよい。さらに、プロセッサは、スペース利用の最適化またはユーザ装置のパフォーマンスの向上のために、以下に限らないが、分子または量子ドットベースのトランジスタ、スイッチ、およびゲートなどナノスケールのアーキテクチャを利用することが可能である。また、プロセッサは、計算処理ユニットの組み合せとして実装することもできる。本開示において、「格納」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、および実質的には、或るコンポーネントのオペレーションおよび機能に関連する任意の情報ストレージ・コンポーネントは、「メモリ・コンポーネント」、「メモリ」中に具現化されたエントリ、またはメモリを含むコンポーネントを言及するために用いられる。当然のことながら、本明細書に記載のメモリもしくはメモリ・コンポーネントまたはその両方は、揮発性もしくは不揮発性であってよく、または揮発性および不揮発性メモリの両方を含むことも可能である。限定でなく例示として、不揮発性メモリは、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能ROM(EEPROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM)(例えば、強誘電性RAM(FeRAM))を含むことができる。揮発性メモリはRAMを含むことができ、これは、例えば外部キャッシュ・メモリとして機能することが可能である。限定でなく例示として、RAMは、同期RAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブル・データ・レートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、同期リンクDRAM(SLDRAM:Synchlink DRAM)、ダイレクト・ラムバスRAM(DRRAM)、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM)、およびラムバス・ダイナミックRAM(RDRAM)など多くの形で利用可能である。さらに、本明細書に開示のシステムまたはコンピュータ実装の方法のメモリ・コンポーネントは、含むことに限定はされないが、これらのまたは他の適切な型のメモリを含むように意図されている。

0085

上記で説明してきたことは、システムおよびコンピュータ実装の方法の単なる例を含む。当然のことながら、本開示を説明するために、コンポーネントまたはコンピュータ実装の方法のあらゆる考えられる組み合せを記述するのは不可能であるが、当業者は、多くのさらなる組み合せおよび並び替えが可能であることを理解できよう。詳細な説明、クレーム付属書、および図面の中で、用語「含む」、「有する」、「所有する」および類似用語が使用されている範囲内において、かかる用語は、用語「を含めて(comprising)」は、クレーム中で用いられる場合移行語として解釈されるので、用語「を含めて」と同様に包括的であることが意図されている。

0086

上記様々な実施形態の説明は、例示目的で提示されたもので、網羅的であることも、または開示された実施形態に限定することも意図されていない。当業者には、説明された実施形態の範囲および趣旨から逸脱することのない多くの改変および変形が明白であろう。本明細書で用いられた用語は、諸実施形態の原理、実際上の応用、または市販の技術の技術的な改良を最善に説明し、または他の当業者が本明細書に開示された諸実施形態を理解できるように選択されたものである。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ