(57)【要約】      （修正有）【課題】メタデータに基づくＡＰＩ属性抽出を提供する。【解決手段】方法は、機械学習で、エンドポイントと対応するメタデータを含むＡＰＩドキュメンテーション及び確認されたエンドポイントを含む確認されたＡＰＩ仕様書を受信するステップ、エンドポイントを確認されたエンドポイントと比較するステップ、メタデータを分類するステップを含む。メタデータは、エンドポイントが確認されたエンドポイントと実質的に同じか、同じでないかに応じて正または負の項目として分類される。また、訓練データセットを生成するステップを含む。該訓練データセットは、正の項目又は負の項目として分類されたメタデータを含む。さらに、機械学習アルゴリズム及び訓練データセットを使用してメタデータモデルを生成するステップを含む。メタデータモデルは、未知のエンドポイントが正のエンドポイントかの決定に使用される。【選択図】図５
2020091865.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラミングインターフェース（ＡＰＩ）ドキュメンテーションを使用する機械学習の方法であって、
エンドポイントと前記エンドポイントに対応するメタデータとを含む第１のＡＰＩドキュメンテーションを受信するステップであり、前記メタデータは、ヘッダとページタイトルと前記エンドポイントに対応するセンテンスとのうち少なくとも１つを含む、ステップと、
確認されたエンドポイントを含む確認されたＡＰＩ仕様書を受信するステップと、
前記エンドポイントを前記確認されたエンドポイントと比較するステップと、
前記メタデータを、
前記エンドポイントが前記確認されたエンドポイントと実質的に同じであることに応じて、前記メタデータを正の項目として分類すること、又は、
前記エンドポイントが前記確認されたエンドポイントと実質的に同じでないことに応じて、前記メタデータを負の項目として分類すること
により分類するステップと、
正の項目又は負の項目として分類された前記メタデータを含む訓練データセットを生成するステップと、
機械学習アルゴリズム及び前記訓練データセットを使用してメタデータモデルを生成するステップであり、前記メタデータモデルは、未知のエンドポイントが正のエンドポイントであるかどうかを対応するメタデータに基づいて決定するために使用されるよう構成される、ステップと、
を含む方法。
【請求項２】
前記第１のＡＰＩドキュメンテーションは属性をさらに含み、前記メタデータは前記エンドポイント及び前記属性の双方に対応し、前記確認されたＡＰＩ仕様書は確認された属性をさらに含み、当該方法は、
前記属性を前記確認された属性と比較するステップであり、前記メタデータは、前記属性が前記確認された属性と実質的に同じであることに応じて正の項目として分類され、前記メタデータは、前記属性が前記確認された属性と実質的に同じでないことに応じて負の項目として分類される、ステップ、をさらに含み、
前記訓練データセットは、前記属性の前記確認された属性に対する前記比較に基づいて正の項目又は負の項目として分類された前記メタデータをさらに含み、前記メタデータモデルは、未知の属性が正の属性であるか又は負の属性であるかを対応するメタデータに基づいて決定するために使用されるようさらに構成される、請求項１に記載の方法。
【請求項３】
前記属性を前記確認された属性と比較するステップは、
前記確認された属性と比較した前記属性のシーケンスマッチ値を算出するステップと、
前記確認された属性と比較した前記属性の前記シーケンスマッチ値を比較閾値と比較するステップであり、前記属性は、前記シーケンスマッチ値が前記比較閾値以上である場合、前記確認された属性と実質的に同じであり、前記属性は、前記シーケンスマッチ値が前記比較閾値未満である場合、前記確認された属性と実質的に同じでない、ステップと、
を含む、請求項２に記載の方法。
【請求項４】
前記第１のＡＰＩドキュメンテーションは属性をさらに含み、前記メタデータの部分が前記属性のみに対応し、前記確認されたＡＰＩ仕様書は確認された属性をさらに含み、当該方法は、
前記属性を前記確認された属性と比較するステップであり、前記属性に対応する前記メタデータの前記部分は、前記属性が前記確認された属性と実質的に同じであることに応じて正の項目として分類され、前記属性に対応する前記メタデータの前記部分は、前記属性が前記確認された属性と実質的に同じでないことに応じて負の項目として分類される、ステップ、をさらに含み、
前記訓練データセットは、正の項目又は負の項目として分類された前記属性に対応する前記メタデータの前記部分をさらに含み、前記メタデータモデルは、未知の属性が正の属性であるか又は負の属性であるかを対応するメタデータに基づいて決定するために使用されるようさらに構成される、請求項１に記載の方法。
【請求項５】
未知のエンドポイントと前記未知のエンドポイントに対応する未知のメタデータとを含む第２のＡＰＩドキュメンテーションを受信するステップと、
前記メタデータモデル及び前記未知のメタデータを使用して前記未知のエンドポイントが正のエンドポイントであるかどうかを決定するステップ、及び、
前記未知のエンドポイントが正のエンドポイントであることに応じて、前記第２のＡＰＩドキュメンテーションからの前記未知のエンドポイント及び前記未知のメタデータを含む改訂されたＡＰＩ仕様書を生成するステップと、
をさらに含む請求項１に記載の方法。
【請求項６】
前記第１のＡＰＩドキュメンテーションは、複数の属性と、前記エンドポイントを含む複数のエンドポイントとをさらに含み、前記メタデータは、前記エンドポイントの各々に対応する部分を含み、前記メタデータは、前記属性の各々に対応する部分をさらに含み、前記確認されたＡＰＩ仕様書は、複数の確認された属性と、前記確認されたエンドポイントを含む複数の確認されたエンドポイントとをさらに含み、当該方法は、
前記エンドポイントの各々を前記確認されたエンドポイントの各々と比較するステップであり、１つ以上のエンドポイントに対応する前記メタデータの前記部分は、前記１つ以上のエンドポイントが１つ以上の確認されたエンドポイントと実質的に同じであることに応じて正の項目として分類され、１つ以上のエンドポイントに対応する前記メタデータの前記部分は、前記１つ以上のエンドポイントが前記確認されたエンドポイントのいずれとも実質的に同じでないことに応じて負の項目として分類される、ステップと、
前記属性の各々を前記確認されたエンドポイントの各々と比較するステップであり、１つ以上の属性に対応する前記メタデータの前記部分は、前記１つ以上の属性が１つ以上の確認された属性と実質的に同じであることに応じて正の項目として分類され、１つ以上の属性に対応する前記メタデータの前記部分は、前記１つ以上の属性が前記確認された属性のいずれとも実質的に同じでないことに応じて負の項目として分類される、ステップと、
をさらに含み、
前記訓練データセットは、正の項目又は負の項目として分類された前記メタデータの各部分をさらに含み、前記メタデータモデルは、未知の属性が正の属性であるか又は負の属性であるかを対応するメタデータに基づいて決定するために使用されるようさらに構成される、請求項１に記載の方法。
【請求項７】
前記訓練データセットを使用して前記メタデータモデルを生成するステップは、
複数のテストエンドポイントと、複数のテスト属性と、前記テストエンドポイントの各々及び前記テスト属性の各々に対応するメタデータの部分とを含むテストデータセットを受信するステップと、
前記テストエンドポイントと、前記テスト属性と、前記テストエンドポイント及び前記テスト属性に対応する前記メタデータの部分とを使用して前記メタデータモデルをテストするステップと、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記訓練データセットを使用して前記メタデータモデルを生成するステップは、
前記訓練データセットから少なくとも１つのタグを除去するステップと、
前記訓練データセット内の各ワード及びシンボルを分離するステップであり、各々の分離されたワード及びシンボルは異なるトークンとしてラベル付けされる、ステップと、
前記訓練データセット内の少なくとも１つのトークンの語幹を抽出するステップと、
前記訓練データセット内の少なくとも１つのトークンの頻度を決定するステップと、
前記訓練データセット内の前記少なくとも１つのトークンの前記頻度を使用して機械学習を実行するステップであり、前記メタデータモデルは前記機械学習に基づいて生成される、ステップと、
を含む、請求項１に記載の方法。
【請求項９】
ＡＰＩドキュメンテーションを使用して機械学習の動作を実行し又は該動作の実行を制御するための１つ以上のプロセッサにより実行可能なプログラミングコードをエンコードした非一時的コンピュータ読取可能媒体であって、前記動作は、
エンドポイントと前記エンドポイントに対応するメタデータとを含む第１のＡＰＩドキュメンテーションを受信することであり、前記メタデータは、ヘッダとページタイトルと前記エンドポイントに対応するセンテンスとのうち少なくとも１つを含む、ことと、
確認されたエンドポイントを含む確認されたＡＰＩ仕様書を受信することと、
前記エンドポイントを前記確認されたエンドポイントと比較することと、
前記メタデータを、
前記エンドポイントが前記確認されたエンドポイントと実質的に同じであることに応じて、前記メタデータを正の項目として分類すること、又は、
前記エンドポイントが前記確認されたエンドポイントと実質的に同じでないことに応じて、前記メタデータを負の項目として分類すること
により分類することと、
正の項目又は負の項目として分類された前記メタデータを含む訓練データセットを生成することと、
機械学習アルゴリズム及び前記訓練データセットを使用してメタデータモデルを生成することであり、前記メタデータモデルは、未知のエンドポイントが正のエンドポイントであるかどうかを対応するメタデータに基づいて決定するために使用されるよう構成される、ことと、
を含む、非一時的コンピュータ読取可能媒体。
【請求項１０】
前記第１のＡＰＩドキュメンテーションは属性をさらに含み、前記メタデータは前記エンドポイント及び前記属性の双方に対応し、前記確認されたＡＰＩ仕様書は確認された属性をさらに含み、前記動作は、
前記属性を前記確認された属性と比較することであり、前記メタデータは、前記属性が前記確認された属性と実質的に同じであることに応じて正の項目として分類され、前記メタデータは、前記属性が前記確認された属性と実質的に同じでないことに応じて負の項目として分類される、こと、をさらに含み、
前記訓練データセットは、前記属性の前記確認された属性に対する前記比較に基づいて正の項目又は負の項目として分類された前記メタデータをさらに含み、前記メタデータモデルは、未知の属性が正の属性であるか又は負の属性であるかを対応するメタデータに基づいて決定するために使用されるようさらに構成される、請求項９に記載の非一時的コンピュータ読取可能媒体。
【請求項１１】
前記第１のＡＰＩドキュメンテーションは属性をさらに含み、前記メタデータの部分が前記属性のみに対応し、前記確認されたＡＰＩ仕様書は確認された属性をさらに含み、前記動作は、
前記属性を前記確認された属性と比較することであり、前記属性に対応する前記メタデータの前記部分は、前記属性が前記確認された属性と実質的に同じであることに応じて正の項目として分類され、前記属性に対応する前記メタデータの前記部分は、前記属性が前記確認された属性と実質的に同じでないことに応じて負の項目として分類される、こと、をさらに含み、
前記訓練データセットは、正の項目又は負の項目として分類された前記属性に対応する前記メタデータの前記部分をさらに含み、前記メタデータモデルは、未知の属性が正の属性であるか又は負の属性であるかを対応するメタデータに基づいて決定するために使用されるようさらに構成される、請求項９に記載の非一時的コンピュータ読取可能媒体。
【請求項１２】
前記動作は、
未知のエンドポイントと前記未知のエンドポイントに対応する未知のメタデータとを含む第２のＡＰＩドキュメンテーションを受信することと、
前記メタデータモデル及び前記未知のメタデータを使用して前記未知のエンドポイントが正のエンドポイントであるかどうかを決定すること、及び、
前記未知のエンドポイントが正のエンドポイントであることに応じて、前記第２のＡＰＩドキュメンテーションからの前記未知のエンドポイント及び前記未知のメタデータを含む改訂されたＡＰＩ仕様書を生成することと、
をさらに含む請求項９に記載の非一時的コンピュータ読取可能媒体。
【請求項１３】
前記第１のＡＰＩドキュメンテーションは、複数の属性と、前記エンドポイントを含む複数のエンドポイントとをさらに含み、前記メタデータは、前記エンドポイントの各々に対応する部分をさらに含み、前記メタデータは、前記属性の各々に対応する部分をさらに含み、前記確認されたＡＰＩ仕様書は、複数の確認された属性と、前記確認されたエンドポイントを含む複数の確認されたエンドポイントとをさらに含み、前記動作は、
前記エンドポイントの各々を前記確認されたエンドポイントの各々と比較することであり、１つ以上のエンドポイントに対応する前記メタデータの前記部分は、前記１つ以上のエンドポイントが１つ以上の確認されたエンドポイントと実質的に同じであることに応じて正の項目として分類され、１つ以上のエンドポイントに対応する前記メタデータの前記部分は、前記１つ以上のエンドポイントが前記確認されたエンドポイントのいずれとも実質的に同じでないことに応じて負の項目として分類される、ことと、
前記属性の各々を前記確認されたエンドポイントの各々と比較することであり、１つ以上の属性に対応する前記メタデータの前記部分は、前記１つ以上の属性が１つ以上の確認された属性と実質的に同じであることに応じて正の項目として分類され、１つ以上の属性に対応する前記メタデータの前記部分は、前記１つ以上の属性が前記確認された属性のいずれとも実質的に同じでないことに応じて負の項目として分類される、ことと、
をさらに含み、
前記訓練データセットは、正の項目又は負の項目として分類された前記メタデータの前記部分をさらに含み、前記メタデータモデルは、未知の属性が正の属性であるか又は負の属性であるかを対応するメタデータに基づいて決定するために使用されるようさらに構成される、請求項９に記載の非一時的コンピュータ読取可能媒体。
【請求項１４】
前記動作は、
前記第１のＡＰＩドキュメンテーションから前記エンドポイント、前記属性、及び前記メタデータを抽出することと、
前記確認されたＡＰＩ仕様書から前記確認されたエンドポイント及び前記確認された属性を抽出することと、
をさらに含む、請求項１３に記載の非一時的コンピュータ読取可能媒体。
【請求項１５】
システムであって、
命令を記憶するように構成された１つ以上のコンピュータ読取可能記憶媒体と、
前記１つ以上のコンピュータ読取可能記憶媒体に通信上結合され、前記命令の実行に応じて当該システムにＡＰＩドキュメンテーションを使用する機械学習の動作を実行させる１つ以上のプロセッサと、
を含み、前記動作は、
エンドポイントと前記エンドポイントに対応するメタデータとを含む第１のＡＰＩドキュメンテーションを受信することであり、前記メタデータは、ヘッダとページタイトルと前記エンドポイントに対応するセンテンスとのうち少なくとも１つを含む、ことと、
確認されたエンドポイントを含む確認されたＡＰＩ仕様書を受信することと、
前記エンドポイントを前記確認されたエンドポイントと比較することと、
前記メタデータを、
前記エンドポイントが前記確認されたエンドポイントと実質的に同じであることに応じて、前記メタデータを正の項目として分類すること、又は、
前記エンドポイントが前記確認されたエンドポイントと実質的に同じでないことに応じて、前記メタデータを負の項目として分類すること
により分類することと、
正の項目又は負の項目として分類された前記メタデータを含む訓練データセットを生成することと、
機械学習アルゴリズム及び前記訓練データセットを使用してメタデータモデルを生成することであり、前記メタデータモデルは、未知のエンドポイントが正のエンドポイントであるかどうかを対応するメタデータに基づいて決定するために使用されるよう構成される、ことと、
を含む、システム。
【請求項１６】
前記第１のＡＰＩドキュメンテーションは属性をさらに含み、前記メタデータは前記エンドポイント及び前記属性の双方に対応し、前記確認されたＡＰＩ仕様書は確認された属性をさらに含み、前記動作は、
前記属性を前記確認された属性と比較することであり、前記メタデータは、前記属性が前記確認された属性と実質的に同じであることに応じて正の項目として分類され、前記メタデータは、前記属性が前記確認された属性と実質的に同じでないことに応じて負の項目として分類される、こと、をさらに含み、
前記訓練データセットは、前記属性の前記確認された属性に対する前記比較に基づいて正の項目又は負の項目として分類された前記メタデータをさらに含み、前記メタデータモデルは、未知の属性が正の属性であるか又は負の属性であるかを対応するメタデータに基づいて決定するために使用されるようさらに構成される、請求項１５に記載のシステム。
【請求項１７】
前記第１のＡＰＩドキュメンテーションは属性をさらに含み、前記メタデータの部分が前記属性のみに対応し、前記確認されたＡＰＩ仕様書は確認された属性をさらに含み、前記動作は、
前記属性を前記確認された属性と比較することであり、前記属性に対応する前記メタデータの前記部分は、前記属性が前記確認された属性と実質的に同じであることに応じて正の項目として分類され、前記属性に対応する前記メタデータの前記部分は、前記属性が前記確認された属性と実質的に同じでないことに応じて負の項目として分類される、こと、をさらに含み、
前記訓練データセットは、正の項目又は負の項目として分類された前記属性に対応する前記メタデータの前記部分をさらに含み、前記メタデータモデルは、未知の属性が正の属性であるか又は負の属性であるかを対応するメタデータに基づいて決定するために使用されるようさらに構成される、請求項１５に記載のシステム。
【請求項１８】
前記動作は、
未知のエンドポイントと前記未知のエンドポイントに対応する未知のメタデータとを含む第２のＡＰＩドキュメンテーションを受信することと、
前記メタデータモデル及び前記未知のメタデータを使用して前記未知のエンドポイントが正のエンドポイントであるかどうかを決定すること、及び、
前記未知のエンドポイントが正のエンドポイントであることに応じて、前記第２のＡＰＩドキュメンテーションからの前記未知のエンドポイント及び前記未知のメタデータを含む改訂されたＡＰＩ仕様書を生成することと、
をさらに含む請求項１５に記載のシステム。
【請求項１９】
前記第１のＡＰＩドキュメンテーションは、複数の属性と、前記エンドポイントを含む複数のエンドポイントとをさらに含み、前記メタデータは、前記エンドポイントの各々に対応する部分をさらに含み、前記メタデータは、前記属性の各々に対応する部分をさらに含み、前記確認されたＡＰＩ仕様書は、複数の確認された属性と、前記確認されたエンドポイントを含む複数の確認されたエンドポイントとをさらに含み、前記動作は、
前記エンドポイントの各々を前記確認されたエンドポイントの各々と比較することであり、１つ以上のエンドポイントに対応する前記メタデータの前記部分は、前記１つ以上のエンドポイントが１つ以上の確認されたエンドポイントと実質的に同じであることに応じて正の項目として分類され、１つ以上のエンドポイントに対応する前記メタデータの前記部分は、前記１つ以上のエンドポイントが前記確認されたエンドポイントのいずれとも実質的に同じでないことに応じて負の項目として分類される、ことと、
前記属性の各々を前記確認されたエンドポイントの各々と比較することであり、１つ以上の属性に対応する前記メタデータの前記部分は、前記１つ以上の属性が１つ以上の確認された属性と実質的に同じであることに応じて正の項目として分類され、１つ以上の属性に対応する前記メタデータの前記部分は、前記１つ以上の属性が前記確認された属性のいずれとも実質的に同じでないことに応じて負の項目として分類される、ことと、
をさらに含み、
前記訓練データセットは、正の項目又は負の項目として分類された前記メタデータの前記部分をさらに含み、前記メタデータモデルは、未知の属性が正の属性であるか又は負の属性であるかを対応するメタデータに基づいて決定するために使用されるようさらに構成される、請求項１５に記載のシステム。
【請求項２０】
前記動作は、
前記第１のＡＰＩドキュメンテーションから前記エンドポイント、前記属性、及び前記メタデータを抽出することと、
前記確認されたＡＰＩ仕様書から前記確認されたエンドポイント及び前記確認された属性を抽出することと、
をさらに含む、請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示において議論される実施形態は、メタデータに基づくＡＰＩ属性抽出に関する。
【背景技術】
【０００２】
ソフトウェアアプリケーションは、１つ以上のアプリケーションプログラミングインターフェース（ＡＰＩ又はＡＰＩｓ）を使用して構築でき、ＡＰＩの各々は、ルーチン、プロトコル、及びツールのセットである。ＡＰＩ仕様書は、他のソフトウェアコンポーネントがＡＰＩの定義に基づいて該ＡＰＩとどのように対話するかを規定する。ＡＰＩ仕様書は、ＡＰＩがどのように動作するか、及びＡＰＩがどのように他のＡＰＩと対話するかを規定することがある。ＡＰＩは、その結果をグラフィカルユーザインターフェース（ＧＵＩ）コンポーネントに示すために使用されることもある。ＡＰＩ仕様書は、ソフトウェアアプリケーションの少なくともいくつかの機能及び／又はデータを公開することがあり、他のアプリケーションが機能又はデータの実装に対する懸念なくＡＰＩのリソースを使用することを可能にする。さらに、ＡＰＩ仕様書は、ＡＰＩドキュメンテーションに基づいて作成されることがある。ＡＰＩドキュメンテーションは、ＡＰＩの特定の機能がどのように動作し得るかを規定することがある。さらに、ＡＰＩドキュメンテーションは、ＡＰＩの制限を規定することがある。
【０００３】
本開示において請求される対象事項は、何らかの欠点を解決し又は記載されたような環境においてのみ動作する実施形態に限定されない。むしろ、この背景技術は、本開示に記載されるいくつかの実施形態が実施され得る１つの例示的な技術分野を示すためにのみ提供される。
【発明の概要】
【０００４】
一実施形態の一態様によれば、アプリケーションプログラミングインターフェース（ＡＰＩ）ドキュメンテーションを使用する機械学習の方法が、第１のＡＰＩドキュメンテーションを受信するステップを含むことができる。第１のＡＰＩドキュメンテーションは、エンドポイントとエンドポイントに対応するメタデータとを含むことができる。メタデータは、ヘッダとページタイトルとエンドポイントに対応するセンテンスとのうち少なくとも１つを含むことができる。本方法は、確認されたＡＰＩ仕様書を受信するステップをさらに含むことができる。確認されたＡＰＩ仕様書は、確認されたエンドポイントを含むことができる。さらに、本方法は、エンドポイントを確認されたエンドポイントと比較するステップを含むことができる。本方法は、メタデータを分類するステップを含むことができる。メタデータは、エンドポイントが確認されたエンドポイントと実質的に同じであることに応じて正の項目として分類されてもよい。メタデータは、エンドポイントが確認されたエンドポイントと実質的に同じでないことに応じて負の項目として分類されてもよい。本方法は、訓練データセットを生成するステップをさらに含むことができる。訓練データセットは、正の項目又は負の項目として分類されたメタデータを含むことができる。さらに、本方法は、機械学習アルゴリズム及び訓練データセットを使用してメタデータモデルを生成するステップを含むことができる。メタデータモデルは、未知のエンドポイントが正のエンドポイントであるかどうかを対応するメタデータに基づいて決定するために使用されるよう構成されてもよい。
【０００５】
実施形態の目的及び利点は、少なくとも特許請求の範囲において特に指し示された要素、特徴、及び組み合わせにより実現され、達成される。
【０００６】
前述の一般的な説明及び以下の詳細な説明の双方が例示的かつ説明的であり、請求される発明の限定ではないことを理解されたい。
【０００７】
実施形態の目的及び利点は、少なくとも特許請求の範囲において特に指し示された要素、特徴、及び組み合わせにより実現され、達成される。前述の一般的な説明及び以下の詳細な説明の双方が例示的かつ説明的であり、限定ではない。
【図面の簡単な説明】
【０００８】
例示的な実施形態が、添付図面の使用を通してさらなる特定性及び詳細と共に記載され、説明される。
【図１】訓練データセットの生成、メタデータモデルの訓練、及び改訂されたＡＰＩ仕様書の生成に関連する一例示的な動作環境のブロック図を示す。
【図２】図１の動作環境において実現され得る、一例示的な改訂ＡＰＩ仕様書生成処理のブロック図を示す。
【図３】図１の動作環境及び図２の処理において実現され得る、別の例示的な改訂ＡＰＩ仕様書生成処理のフロー図を示す。
【図４】ＡＰＩドキュメンテーションからのメタデータ属性抽出を使用する改訂ＡＰＩ仕様書の生成に対して構成された一例示的なコンピューティングシステムのブロック図を示す。
【図５】図１の動作環境において実現され得るメタデータモデル生成の一例示的な方法のフローチャートを示す。
【図６】図１の動作環境において実現され得る機械学習の一例示的な方法のフローチャートを示す。
【０００９】
全て、本開示に記載される少なくとも１つの実施形態による。
【発明を実施するための形態】
【００１０】
本開示に記載されるいくつかの実施形態は、メタデータに基づくアプリケーションプログラミングインターフェース（ＡＰＩ）属性（attribute）抽出に関する。抽出されたＡＰＩ属性は、ＡＰＩに向けられた属性及び／又はエンドポイントを含むことができる。いくつかの実施形態において、属性及びエンドポイントは、ＡＰＩドキュメンテーション（documentations）から抽出されてもよい。ＡＰＩドキュメンテーションから属性及びエンドポイントを手動で抽出することは、労働集約的でエラーを起こしやすい処理である可能性がある。機械学習アルゴリズムを使用して生成されたモデルは、より効率的な方法でＡＰＩドキュメンテーションから属性及びエンドポイントを抽出するために使用され得る。さらに、モデルは、属性及びエンドポイントの手動抽出の間に生じ得るエラーの可能性を削減し得る。
【００１１】
いくつかの抽出技術は、ＡＰＩドキュメンテーションから限られた情報を抽出することがある。例えば、いくつかの抽出技術は、属性及びエンドポイントに対応するＨＴＴＰ動詞機能（verb  functions）のみを抽出することがある。別の例として、いくつかの抽出技術は、属性又はエンドポイントに対応するオブジェクトのみを抽出することがある。
【００１２】
いくつかのモデルは、属性及びエンドポイントに含まれるオブジェクト間の関係に基づいて、ＡＰＩとの互換性がある属性及びエンドポイントを識別するように訓練されることがある。さらに、いくつかのモデルは、属性及びエンドポイントに関連づけられたＨＴＴＰ動詞機能に基づいて、ＡＰＩとの互換性がある属性及びエンドポイントを識別するように訓練されることがある。例えば、いくつかのモデルは、「ＧＥＴ」などのＨＴＴＰ動詞機能に関連づけられた属性及びエンドポイントをＡＰＩとの互換性があるとして識別するように訓練されることがある。関連づけられたＨＴＴＰ動詞機能のみに基づいて属性及びエンドポイントをＡＰＩとの互換性があるとして識別するようにモデルを訓練することは、将来の識別においてエラーを引き起こす可能性がある。例えば、属性又はエンドポイントが、ＨＴＴＰ動詞機能「ｇｅｔ」を含む後のＡＰＩドキュメンテーションから抽出される可能性があり、これは、抽出されたＨＴＴＰ動詞機能「ｇｅｔ」が小文字であり「ＧＥＴ」のような大文字でないため、ＡＰＩとの互換性があるとして識別されない可能性がある。
【００１３】
さらに、いくつかのモデルは、属性及びエンドポイントに関連づけられたテーブルの内容を使用して、ＡＰＩとの互換性がある属性及びエンドポイントを識別するように訓練されることがある。同様に、いくつかのモデルは、ＡＰＩとの互換性がある属性又はエンドポイントに対応するハイパーテキストトランスファーテキストプロトコル（hypertext  transfer  text  protocol、ＨＴＴＰ）動詞、ユニフォームリソースロケータ（uniform  resource  locators、ＵＲＬ）、及び／又はユニフォームリソース識別子（uniform  resource  identifiers、ＵＲＩ）を使用して訓練されることがある。
【００１４】
いくつかの機械学習アルゴリズムは、ＡＰＩドキュメンテーションからの属性及びエンドポイントを間違った情報として識別するモデルを訓練することがある。属性及びエンドポイントの、互換性があるとの間違った識別は、ＡＰＩドキュメンテーション及び／又はＡＰＩ仕様書（specifications）のフォーマットの差に起因する可能性がある。ＡＰＩドキュメンテーションは、一般に、ＡＰＩの特定の機能がどのように実現されるかを記載するために使用されることがある。さらに、ＡＰＩドキュメンテーションは、一般に、ＡＰＩの制約を記載するために使用されることがある。一方、ＡＰＩ仕様書は、ＡＰＩの機能がどのように振舞うかを記載するために使用されることがある。同様に、ＡＰＩ仕様書は、機能及び／又はＡＰＩがどのように他のＡＰＩに接続され、あるいは他のＡＰＩと対話するかを記載するために使用されることがある。ゆえに、これらのモデルは、実際にはＡＰＩとの互換性がないＡＰＩドキュメンテーション内の属性及びエンドポイントを誤って識別するように訓練される可能性がある。
【００１５】
ゆえに、上記で論じられた例を超える情報を使用して属性又はエンドポイントをＡＰＩとの互換性があるとして識別するようにメタデータモデルを訓練することができる抽出処理及びモデル訓練処理（例えば、機械学習アルゴリズム）の必要がある。種々の実施形態によれば、以下でより十分に説明されるように、第１のＡＰＩドキュメンテーション内の属性、エンドポイント、並びに属性及び／又はエンドポイントに対応するメタデータが抽出され得る。いくつかの実施形態において、メタデータは、第１のＡＰＩドキュメンテーション内の抽出された属性及びエンドポイントの前にある１つ以上のヘッダ、１つ以上の段落、又は１つ以上のセンテンスを含むことができる。さらに又は代わりに、メタデータは、第１のＡＰＩドキュメンテーション内の抽出された属性及びエンドポイントの前にある１つ以上のエンドポイント記述、１つ以上のページタイトル、又は１つ以上の他の段落及び１つ以上のセンテンスを含んでもよい。さらに、いくつかの実施形態において、メタデータは、第１のＡＰＩドキュメンテーション内の属性及びエンドポイントに関連づけられたエンドポイントプロパティ、エンドポイントパラメータ、エンドポイントレスポンス、及び／又はエンドポイントセキュリティを含んでもよい。いくつかの実施形態において、ヘッダは、第１のＡＰＩドキュメンテーション内の属性又はエンドポイントの署名と考えられてもよい。
【００１６】
さらに、いくつかの実施形態において、確認された（verified）属性及び確認されたエンドポイントが、確認されたＡＰＩ仕様書から抽出され得る。確認されたエンドポイント及び確認された属性は、ＡＰＩとの互換性があり得る。いくつかの実施形態において、第１のＡＰＩドキュメンテーションから抽出された属性及びエンドポイントは、確認されたＡＰＩ仕様書から抽出された確認された属性及び確認されたエンドポイントと比較され得る。これら及び他の実施形態において、属性及びエンドポイントに対応するメタデータは、対応する属性又はエンドポイントが１つ以上の確認された属性又はエンドポイントと実質的に同じであるかどうかに基づいて、正の（positive）項目又は負の（negative）項目として分類され得る。
【００１７】
正の項目は、１つ以上の確認された属性又は確認されたエンドポイントと実質的に同じである属性及びエンドポイントに対応するメタデータを含むことができる（例えば、対応する属性及びエンドポイントは、ＡＰＩとの互換性があるとして識別されてもよい）。負の項目は、いずれの確認された属性又は確認されたエンドポイントとも実質的に同じでない属性及びエンドポイントに対応するメタデータを含むことができる（例えば、対応する属性及びエンドポイントは、ＡＰＩとの互換性がないとして識別されてもよい）。
【００１８】
いくつかの実施形態において、メタデータの部分が、対応する属性及びエンドポイントの、確認された属性及び確認されたエンドポイントとの交差検証を使用して、正の項目又は負の項目として分類され得る。いくつかの実施形態において、正の項目として分類されたメタデータの部分には、対応する属性及びエンドポイントに対する有効なヘッダ、エンドポイント記述、ページタイトル、又は他の識別情報を含むことができる。さらに又は代わりに、負の項目として分類されたメタデータには、対応する属性及びエンドポイントに対する無効なヘッダ、エンドポイント記述、ページタイトル、又は他の識別情報を含んでもよい。
【００１９】
いくつかの実施形態において、正の項目又は負の項目のいずれかとして分類されたメタデータの全てを含む訓練データセットが生成され得る。メタデータモデルが、機械学習アルゴリズムを使用して生成されてもよい。メタデータモデルは、サポートベクターマシン（support  vector  machine、ＳＶＭ）アルゴリズム、長短期記憶（long  short-term  memory、ＬＳＴＭ）アルゴリズム、畳み込みニューラルネットワーク（convolutional  neural  network、ＣＮＮ）アルゴリズム、又は任意の他の適切な機械学習アルゴリズムを使用して生成されてもよい。メタデータモデルは、未知の（unknown）エンドポイント（例えば、前に識別されたことがないエンドポイント）がＡＰＩとの互換性があるかどうかを対応するメタデータに基づいて決定するために訓練されてもよい。さらに、メタデータモデルは、未知の属性（例えば、前に識別されたことがない属性）がＡＰＩとの互換性があるかどうかを対応するメタデータに基づいて決定するために訓練されてもよい。
【００２０】
さらに、いくつかの実施形態において、第２のＡＰＩドキュメンテーションが受信されてもよい。第２のＡＰＩドキュメンテーションは、未知の属性及び未知のエンドポイントを含むことができる。未知の属性及び未知のエンドポイントは、第２のＡＰＩドキュメンテーションから抽出されてもよい。さらに、未知の属性及び未知のエンドポイントに対応するメタデータが、第２のＡＰＩドキュメンテーションから抽出されてもよい。メタデータモデルは、第２のＡＰＩドキュメンテーション内のどの属性及びエンドポイントがＡＰＩとの互換性があるかを対応するメタデータに基づいて識別するために使用されてもよい。例えば、メタデータモデルは、未知の属性又は未知のエンドポイントのうちいずれかのヘッダが、メタデータモデルにおける１つ以上のヘッダと実質的に同じであるかどうかを決定するために使用されてもよい。
【００２１】
さらに、いくつかの実施形態において、メタデータモデルを使用してＡＰＩとの互換性があるとして識別された未知の属性及び／又は未知のエンドポイントを使用して、改訂されたＡＰＩ仕様書が生成されてもよい。改訂されたＡＰＩ仕様書は、ＡＰＩとの互換性があるとして識別された第２のＡＰＩドキュメンテーションからの各々の未知の属性を含むことができる。同様に、改訂されたＡＰＩ仕様書は、ＡＰＩとの互換性があるとして識別された第２のＡＰＩドキュメンテーションからの各々の未知のエンドポイントが含むことができる。さらに、いくつかの実施形態において、改訂されたＡＰＩ仕様書は、ＡＰＩとの互換性がある未知の属性及び未知のエンドポイントに対応するメタデータを含んでもよい。
【００２２】
メタデータを使用して属性及びエンドポイントがＡＰＩとの互換性があるかどうかを決定するメタデータモデルの恩恵には、前よりも多くの属性及びエンドポイントをＡＰＩとの互換性があるとして適切に識別することが含まれ得る。さらに、メタデータを使用して属性及びエンドポイントがＡＰＩとの互換性があるかどうかを決定するメタデータモデルの恩恵には、前よりも多くの属性及びエンドポイントをＡＰＩとの互換性がないとして適切に識別することが含まれ得る。さらに、メタデータモデルは、ＡＰＩドキュメンテーション内に列挙された具体的なＨＴＴＰ動詞機能を考慮することなく、属性及びエンドポイントをＡＰＩとの互換性がある又はないとして識別することができる。例えば、メタデータモデルは、ＰＯＳＴ、ＧＥＴ、ＤＥＬＥＴＥ、又は任意の他の適切なＨＴＴＰ動詞機能などのＨＴＴＰ動詞機能を考慮することなく、属性及びエンドポイントをＡＰＩとの互換性がある又はないとして識別することができる。
【００２３】
ＨＴＴＰ動詞機能を考慮することなく属性及びエンドポイントがＡＰＩとの互換性があるかどうかを決定することは、ＨＴＴＰ動詞機能を含まないＡＰＩドキュメンテーション（例えば、シンプルオブジェクトアクセスプロトコル（simple  object  access  protocol、ＳＯＡＰ）フォーマットのＡＰＩドキュメンテーション）が適切に識別されることを可能にする。さらに、ＨＴＴＰ動詞機能の代わりにメタデータを使用して属性及びエンドポイントがＡＰＩとの互換性があるかどうかを決定することは、改訂されたＡＰＩ仕様書に含まれる属性及びエンドポイントを削減する可能性があり、これは、属性及びエンドポイントを適切に識別するためのさらなる解析に関する処理の必要及びパワーを削減する可能性がある。例えば、属性及びエンドポイントがＨＴＴＰ動詞機能を含まないかどうかに専ら基づいて、属性及びエンドポイントがＡＰＩとの互換性があるかどうかを決定することは、ＡＰＩとの互換性がある及びない属性及びエンドポイントを返すことになる。メタデータモデルを使用して正の項目として識別されたメタデータに対応する属性及びエンドポイントに結果を制限することは、改訂されたＡＰＩ仕様書に含まれる、実際にはＡＰＩとの互換性がない属性及びエンドポイントの量を削減する可能性がある。
【００２４】
ＡＰＩとの互換性があると適切に検出されない可能性のある属性及びエンドポイントの一例には、ターゲットＡＰＩに対応するＡＰＩドキュメンテーション内のエンドポイント及び属性かどうかを決定することが含まれ得る。ＡＰＩドキュメンテーションは、各属性及びエンドポイントについてＨＴＴＰ動詞機能「ＧＥＴ」を含むことがあり、あるいは含まないことがある。ゆえに、属性及びエンドポイントの識別が単にＨＴＴＰ動詞機能の識別に基づいた場合、ＡＰＩドキュメンテーション内の各属性及びエンドポイントは識別されない可能性がある。しかしながら、あらゆる属性又はエンドポイントが実際にターゲットＡＰＩとの互換性があるわけではない。対照的に、本開示で論じられるように訓練されたメタデータモデルを使用することで、ＡＰＩドキュメンテーション内の各属性及びエンドポイントをターゲットＡＰＩとの互換性があるとして識別することができる。
【００２５】
本開示の実施形態は、添付の図面を参照して説明される。
【００２６】
図１は、訓練データセット１１８の生成、メタデータモデル１２２の訓練、及び改訂されたＡＰＩ仕様書１２８の生成に関する一例示的な動作環境１００のブロック図を示す。環境１００は、ＡＰＩドキュメンテーションモジュール１０６及び訓練モジュール１２０を含んでもよい。ＡＰＩドキュメンテーションモジュール１０６は、抽出モジュール１０８、エンドポイント分類モジュール１１０、属性分類モジュール１１２、及びデータセットモジュール１１６を含んでもよい。
【００２７】
ＡＰＩドキュメンテーションモジュール１０６は、プロセッサ、メモリ、及び／又は通信機能を含むコンピュータベースのハードウェアデバイスを含んでもよい。ＡＰＩドキュメンテーションモジュール１０６のいくつかの例は、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、又は接続されたデバイス等を含んでもよい。ＡＰＩドキュメンテーションモジュール１０６は、プロセッサベースのコンピューティングデバイスを含んでもよい。例えば、ＡＰＩドキュメンテーションモジュール１０６は、ハードウェアサーバ、又はサーバとして機能するように構成された別のプロセッサベースのコンピューティングデバイスを含んでもよい。ＡＰＩドキュメンテーションモジュール１０６は、メモリ及びネットワーク通信機能を含んでもよい。
【００２８】
訓練モジュール１２０もまた、プロセッサ、メモリ、及び／又は通信機能を含むコンピュータベースのハードウェアデバイスを含んでもよい。訓練モジュール１２０のいくつかの例もまた、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、又は接続されたデバイス等を含んでもよい。訓練モジュール１２０もまた、プロセッサベースのコンピューティングデバイスを含んでもよい。例えば、訓練モジュール１２０もまた、ハードウェアサーバ、又はサーバとして機能するように構成された別のプロセッサベースのコンピューティングデバイスを含んでもよい。訓練モジュール１２０もまた、メモリ及びネットワーク通信機能を含んでもよい。
【００２９】
ＡＰＩドキュメンテーションモジュール１０６は、第１のＡＰＩドキュメンテーション１０２及び確認されたＡＰＩ仕様書１０４（例えば、グラウンドトルースＡＰＩ仕様書）を受信するように構成され得る。第１のＡＰＩドキュメンテーション１０２は、属性１０３及びエンドポイント１０５を含むことができる。エンドポイント１０５は、ＡＰＩが通信するように構成され得る１つ以上のアドレス又は他の識別子を含んでもよい。例えば、エンドポイント１０５は、ＵＲＬ又はＵＲＩを含んでもよい。さらに、第１のＡＰＩドキュメンテーション１０２は、属性１０３及びエンドポイント１０５に対応するメタデータ１０７を含むことができる。いくつかの実施形態において、メタデータ１０７は、属性１０３及びエンドポイント１０５の双方に対応し得る。例えば、メタデータ１０７は、属性１０３及びエンドポイント１０５の双方に対応する１つ以上のヘッダを含んでもよい。他の実施形態において、メタデータ１０７は、情報の複数の部分を含んでもよい。メタデータ１０７内の情報の異なる部分が、属性１０３及びエンドポイント１０５に対応し得る。例えば、メタデータ１０７は、第１のヘッダ及び第２のヘッダを含んでもよい。第１のヘッダが、エンドポイント１０５に対応してもよく（例えば、第１のヘッダはエンドポイントヘッダであってもよい）、第２のヘッダが、属性１０３に対応してもよい（例えば、第２のヘッダは属性ヘッダであってもよい）。
【００３０】
第１のＡＰＩドキュメンテーション１０２は、ＡＰＩを記述する情報をドキュメンテーションフォーマットで含むことができる。例えば、第１のＡＰＩドキュメンテーション１０２は、含まれる情報（例えば、属性１０３、エンドポイント１０５、及びメタデータ１０７）をハイパーテキストマークアップ言語（hypertext  markup  language、ＨＴＭＬ）、ＪａｖａＳｃｒｉｐｔ（登録商標）ノーテーション（JavaScript  notation、ＪＳＯＮ）、又は他の任意の適切なフォーマットで記述してもよい。第１のＡＰＩドキュメンテーション１０２のファイルフォーマットは、ポータブルドキュメントフォーマット（portable  document  format、ＰＤＦ）、．ｄｏｃフォーマット（Ｍｉｃｒｏｓｏｆｔ（登録商標）のワード文書フォーマット）、又は任意の他の適切なファイルフォーマットを含んでもよい。
【００３１】
いくつかの実施形態において、メタデータ１０７は、第１のＡＰＩドキュメンテーション１０２内の属性１０３及びエンドポイント１０５の前に位置する１つ以上のヘッダ、１つ以上の段落、又は１つ以上のセンテンスを含むことができる。さらに又は代わりに、メタデータ１０７は、第１のＡＰＩドキュメンテーション１０２内の属性１０３及びエンドポイント１０５の前にある１つ以上のエンドポイント記述、１つ以上のページタイトル、１つ以上の段落、又は１つ以上のセンテンスを含んでもよい。さらに、いくつかの実施形態において、メタデータ１０７は、属性１０３及びエンドポイント１０５に関連づけられたエンドポイントプロパティ、エンドポイントパラメータ、エンドポイントレスポンス、及び／又はエンドポイントセキュリティを含んでもよい。いくつかの実施形態において、ヘッダは、属性１０３及びエンドポイント１０５の署名と考えられてもよい。さらに又は代わりに、メタデータ１０７は、ＨＴＭＬファイル上のページのタイトルを含んでもよい。
【００３２】
確認されたＡＰＩ仕様書１０４は、確認された属性１０９及び確認されたエンドポイント１１１を含むことができる。確認された属性１０９及び確認されたエンドポイント１１１は、ＡＰＩに向けられ得る。いくつかの実施形態において、確認されたＡＰＩ仕様書１０４は、ＡＰＩのユーザにより大勢に証明されたＡＰＩ仕様書であってもよい（例えば、ユーザ又はソフトウェアアプリケーション／ハードウェア／デバイスがＡＰＩと成功裏に対話し、ＡＰＩが成功コード、例えば２００レスポンスコードを返す場合）。他の実施形態において、確認されたＡＰＩ仕様書１０４は、ＡＰＩの管理者により提供されてもよい。確認されたＡＰＩ仕様書１０４は、ＡＰＩを記述する確認された属性１０９及び確認されたエンドポイント１１１を仕様書フォーマットで含むことができる。
【００３３】
抽出モジュール１０８は、第１のＡＰＩドキュメンテーション１０２から属性１０３、エンドポイント１０５、及びメタデータ１０７を抽出することができる。さらに、抽出モジュール１０８は、確認されたＡＰＩ仕様書１０４から確認された属性１０９及び確認されたエンドポイント１１１を抽出することができる。いくつかの実施形態において、属性１０３、エンドポイント１０５、メタデータ１０７、確認された属性１０９、及び確認されたエンドポイント１１１の抽出は、ＡＰＩハーモニー（API  harmony）を使用して実行されてもよい。いくつかの実施形態において、属性１０３及びエンドポイント１０５は、属性１０３及びエンドポイント１０５に関連づけられたＨＴＴＰ動詞機能及び／又はオブジェクトに基づいて、第１のＡＰＩドキュメンテーション１０２から抽出されてもよい。これら及び他の実施形態において、確認された属性１０９及び確認されたエンドポイント１１１は、確認された属性１０９及び確認されたエンドポイント１１１に関連づけられたＨＴＴＰ動詞機能及び／又はオブジェクトに基づいて、確認されたＡＰＩ仕様書１０４から抽出されてもよい。
【００３４】
エンドポイント分類モジュール１１０は、エンドポイント１０５を確認されたエンドポイント１１１と比較することができる。いくつかの実施形態において、エンドポイント１０５は、エンドポイント１０５が確認されたエンドポイント１１１と実質的に同じである場合、ＡＰＩとの互換性があるとして分類されてもよい。これら及び他の実施形態において、エンドポイント１０５に対応するメタデータ１０７の部分が、正の項目として分類されてもよい。いくつかの実施形態において、エンドポイント１０５は、エンドポイント１０５が確認されたエンドポイント１１１と実質的に同じでない場合、ＡＰＩとの互換性がないとして分類されてもよい。これら及び他の実施形態において、エンドポイント１０５に対応するメタデータ１０７の部分が、負の項目として分類されてもよい。
【００３５】
いくつかの実施形態において、エンドポイント１０５が確認されたエンドポイント１１１と実質的に同じであるかどうかは、シーケンスマッチングを使用して決定されてもよい。シーケンスマッチングは、エンドポイント１０５の内容（例えば、ワード）を確認されたエンドポイント１１１の内容と比較して、内容の重複の精度を決定することができる。確認されたエンドポイント１１１と比較したエンドポイント１０５のシーケンスマッチ値が決定されてもよい。シーケンスマッチ値は、比較閾値と比較されてもよい。シーケンスマッチ値が比較閾値以上である場合、エンドポイント１０５は、確認されたエンドポイント１１１と実質的に同じであるとして分類されてもよい。代替的に、シーケンスマッチ値が比較閾値未満である場合、エンドポイント１０５は、確認されたエンドポイント１１１と実質的に同じでないとして分類されてもよい。シーケンス閾値は、５０％及び８０％の間であってもよい。
【００３６】
いくつかの実施形態において、エンドポイント１０５がＡＰＩとの互換性があるとして分類される場合、これは、エンドポイント１０５が、ＨＴＴＰ動詞機能、オブジェクト関係、又はエンドポイント１０５を識別するための他の方法を使用して訓練されたモデルにより、ＡＰＩとの互換性があるとして適切に識別されたであろうことを示し得る。これら及び他の実施形態において、エンドポイント１０５がＡＰＩとの互換性がないとして分類される場合、これは、エンドポイント１０５が、ＨＴＴＰ動詞機能、オブジェクト関係、又はエンドポイント１０５を識別するための他の方法を使用して訓練されたモデルにより、ＡＰＩとの互換性があるとして不適切に識別されたであろうことを示し得る。いくつかの実施形態において、エンドポイント分類モジュール１１０は、以下、すなわち、
エンドポイント、エンドポイントを記述するエンドポイントのヘッダ、ページタイトル、正／負
に従って、エンドポイント１０５の分類を出力してもよい。
【００３７】
属性分類モジュール１１２は、属性１０３を確認された属性１０９と比較することができる。いくつかの実施形態において、属性１０３は、属性１０３が確認された属性１０９と実質的に同じである場合、ＡＰＩとの互換性があるとして分類されてもよい。これら及び他の実施形態において、属性１０３に対応するメタデータ１０７の部分が、正の項目として分類されてもよい。いくつかの実施形態において、属性１０３は、属性１０３が確認された属性１０９と実質的に同じでない場合、ＡＰＩとの互換性がないとして分類されてもよい。これら及び他の実施形態において、属性１０３に対応するメタデータ１０７の部分が、負の項目として分類されてもよい。
【００３８】
いくつかの実施形態において、属性１０３が確認された属性１０９と実質的に同じであるかどうかは、シーケンスマッチングを使用して決定されてもよい。シーケンスマッチングは、属性１０３の内容（例えば、ワード）を確認された属性１０９の内容と比較して、内容の重複の精度を決定することができる。確認された属性１０９と比較した属性１０３のシーケンスマッチ値が決定されてもよい。シーケンスマッチ値は、比較閾値と比較されてもよい。シーケンスマッチ値が比較閾値以上である場合、属性１０３は、確認された属性１０９と実質的に同じであるとして分類されてもよい。代替的に、シーケンスマッチ値が比較閾値未満である場合、属性１０３は、確認された属性１０９と実質的に同じではないとして分類されてもよい。
【００３９】
いくつかの実施形態において、属性１０３がＡＰＩとの互換性があるとして分類される場合、その結果は、属性１０３が、ＨＴＴＰ動詞機能、オブジェクト関係、又は属性１０３を識別するための他の方法を使用して訓練されたモデルにより、ＡＰＩとの互換性があるとして適切に識別されたであろうことを示し得る。これら及び他の実施形態において、属性１０３がＡＰＩとの互換性がないとして分類される場合、その結果は、属性１０３が、ＨＴＴＰ動詞機能、オブジェクト関係、又は属性１０３を識別するための他の方法を使用して訓練されたモデルにより、ＡＰＩとの互換性があるとして不適切に識別されたであろうことを示し得る。いくつかの実施形態において、属性分類モジュール１１２は、以下、すなわち、
属性、テーブル内容を説明するテーブルのヘッダ、タイプ／ページタイトル、正／負
に従って、属性１０３の分類を出力してもよい。
【００４０】
データセットモジュール１１６は、訓練データセット１１８を生成することができる。いくつかの実施形態において、訓練データセット１１８は、正の項目又は負の項目として分類されたメタデータ１０７を含んでもよい。他の実施形態において、訓練データセット１１８は、正の項目としてラベル付けされた第１の部分及び負の項目としてラベル付けされた第２の部分を有するメタデータ１０７を含んでもよい。例えば、訓練データセット１１８は、１つ以上の行及び１つ以上の列を含むテーブルを含んでもよい。メタデータ１０７の単一の部分が、各行に列挙されてもよい。表の一列が、メタデータ１０７の対応する部分の分類を列挙するために使用されてもよい。さらに又は代わりに、訓練データセット１１８は、正の項目及び負の項目としてラベル付けされた複数の部分を有するメタデータ１０７を含んでもよい。
【００４１】
いくつかの実施形態において、テーブルの第１の行がＰａｒａｍｅｔｅｒｓ：１とラベル付けされてもよく、テーブルの第２の行がＲｅｓｐｏｎｓｅ：２とラベル付けされてもよく、テーブルの第３の行がＳｅｃｕｒｉｔｙ：３とラベル付けされてもよく、テーブルの第４の行がＳｅｃｕｒｉｔｙＤｅｆｉｎｉｔｉｏｎｓ：４とラベル付けされてもよい。他の実施形態において、テーブルの第１の行がＲｅｓｐｏｎｓｅｓとラベル付けされてもよく、テーブルの第２の行がＰａｒａｍｅｔｅｒｓとラベル付けされてもよく、テーブルの第３の行がＤｅｓｃｒｉｐｔｉｏｎｓとラベル付けされてもよく、テーブルの第４の行がＳｅｃｕｒｉｔｙとラベル付けされてもよく、テーブルの第５の行がＳｅｃｕｒｉｔｙＤｅｆｉｎｉｔｉｏｎｓとラベル付けされてもよい。
【００４２】
データセットモジュール１１６は、テストデータセット１３０を生成することもできる。テストデータセット１３０は、１つ以上のテスト属性と、１つ以上のテストエンドポイントと、テスト属性及びテストエンドポイントの各々についてのテストヘッダとを含んでもよい。いくつかの実施形態において、テストデータセット１３０は、複数のＡＰＩドキュメンテーション（図示せず）を使用して生成されてもよい。他の実施形態において、テストデータセット１３０は、インストールの間にデータセットモジュール１１６にロードされた複数の属性及びエンドポイントを含んでもよい。さらに又は代わりに、テストデータセット１３０は、ＡＰＩの管理者により提供されてもよい。いくつかの実施形態において、テストデータセット１３０は、第１のＡＰＩドキュメンテーション１０２の内容の一部分を含んでもよい。例えば、テストデータセット１３０は、第１のＡＰＩドキュメンテーション１０２の内容の実質的に２５％を含んでもよい。別の例として、テストデータセット１３０は、第１のＡＰＩドキュメンテーション１０２の内容の実質的に３０％を含んでもよい。これら及び他の実施形態において、訓練データセット１１８は、第１のＡＰＩドキュメンテーション１０２の内容の残り（例えば、実質的に７５％又は実質的に７０％）を含んでもよい。
【００４３】
訓練モジュール１２０は、訓練データセット１１８及びテストデータセット１３０を受信することができる。テストデータセット１３０を使用する訓練モジュール１２０は、機械学習アルゴリズムを使用してメタデータモデル１２２を生成することができる。いくつかの実施形態において、訓練モジュール１２０は、訓練データセット１１８から少なくとも１つのタグを除去してもよい（例えば、訓練データセット１１８をクリーニングする）。いくつかの実施形態において、タグは、＜ｈ１＞＜／ｈ１＞及び＜ｂ＞＜／ｂ＞などのＨＴＭＬタグ、又は任意の他の適切なタグを含んでもよい。ソースがＰＤＦファイル、ＤＯＣ等である場合、それは内容のフォーマットを考慮する（例えば、より大きいフォントをヘッダとして選択する）。
【００４４】
いくつかの実施形態において、訓練モジュール１２０は、訓練データセット１１８及びテストデータセット内の各々の自然言語内容（natural  language  content）及びシンボルを分離することができる。さらに、各々の分離された自然言語内容及び分離されたシンボルは、異なるトークンとしてラベル付けされてもよい。例えば、エンドポイント１０５の内容が「このＡＰＩエンドポイントはユーザのリストを返す。（This  API  endpoint  returns  the  lists  of  users.）」を含む場合、各自然言語内容及びピリオドは、異なるトークン（例えば、「this」、「API」、「endpoint」、「returns」、「the」、「lists」、「of」、「users」、及び「.」）として分離され、ラベル付けされてもよい。これら及び他の実施形態において、訓練モジュール１２０は、訓練データセット１１８内の少なくとも１つのトークンの語幹を抽出することができる。語幹は、異なるトークン内の同じ自然言語内容又はシンボルの異なるバージョンを認識するための、最小数の文字及びシンボルを含むことができる。例えば、「ＡＰＩが提供する（API  provides）」及び「ＡＰＩが提供している（API  providing）」の語幹は、同じであり得る（例えば、「ＡＰＩ（API）」及び「提供（provid）」）。各トークンの語幹を抽出することは、トークンに含まれる異なる形式の自然言語内容の同等の処理を可能にできる。
【００４５】
いくつかの実施形態において、訓練モジュール１２０は、訓練データセット内の少なくとも１つのトークンの頻度を決定することができる。訓練データセット１１８内のトークン（例えば、自然言語内容）の頻度を決定することは、どのトークンがより共通するかを示すことができる。いくつかの実施形態において、トークンの頻度は、ターム頻度（term  frequency、ｔｆ）アルゴリズム、ターム頻度‐逆文書頻度（term  frequency-inverse  document  frequency、ｔｆｉｄｆ）アルゴリズム、又は任意の他の適切なアルゴリズムを使用して決定されてもよい。いくつかの実施形態において、訓練モジュール１２０は、訓練データセット１１８内の少なくとも１つのトークンの頻度に基づいて機械学習を使用してメタデータモデル１２２を生成することができる。これら及び他の実施形態において、訓練モジュール１２０は、機械学習を実行するためにＳＶＭアルゴリズム、ＬＳＴＭアルゴリズム、ＣＮＮアルゴリズム、又は他の任意の適切なアルゴリズムを使用してもよい。
【００４６】
さらに、訓練モジュール１２０は、テストデータセット１３０を使用してメタデータモデル１２２をテストすることができる。例えば、訓練モジュール１２０は、テストデータセット１３０内のテスト属性及びテストエンドポイントに対応するテストメタデータを、メタデータモデル１２２に含まれるメタデータと比較することができる。訓練モジュール１２０は、メタデータモデル１２２を使用して、各テスト属性及び各テストエンドポイントをＡＰＩとの互換性がある又はないとして識別することができる。訓練モジュール１２０が、少なくとも実質的に９０％の各テスト属性及び各テストエンドポイントを適切に識別する場合、メタデータモデル１２２は、実装の準備ができている可能性がある。そうでなければ、メタデータモデル１２２が実装の準備ができていない場合、ＡＰＩドキュメンテーションモジュール１０６及び訓練モジュール１２０は、メタデータモデル１２２が実装の準備ができるまで、さらなるＡＰＩドキュメンテーション（図示せず）を用いて上述の処理を繰り返すことができる。メタデータモデルは、未知の属性及び未知のエンドポイントがＡＰＩとの互換性があるかどうかを対応する未知のメタデータに基づいて決定するように構成されてもよい。
【００４７】
訓練モジュール１２０は、第２のＡＰＩドキュメンテーション１２６を受信することができる。第２のＡＰＩドキュメンテーション１２６は、未知の属性１１３及び未知のエンドポイント１１５を含んでもよい。さらに、第２のＡＰＩドキュメンテーション１２６は、未知の属性１１３及び未知のエンドポイント１１５に対応する未知のメタデータ１１７を含んでもよい。第２のＡＰＩドキュメンテーション１２６は、訓練モジュール１２０により前に解析されたことがないＡＰＩドキュメンテーションであり得る。
【００４８】
訓練モジュール１２０は、属性１０３、エンドポイント１０５、及びメタデータ１０７に関して上記で論じられたように、未知の属性１１３、未知のエンドポイント１１５、及び未知のメタデータ１１７を抽出することができる。訓練モジュール１２０は、未知の属性１１３及び未知のエンドポイント１１５がＡＰＩとの互換性があるかどうかを、メタデータモデル１２２及び未知のメタデータ１１７を使用して決定することができる。例えば、訓練モジュール１２０は、未知の属性１１３及び未知のエンドポイント１１５に対応する未知のメタデータ１１７の部分が、メタデータモデル１２２に含まれるメタデータと実質的に同じであるかどうかを決定することができる。
【００４９】
いくつかの実施形態において、未知のエンドポイント１１５に対応する未知のメタデータ１１７の部分が、メタデータモデル１２２におけるメタデータと実質的に同じである場合、未知のエンドポイント１１５は、改訂されたＡＰＩ仕様書１２８に追加されてもよい。いくつかの実施形態において、未知のエンドポイント１１５は、正のエンドポイントとしてラベル付けされてもよい。そうでなければ、未知のエンドポイント１１５は、改訂されたＡＰＩ仕様書１２８に追加されなくてもよい。いくつかの実施形態において、未知の属性１１３に対応する未知のメタデータ１１７の部分が、メタデータモデル１２２におけるメタデータと実質的に同じである場合、未知の属性１１３は、改訂されたＡＰＩ仕様書１２８に追加されてもよい。いくつかの実施形態において、未知の属性１１３は、正の属性としてラベル付けされてもよい。そうでなければ、未知の属性１１３は、改訂されたＡＰＩ仕様書１２８に追加されなくてもよい。訓練モジュール１２０は、改訂されたＡＰＩ仕様書１２８を生成し、出力することができる。さらに又は代わりに、未知の属性１１３及び／又は未知のエンドポイント１１５は、負の属性又は負のエンドポイントとしてラベル付けされ、さらなる処理及びレビューのために負のデータセットに記憶されてもよい。
【００５０】
いくつかの実施形態において、属性１０３、エンドポイント１０５、メタデータ１０７、未知の属性１１３、未知のエンドポイント１１５、及び未知のメタデータ１１７の抽出は、第１のＡＰＩドキュメンテーション１０２及び／又は第２のＡＰＩドキュメンテーション１２６のフォントタイプ及び／又はフォントサイズに基づいて実行されてもよい。さらに又は代わりに、訓練データセット１１８は、ＨＴＭＬヘッダ、ＨＴＴＰ動詞機能、及びメタデータ１０７に含まれるオブジェクトタイプを含んでもよい。さらに、いくつかの実施形態において、訓練データセット１１８は、機械学習アルゴリズムに基づいてメタデータ１０７の異なる部分を含んで生成されてもよい。
【００５１】
いくつかの実施形態において、属性１０３及びエンドポイント１０５は、以下のアルゴリズムに従って処理され、確認された属性１０９及び確認されたエンドポイント１１１と比較されてもよい。
（外１）
2020091865.tif 000003
【００５２】
いくつかの実施形態において、エンドポイント１０５は、以下のアルゴリズムに従って、確認されたエンドポイント１１１と比較されてもよい。
（外２）
2020091865.tif 000004
【００５３】
図２は、図１の動作環境で実現され得る、一例示的な改訂ＡＰＩ仕様書生成処理２００のブロック図を示す。改訂ＡＰＩ仕様書生成処理２００は、図１の抽出モジュール１０８、エンドポイント分類モジュール１１０、属性分類モジュール１１２、及び訓練モジュール１２０により実現されてもよい。抽出モジュール１０８は、ＡＰＩ学習モジュール２４０及びメタデータ抽出モジュール２４２を含むことができる。メタデータ抽出モジュールは、ヘッダ抽出モジュール２４４及びページタイトル抽出モジュール２４６を含むことができる。
【００５４】
抽出モジュール１０８は、１つ以上のＡＰＩドキュメンテーション２３８を受信するように構成され得る。ＡＰＩドキュメンテーション２３８の各々は、複数の属性及び複数のエンドポイントを含むことができる。さらに、ＡＰＩドキュメンテーション２３８の各々は、対応するＡＰＩドキュメンテーション２３８内の属性及びエンドポイントに向けられたメタデータを含むことができる。ＡＰＩドキュメンテーション２３８内の属性、エンドポイント、及びメタデータは、図１に関連して上記で論じられた属性１０３、エンドポイント１０５、及びメタデータ１０７と同じ又は類似であり得る。さらに、抽出モジュール１０８は、１つ以上の確認されたＡＰＩ仕様書１０４を受信するように構成されてもよい。
【００５５】
ＡＰＩ学習モジュール２４０は、ＡＰＩドキュメンテーション２３８内の属性及びエンドポイントを抽出するように構成され得る。いくつかの実施形態において、ＡＰＩ学習モジュール２４０は、ＨＴＴＰ動詞機能、オブジェクト、又は属性及びエンドポイントに関連づけられた任意の他の適切な項目に基づいて、属性及びエンドポイントを抽出するように構成されてもよい。例えば、ＡＰＩ学習モジュール２４０は、ＨＴＴＰ動詞機能及びＨＴＴＰオブジェクトタイプに関連づけられた属性及びエンドポイントを抽出してもよい。ＡＰＩ学習モジュール２４０はまた、確認されたＡＰＩ仕様書１０４内の確認された属性及び確認されたエンドポイントを抽出するように構成されてもよい。確認された属性及び確認されたエンドポイントもまた、ＨＴＴＰ動詞機能、オブジェクト、又は確認された属性及び確認されたエンドポイントに関連づけられた任意の他の適切な項目に基づいて抽出されてもよい。
【００５６】
ヘッダ抽出モジュール２４４は、抽出された属性及びエンドポイントに関連づけられた１つ以上のヘッダを抽出するように構成され得る。ヘッダ抽出モジュール２４４は、ＡＰＩドキュメンテーション２３８内の属性及びエンドポイントの前に位置し又は位置づけられた１つ以上のセンテンス及び／又は１つ以上の段落を抽出することができる。さらに、ページタイトル抽出モジュール２４６は、抽出された属性及びエンドポイントに関連づけられた１つ以上のページタイトルを抽出するように構成され得る。いくつかの実施形態において、ページタイトルは、属性及びエンドポイントに関連づけられたＵＲＬアドレスを含んでもよい。
【００５７】
エンドポイント分類モジュール１１０は、抽出されたエンドポイントの各々を、抽出された確認されたエンドポイントと比較することができる。いくつかの実施形態において、１つ以上の抽出されたエンドポイントは、１つ以上の抽出されたエンドポイントが抽出された確認されたエンドポイントのうち１つ以上と実質的に同じである場合、ＡＰＩとの互換性があるとして分類されてもよい。これら及び他の実施形態において、ＡＰＩとの互換性があるとして分類されたエンドポイントに対応する、抽出されたメタデータのうちの部分は、正の項目として分類されてもよい。いくつかの実施形態において、１つ以上の抽出されたエンドポイントは、１つ以上の抽出されたエンドポイントが抽出された確認されたエンドポイントのいずれとも実質的に同じでない場合、ＡＰＩとの互換性がないとして分類されてもよい。これら及び他の実施形態において、抽出された確認されたエンドポイントのいずれとも実質的に同じでない抽出されたエンドポイントに対応する、メタデータのうちの部分は、負の項目として分類されてもよい。抽出されたエンドポイントは、図１に関連して上記で論じられたのと同じ又は類似の処理を用いて、抽出された確認された属性と比較されてもよい。
【００５８】
属性分類モジュール１１２は、抽出された属性を、抽出された確認された属性と比較することができる。いくつかの実施形態において、抽出された属性のうち１つ以上は、１つ以上の抽出された属性が確認された属性のうち１つ以上と実質的に同じである場合、ＡＰＩとの互換性があるとして分類されてもよい。これら及び他の実施形態において、ＡＰＩとの互換性があるとして分類された抽出された属性に対応する、抽出されたメタデータのうちの部分は、正の項目として分類されてもよい。いくつかの実施形態において、抽出された属性は、抽出された属性が抽出された確認された属性のいずれとも実質的に同じでない場合、ＡＰＩとの互換性がないとして分類されてもよい。これら及び他の実施形態において、抽出された確認された属性のいずれとも実質的に同じでない１つ以上の抽出された属性に対応する、抽出されたメタデータのうちの部分は、負の項目として分類されてもよい。
【００５９】
抽出された属性、エンドポイント、ヘッダ、及びページタイトルは、オープン（open）ＡＰＩ仕様書２４８に含まれてもよい。さらに、オープンＡＰＩ仕様書２４８は、メタデータの分類、例えば、正の項目又は負の項目として分類されたメタデータを含んでもよい。オープンＡＰＩ仕様書２４８は、訓練モジュール１２０に提供されてもよい。訓練モジュール１２０は、機械学習アルゴリズム及びオープンＡＰＩ仕様書２４８を使用してメタデータモデル１２２を生成することができる。いくつかの実施形態において、訓練モジュール１２０は、オープンＡＰＩ仕様書２４８を処理し、図１に関連して上記で論じられたようにメタデータモデル１２２を生成することができる。
【００６０】
訓練モジュール１２０は、未知のＡＰＩドキュメンテーション２３９を受信することができる。未知のＡＰＩドキュメンテーション２３９は、複数の未知の属性及び複数の未知のエンドポイントを含んでもよい。さらに、未知のＡＰＩドキュメンテーション２３９は、未知の属性及び未知のエンドポイントに対応する未知のメタデータを含んでもよい。未知のＡＰＩドキュメンテーション２３９は、訓練モジュール１２０により前に解析されたことがないＡＰＩドキュメンテーションであり得る。
【００６１】
訓練モジュール１２０は、図１に関連して上記で論じられたように、未知の属性、未知のエンドポイント、及び未知のメタデータを抽出することができる。訓練モジュール１２０は、同様に図１に関連して上記で論じられたように、メタデータモデル１２２及び未知のメタデータを使用して、未知の属性及び未知のエンドポイントがＡＰＩとの互換性があるかどうかを決定することができる。例えば、訓練モジュール１２０は、未知の属性及び未知のエンドポイントに対応する未知のメタデータの部分が、メタデータモデル１２２に含まれるメタデータと実質的に同じであるかどうかを決定してもよい。
【００６２】
いくつかの実施形態において、１つ以上の未知のエンドポイントに対応する未知のメタデータの１つ以上の部分が、メタデータモデル１２２におけるメタデータと実質的に同じである場合、１つ以上の未知のエンドポイントは、改訂されたＡＰＩ仕様書１２８に追加されてもよい。これら及び他の実施形態において、未知の属性のうち１つ以上に対応する未知のメタデータの１つ以上の部分が、メタデータモデル１２２におけるメタデータと実質的に同じである場合、１つ以上の未知の属性は、改訂されたＡＰＩ仕様書１２８に追加されてもよい。さらに又は代わりに、メタデータモデル１２２におけるメタデータと実質的に同じでないメタデータの部分に対応する任意の未知の属性及び／又は未知のエンドポイントは、さらなる処理及びレビューのために負のデータセットに記憶されてもよい。訓練モジュール１２０は、改訂されたＡＰＩ仕様書１２８を生成し、出力することができる。
【００６３】
図３は、図１の動作環境及び図２の処理において実現され得る、別の例示的な改訂ＡＰＩ仕様書生成処理３００のフロー図を示す。処理３００の少なくとも一部が、図２のＡＰＩ学習モジュール２４０により実現されてもよい。ＡＰＩ学習モジュール２４０は、未知のＡＰＩドキュメンテーション２３９を受信することができる。ブロック３０２において、未知のＡＰＩドキュメンテーション２３９内の未知の属性及び未知のヘッダが、ＡＰＩ学習モジュール２４０により抽出され得る。抽出される未知のヘッダは、未知の属性の未知のヘッダであり得る。ブロック３０４において、未知のエンドポイント及び未知のヘッダが、ＡＰＩ学習モジュール２４０により抽出され得る。抽出される未知のヘッダは、未知のエンドポイントの未知のヘッダであり得る。未知のＡＰＩドキュメンテーション２３９内の未知の属性、未知のエンドポイント、及び未知のヘッダは、図１及び図２に関連して上記で論じられたように抽出されてもよい。
【００６４】
ブロック３０６において、未知の属性の未知のヘッダのうちいずれかが属性モデル３５６におけるヘッダにマッチするかどうかが決定され得る。属性モデル３５６は、図１及び図２に関連して上記で論じられたメタデータモデル１２２の一部として生成されてもよい。いくつかの実施形態において、属性モデル３５６は、正の項目として分類され、かつ属性に関連づけられたヘッダを含んでもよい。未知の属性の未知のヘッダのうちいずれかが属性モデル３５６におけるヘッダにマッチする場合、属性モデル３５６におけるヘッダにマッチする未知のヘッダは、改訂されたＡＰＩ仕様書１２８に含まれてもよい。未知の属性の１つ以上の未知のヘッダが属性モデル３５６におけるヘッダにマッチしない場合、属性モデル３５６におけるヘッダにマッチしない未知のヘッダは、改訂されたＡＰＩ仕様書１２８に含まれなくてもよい。
【００６５】
ブロック３０８において、未知のエンドポイントの未知のヘッダのうちいずれかがエンドポイントモデル３６２におけるヘッダにマッチするかどうかが決定され得る。エンドポイントモデル３６２は、図１及び図２に関連して上記で論じられたメタデータモデル１２２の一部として生成されてもよい。いくつかの実施形態において、エンドポイントモデル３６２は、正の項目として分類され、かつエンドポイントに関連づけられたヘッダを含んでもよい。未知のエンドポイントの未知のヘッダのうちいずれかがエンドポイントモデル３６２におけるヘッダにマッチする場合、エンドポイントモデル３６２におけるヘッダにマッチする未知のヘッダは、改訂されたＡＰＩ仕様書１２８に含まれてもよい。未知のエンドポイントの１つ以上の未知のヘッダがエンドポイントモデル３６２におけるヘッダにマッチしない場合、エンドポイントモデル３６２におけるヘッダにマッチしない未知のヘッダは、改訂されたＡＰＩ仕様書１２８に含まれなくてよい。
【００６６】
図４は、ＡＰＩドキュメンテーションからのメタデータ属性抽出を使用する改訂ＡＰＩ仕様書の生成に対して構成された一例示的なコンピューティングシステム４００のブロック図を示す。コンピューティングシステム４００は、図１の動作環境１００において実現されてもよい。コンピューティングシステム４００の例は、図１のＡＰＩドキュメンテーションモジュール１０６及び訓練モジュール１２０を含んでもよい。コンピューティングシステム４００は、１つ以上のプロセッサ４３４、メモリ４３６、及びデータ記憶装置４３２を含んでもよい。
【００６７】
プロセッサ４３４は、種々のコンピュータハードウェア又はソフトウェアモジュールを含む、任意の適切な専用若しくは汎用コンピュータ、コンピューティングエンティティ、又は処理デバイスを含んでもよく、任意の適用可能なコンピュータ読取可能記憶媒体に記憶された命令を実行するように構成されてもよい。例えば、プロセッサ４３４は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、ＡＳＩＣ、ＦＰＧＡ、又はプログラム命令を解釈及び／又は実行するよう及び／又はデータを処理するように構成された任意の他のデジタル若しくはアナログ回路を含んでもよい。
【００６８】
図４において単一のプロセッサとして示されているが、プロセッサ４３４は、より一般的には、本開示において説明された任意数の動作を個々又は集合的に実行するように構成された任意数のプロセッサを含んでもよい。さらに、プロセッサ４３４の１つ以上が、１つ以上の異なる電子デバイス又はコンピューティングシステム上に存在してもよい。いくつかの実施形態において、プロセッサ４３４は、メモリ４３６、データ記憶装置４３２、又はメモリ４３６及びデータ記憶装置４３２に記憶されたプログラム命令を解釈及び／又は実行し、かつ／あるいはデータを処理することができる。いくつかの実施形態において、プロセッサ４３４は、データ記憶装置４３２からプログラム命令を取り出し、プログラム命令をメモリ４３６にロードすることができる。プログラム命令がメモリ４３６にロードされた後、プロセッサ４３４は、プログラム命令を実行することができる。
【００６９】
メモリ４３６及びデータ記憶装置４３２は、記憶されたコンピュータ実行可能命令又はデータ構造を搬送し又は有するコンピュータ読取可能記憶媒体を含むことができる。そのようなコンピュータ読取可能記憶媒体は、プロセッサ４３４などの汎用又は専用コンピュータによりアクセスされ得る任意の利用可能な媒体を含んでもよい。限定でなく例として、そのようなコンピュータ読取可能記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ‐ＲＯＭ若しくは他の光ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶デバイス、フラッシュメモリデバイス（例えば、ソリッドステートメモリデバイス）、又はコンピュータ実行可能命令又はデータ構造の形式の所望のプログラムコードを搬送又は記憶するために使用でき、かつ汎用又は専用コンピュータによりアクセスできる任意の他の記憶媒体を含む、有形又は非一時的なコンピュータ読取可能記憶媒体を含んでもよい。上記の組み合わせもまた、コンピュータ読取可能記憶媒体の範囲内に含まれてもよい。コンピュータ実行可能命令は、例えば、プロセッサ４３４に特定の動作又は動作のグループを実行させるように構成された命令及びデータを含んでもよい。
【００７０】
本開示の範囲から逸脱することなく、コンピューティングシステム４００に対して変更、追加、又は省略がなされてもよい。例えば、コンピューティングシステム４００の異なるコンポーネントが、物理的に別個であってもよく、任意の適切な機構を介して通信上結合されてもよい。例えば、データ記憶装置４３２は、プロセッサ４３４及びメモリ４３６を含むサーバとは別個である記憶デバイスの一部であってもよく、メモリ４３６は、記憶デバイスに通信的に結合される。本開示に記載される実施形態は、以下でより詳細に論じられるように、種々のコンピュータハードウェア又はソフトウェアモジュールを含む専用又は汎用コンピュータの使用を含んでもよい。
【００７１】
図５は、図１の動作環境において実現され得るメタデータモデル生成の一例示的な方法５００のフローチャートを示す。方法５００は、任意の適切なシステム、装置、又はデバイスにより実行されてもよい。例えば、図１のＡＰＩドキュメンテーションモジュール１０６及び訓練モジュール１２０、又は図４のコンピューティングシステム４００のコンポーネントのうち１つ以上が、方法５００の１つ以上の処理を実行し、あるいは実行させることができる。これら及び他の実施形態において、コンピュータ読取可能媒体に記憶されたプログラム命令が、方法５００の動作のうち１つ以上を行うために実行されてもよい。さらに、方法５００の各動作は、静的又は動的であってもよく、オンラインで（例えば、リアルタイムで）又はオフラインで実行されてもよい。さらに、方法５００の各動作は、インクリメンタルに又は非インクリメンタルに実行されてもよい。
【００７２】
方法５００はブロック５０２を含んでもよく、ブロック５０２において、第１のＡＰＩドキュメンテーションが受信され得る。いくつかの実施形態において、第１のＡＰＩドキュメンテーションは、エンドポイントとエンドポイントに対応するメタデータとを含んでもよい。これら及び他の実施形態において、メタデータは、ヘッダとページタイトルとエンドポイントに対応するセンテンスとのうち少なくとも１つを含んでもよい。例えば、図１のＡＰＩドキュメンテーションモジュール１０６は、図１に関連して上記で論じられたように、第１のＡＰＩドキュメンテーション１０２を受信することができる。
【００７３】
ブロック５０４において、確認されたＡＰＩ仕様書が受信され得る。いくつかの実施形態において、確認されたＡＰＩ仕様書は確認されたエンドポイントを含んでもよい。例えば、図１のＡＰＩドキュメンテーションモジュール１０６は、図１に関連して上記で論じられたように、確認されたＡＰＩ仕様書１０４を受信することができる。ブロック５０６において、エンドポイントが、確認されたエンドポイントと比較され得る。例えば、図１のＡＰＩドキュメンテーションモジュール１０６のエンドポイント分類モジュール１１０は、図１に関連して上記で論じられたように、エンドポイント１０５を確認されたエンドポイント１１１と比較することができる。
【００７４】
ブロック５０８において、メタデータが分類され得る。いくつかの実施形態において、エンドポイントが確認されたエンドポイントと実質的に同じであることに応じて、メタデータは正の項目として分類されてもよい。これら及び他の実施形態において、エンドポイントが確認されたエンドポイントと実質的に同じでないことに応じて、メタデータは負の項目として分類されてもよい。例えば、図１のＡＰＩドキュメンテーションモジュール１０６のエンドポイント分類モジュール１１０は、図１に関連して上記で論じられたようにメタデータ１０７を分類することができる。
【００７５】
ブロック５１０において、訓練データセットが生成され得る。いくつかの実施形態において、訓練データセットは、正の項目又は負の項目として分類されたメタデータを含んでもよい。例えば、データセットモジュール１１６は、図１に関連して上記で論じられたように、訓練データセット１１８を生成することができる。ブロック５１２において、メタデータモデルが、機械学習アルゴリズム及び訓練データセットを使用して生成され得る。いくつかの実施形態において、メタデータモデルは、未知のエンドポイントが正のエンドポイントであるかどうかを対応するメタデータに基づいて決定するために使用されるよう構成されてもよい。例えば、図１の訓練モジュール１２０は、図１に関連して上記で論じられたように、メタデータモデル１２２を生成することができる。
【００７６】
本開示の範囲から逸脱することなく、方法５００に対して変更、追加、又は省略がなされてもよい。例えば、方法５００の動作は異なる順序で実現されてもよい。さらに又は代わりに、２つ以上の動作が同時に実行されてもよい。さらに、概説された動作及びアクションは例として提供されているに過ぎず、動作及びアクションのいくつかは、開示される実施形態の本質を損なうことなく、任意であってもよく、より少ない動作及びアクションに結合されてもよく、あるいはさらなる動作及びアクションへ拡張されてもよい。
【００７７】
図６は、図１の動作環境において実現され得る機械学習の一例示的な方法６００のフローチャートを示す。方法６００は、任意の適切なシステム、装置、又はデバイスにより実行されてもよい。例えば、図１のＡＰＩドキュメンテーションモジュール１０６及び訓練モジュール１２０、又は図４のコンピューティングシステム４００のコンポーネントのうち１つ以上である。これら及び他の実施形態において、コンピュータ読取可能媒体に記憶されたプログラム命令が、方法６００の動作のうち１つ以上を行うために実行されてもよい。さらに、方法６００の各動作は、静的又は動的であってもよく、オンラインで（例えば、リアルタイムで）又はオフラインで実行されてもよい。さらに、方法６００の各動作は、インクリメンタルに又は非インクリメンタルに実行されてもよい。
【００７８】
方法６００はブロック６０２を含んでもよく、ブロック６０２において、少なくとも１つのタグが訓練データセットから除去され得る。いくつかの実施形態において、タグは、訓練データセットに含まれるワード（例えば、自然言語内容）から除去されてもよい。これら及び他の実施形態において、タグは、ＨＴＭＬタグを含んでもよい。例えば、訓練モジュール１２０は、図１に関連して上記で論じられたように、訓練データセット１１８内のワードからタグを除去することができる。
【００７９】
ブロック６０４において、訓練データセット内の各ワード及びシンボルが分離され得る。いくつかの実施形態において、各々の分離されたワード（例えば、自然言語内容）及びシンボルは、異なるトークンとしてラベル付けされてもよい。例えば、訓練モジュール１２０は、図１に関連して上記で論じられたように、各ワード及びシンボルを分離し、分離されたワード及びシンボルをトークン化することができる。
【００８０】
ブロック６０６において、訓練データセット内の少なくとも１つのトークンの語幹が抽出され得る。いくつかの実施形態において、語幹は、異なるトークン内の同じワード又はシンボルの異なるバージョンを認識するための、最小数の文字及びシンボルを含むことができる。例えば、訓練モジュール１２０は、図１に関連して上記で論じられたように、少なくとも１つのトークンの語幹を抽出することができる。
【００８１】
ブロック６０８において、訓練データセット内の少なくとも１つのトークンの頻度が決定され得る。いくつかの実施形態において、訓練データセット１１８内のトークン（例えば、ワード）の頻度は、どのトークンがより共通するかを示すことができる。例えば、訓練モジュール１２０は、図１に関連して上記で論じられたように、訓練データセット１１８内の少なくとも１つのトークンの頻度を決定することができる。
【００８２】
ブロック６１０において、訓練データセット内の少なくとも１つのトークンの頻度を使用する機械学習が実行され得る。いくつかの実施形態において、メタデータモデルは、機械学習に基づいて生成されてもよい。これら及び他の実施形態において、メタデータモデルは、未知のエンドポイントが正のエンドポイントであるかどうかを対応するメタデータに基づいて決定するために使用されるよう構成されてもよい。例えば、図１の訓練モジュール１２０は、図１に関連して上記で論じられたように、機械学習と少なくとも１つのトークンの頻度とを使用してメタデータモデル１２２を生成することができる。
【００８３】
本開示の範囲から逸脱することなく、方法６００に対して変更、追加、又は省略がなされてもよい。例えば、方法６００の動作は異なる順序で実現されてもよい。さらに又は代わりに、２つ以上の動作が同時に実行されてもよい。さらに、概説された動作及びアクションは例として提供されているに過ぎず、動作及びアクションのいくつかは、開示される実施形態の本質を損なうことなく、任意であってもよく、より少ない動作及びアクションに結合されてもよく、あるいはさらなる動作及びアクションへ拡張されてもよい。
【００８４】
本開示に記載の実施形態は、記憶されたコンピュータ実行可能命令又はデータ構造を搬送し又は有するコンピュータ読取可能媒体を用いて実現されてもよい。そのようなコンピュータ読取可能媒体は、汎用又は専用コンピュータによりアクセスされ得る任意の利用可能媒体であってもよい。限定でなく例として、そのようなコンピュータ読取可能媒体は、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、コンパクトディスク読取専用メモリ（ＣＤ‐ＲＯＭ）若しくは他の光ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶デバイス、フラッシュメモリデバイス（例えば、ソリッドステートメモリデバイス）、又はコンピュータ実行可能命令又はデータ構造の形式で所望のプログラムコードを搬送又は記憶するために使用でき、かつ汎用又は専用コンピュータによりアクセスできる任意の他の記憶媒体を含む、非一時的コンピュータ読取可能記憶媒体を含んでもよい。上記の組み合わせもまた、コンピュータ読取可能媒体の範囲内に含まれてもよい。
【００８５】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理デバイス（例えば、１つ以上のプロセッサ）に特定の機能又は機能のグループを実行させる命令及びデータを含んでもよい。対象事項は、構造的特徴及び／又は方法論的動作に特有の言語で記載されているが、別記の特許請求の範囲において定義された対象事項は必ずしも上述された特定の特徴又は動作に限定されないことを理解されたい。むしろ、上述の特定の特徴及び動作は、特許請求の範囲を実現する例示的な形式として開示されている。
【００８６】
本開示において用いられるように、本開示において、特に別記の特許請求の範囲（例えば、別記の特許請求の範囲の本文）において用いられる用語は、一般に「開放的」な用語として意図されている（例えば、用語「含んでいる」は、「含んでいるがこれに限定されない」と解釈されるべきであり、用語「有する」は、「少なくとも有する」と解釈されるべきであり、用語「含む」は、「含むがこれに限定されない」と解釈されるべきである、等）。
【００８７】
さらに、特定数の導入された請求項記載が意図されている場合、そのような意図は請求項に明示的に記載され、そのような記載がない場合、そのような意図は存在しない。例えば、理解の助けとして、以下の別記の特許請求の範囲は、請求項記載を導入するために、導入フレーズ「少なくとも１つの」及び「１つ以上の」の使用を含むことがある。しかしながら、そのようなフレーズの使用は、不定冠詞「一の」（“a”又は“an”）による請求項記載の導入が、同じ請求項が導入フレーズ「１つ以上の」又は「少なくとも１つの」と「一の」などの不定冠詞とを含むときでも、そのような導入された請求項記載を含む任意の特定の請求項を１つのそのような記載のみ含む実施形態に限定することを暗に示すように見なされるべきではない（例えば、「一の」（“a”及び／又は“an”）は「少なくとも１つの」又は「１つ以上の」を意味するよう解釈されるべきである）。請求項記載を導入するために用いられる定冠詞の使用についても同様である。
【００８８】
さらに、特定数の導入された請求項記載が明示的に記載されている場合であっても、当業者は、そのような記載は少なくとも記載された数を意味するよう解釈されるべきであることを認識するであろう（例えば、他の修飾語を伴わない「２つの記載」というただそれだけの記載は、少なくとも２つの記載を意味するか、あるいは２つ以上の記載を意味する）。さらに、「Ａ、Ｂ、及びＣ等のうち少なくとも１つ」又は「Ａ、Ｂ、及びＣ等のうち１つ以上」と類似の規定が用いられている例において、一般に、そのような構造は、Ａ単独、Ｂ単独、Ｃ単独、Ａ及びＢ共に、Ａ及びＣ共に、Ｂ及びＣ共に、又はＡ、Ｂ、及びＣ共に等を含むことが意図される。
【００８９】
さらに、明細書においてか、特許請求の範囲においてか、又は図面においてかにかかわらず、２つ以上の代替的な用語を提示するいかなる分離的なワード又はフレーズも、用語のうち１つ、用語のうちいずれか、又は双方の用語を含む可能性を考慮するよう理解されるべきである。例えば、フレーズ「Ａ又はＢ」は、「Ａ」又は「Ｂ」又は「Ａ及びＢ」の可能性を含むよう理解されるべきである。
【００９０】
本開示に記載された全ての例及び条件付き言語は、本開示と発明者が当該分野を促進するために寄与した概念とを理解する際に読者を助けるための教育的目的を意図されており、そのような具体的に記載された例及び条件への限定を伴わないとみなされるべきである。本開示の実施形態が詳細に記載されたが、本開示の主旨及び範囲から逸脱することなく、種々の変更、置換、及び改変をこれに行うことができる。
【図１】
2020091865.tif 000005
【図２】
2020091865.tif 000006
【図３】
2020091865.tif 000007
【図４】
2020091865.tif 000008
【図５】
2020091865.tif 000009
【図６】
2020091865.tif 000010