(57)【要約】      （修正有）【課題】アプリケーション・プログラミング・インターフェース（API）パラメータのマッピングを提供する。【解決手段】プロセッサは定義されたAPI仕様を受け取り、API仕様は第一のフォーマットでのAPIテーブルを含み、APIテーブルの各列はAPIパラメータに関連付けられている。プロセッサはキー・モデルを生成し、キー・モデルはAPIテーブルの一つまたは複数のAPIパラメータが、API仕様に基づいて定義されたフォーマットでの対応するクラスにマッピングされたものを含んでいる。プロセッサは抽出されたテーブルを受領し、テーブルの各列は第一のフォーマットにおけるAPIパラメータに関連付けられており、プロセッサはテーブルの各列をキー・モデルに基づいて定義されたフォーマットにおけるAPIパラメータのクラスに関連付けて、定義されたフォーマットにおいてテーブルのAPIパラメータを含むAPI仕様を生成する。【選択図】図１
2019133622.tif 000002
【特許請求の範囲】
【請求項１】
通信インターフェースと；
前記通信インターフェースに動作上結合されたプロセッサとを有するシステムであって、前記プロセッサは：
前記通信インターフェースを介して、定義されたアプリケーション・プログラミング・インターフェース（API）仕様を受け取る段階であって、前記定義されたAPI仕様は、第一のフォーマットでのAPIテーブルを含み、前記APIテーブルの各列はAPIパラメータに関連付けられている、段階と；
前記定義されたAPI仕様に基づいてキー・モデルを生成する段階であって、前記キー・モデルは、前記APIテーブルの一つまたは複数のAPIパラメータが、定義されたフォーマットでのAPIパラメータの対応するクラスにマッピングされたものを含む、段階と；
前記通信インターフェースを介して、抽出されたテーブルを受け取る段階であって、前記抽出されたテーブルの各列は、前記第一のフォーマットでのAPIパラメータに関連付けられている、段階と；
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける段階と；
前記定義されたフォーマットで前記抽出されたテーブルの前記APIパラメータを含むAPI仕様を生成する段階とを含む動作を実行するよう構成されている、
システム。
【請求項２】
前記定義されたAPI仕様に基づいてキー・モデルを生成する動作が：
前記APIテーブルの各列についてキー項目を定義する段階であって、各キー項目はAPIパラメータを定義する、段階と；
前記APIテーブルの各列について値項目を決定する段階と；
前記APIテーブルの各列についての各キー項目および値項目に関連付けられたルート・ペアレントを決定する段階と；
明瞭キー・テーブルを生成する段階であって、前記明瞭キー・テーブルの第一列は、異なる行に位置する前記APIテーブルのキー項目を含み、第二列は対応するキー項目と同じ行に値項目を含み、第三列は対応するキー項目および値項目と同じ行にルート・ペアレントを含む、段階と；
少なくとも一つまたは複数のキー項目が同じまたは実質的に同様であるかどうかを判定する段階と；
一つまたは複数のキー項目が同じまたは実質的に同様であると判定することに応答して、同じまたは実質的に同様であるキー項目と、対応する値項目およびルート・ペアレントとを、前記明瞭キー・テーブルにおいて対応するAPIパラメータに関連付けられた列にマッピングする段階であって、前記キー・モデルは前記明瞭キー・テーブルに基づいて生成される、段階とを含む、
請求項１記載のシステム。
【請求項３】
各ルート・ペアレントが、各キー項目および値項目にアクセスするためのファイル・パスの構造を含む、請求項２記載のシステム。
【請求項４】
前記プロセッサがさらに：
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるキー項目のキー類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれる値項目の値類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるルート・ペアレントの構造類似性スコアを決定する段階とを実行するようさらに構成されている、
請求項２記載のシステム。
【請求項５】
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作が、前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアを
【数１】
2019133622.tif 000007
に従って決定することを含み、iは1からキー項目の総数までの範囲内の値であり、jは1から値項目の総数までの範囲内の値であり、lは1からルート・ペアレントの総数までの範囲内の値であり、Siは前記抽出されたテーブルの第i列および前記明瞭キー・テーブルの各列についてのルート・ペアレントの構造類似性スコアであり、Viは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目の値項目の値類似性スコアであり、Kiは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目のキー項目のキー類似性スコアである、
請求項４記載のシステム。
【請求項６】
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作がさらに、
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアが類似性範囲内であるかどうかを判定し；
前記抽出されたテーブルのある列および前記明瞭キー・テーブルのある列についての列類似性スコアが前記類似性範囲内であると判定することに応答して、前記抽出されたテーブルのその列を前記定義されたフォーマットでのAPIパラメータの対応するクラスに関連付けることを含む、
請求項５記載のシステム。
【請求項７】
前記抽出されたテーブルが、前記第一のフォーマットで前記抽出されたテーブルに含まれるAPIパラメータに関連付けられた、一つまたは複数のキー項目、一つまたは複数の値項目および一つまたは複数のルート・ペアレントのうちの少なくとも一つを含む、請求項１記載のシステム。
【請求項８】
通信インターフェースを介して、定義されたアプリケーション・プログラミング・インターフェース（API）仕様を受け取る段階であって、前記定義されたAPI仕様は、第一のフォーマットでのAPIテーブルを含み、前記APIテーブルの各列はAPIパラメータに関連付けられている、段階と；
前記定義されたAPI仕様に基づいてキー・モデルを生成する段階であって、前記キー・モデルは、前記APIテーブルの一つまたは複数のAPIパラメータが、定義されたフォーマットでのAPIパラメータの対応するクラスにマッピングされたものを含む、段階と；
前記通信インターフェースを介して、抽出されたテーブルを受け取る段階であって、前記抽出されたテーブルの各列は、前記第一のフォーマットでのAPIパラメータに関連付けられている、段階と；
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける段階と；
前記定義されたフォーマットで前記抽出されたテーブルの前記APIパラメータを含むAPI仕様を生成する段階とを含む
方法。
【請求項９】
前記定義されたAPI仕様に基づいてキー・モデルを生成する動作が：
前記APIテーブルの各列についてキー項目を定義する段階であって、各キー項目はAPIパラメータを定義する、段階と；
前記APIテーブルの各列について値項目を決定する段階と；
前記APIテーブルの各列についての各キー項目および値項目に関連付けられたルート・ペアレントを決定する段階と；
明瞭キー・テーブルを生成する段階であって、前記明瞭キー・テーブルの第一列は、異なる行に位置する前記APIテーブルのキー項目を含み、第二列は対応するキー項目と同じ行に値項目を含み、第三列は対応するキー項目および値項目と同じ行にルート・ペアレントを含む、段階と；
少なくとも一つまたは複数のキー項目が同じまたは実質的に同様であるかどうかを判定する段階と；
一つまたは複数のキー項目が同じまたは実質的に同様であると判定することに応答して、同じまたは実質的に同様であるキー項目と、対応する値項目およびルート・ペアレントとを、前記明瞭キー・テーブルにおいて対応するAPIパラメータに関連付けられた列にマッピングする段階であって、前記キー・モデルは前記明瞭キー・テーブルに基づいて生成される、段階とを含む、
請求項８記載の方法。
【請求項１０】
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるキー項目のキー類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれる値項目の値類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるルート・ペアレントの構造類似性スコアを決定する段階とをさらに含む、
請求項９記載の方法。
【請求項１１】
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作が、前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアを
【数２】
2019133622.tif 000008
に従って決定することを含み、iは1からキー項目の総数までの範囲内の値であり、jは1から値項目の総数までの範囲内の値であり、lは1からルート・ペアレントの総数までの範囲内の値であり、Siは前記抽出されたテーブルの第i列および前記明瞭キー・テーブルの各列についてのルート・ペアレントの構造類似性スコアであり、Viは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目の値項目の値類似性スコアであり、Kiは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目のキー項目のキー類似性スコアである、
請求項１０記載の方法。
【請求項１２】
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作がさらに、
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアが類似性範囲内であるかどうかを判定し；
前記抽出されたテーブルのある列および前記明瞭キー・テーブルのある列についての列類似性スコアが前記類似性範囲内であると判定することに応答して、前記抽出されたテーブルのその列を前記定義されたフォーマットでのAPIパラメータの対応するクラスに関連付けることを含む、
請求項１１記載の方法。
【請求項１３】
前記抽出されたテーブルが、前記第一のフォーマットで前記抽出されたテーブルに含まれるAPIパラメータに関連付けられた、一つまたは複数のキー項目、一つまたは複数の値項目および一つまたは複数のルート・ペアレントのうちの少なくとも一つを含む、請求項８記載の方法。
【請求項１４】
動作を実行するためにプロセッサによって実行可能なプログラミング・コードがエンコードされている非一時的なコンピュータ可読媒体であって、前記動作は：
通信インターフェースを介して、定義されたアプリケーション・プログラミング・インターフェース（API）仕様を受け取る段階であって、前記定義されたAPI仕様は、第一のフォーマットでのAPIテーブルを含み、前記APIテーブルの各列はAPIパラメータに関連付けられている、段階と；
前記定義されたAPI仕様に基づいてキー・モデルを生成する段階であって、前記キー・モデルは、前記APIテーブルの一つまたは複数のAPIパラメータが、定義されたフォーマットでのAPIパラメータの対応するクラスにマッピングされたものを含む、段階と；
前記通信インターフェースを介して、抽出されたテーブルを受け取る段階であって、前記抽出されたテーブルの各列は、前記第一のフォーマットでのAPIパラメータに関連付けられている、段階と；
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける段階と；
前記定義されたフォーマットで前記抽出されたテーブルの前記APIパラメータを含むAPI仕様を生成する段階とを含む、
非一時的なコンピュータ可読媒体。
【請求項１５】
前記定義されたAPI仕様に基づいてキー・モデルを生成する動作が：
前記APIテーブルの各列についてキー項目を定義する段階であって、各キー項目はAPIパラメータを定義する、段階と；
前記APIテーブルの各列について値項目を決定する段階と；
前記APIテーブルの各列についての各キー項目および値項目に関連付けられたルート・ペアレントを決定する段階と；
明瞭キー・テーブルを生成する段階であって、前記明瞭キー・テーブルの第一列は、異なる行に位置する前記APIテーブルのキー項目を含み、第二列は対応するキー項目と同じ行に値項目を含み、第三列は対応するキー項目および値項目と同じ行にルート・ペアレントを含む、段階と；
少なくとも一つまたは複数のキー項目が同じまたは実質的に同様であるかどうかを判定する段階と；
一つまたは複数のキー項目が同じまたは実質的に同様であると判定することに応答して、同じまたは実質的に同様であるキー項目と、対応する値項目およびルート・ペアレントとを、前記明瞭キー・テーブルにおいて対応するAPIパラメータに関連付けられた列にマッピングする段階であって、前記キー・モデルは前記明瞭キー・テーブルに基づいて生成される、段階とを含む、
請求項１４記載の非一時的なコンピュータ可読媒体。
【請求項１６】
各ルート・ペアレントが、各キー項目および値項目にアクセスするためのファイル・パスの構造を含む、請求項１５記載の非一時的なコンピュータ可読媒体。
【請求項１７】
前記動作がさらに：
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるキー項目のキー類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれる値項目の値類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるルート・ペアレントの構造類似性スコアを決定する段階とを含む、
請求項１５記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作が、前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアを
【数３】
2019133622.tif 000009
に従って決定することを含み、iは1からキー項目の総数までの範囲内の値であり、jは1から値項目の総数までの範囲内の値であり、lは1からルート・ペアレントの総数までの範囲内の値であり、Siは前記抽出されたテーブルの第i列および前記明瞭キー・テーブルの各列についてのルート・ペアレントの構造類似性スコアであり、Viは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目の値項目の値類似性スコアであり、Kiは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目のキー項目のキー類似性スコアである、
請求項１７記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作がさらに、
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアが類似性範囲内であるかどうかを判定し；
前記抽出されたテーブルのある列および前記明瞭キー・テーブルのある列についての列類似性スコアが前記類似性範囲内であると判定することに応答して、前記抽出されたテーブルのその列を前記定義されたフォーマットでのAPIパラメータの対応するクラスに関連付けることを含む、
請求項１８記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記抽出されたテーブルが、前記第一のフォーマットで前記抽出されたテーブルに含まれるAPIパラメータに関連付けられた、一つまたは複数のキー項目、一つまたは複数の値項目および一つまたは複数のルート・ペアレントのうちの少なくとも一つを含む、請求項１４記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本稿で論じられる実施形態はAPIパラメータ・マッピングに関する。
【背景技術】
【０００２】
アプリケーション・プログラミング・インターフェース（API）は、ソフトウェア・アプリケーションを構築するためのルーチン、プロトコルおよびツールの集合である。APIはソフトウェア・コンポーネントがどのように相互作用すべきかを指定し、グラフィカル・ユーザー・インターフェース（GUI）コンポーネントをプログラムするときにAPIが使われる。APIは典型的にはソフトウェア・アプリケーションの関数またはデータを公開するものであり、それが他のアプリケーションが、該関数またはデータの実装を心配することなく、該APIの資源を使うことを可能にする。
【０００３】
本願で請求される主題は、何らかの欠点を解決する、あるいは記載されたような環境でのみ動作する実施形態に限定されるものではない。むしろ、この背景は、本稿に記載されるいくつかの実施形態が実施されうる一つの例示的な技術を例解するために与えられているだけである。
【発明の概要】
【課題を解決するための手段】
【０００４】
ある実施形態のある側面によれば、システムは、通信インターフェースと、該通信インターフェースに動作上結合されたプロセッサとを含んでいてもよい。プロセッサは、通信インターフェースを介して、定義されたAPI仕様を受け取るよう構成されてもよい。定義されたAPI仕様は、第一のフォーマットでのAPIテーブルを含んでいてもよく、該APIテーブルの各列はAPIパラメータに関連付けられていてもよい。プロセッサは、キー・モデルを生成するよう構成されていてもよい。キー・モデルは、定義されたAPI仕様に基づいていてもよい。キー・モデルは、APIテーブルに含まれるAPIドキュメンテーションの一つまたは複数のAPIパラメータが、定義されたフォーマットでのAPIパラメータの対応するクラスにマッピングされたものを含んでいてもよい。いくつかの実施形態では、APIテーブルは、ハイパーテキスト・マークアップ言語（HTML）テーブルを含んでいてもよい。さらに、プロセッサは、通信インターフェースを介して、抽出されたテーブルを受領するよう構成されてもよい。抽出されたテーブルの各列は、第一のフォーマットにおけるAPIパラメータに関連付けられてもよい。プロセッサは、抽出されたテーブルの各列を、キー・モデルに基づいて、定義されたフォーマットにおけるAPIパラメータのクラスに関連付けるよう構成されていてもよい。プロセッサはまた、定義されたフォーマットにおいて、抽出されたテーブルのAPIパラメータを含む、API仕様を生成するよう構成されていてもよい。
【０００５】
実施形態の目的および利点は、少なくとも、請求項において具体的に指摘される要素、特徴および組み合わせによって、実現され、達成される。
【０００６】
上記の一般的な記述および以下の詳細な説明はいずれも例示および説明するものであり、特許請求される本発明を制約するものでないことは理解されるものとする。
【図面の簡単な説明】
【０００７】
例示的実施形態は、付属の図面を使ってさらに具体的かつ詳細に記述され、説明される。
【図１】APIパラメータのマッピングに関する例示的環境を示す図である。
【図２】キー・モデルの生成に関する例示的方法の流れ図である。
【図３】キー・モデルの生成に関するもう一つの例示的方法の流れ図である。
【図４】例示的なAPIドキュメンテーションのスクリーンショットである。
【図５】定義されたフォーマットにおいてAPI仕様を生成することに関する例示的方法の流れ図である。
【図６】抽出されたテーブルのキー項目をAPIテーブルのキー項目に関連付けることに関する例示的方法の流れ図である。
【図７】本稿で論じられる方法の任意の一つまたは複数を機械に実行させるための一組の命令が実行されうる、コンピューティング装置という例示的な形の機械の図的な表現である。  みな、本稿に記載される少なくとも一つの実施形態に基づいて構成される。
【発明を実施するための形態】
【０００８】
アプリケーション・プログラミング・インターフェース（API）のいくつかの型がある。たとえばウェブAPIはその関数およびデータを、インターネットまたはイントラネットにおけるウェブ・サービスを通じて公開してもよい。装置APIは、装置ハードウェア・モジュール機能を他の装置および／またはソフトウェアに公開してもよい。アプリケーションAPIは、オペレーティング・システムなどを通じて、ソフトウェア・アプリケーションの関数またはデータベースへのアクセスを提供してもよい。典型的には、APIは、APIからまたはAPIを通じて提供されるサービス、関数またはデータに基づいて新たなシステムを実装するときに、開発者にとって有用でありうる。通常のAPIはしばしば、サービスを提供する「ブラックボックス」として機能する一方、開発者は典型的には、ブラックボックスの内部を見て実装の詳細を識別することはできない。いくつかのAPIはシステムの複雑さを抽象化することがあり、いくつかのAPIはいくつかの詳細を開発者から隠すことがあり、それは実装における柔軟性を低下させることがある。
【０００９】
各APIは典型的には、自分のサービスおよび／またはデータを、異なるデータ属性をもつ異なる型のデータをもつ異なるプロトコルを通じて公開する。この通常のアプローチは、開発者が多様なAPIを用いて作業しているときに、異種性問題を引き起こすことがある。さらに、たいていのAPIは形式的な定義をもたず、大半はHTMLファイルとして記述された、人間が読んでわかる記述である。結果として、ソフトウェア開発者は典型的には、API関数にアクセスしてこれと対話するために、APIドキュメンテーションを読んで学習する。ソフトウェア開発をさらに複雑にすることに、各APIは異なるプログラミング言語を通じてアクセス可能であることがある。
【００１０】
いくつかのAPI公開者は、API仕様に含まれるAPIパラメータを記述するために、標準的なAPIフォーマット（たとえば定義されたAPIフォーマット）を使う。一方、他の公開者は、API仕様に含まれるAPIパラメータを記述するために、標準的なAPIフォーマットを使わない。API仕様のアクセスおよび可読性を簡単にするために、抽出されたテーブルが、APIドキュメンテーションから抽出された情報を含んでいてもよい。抽出されたテーブルは、APIドキュメンテーションの種々の特性、属性またはフィールドを含んでいてもよい。該種々の特性、属性またはフィールドを定義されたフォーマットにマッピングすることは、困難を呈する。API公開者は、前記種々の特性、属性またはフィールドを前記定義されたフォーマットにマッピングするために考慮される種々の項目（たとえばキー項目、値項目またはルート・ペアレント）を理解しないことがあるからである。たとえば、あるフォーマットにおいてAPIパラメータの特定のクラスに関連付けられているキー項目は「parameter  name」〔パラメータ名〕を含んでいることがあり、別のフォーマットにおいてはAPIパラメータの前記特定のクラスに関連付けられているキー項目は「field  name」〔フィールド名〕を含んでいることがある。キー項目におけるこの相違は、さまざまなAPIドキュメンテーションにおける種々の特性、属性またはフィールドの定義されたフォーマットへのマッピングの際に、誤りまたは他の問題を引き起こすことがありうる。
【００１１】
一つまたは複数の機械可読フォーマット（たとえばオープンAPI仕様、JavaScript(登録商標)記法（JSON）など）で書かれた一つまたは複数の機械可読API仕様が、異なる用語法を理解し、種々の特性、属性またはフィールドを定義されたフォーマットにマッピングすることを可能にするキー・モデルをトレーニングするために使用されてもよい。キー・モデルは、ある特性、属性またはフィールドのすべての等価なキー項目；所与の特性、属性またはフィールドのすべての値項目；および所与の特性、属性またはフィールドの構造（たとえばルート・ペアレント）を考えてもよい。これは、多様なフォーマットにおける多様なAPIパラメータについて、さまざまな用語法、さまざまな用語法の構造および他の可能なフィールド名を理解するキー・モデルを許容しうる。
【００１２】
これは、種々のAPIパラメータに関連付けられた対応する値項目に基づいて種々のAPIパラメータのマッピングを許容しうる。たとえば、あるフォーマットにおけるAPIパラメータは、「name  of  parameter」〔パラメータの名称〕を含むキー項目と、「ID」を含む値項目とを含んでいてもよく、別のフォーマットにおけるAPIパラメータは、「parameter」〔パラメータ〕を含むキー項目と、「ID」を含む値項目とを含んでいてもよい。単にキー項目に基づいてマッピングが実行されたとしたら、これらのAPIパラメータはAPIパラメータの同様のクラスにマッピングされないことがありうる。その代わり、マッピングは、値項目が同じまたは実質的に同様であること（たとえば、値項目「ID」が同じまたは実質的に同様であること）に基づいていてもよい。このシナリオでは、キー項目「parameter」および「parameter  name」は、パラメータ名に関連付けられたAPIパラメータのクラスにマッピングされうる。
【００１３】
さらに、これは、種々のAPIパラメータのマッピングを、該種々のAPIパラメータに関連付けられた対応するルート・ペアレントに基づいて許容してもよい。たとえば、キー項目「name」〔名前〕および値項目「ID」を含むAPIパラメータが、キー項目「default」〔デフォルト〕および値項目「Null」〔ヌル〕を含むその後のAPIパラメータに基づくパラメータ名に関連付けられたAPIパラメータのクラスにマッピングされてもよい。APIパラメータおよびその後のAPIパラメータのルート・ペアレント（たとえばファイル・パス）が、定義されたフォーマットのルート・ペアレントと同じまたは実質的に同様だからである。
【００１４】
図１は、本開示に記載される少なくとも一つの実施形態に基づいて構成された、APIパラメータのマッピングに関する例示的環境１００を示している。たとえば、環境１００は、抽出されたテーブル１０２に含まれるAPIパラメータを、該抽出されたテーブルのAPIパラメータに関連付けられたキー項目、値項目および／またはルート・ペアレントに基づいて、定義されたフォーマットにおけるAPIパラメータのクラスにマッピングすることに関係していてもよい。環境１００は、抽出されたテーブル１０２に含まれるAPIパラメータを、定義されたフォーマットにおけるAPIパラメータのクラスに、定義されたAPI仕様１０８に基づいていてもよいキー・モデルを使ってマッピングするよう構成されたAPI仕様モジュール１０４を含んでいてもよい。定義されたフォーマットは、機械可読フォーマットを含んでいてもよい。API仕様モジュール１０４は、API仕様１１２を出力するよう構成されていてもよい。API仕様１１２は、抽出されたテーブル１０２のAPIパラメータが、定義されたフォーマットにおけるAPIパラメータのクラスにマッピングされたものを含んでいてもよい。
【００１５】
API仕様モジュール１０４は、プロセッサ、メモリおよび／または通信機能を含むコンピュータ・ベースのハードウェア装置を含んでいてもよい。API仕様モジュール１０４は、プロセッサ・ベースのコンピューティング装置を含んでいてもよい。たとえば、API仕様モジュール１０４は、ハードウェア・サーバーまたはサーバーとして機能するよう構成された他のプロセッサ・ベースのコンピューティング装置を含んでいてもよい。API仕様モジュール１０４はメモリおよびネットワーク通信機能を含んでいてもよい。API仕様モジュール１０４は、本開示で記載されるように、第一のフォーマットにおけるAPIパラメータを定義されたフォーマットにおけるAPIパラメータのクラスにマッピングすることに関係したさまざまな動作を実行してもよい。
【００１６】
定義されたAPI仕様１０８は、APIテーブル１１０を含んでいてもよい。APIテーブル１１０は、第一のフォーマットでの一つまたは複数のAPIパラメータを含んでいてもよい。たとえば、前記一つまたは複数のAPIパラメータはJSONフォーマット、オープンAPIフォーマットまたはAPIパラメータのための他の任意の受け入れ可能なフォーマットで記憶されてもよい。さらに、定義されたAPI仕様１０８は、機械可読フォーマットを含んでいてもよい。APIテーブル１１０は、第一のフォーマットにおける一つまたは複数のAPIパラメータを含んでいてもよく、該フォーマットでは、各列がAPIパラメータまたは他の任意のテーブル型（たとえば、応答型、データ型、セキュリティ情報、認証などを記述するテーブル）に関連付けられてもよい。いくつかの実施形態では、APIテーブル１１０は一つまたは複数の列を含んでいてもよく、各列は異なるAPIパラメータに対応していてもよい。各APIパラメータ（たとえば各列）は、一つまたは複数のキー項目、値項目および／またはルート・ペアレントを含んでいてもよい。
【００１７】
キー項目は、関連付けられたAPIパラメータを定義してもよい。たとえば、キー項目は「required」〔必須〕を含んでいてもよく、これは、該関連付けられたAPIパラメータを必須APIパラメータとして定義してもよい。キー項目のさらなる例は、「necessary」〔必要〕、「is  required」〔要求される〕および「required」〔必須〕を含んでいてもよいが、それに限られない。値項目は、対応するキー項目にどんな情報が関連付けられうるかを示してもよい。たとえば、必須キー項目についての値項目は、「true」、「yes」および「no」を含んでいてもよい。さらに、ルート・ペアレントは、対応するキー項目およびまたは値項目についてのファイル・パスを示してもよい。たとえば、ルート・ペアレントは「parameter」→「required:true」を含んでいてもよい。
【００１８】
API仕様モジュール１０４は、定義されたAPI仕様１０８および／またはAPIテーブル１１０に基づいてキー・モデル１０６を生成するよう構成されてもよい。API仕様モジュール１０４は、APIテーブル１１０の各列からキー項目を抽出してもよい。さらに、API仕様モジュール１０４はAPIテーブル１１０の各列から値項目を抽出してもよい。さらに、API仕様モジュール１０４は、APIテーブル１１０の各列から各キー項目および／または値項目についてのルート・ペアレントを抽出してもよい。APIテーブルを含む例示的なAPI仕様は、図４との関係でのちにより詳細に論じる。
【００１９】
キー・モデル１０６は、定義されたフォーマットでのキー項目の種々のクラスおよび関連付けられたAPIパラメータを含んでいてもよい。キー・モデル１０６におけるキー項目の各クラスは、APIテーブル１１０からの同様／類似のキー項目の集合を含んでいてもよい。たとえば、キー項目の「required」クラスは、「required  value」〔必須の値〕および「necessary」〔必要〕というキー項目を含んでいてもよい。さらに、キー・モデル１０６は、定義されたAPI仕様１０８に基づく定義されたフォーマットにおけるターゲット・テーブル（たとえばAPIパラメータ）を含んでいてもよい。
【００２０】
キー・モデル１０６は、定義されたフォーマットにおいてAPIテーブル１１０に含まれるキー項目、値項目およびルート・ペアレントを関連付けるために生成されてもよい、明瞭キー・テーブル１０７を含んでいてもよい。定義されたフォーマットは、JSONフォーマット、標準的な機械可読API（SMRAPI:  standard  machine  readable  API）フォーマット、Swaggerフォーマット、Open  API仕様フォーマット、イェット・アナザー・マークアップ・ランゲージ（yet  another  markup  language）／YAMLエイント・マークアップ・ランゲージ（YAML  aint  markup  language）（YAML）フォーマット、拡張可能マークアップ言語（XML）フォーマット、テキスト・フォーマットまたはAPIパラメータのための他の任意の受け入れ可能なフォーマットを含みうる。前記明瞭キー・テーブル１０７の第一列は、APIテーブル１１０における各キー項目を異なる行に含んでいてもよい。前記明瞭キー・テーブル１０７の第二列は、APIテーブル１１０における各値項目を、対応するキー項目と同じ行に含んでいてもよい。たとえば、キー項目が「required」を含んでいてもよく、対応する例示的な値項目が「True」を含んでいてもよい。値項目「true」はキー項目「required」と同じ行にマッピングされてもよい。さらに、前記明瞭キー・テーブル１０７の第三列は、APIテーブル１１０における各ルート・ペアレントを、対応するキー項目および値項目と同じ行に含んでいてもよい。
【００２１】
API仕様モジュール１０４は、前記明瞭キー・テーブル１０７における一つまたは複数のキー項目が同じまたは実質的に同様であるかどうかを判定してもよい。一つまたは複数のキー項目が同じまたは実質的に同様であることに応答して、対応するキー項目、値項目および／またはルート・ペアレントは、前記明瞭キー・テーブル１０７において互いに関連付けられてもよい。
【００２２】
APIテーブル１１０におけるキー項目、値項目および／またはルート・ペアレントであって、定義されたフォーマットにおけるAPIパラメータのクラスの対応するキー項目、値項目および／またはルート・ペアレントをもたないものは、前記明瞭キー・テーブル１０７にマッピングされなくてもよい。前記明瞭キー・テーブル１０７には定義されたフォーマットにマッピングされることのできるAPIパラメータのみを含めるようにするためである。
【００２３】
キー・モデル１０６は、前記明瞭キー・テーブル１０７におけるキー項目、値項目およびルート・ペアレントを、定義されたフォーマットにおけるAPIパラメータの対応するクラスにマッピングするために生成されてもよい。たとえば、前記明瞭キー・テーブル１０７のある行は、その行におけるキー項目、値項目および／またはルート・ペアレントが、定義されたフォーマットにおけるAPIパラメータの第一のクラスのキー項目、値項目および／またはルート・ペアレントに対応する場合、APIパラメータの該第一のクラスにマッピングされてもよい。行内のキー項目、値項目およびルート・ペアレントは、定義されたフォーマットにおけるAPIパラメータの第一のクラスにマッピングされてもよく、それにより、前記明瞭キー・テーブル１０７の異なるキー項目、値項目およびルート・ペアレントと、前記定義されたフォーマットにおけるAPIパラメータの前記第一のクラスとが単一のフォーマット（たとえば前記定義されたフォーマット）において関係付けられる。
【００２４】
いくつかの実施形態では、キー・モデル１０６は、前記明瞭キー・テーブル１０７のキー項目、値項目および／またはルート・ペアレントが前記第一のフォーマットにおけるAPIパラメータのあるクラスの対応するキー項目、値項目および／またはルート・ペアレントにマッピングされたものを含んでいてもよい。
【００２５】
APIテーブル１１０のキー項目、値項目およびルート・ペアレントをキー・モデル１０６におけるAPIパラメータの対応するクラスに関連付けることは、API仕様モジュール１０４が、第一のフォーマットおよび／または定義されたフォーマットにおける抽出されたテーブル１０２におけるAPIパラメータを、定義されたフォーマットにおけるAPIパラメータの対応するクラスに、キー・モデル１０６を使ってマッピングすることを許容する。たとえば、APIテーブル１１０はJSONフォーマットにおけるAPIパラメータを含んでいてもよく、JSONフォーマットのAPIテーブル１１０の一つまたは複数のAPIパラメータをオープンAPIフォーマットのAPIパラメータの対応するクラスにマッピングするようキー・モデル１０６が生成されてもよい。抽出されたテーブル１０２がJSONフォーマットおよび／またはオープンAPIフォーマットにおけるAPIパラメータを含んでいる場合には、API仕様モジュール１０４は、いずれかのフォーマットのAPIパラメータを、オープンAPIフォーマットのAPIパラメータにマッピングすることができる。
【００２６】
API仕様モジュール１０４は、抽出されたテーブル１０２を受け取るよう構成されていてもよい。いくつかの実施形態では、抽出されたテーブル１０２の各列は、第一のフォーマットでAPIパラメータを含んでいてもよい。あるいはまた、抽出されたテーブル１０２の各列は、定義されたフォーマットでAPIパラメータを含んでいてもよい。いくつかの実施形態では、抽出されたテーブル１０２の各列は、第一のフォーマットまたは定義されたフォーマットのいずれかでAPIパラメータを含んでいてもよい。抽出されたテーブル１０２は、各APIパラメータに関連付けられたキー項目、値項目および／またはルート・ペアレントをも含んでいてもよい。
【００２７】
API仕様モジュール１０４は、抽出されたテーブル１０２の各列および前記明瞭キー・テーブル１０７の各列におけるキー項目のキー類似性スコアを決定してもよい。同様に、API仕様モジュール１０４は、抽出されたテーブル１０２の各列および前記明瞭キー・テーブル１０７の各列における値項目の値類似性スコアを決定してもよい。さらに、API仕様モジュール１０４は、抽出されたテーブル１０２の各列および前記明瞭キー・テーブル１０７の各列におけるルート・ペアレントの構造類似性スコアを決定してもよい。たとえば、抽出されたテーブル１０２は二つの列を含んでいてもよく、前記明瞭キー・テーブル１０７は二つの列を含んでいてもよい。キー類似性スコア、値類似性スコアおよび構造類似性スコアが、抽出されたテーブル１０２の第一列および前記明瞭キー・テーブル１０７の第一列、抽出されたテーブル１０２の第一列および前記明瞭キー・テーブル１０７の第二列、抽出されたテーブル１０２の第二列および前記明瞭キー・テーブル１０７の第一列ならびに抽出されたテーブル１０２の第二列および前記明瞭キー・テーブル１０７の第二列について決定されてもよい。
【００２８】
API仕様モジュール１０４は、キー類似性スコア、値類似性スコアおよび構造類似性スコアに基づいて、抽出されたテーブル１０２における各列および前記明瞭キー・テーブル１０７の各列について列類似性スコアを決定してもよい。いくつかの実施形態では、列類似性スコアは、式(1)を使って決定されてもよい。
【００２９】
【数１】
2019133622.tif 000003
式(1)において、iは1からキー項目の総数までの範囲内の値であり、jは1から値項目の総数までの範囲内の値であり、lは1からルート・ペアレントの総数までの範囲内の値であり、Siは抽出されたテーブル１０２の第i列および前記明瞭キー・テーブル１０７の各列についてのルート・ペアレントの構造類似性スコアであり、Viは抽出されたテーブル１０２の各列および前記明瞭キー・テーブル１０７の各列についてのi番目の値項目の値類似性スコアであり、Kiは抽出されたテーブルの各列および前記明瞭キー・テーブル１０７の各列についてのi番目のキー項目のキー類似性スコアである。列類似性スコアについての値は、0から1の範囲内であってもよく、0の列類似性スコアは低い類似性を表わしてもよく、1の列類似性スコアは高い類似性を表わしてもよい。いくつかの実施形態では、列類似性スコアについての値は、0より小さかったり、あるいは1より大きかったりしてもよい。
【００３０】
ある例示的実施形態では、キー項目「name」に関連付けられた前記明瞭キー・テーブル１０７における列と、キー項目「field」に関連付けられた抽出されたテーブル１０２における列についての列類似性スコアは同じまたは実質的に同様であってもよく、二つの列は、定義されたフォーマットにおけるAPIパラメータの同じクラスにマッピングされてもよい。たとえば、前記明瞭キー・テーブル１０７の内容（たとえば「P2」の値をもつ「Name」、「123」の値をもつ「Default  Value」および「True」の値をもつ「Required  Field」）が、抽出されたテーブル１０２の内容に対して高い類似性（たとえば90%）をもつ場合、前記明瞭キー・テーブル１０７の内容は抽出されたテーブル１０２の対応するパラメータに関連付けられてもよい。キー項目マッチ（たとえばプラス1）、値項目マッチ（たとえばプラス1）およびルート・ペアレント・マッチ（たとえばプラス1）がある場合、3という値が計算されてもよい。
【００３１】
API仕様モジュール１０４は、抽出されたテーブル１０２の各列および前記明瞭キー・テーブル１０７の各列についての列類似性スコアが類似性範囲内にあるかどうかを判定してもよい。抽出されたテーブル１０２のある列および前記明瞭キー・テーブル１０７のある列についての列類似性スコアが類似性範囲内にあれば、API仕様モジュール１０４は、抽出されたテーブルのその列を、定義されたフォーマットにおける、前記明瞭キー・テーブル１０７の対応する列に関連付けられたAPIパラメータのクラスと関連付けてもよい。
【００３２】
追加的または代替的に、抽出されたテーブル１０２のさまざまな列を、定義されたフォーマットにおけるAPIパラメータのクラスにマッピングすることは、キー類似性スコア、値類似性スコアおよび／または構造類似性スコアの重み付けされたスコアに基づいていてもよい。
【００３３】
API仕様モジュール１０４は、定義されたフォーマットでAPI仕様１１２を出力するよう構成されていてもよい。API仕様１１２は、APIテーブル１１０のキー項目、値項目およびルート・ペアレントが定義されたフォーマットにおけるAPIパラメータのさまざまなクラスにマッピングされたものを含んでいてもよい。
【００３４】
一つまたは複数のフォーマットにおけるAPIパラメータを定義されたフォーマットにおけるAPIパラメータのクラスにマッピングすることは、さまざまなAPI仕様をレビューするために必要とされる時間の長さを短縮しうる。同様に、APIパラメータを機械可読な定義されたフォーマットにマッピングすることは、機械が単一のフォーマットでのAPI仕様１０８を読むことを許容することによって、種々のAPIパラメータを見出すためのプロセスを単純化しうる。
【００３５】
図２、図３、図５および図６は、例示的方法の流れ図を示している。これらの方法は、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータ・システムまたは専用機において実行されるようなもの）または両者の組み合わせを含んでいてもよい処理論理によって実行されてもよい。該処理論理は図１のAPI仕様モジュール１０４または別のコンピュータ・システムまたは装置に含まれてもよい。しかしながら、これらの方法を実行するために、別のシステムまたはシステムの組み合わせが使われてもよい。説明の簡単のため、本稿に記載される方法は、一連の工程として描かれ、記述される。しかしながら、本開示に基づく工程は、さまざまな順序でおよび／または同時並行して、あるいは本稿では呈示および記載されない他の工程とともに行なわれてもよい。さらに、図示したすべての工程が開示される主題に基づく方法を実装するために必要とされるとは限らない。さらに、当業者は、これらの方法は代替的に、状態図またはイベントを介して一連の相互に関係した状態として表現されうることを理解するであろう。さらに、本明細書で開示される方法は、そのような方法をコンピューティング装置に輸送し、転送することを容易にするために、非一時的なコンピュータ可読媒体のような製造物に記憶されることができる。本稿で使われるところの製造物という用語は、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータ・プログラムを包含することが意図されている。離散的なブロックとして示されているが、所望される実装に依存して、さまざまなブロックは追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。
【００３６】
図２は、本稿に記載される少なくとも一つの実施形態に基づく、キー・モデルの生成に関する例示的方法２００の流れ図を示している。方法２００は、ブロック２０２で始まってもよく、ここで、処理論理は、APIテーブルを含む定義されたAPI仕様を受け取ってもよい。たとえば、処理論理は、図１のAPIテーブル１１０を含む定義されたAPI仕様を受け取ってもよい。定義されたAPI仕様および／またはAPIテーブルは、第一のフォーマットでの一つまたは複数のAPIパラメータを含んでいてもよい。
【００３７】
ブロック２０４では、処理論理は、APIテーブルから各列を抽出してもよい。APIテーブルの各列は、第一のフォーマットにおいてAPIパラメータに関連付けられたキー項目、値項目および／またはルート・ペアレントを含んでいてもよい。
【００３８】
ブロック２０６では、処理論理は、キー項目のリストを生成してもよい。たとえば、リストは、APIテーブルにおけるAPIパラメータについて、それぞれの関連付けられたキー項目を含んでいてもよい。ブロック２０８では、処理論理は、値項目のリストを生成してもよい。値項目のリストは、APIテーブルにおけるAPIパラメータについて、それぞれの関連付けられた値項目を含んでいてもよい。ブロック２１０では、処理論理は、ルート・ペアレントのリストを生成してもよい。ルート・ペアレントのリストは、APIテーブルにおける各キー項目および／または値項目について、ファイル・パスを含んでいてもよい。
【００３９】
ブロック２１２では、処理論理は、APIテーブルにおいて同様のキー項目を関連付けてもよい。たとえば、キー項目「required」およびキー項目「needed」は、それらが同様の機能に関係しているまたは同様の機能を含んでいることを示すよう、関連付けられてもよい。
【００４０】
ブロック２１４では、処理論理は、明瞭キー・テーブルを生成してもよい。たとえば、処理論理は、図１の明瞭キー・テーブルを生成してもよい。明瞭キー・テーブルは、APIテーブルにおける一つまたは複数のキー項目、値項目および／またはルート・ペアレントを含んでいてもよい。さらに、各キー項目および対応する値項目およびルート・ペアレントは、明瞭キー・テーブルに関連付けられてもよい。たとえば、明瞭キー・テーブルの、第一のキー項目に関連付けられている行は、すべての関連付けられたキー項目を第一列において含み、第一のキー項目に関連付けられたすべての対応する値項目を第二列において含み、第一のキー項目および該第一のキー項目に関連付けられた値項目に関連付けられたすべての対応するルート・ペアレントを第三列において含んでいてもよい。
【００４１】
ブロック２１６では、処理論理は、キー・モデルを生成してもよい。たとえば、処理論理は、図１のキー・モデル１０６を生成してもよい。キー・モデルは、キー項目、値項目、ルート・ペアレントおよび／またはAPIテーブルのAPIパラメータの一つまたは複数が、定義されたフォーマットにおけるAPIパラメータのクラスにマッピングされたものを含んでいてもよい。定義されたフォーマットは、APIパラメータのためのいかなる受け入れ可能な機械可読フォーマットを含んでいてもよい。
【００４２】
図３は、本稿に記載される少なくとも一つの実施形態に基づく、キー・モデルの生成に関するもう一つの例示的方法３００の流れ図を示している。方法３００は、ブロック３０２で始まってもよく、ここで、処理論理は、抽出されたテーブルを受け取ってもよい。たとえば、処理論理は、図１の抽出されたテーブル１０２を受け取ってもよい。抽出されたテーブルの各列は第一のフォーマットでAPIパラメータを含んでいてもよい。抽出されたテーブルは、第一のフォーマットでのAPIパラメータに関連付けられた一つまたは複数のキー項目、値項目および／またはルート・ペアレントをも含んでいてもよい。
【００４３】
ブロック３０４では、処理論理は、抽出されたテーブルから各列を抽出してもよい。たとえば、抽出されたテーブルからそれぞれのキー項目および対応する値項目および／またはルート・ペアレントが抽出されてもよい。
【００４４】
ブロック３０６では、処理論理は、明瞭キー・テーブルを受領してもよい。たとえば、処理論理は、図１の明瞭キー・テーブル１０７を受け取ってもよい。明瞭キー・テーブルは図２との関係で上記で詳細に論じている。ブロック３０８では、処理論理は、明瞭キー・テーブルから各列を抽出してもよい。明瞭キー・テーブルの各列は、定義されたフォーマットにおけるAPIパラメータを含んでいてもよい。同様に、明瞭キー・テーブルは、該明瞭キー・テーブルにおける各APIパラメータに関連付けられた一つまたは複数のキー項目、値項目および／またはルート・ペアレントを含んでいてもよい。
【００４５】
ブロック３１０では、処理論理は、抽出されたテーブルおよび明瞭キー・テーブルの各列に含まれるキー項目のキー類似性スコアを決定してもよい。キー類似性スコアは、抽出されたテーブルの列および明瞭キー・テーブルの列におけるキー項目が類似しているか否かを示してもよい。たとえば、キー類似性スコアは、「field」、「property」および「parameter」のようなキー項目が類似した属性のキー項目であることを示してもよい。さらに、処理論理は、抽出されたテーブルの各列を明瞭キー・テーブルの各列と比較して、抽出されたテーブルおよび明瞭キー・テーブルの列のすべての組み合わせについてキー類似性スコアが決定されるようにしてもよい。
【００４６】
ブロック３１２では、処理論理は、抽出されたテーブルおよび明瞭キー・テーブルの各列に含まれる値項目の値類似性スコアを決定してもよい。値類似性スコアは、抽出されたテーブルの列および明瞭キー・テーブルの列における値項目が類似しているか否かを示してもよい。追加的または代替的に、値類似性スコアは、値項目および対応するキー項目が同じまたは実質的に同様であるかどうかを示してもよい。
【００４７】
ブロック３１４では、処理論理は、抽出されたテーブルおよび明瞭キー・テーブルの各列に含まれるルート・ペアレントの構造類似性スコアを決定してもよい。構造類似性スコアは、抽出されたテーブルの列および明瞭キー・テーブルの列における二つ以上のキー項目および／または値項目が類似したファイル・パスを含むかどうかを示してもよい。類似したファイル・パスは、二つの異なるキー項目および／または値項目が、たとえ対応するキー類似性スコアおよび／または値類似性スコアがそう示さなくても、互いに関連付けられてもよいことを示しうる。
【００４８】
ブロック３１６では、処理論理は、明瞭キー・テーブルの各キー項目についてのキー類似性スコアを決定してもよい。明瞭キー・テーブルの各キー項目についてのキー類似性スコアは、類似性範囲を決定するために使われてもよい。たとえば、明瞭キー・テーブルがDefault  Value〔デフォルト値〕というキー項目をもつ列タイトルおよびDefault  Value  of  Parameter〔パラメータのデフォルト値〕というキー項目をもつ別の列タイトルを含む場合、キー項目における三つのキーワードのうちの一つがマッチしているので、0.33のキー類似性スコアが決定されてもよい。
【００４９】
ブロック３１８では、処理論理は、明瞭キー・テーブルの列に比べた、抽出されたテーブルの列についての列類似性スコアを決定してもよい。たとえば、列類似性スコアは、明瞭キー・テーブルの第一列に比べた、抽出されたテーブルの第一列について決定されてもよい。列類似性スコアは、上記でより詳細に論じた式(1)を使って決定されてもよい。列類似性スコアは、抽出されたテーブルの列および明瞭キー・テーブルの列についての、キー類似性スコア、値類似性スコアおよび構造類似性スコアに基づいて決定されてもよい。
【００５０】
ブロック３２０では、処理論理は、列類似性スコアが類似性範囲内であるかどうかを判定してもよい。列類似性範囲は、明瞭キー・テーブルの各キー項目についてのキー類似性スコアからある閾値を引いたものよりも大きく、明瞭キー・テーブルの各キー項目についてのキー類似性スコアに前記閾値を加えたものよりも小さい、値範囲内であってもよい。たとえば、閾値は、0.70より大きくてもよい。いくつかの実施形態では、閾値は、0.70以下であってもよい。閾値より大きな列類似性スコアは、類似したテーブル（たとえばパラメータ・テーブル）を示しうる。
【００５１】
列類似性スコアが類似性範囲内である場合、処理論理はブロック３２２において、抽出されたテーブルの列を、定義されたフォーマットにおけるAPIパラメータのクラスと関連付けてもよい。APIパラメータのクラスは、明瞭キー・テーブルの対応する列内のキー項目に関連付けられていてもよい。列類似性スコアが類似性範囲内でない場合、処理論理はブロック３２４において、明瞭キー・テーブルの各列に比べて、抽出されたテーブルの各列について、列類似性スコアが決定されたかどうかを判定してもよい。
【００５２】
明瞭キー・テーブルの各列に比べて、抽出されたテーブルの各列について、列類似性スコアがまだ決定されていない場合、処理論理は、明瞭キー・テーブルの各列に比べて、抽出されたテーブルの各列について、列類似性スコアが決定されるまで、ブロック３１８、３２０、３２２および／または３２４のプロセスを繰り返してもよい。明瞭キー・テーブルの各列に比べて、抽出されたテーブルの各列について、列類似性スコアが決定され終わった場合には、処理論理は、ブロック３２６において、キー・モデルを生成してもよい。たとえば、処理論理は、図１のキー・モデル１０６を生成してもよい。キー・モデルは、抽出されたテーブルの各キー項目、値項目、ルート・ペアレントおよび／またはAPIテーブルを、定義されたフォーマットにおけるAPIパラメータの一つまたは複数のクラスの一部として含んでいてもよい。
【００５３】
図４は、本稿に記載される少なくとも一つの実施形態に基づく、例示的なAPIドキュメンテーション４００のスクリーンショットを示している。APIドキュメンテーション４００は、APIテーブル４１６およびファイル・パス４１４（ここでは「ルート・ペアレント４１４」）を含んでいてもよい。
【００５４】
APIテーブル４１６は、関連付けられたAPIパラメータについてのキー項目および値項目を含む五つの列を含んでいてもよい。図４に示した例では、[0]における五つの列はrequired、type、description、nameおよびinというキー項目を含んでいる。図４では、APIテーブル４１６における例示的なキー項目を示すために、キー項目requiredが４１８と記されている。キー項目の例は、「default  value  ex.」「Value」「required?」「Example」「name」「examples」「field」「group」「location」「put」「post」「get」「uri」「delete」および「url」を含んでいてもよいが、これに限られるものではない。同様に、[0]における五つの列はTrue、string、The  user's  Spotify  user  ID、user_idおよびpathという値項目を含んでいる。図４では、APIテーブル４１６における例示的な値項目を示すために、値項目Trueが４２０として記されている。さらに、APIテーブル４１６、前記キー項目および前記値項目についてのルート・ペアレント４１４は、paths→users→get→parametersを含んでいてもよい。
【００５５】
APIテーブル４１６の各列は抽出されてもよく、各キー項目および値項目が収集されてもよい。さらに、APIテーブル４１６における各キー項目の頻度が決定されてもよい。例示的な明瞭キー・テーブルは下記を含んでいてもよい。
[(u'description',  9490),  (u'type',  4409),  (u'parameter',  4021),  (u'name',  1997),  (u'value',  1861),  (u'method',  1413),  (u'required',  1212),  (u'resource',  1201),  (u'url',  684),  (u'notes',  516),  (u'default',  485),  (u'endpoint',  455),  (u'parameter  name',  408),  (u'api',  387),  (u'http  method',  343),  (u'key',  308),  (u'path',  282),  (u'attribute',  266),  (u'',  248),  (u'example',  240),  (u'field',  238),  (u'required?',  237),  (u'uri',  217),  (u'default  value  ex.',  207),  (u'function',  205),  (u'auto-generated-0',  195),  (u'location',  187),  (u'verb',  177),  (u'operation',  173),  (u'required  parameter',  173),  (u'code',  161),  (u'api  method',  156),  (u'action',  143),  (u'parameters',  131),  (u'options',  127),  (u'arguments',  122),  (u'param',  121),  (u'http  verb',  117),  (u'default  value',  116),  (u'returns',  110),  (u'method  /  url',  107),  (u'http',  106),  (u'data  type',  99),  (u'result',  99),  (u'get',  97),  (u'property',  93),  (u'use',  93),  (u'methods',  84),  (u'presence',  83),  (u'call  type',  83),  (u'sdk  method',  83),  (u'request/params',  82),  (u'optional',  80),  (u'response',  79),  (u'status',  78),  (u'field  name',  77),  (u'functionality',  76),  (u'cached',  76),  (u'auth',  76),  (u'link',  74),  (u'uri  schema',  73),  (u'reason',  70),  (u'usage',  69),  (u'authentication',  68),  (u'request',  66),  (u'overview',  64),  (u'required/optional',  63),  (u'required  parameters',  61),  (u'documentation',  61),  (u'how  to  use',  58),  (u'model',  57),  (u'string',  56),  (u'authorization',  55),  (u'request  body  (xml)',  50),  (u'validation',  47),  (u'value  to  be  specified',  46)]
。
【００５６】
図５は、本稿に記載される少なくとも一つの実施形態に基づく、定義されたフォーマットでのAPI仕様の生成に関係した例示的方法５００の流れ図を示している。方法５００はブロック５０２で始まってもよく、ここで、処理論理は定義されたAPI仕様を受け取ってもよい。定義されたAPI仕様はAPIテーブルを含んでいてもよい。たとえば、処理論理は、図１のAPIテーブル１１０を含む定義されたAPI仕様１０８を受け取ってもよい。定義されたAPI仕様および／またはAPIテーブルは、第一のフォーマットで一つまたは複数のAPIパラメータを含んでいてもよい。同様に、APIテーブルの各列はAPIパラメータに関連付けられていてもよい。
【００５７】
ブロック５０４では、処理論理はキー・モデルを生成してもよい。たとえば、処理論理は図１のキー・モデル１０６を生成してもよい。キー・モデルは、APIテーブルおよび／または定義されたAPI仕様のキー項目、値項目、ルート・ペアレントおよび／またはAPIパラメータの一つまたは複数が、定義されたフォーマットにおけるAPIパラメータのクラスにマッピングされたものを含んでいてもよい。定義されたフォーマットは、APIパラメータのためのいかなる受け入れ可能な機械可読フォーマットを含んでいてもよい。さらに、キー・モデルは、APIテーブルの一つまたは複数のAPIパラメータが定義されたフォーマットにおけるAPIパラメータの対応するクラスにマッピングされたものを含んでいてもよい。
【００５８】
ブロック５０６では、処理論理は、抽出されたテーブルを受け取ってもよい。たとえば、処理論理は図１の抽出されたテーブル１０２を受け取ってもよい。抽出されたテーブルの各列は、第一のフォーマットでのAPIパラメータを含んでいてもよい。抽出されたテーブルは、第一のフォーマットでのAPIパラメータに関連付けられたキー項目、値項目および／またはルート・ペアレントをも含んでいてもよい。抽出されたテーブルの各列は、第一のフォーマットでのAPIパラメータと関連付けられてもよい。さらに、抽出されたテーブルの各列は、第一のフォーマットでのターゲットAPIテーブル（たとえばAPIパラメータ）に関連付けられてもよい。
【００５９】
ブロック５０８では、処理論理は、抽出されたテーブルの各列を、定義されたフォーマットにおけるAPIパラメータのクラスと関連付けてもよい。抽出されたテーブルの各列は、キー・モデルに基づいて、APIパラメータのクラスと関連付けてもよい。さらに、処理論理は、抽出されたテーブルの各列を、定義されたフォーマットにおけるAPIパラメータにおけるターゲットAPIテーブル（たとえばAPIパラメータ）と関連付けてもよい。ブロック５１０では、処理論理は、定義されたフォーマットにおける抽出されたテーブルのAPIパラメータを含むAPI仕様を生成してもよい。
【００６０】
図６は、本稿に記載される少なくとも一つの実施形態に基づく、抽出されたテーブルのキー項目をAPIテーブルのキー項目に関連付けることに関係する例示的方法６００の流れ図を示している。方法６００はブロック６０２で始まってもよく、ここで、処理論理はAPIテーブルの各列についてのキー項目を決定してもよい。各キー項目は、APIパラメータを定義してもよい。ブロック６０４では、処理論理は、APIテーブルの各列についての値項目を決定してもよい。各値項目は、APIパラメータについての対応するキー項目に関連付けられてもよい。ブロック６０６では、処理論理は、APIテーブルの各列についての各キー項目および値項目に関連付けられたルート・ペアレントを決定してもよい。
【００６１】
ブロック６０８では、処理論理は、明瞭キー・テーブルを生成してもよい。たとえば、処理論理は、図１の明瞭キー・テーブル１０７を生成してもよい。明瞭キー・テーブルは、APIテーブルにおけるキー項目、値項目および／またはルート・ペアレントの一つまたは複数を含んでいてもよい。さらに、キー項目および対応する値項目およびルート・ペアレントが明瞭キー・テーブルに関連付けられてもよい。明瞭キー・テーブルの第一列は、APIテーブルのキー項目を、異なる行に位置されて含んでいてもよい。明瞭キー・テーブルの第二列は、値項目を対応するキー項目と同じ行内に含んでいてもよい。同様に、明瞭キー・テーブルの第三列は、ルート・ペアレントを、対応するキー項目および値項目と同じ行に含んでいてもよい。
【００６２】
ブロック６１０では、処理論理は、少なくとも一つまたは複数のキー項目が同じまたは実質的に同様であるかどうかを判定してもよい。一つまたは複数のキー項目が同じまたは実質的に同様であれば、処理論理はブロック６１２において、同じまたは実質的に同様であるキー項目と、対応する値項目およびルート・ペアレントとを、明瞭キー・テーブルにおける対応するAPIパラメータに関連付けられた列にマッピングしてもよい。さらに、明瞭キー・テーブルに基づいて、キー・モデルが生成されてもよい。
【００６３】
図７は、本稿で論じられる方法の任意の一つまたは複数を機械に実行させるための一組の命令が実行されうるコンピューティング装置７００の例示的な形での機械の図的な表現を示している。コンピューティング装置７００は、携帯電話、スマートフォン、ネットブック・コンピュータ、ラックマウント・サーバー、ルーター・コンピュータ、サーバー・コンピュータ、パーソナル・コンピュータ、メインフレーム・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、デスクトップ・コンピュータなどを含んでいてもよく、その中で、本稿で論じられる方法の任意の一つまたは複数を機械に実行させるための一組の命令が実行されうる。代替的な実施形態では、機械はLAN、イントラネット、エクストラネットまたはインターネット内の他の機械に接続（たとえばネットワーク接続）されていてもよい。機械は、クライアント・サーバー・ネットワーク環境におけるサーバー機械の役割で動作してもよい。機械は、パーソナル・コンピュータ（PC）、セットトップボックス（STB）、サーバー、ネットワーク・ルーター、スイッチまたはブリッジまたは、その機械によって行なわれるべきアクションを指定する一組の命令（逐次的またはその他）を実行することのできるいかなる機械であってもよい。さらに、一つの機械が図示されているだけだが、用語「機械」は、本稿で論じられる方法の任意の一つまたは複数を実行するために、個々にまたは合同して一組の（または複数組の）命令を実行する機械の任意の集合をも含みうる。
【００６４】
例示的なコンピューティング装置７００は、処理装置（たとえばプロセッサ）７０２、メイン・メモリ７０４（たとえば読み出し専用メモリ（ROM）、フラッシュメモリ、動的ランダム・アクセス・メモリ（DRAM）、たとえば同期DRAM（SDRAM））、静的メモリ７０６（たとえばフラッシュメモリ、静的ランダム・アクセス・メモリ（SRAM））およびデータ記憶装置７１６を含み、これらはバス７０８を介して互いと通信する。
【００６５】
処理装置７０２は、マイクロプロセッサ、中央処理ユニットなどといった一つまたは複数の汎用処理装置を表わす。より具体的には、処理装置７０２は、複雑命令セット・コンピューティング（CISC）マイクロプロセッサ、縮小命令セット・コンピューティング（RISC）マイクロプロセッサ、超長命令語（VLIW:  very  long  instruction  word）マイクロプロセッサまたは他の命令セットを実装するプロセッサまたは諸命令セットの組み合わせを実装する諸プロセッサを含んでいてもよい。処理装置７０２は、特定用途向け集積回路（ASIC）、フィールドプログラマブルゲートアレイ（FPGA）、デジタル信号プロセッサ（DSP）、ネットワーク・プロセッサなどといった一つまたは複数の特殊目的処理装置をも含んでいてもよい。処理装置７０２は、本稿で論じられた動作および段階を実行するための命令７２６を実行するよう構成されてもよい。
【００６６】
コンピューティング装置７００はさらに、ネットワーク７１８と通信しうるネットワーク・インターフェース装置７２２を含んでいてもよい。コンピューティング装置７００は、ディスプレイ装置７１０（たとえば液晶ディスプレイ（LCD）または陰極線管（CRT））、英数字入力装置７１２（たとえばキーボード）、カーソル制御装置７１４（たとえばマウス）および信号生成装置７２０（たとえばスピーカー）をも含んでいてもよい。ある実装では、ディスプレイ装置７１０、英数字入力装置７１２およびカーソル制御装置７１４は単一のコンポーネントまたは装置（たとえばLCDタッチスクリーン）に組み合わされてもよい。
【００６７】
データ記憶装置７１６は、本稿に記載される方法または機能の任意の一つまたは複数を具現する一組または複数組の命令７２６（たとえば図１のAPI仕様モジュール１０４）が記憶されているコンピュータ可読記憶媒体７２４を含んでいてもよい。命令７２６は、コンピューティング装置７００によるその実行の間、完全にまたは少なくとも部分的に、メイン・メモリ７０４内および／または処理装置７０２内に存在し、メイン・メモリ７０４および処理装置７０２もコンピュータ可読媒体をなしてもよい。命令はさらに、ネットワーク・インターフェース装置７２２を介してネットワーク７１８を通じて送受信されてもよい。
【００６８】
コンピュータ可読記憶媒体７２４はある例示的実施形態では単一の媒体であると示されているが、「コンピュータ可読記憶媒体」という用語は、前記一組または複数組の命令を記憶する単一の媒体または複数の媒体（たとえば、中央集中式または分散式のデータベースおよび／または付随するキャッシュおよびサーバー）を含んでいてもよい。「コンピュータ可読記憶媒体」という用語はまた、本開示の方法の任意の一つまたは複数を機械に実行させる、機械による実行のための一組の命令を、記憶する、エンコードするまたは担持することができる任意の媒体をも含んでいてもよい。よって、「コンピュータ可読記憶媒体」という用語は、半導体メモリ、光メディアおよび磁気メディアを含むがそれに限られないと解釈されうる。
【００６９】
本稿に記載される実施形態は、コンピュータ実行可能命令を担持するまたは記憶するためのコンピュータ可読媒体を使って実装されてもよい。そのようなコンピュータ可読媒体は、汎用または特殊目的コンピュータによってアクセスされうるいかなる利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、非一時的なコンピュータ可読記憶媒体を含んでいてもよく、それは、ランダム・アクセス・メモリ（RAM）、読み出し専用メモリ（ROM）、電気的に消去可能なプログラム可能な読み出し専用メモリ（EEPROM）、コンパクトディスク読み出し専用メモリ（CD-ROM）または他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、フラッシュメモリ・デバイス（たとえば半導体メモリ・デバイス）またはコンピュータ実行可能命令またはデータ構造の形で所望されるプログラム・コードを担持または記憶するために使用されうる、汎用または専用コンピュータによってアクセスされうる他の任意の記憶媒体を含んでいてもよい。上記の組み合わせも、コンピュータ可読媒体の範囲内に含められてもよい。
【００７０】
コンピュータ実行可能命令はたとえば、汎用コンピュータ、専用コンピュータまたは専用処理装置（たとえば一つまたは複数のプロセッサ）に、ある機能または機能群を実行させる命令およびデータを含んでいてもよい。主題は構造的な特徴および／または方法論的な工程に固有の言辞で記述されてきたが、付属の請求項において定義される主題は必ずしも上記の個別的な特徴または工程に限定されないことは理解される。むしろ、上記の個別的な特徴および工程は、請求項を実装する例示的な形として開示されている。
【００７１】
本稿での用法では、用語「モジュール」または「コンポーネント」は、コンピューティング・システムの汎用ハードウェア（たとえばコンピュータ可読媒体、処理装置など）に記憶および／または実行されうるモジュールまたはコンポーネントおよび／またはソフトウェア・オブジェクトまたはソフトウェア・ルーチンの動作を実行するよう構成された個別的なハードウェア実装を指すことがありうる。いくつかの実施形態では、本稿に記載される種々のコンポーネント、モジュール、エンジンおよびサービスは、（たとえば別個のスレッドとして）コンピューティング・システム上で実行されるオブジェクトまたはプロセスとして実装されてもよい。本稿に記載されるシステムおよび方法のいくつかは一般に（汎用ハードウェアに記憶されるおよび／または実行される）ソフトウェアで実装されるものとして記述されるが、個別的なハードウェア実装またはソフトウェアおよび個別的ハードウェア実装の組み合わせも可能であり、考えられている。本稿において、「コンピューティング・エンティティ」は、本稿で先に定義した任意のコンピューティング・システムまたはコンピューティング・システム上で走る任意のモジュールまたはモジュレットの組み合わせであってよい。
【００７２】
本稿に記載されるすべての例および条件付きの言辞は、本発明および発明者によって当技術分野の発展のために寄与される概念の理解において読者を助ける教育目的を意図されており、そのような特定的に挙げられる例および条件に限定することなく解釈されるものとする。本発明の実施形態について詳細に述べてきたが、本発明の精神および範囲から外れることなく、これにさまざまな変化、代替および変更をなすことができることは理解しておくべきである。
【００７３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
通信インターフェースと；
前記通信インターフェースに動作上結合されたプロセッサとを有するシステムであって、前記プロセッサは：
前記通信インターフェースを介して、定義されたアプリケーション・プログラミング・インターフェース（API）仕様（specification）を受け取る段階であって、前記定義されたAPI仕様は、第一のフォーマットでのAPIテーブルを含み、前記APIテーブルの各列はAPIパラメータに関連付けられている、段階と；
前記定義されたAPI仕様に基づいてキー・モデルを生成する段階であって、前記キー・モデルは、前記APIテーブルの一つまたは複数のAPIパラメータが、定義されたフォーマットでのAPIパラメータの対応するクラスにマッピングされたものを含む、段階と；
前記通信インターフェースを介して、抽出されたテーブルを受け取る段階であって、前記抽出されたテーブルの各列は、前記第一のフォーマットでのAPIパラメータに関連付けられている、段階と；
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける段階と；
前記定義されたフォーマットで前記抽出されたテーブルの前記APIパラメータを含むAPI仕様を生成する段階とを含む動作を実行するよう構成されている、
システム。
（付記２）
前記定義されたAPI仕様に基づいてキー・モデルを生成する動作が：
前記APIテーブルの各列についてキー項目を定義する段階であって、各キー項目はAPIパラメータを定義する、段階と；
前記APIテーブルの各列について値項目を決定する段階と；
前記APIテーブルの各列についての各キー項目および値項目に関連付けられたルート・ペアレントを決定する段階と；
明瞭キー・テーブル（distinct  key  table）を生成する段階であって、前記明瞭キー・テーブルの第一列は、異なる行に位置する前記APIテーブルのキー項目を含み、第二列は対応するキー項目と同じ行に値項目を含み、第三列は対応するキー項目および値項目と同じ行にルート・ペアレントを含む、段階と；
少なくとも一つまたは複数のキー項目が同じまたは実質的に同様であるかどうかを判定する段階と；
一つまたは複数のキー項目が同じまたは実質的に同様であると判定することに応答して、同じまたは実質的に同様であるキー項目と、対応する値項目およびルート・ペアレントとを、前記明瞭キー・テーブルにおいて対応するAPIパラメータに関連付けられた列にマッピングする段階であって、前記キー・モデルは前記明瞭キー・テーブルに基づいて生成される、段階とを含む、
付記１記載のシステム。
（付記３）
各ルート・ペアレントが、各キー項目および値項目にアクセスするためのファイル・パスの構造を含む、付記２記載のシステム。
（付記４）
前記プロセッサがさらに：
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるキー項目のキー類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれる値項目の値類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるルート・ペアレントの構造類似性スコアを決定する段階とを実行するようさらに構成されている、
付記２記載のシステム。
（付記５）
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作が、前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアを
【００７４】
【数２】
2019133622.tif 000004
に従って決定することを含み、iは1からキー項目の総数までの範囲内の値であり、jは1から値項目の総数までの範囲内の値であり、lは1からルート・ペアレントの総数までの範囲内の値であり、Siは前記抽出されたテーブルの第i列および前記明瞭キー・テーブルの各列についてのルート・ペアレントの構造類似性スコアであり、Viは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目の値項目の値類似性スコアであり、Kiは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目のキー項目のキー類似性スコアである、
付記４記載のシステム。
（付記６）
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作がさらに、
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアが類似性範囲内であるかどうかを判定し；
前記抽出されたテーブルのある列および前記明瞭キー・テーブルのある列についての列類似性スコアが前記類似性範囲内であると判定することに応答して、前記抽出されたテーブルのその列を前記定義されたフォーマットでのAPIパラメータの対応するクラスに関連付けることを含む、
付記５記載のシステム。
（付記７）
前記抽出されたテーブルが、前記第一のフォーマットで前記抽出されたテーブルに含まれるAPIパラメータに関連付けられた、一つまたは複数のキー項目、一つまたは複数の値項目および一つまたは複数のルート・ペアレントのうちの少なくとも一つを含む、付記１記載のシステム。
（付記８）
通信インターフェースを介して、定義されたアプリケーション・プログラミング・インターフェース（API）仕様を受け取る段階であって、前記定義されたAPI仕様は、第一のフォーマットでのAPIテーブルを含み、前記APIテーブルの各列はAPIパラメータに関連付けられている、段階と；
前記定義されたAPI仕様に基づいてキー・モデルを生成する段階であって、前記キー・モデルは、前記APIテーブルの一つまたは複数のAPIパラメータが、定義されたフォーマットでのAPIパラメータの対応するクラスにマッピングされたものを含む、段階と；
前記通信インターフェースを介して、抽出されたテーブルを受け取る段階であって、前記抽出されたテーブルの各列は、前記第一のフォーマットでのAPIパラメータに関連付けられている、段階と；
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける段階と；
前記定義されたフォーマットで前記抽出されたテーブルの前記APIパラメータを含むAPI仕様を生成する段階とを含む
方法。
（付記９）
前記定義されたAPI仕様に基づいてキー・モデルを生成する動作が：
前記APIテーブルの各列についてキー項目を定義する段階であって、各キー項目はAPIパラメータを定義する、段階と；
前記APIテーブルの各列について値項目を決定する段階と；
前記APIテーブルの各列についての各キー項目および値項目に関連付けられたルート・ペアレントを決定する段階と；
明瞭キー・テーブルを生成する段階であって、前記明瞭キー・テーブルの第一列は、異なる行に位置する前記APIテーブルのキー項目を含み、第二列は対応するキー項目と同じ行に値項目を含み、第三列は対応するキー項目および値項目と同じ行にルート・ペアレントを含む、段階と；
少なくとも一つまたは複数のキー項目が同じまたは実質的に同様であるかどうかを判定する段階と；
一つまたは複数のキー項目が同じまたは実質的に同様であると判定することに応答して、同じまたは実質的に同様であるキー項目と、対応する値項目およびルート・ペアレントとを、前記明瞭キー・テーブルにおいて対応するAPIパラメータに関連付けられた列にマッピングする段階であって、前記キー・モデルは前記明瞭キー・テーブルに基づいて生成される、段階とを含む、
付記８記載のシステム。
（付記１０）
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるキー項目のキー類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれる値項目の値類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるルート・ペアレントの構造類似性スコアを決定する段階とをさらに含む、
付記９記載の方法。
（付記１１）
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作が、前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアを
【００７５】
【数３】
2019133622.tif 000005
に従って決定することを含み、iは1からキー項目の総数までの範囲内の値であり、jは1から値項目の総数までの範囲内の値であり、lは1からルート・ペアレントの総数までの範囲内の値であり、Siは前記抽出されたテーブルの第i列および前記明瞭キー・テーブルの各列についてのルート・ペアレントの構造類似性スコアであり、Viは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目の値項目の値類似性スコアであり、Kiは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目のキー項目のキー類似性スコアである、
付記１０記載の方法。
（付記１２）
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作がさらに、
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアが類似性範囲内であるかどうかを判定し；
前記抽出されたテーブルのある列および前記明瞭キー・テーブルのある列についての列類似性スコアが前記類似性範囲内であると判定することに応答して、前記抽出されたテーブルのその列を前記定義されたフォーマットでのAPIパラメータの対応するクラスに関連付けることを含む、
付記１１記載の方法。
（付記１３）
前記抽出されたテーブルが、前記第一のフォーマットで前記抽出されたテーブルに含まれるAPIパラメータに関連付けられた、一つまたは複数のキー項目、一つまたは複数の値項目および一つまたは複数のルート・ペアレントのうちの少なくとも一つを含む、付記８記載の方法。
（付記１４）
動作を実行するためにプロセッサによって実行可能なプログラミング・コードがエンコードされている非一時的なコンピュータ可読媒体であって、前記動作は：
通信インターフェースを介して、定義されたアプリケーション・プログラミング・インターフェース（API）仕様を受け取る段階であって、前記定義されたAPI仕様は、第一のフォーマットでのAPIテーブルを含み、前記APIテーブルの各列はAPIパラメータに関連付けられている、段階と；
前記定義されたAPI仕様に基づいてキー・モデルを生成する段階であって、前記キー・モデルは、前記APIテーブルの一つまたは複数のAPIパラメータが、定義されたフォーマットでのAPIパラメータの対応するクラスにマッピングされたものを含む、段階と；
前記通信インターフェースを介して、抽出されたテーブルを受け取る段階であって、前記抽出されたテーブルの各列は、前記第一のフォーマットでのAPIパラメータに関連付けられている、段階と；
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける段階と；
前記定義されたフォーマットで前記抽出されたテーブルの前記APIパラメータを含むAPI仕様を生成する段階とを含む、
非一時的なコンピュータ可読媒体。
（付記１５）
前記定義されたAPI仕様に基づいてキー・モデルを生成する動作が：
前記APIテーブルの各列についてキー項目を定義する段階であって、各キー項目はAPIパラメータを定義する、段階と；
前記APIテーブルの各列について値項目を決定する段階と；
前記APIテーブルの各列についての各キー項目および値項目に関連付けられたルート・ペアレントを決定する段階と；
明瞭キー・テーブルを生成する段階であって、前記明瞭キー・テーブルの第一列は、異なる行に位置する前記APIテーブルのキー項目を含み、第二列は対応するキー項目と同じ行に値項目を含み、第三列は対応するキー項目および値項目と同じ行にルート・ペアレントを含む、段階と；
少なくとも一つまたは複数のキー項目が同じまたは実質的に同様であるかどうかを判定する段階と；
一つまたは複数のキー項目が同じまたは実質的に同様であると判定することに応答して、同じまたは実質的に同様であるキー項目と、対応する値項目およびルート・ペアレントとを、前記明瞭キー・テーブルにおいて対応するAPIパラメータに関連付けられた列にマッピングする段階であって、前記キー・モデルは前記明瞭キー・テーブルに基づいて生成される、段階とを含む、
付記１４記載の非一時的なコンピュータ可読媒体。
（付記１６）
各ルート・ペアレントが、各キー項目および値項目にアクセスするためのファイル・パスの構造を含む、付記１５記載の非一時的なコンピュータ可読媒体。
（付記１７）
前記動作がさらに：
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるキー項目のキー類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれる値項目の値類似性スコアを決定する段階と；
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列に含まれるルート・ペアレントの構造類似性スコアを決定する段階とを含む、
付記１５記載の非一時的なコンピュータ可読媒体。
（付記１８）
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作が、前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアを
【００７６】
【数４】
2019133622.tif 000006
に従って決定することを含み、iは1からキー項目の総数までの範囲内の値であり、jは1から値項目の総数までの範囲内の値であり、lは1からルート・ペアレントの総数までの範囲内の値であり、Siは前記抽出されたテーブルの第i列および前記明瞭キー・テーブルの各列についてのルート・ペアレントの構造類似性スコアであり、Viは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目の値項目の値類似性スコアであり、Kiは前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についてのi番目のキー項目のキー類似性スコアである、
付記１７記載の非一時的なコンピュータ可読媒体。
（付記１９）
前記抽出されたテーブルの各列を、前記キー・モデルに基づいて、前記定義されたフォーマットでのAPIパラメータのクラスに関連付ける動作がさらに、
前記抽出されたテーブルの各列および前記明瞭キー・テーブルの各列についての列類似性スコアが類似性範囲内であるかどうかを判定し；
前記抽出されたテーブルのある列および前記明瞭キー・テーブルのある列についての列類似性スコアが前記類似性範囲内であると判定することに応答して、前記抽出されたテーブルのその列を前記定義されたフォーマットでのAPIパラメータの対応するクラスに関連付けることを含む、
付記１８記載の非一時的なコンピュータ可読媒体。
（付記２０）
前記抽出されたテーブルが、前記第一のフォーマットで前記抽出されたテーブルに含まれるAPIパラメータに関連付けられた、一つまたは複数のキー項目、一つまたは複数の値項目および一つまたは複数のルート・ペアレントのうちの少なくとも一つを含む、付記１４記載の非一時的なコンピュータ可読媒体。
【符号の説明】
【００７７】
１０２  抽出されたテーブル
１０４  API仕様モジュール
１０６  キー・モジュール
１０７  明瞭キー・テーブル
１０８  定義されたAPI仕様
１１０  APIテーブル
１１２  API仕様
２０２  APIテーブルを含む定義されたAPI仕様を受領
２０４  APIテーブルから各列を抽出
２０６  キー項目のリストを生成
２０８  値項目のリストを生成
２１０  ルート・ペアレントのリストを生成
２１２  APIテーブルにおける同様のキー項目を関連付け
２１４  明瞭キー・テーブルを生成
２１６  キー・モデルを生成
３０２  抽出されたテーブルを受領
３０４  抽出されたテーブルから各列を抽出
３０６  明瞭キー・テーブルを受領
３０８  明瞭キー・テーブルから各列を抽出
３１０  抽出されたテーブルおよび明瞭キー・テーブルの各列に含まれるキー項目のキー類似性スコアを決定
３１２  抽出されたテーブルおよび明瞭キー・テーブルの各列に含まれる値項目の値類似性スコアを決定
３１４  抽出されたテーブルおよび明瞭キー・テーブルの各列に含まれるルート・ペアレントの構造類似性スコアを決定
３１６  明瞭キー・テーブルの各キー項目についてキー類似性スコアを決定
３１８  明瞭キー・テーブルの列に比べた、抽出されたテーブルの列についての列類似性スコアを決定
３２０  列類似性スコアが類似性範囲内？
３２２  抽出されたテーブルのその列を、定義されたフォーマットでのAPIパラメータのクラスに関連付け
３２４  明瞭キー・テーブルの各列に比べた、抽出されたテーブルの各列についての列類似性スコアが決定済みか？
３２６  キー・モデルを生成
５０２  定義されたAPI仕様を受領
５０４  キー・モデルを生成
５０６  抽出されたテーブルを受領
５０８  抽出されたテーブルの各列を、定義されたフォーマットでのAPIパラメータのクラスに関連付け
５１０  定義されたフォーマットで抽出されたテーブルのAPIパラメータを含むAPI仕様を生成
６０２  APIテーブルの各列についてキー項目を決定
６０４  APIテーブルの各列について値項目を決定
６０６  APIテーブルの各列について、各キー項目および値項目に関連付けられたルート・ペアレントを決定
６０８  明瞭キー・テーブルを生成
６１０  少なくとも一つまたは複数のキー項目が同じまたは実質的に同様であるかどうかを判定
６１２  同じまたは実質的に同様であるキー項目および対応する値項目およびルート・ペアレントを、明瞭キー・テーブルにおいて対応するAPIパラメータに関連付けられている列にマッピング
７０２  プロセッサ
７０４  メイン・メモリ
７０６  静的メモリ
７１０  表示装置
７１２  英数字入力装置
７１４  カーソル制御装置
７１６  データ記憶装置
７１８  ネットワーク
７２０  信号生成装置
７２２  ネットワーク・インターフェース装置
７２４  コンピュータ可読媒体
７２６  命令
【図１】
2019133622.tif 000010
【図２】
2019133622.tif 000011
【図３】
2019133622.tif 000012
【図４】
2019133622.tif 000013
【図５】
2019133622.tif 000014
【図６】
2019133622.tif 000015
【図７】
2019133622.tif 000016