(57)【要約】      （修正有）【課題】アプリケーション・プログラミング・インターフェースのドキュメンテーションに注釈を付ける。【解決手段】方法は、一つまたは複数のＡＰＩフォーマットのためのスタイル構成を示すユーザー入力を受領し、スタイル構成を表すデータを含むスタイル・ファイルを生成する。次に、ＡＰＩオブジェクトを含むＡＰＩドキュメンテーションを受領し、関連するＡＰＩフォーマットを決定し、ＡＰＩフォーマットが類似性閾値を満たすことに応答して、ＡＰＩドキュメンテーションを表すデータを含む一時ファイルを生成する。また、スタイル・ファイルおよび一時ファイルに基づくデータを含むか、スタイル・ファイルおよび一時ファイルの一部を含むように表示ファイルを生成する。表示ファイルに基づいてＡＰＩドキュメンテーションを表示するＧＵＩの表示を指揮する。各ＡＰＩオブジェクトは、スタイル構成に従ったフォーマットを含むように表示される。【選択図】図７
2020187733.tif 000002
【特許請求の範囲】
【請求項１】
一つまたは複数のアプリケーション・プログラミング・インターフェース（API）フォーマットについてのスタイル構成を示すユーザー入力を受領し；
前記ユーザー入力において示されたスタイル構成を表わすデータを含むスタイル・ファイルを生成し；
複数のAPIオブジェクトを含むAPIドキュメンテーションを受領し；
前記APIドキュメンテーションに関連するAPIフォーマットを決定し；
前記APIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットに関して類似性閾値を満たすことに応答して：
前記APIドキュメンテーションを表わすデータを含む一時ファイルを生成する段階；
前記スタイル・ファイルおよび前記一時ファイルに基づくデータを含む表示ファイルを生成する段階であって、前記表示ファイルは、前記スタイル・ファイルの少なくとも一部および前記一時ファイルの少なくとも一部を含むように生成される、段階；および
前記表示ファイルに基づいて前記APIドキュメンテーションを表示するグラフィカル・ユーザー・インターフェース（GUI）の表示画面上の表示を指揮する段階でって、前記複数のAPIオブジェクトの各APIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従ったフォーマットを含むよう前記GUIを介して表示される、段階を実行することを含む方法。
【請求項２】
請求項１記載の方法であって、さらに：
前記APIドキュメンテーションに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階であって、前記APIドキュメンテーションに対して行なわれる前記一つまたは複数の注釈付けは、前記複数のAPIオブジェクトに一つまたは複数の追加的なAPIオブジェクトを追加することを含む、段階と；
前記複数のAPIオブジェクトに前記一つまたは複数の追加的なAPIオブジェクトを追加するために、前記一時ファイルに注入される一つまたは複数の関数を表わすデータを含む注入ファイルを生成する段階と；
前記一つまたは複数の関数を表わすデータを前記一時ファイルに注入する段階と；
前記一つまたは複数の関数を表わす注入されたデータを含む前記一時ファイルおよび前記注入ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記追加的なAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従って前記GUIを介して表示される、段階と；
前記複数のAPIオブジェクトおよび前記追加的なAPIオブジェクトを含むAPI仕様を機械可読フォーマットで生成する段階とを含む、
方法。
【請求項３】
請求項１記載の方法であって、さらに：
前記複数のAPIオブジェクトのうちの一つまたは複数のAPIオブジェクトに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階と；
前記一時ファイルに適用される一つまたは複数の関数を表わすデータを含むアプリケーション・ファイルを生成する段階と；
前記一時ファイルに前記一つまたは複数の関数を適用する段階であって、該一つまたは複数の関数が前記一時ファイルに適用されることが、前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わすデータを更新する、段階と；
前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わす更新されたデータを含む前記一時ファイルおよび前記アプリケーション・ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記複数のAPIオブジェクトの注釈付けされた一つまたは複数のAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従うフォーマットを含むよう、前記GUIを介して表示される、段階と；
前記複数の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ドキュメンテーションは第1のAPIドキュメンテーションであり、前記複数のAPIオブジェクトは第1の複数のAPIオブジェクトであり、前記アプリケーション・ファイルは第1のアプリケーション・ファイルであり、前記一時ファイルは第1の一時ファイルであり、当該方法はさらに：
第2の複数のAPIオブジェクトを含む第2のAPIドキュメンテーションを受領し；
前記第2のAPIドキュメンテーションに関連するAPIフォーマットを決定し；
前記第2のAPIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットと同じであるまたは類似していることに応答して：
前記第2の複数のAPIオブジェクトの一つまたは複数の関係したAPIオブジェクトを識別する段階であって、前記第2の複数のAPIオブジェクトの前記一つまたは複数の関係したAPIオブジェクトは、注釈付けされるべき前記第1の複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトに関係している、段階と；
前記第2のAPIドキュメンテーションを表わすデータを含む第2の一時ファイルを生成する段階と；
前記第2の一時ファイルに適用される一つまたは複数の関数を表わすデータを含む第2のアプリケーション・ファイルを生成する段階と；
前記一つまたは複数の関数を前記第2の一時ファイルに自動的に適用する段階であって、前記一つまたは複数の関数は、前記第2の複数のAPIオブジェクトの少なくとも一つのAPIオブジェクトを表わすデータを更新する、段階とを実行することを含む、
方法。
【請求項７】
請求項３記載の方法であって、前記APIドキュメンテーションは、一つまたは複数のハイパーテキスト・マークアップ言語（HTML）テーブルも含み、前記複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトに対して行なわれる前記一つまたは複数の注釈付けは、前記複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトを、前記HTMLテーブルのうちの少なくとも一つのHTMLテーブルの一つまたは複数の行、列、セル、またはそれらの何らかの組み合わせと関連付けることを含む、方法。
【請求項８】
命令を記憶するように構成された一つまたは複数のコンピュータ可読記憶媒体と：
前記一つまたは複数のコンピュータ可読記憶媒体に通信上結合されたプロセッサとを有するシステムであって、前記プロセッサは、前記命令の実行に応答して、当該システムにAPIドキュメンテーションの注釈付けのために表示画面上にGUIを表示する動作を実行させるよう構成されており、前記動作は：
一つまたは複数のAPIフォーマットについてのスタイル構成を示すユーザー入力を受領し；
前記ユーザー入力において示された前記スタイル構成を表わすデータを含むスタイル・ファイルを生成し；
複数のAPIオブジェクトを含むAPIドキュメンテーションを受領し；
前記APIドキュメンテーションに関連するAPIフォーマットを決定し；
前記APIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットに関して類似性閾値を満たすことに応答して：
前記APIドキュメンテーションを表わすデータを含む一時ファイルを生成する段階；
前記スタイル・ファイルおよび前記一時ファイルに基づくデータを含む表示ファイルを生成する段階であって、前記表示ファイルは、前記スタイル・ファイルの少なくとも一部および前記一時ファイルの少なくとも一部を含むように生成される、段階；および
前記表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの前記表示画面上の表示を指揮する段階でって、前記複数のAPIオブジェクトの各APIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従ったフォーマットを含むよう前記GUIを介して表示される、段階を含む、
システム。
【請求項９】
請求項８記載のシステムであって、前記動作がさらに：
前記APIドキュメンテーションに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階であって、前記APIドキュメンテーションに対して行なわれる前記一つまたは複数の注釈付けは、前記複数のAPIオブジェクトに一つまたは複数の追加的なAPIオブジェクトを追加することを含む、段階と；
前記複数のAPIオブジェクトに前記一つまたは複数の追加的なAPIオブジェクトを追加するために、前記一時ファイルに注入される一つまたは複数の関数を表わすデータを含む注入ファイルを生成する段階と；
前記一つまたは複数の関数を表わすデータを前記一時ファイルに注入する段階と；
前記一つまたは複数の関数を表わす注入されたデータを含む前記一時ファイルおよび前記注入ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記追加的なAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従って前記GUIを介して表示される、段階と；
前記複数のAPIオブジェクトおよび前記追加的なAPIオブジェクトを含むAPI仕様を機械可読フォーマットで生成する段階とを含む、
システム。
【請求項１０】
請求項８記載のシステムであって、前記動作がさらに：
前記複数のAPIオブジェクトのうちの一つまたは複数のAPIオブジェクトに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階と；
前記一時ファイルに適用される一つまたは複数の関数を表わすデータを含むアプリケーション・ファイルを生成する段階と；
前記一時ファイルに前記一つまたは複数の関数を適用する段階であって、該一つまたは複数の関数が前記一時ファイルに適用されることが、前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わすデータを更新する、段階と；
前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わす更新されたデータを含む前記一時ファイルおよび前記アプリケーション・ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記複数のAPIオブジェクトの注釈付けされた一つまたは複数のAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従うフォーマットを含むよう、前記GUIを介して表示される、段階と；
前記複数の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ドキュメンテーションは第1のAPIドキュメンテーションであり、前記複数のAPIオブジェクトは第1の複数のAPIオブジェクトであり、前記アプリケーション・ファイルは第1のアプリケーション・ファイルであり、前記一時ファイルは第1の一時ファイルであり、前記動作はさらに：
第2の複数のAPIオブジェクトを含む第2のAPIドキュメンテーションを受領し；
前記第2のAPIドキュメンテーションに関連するAPIフォーマットを決定し；
前記第2のAPIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットと同じであるまたは類似していることに応答して：
前記第2の複数のAPIオブジェクトの一つまたは複数の関係したAPIオブジェクトを識別する段階であって、前記第2の複数のAPIオブジェクトの前記一つまたは複数の関係したAPIオブジェクトは、注釈付けされるべき前記第1の複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトに関係している、段階と；
前記第2のAPIドキュメンテーションを表わすデータを含む第2の一時ファイルを生成する段階と；
前記第2の一時ファイルに適用される一つまたは複数の関数を表わすデータを含む第2のアプリケーション・ファイルを生成する段階と；
前記一つまたは複数の関数を前記第2の一時ファイルに自動的に適用する段階であって、前記一つまたは複数の関数は、前記第2の複数のAPIオブジェクトの少なくとも一つのAPIオブジェクトを表わすデータを更新する、段階とを実行することを含む、
システム。
【請求項１４】
請求項１０記載のシステムであって、前記APIドキュメンテーションは、一つまたは複数のHTMLテーブルも含み、前記複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトに対して行なわれる前記一つまたは複数の注釈付けは、前記複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトを、前記HTMLテーブルのうちの少なくとも一つのHTMLテーブルの一つまたは複数の行、列、セル、またはそれらの何らかの組み合わせと関連付けることを含む、システム。
【請求項１５】
実行されることに応答して、システムに動作を実行させる命令を記憶するように構成された一つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記動作は：
一つまたは複数のAPIフォーマットについてのスタイル構成を示すユーザー入力を受領し；
前記ユーザー入力において示された前記スタイル構成を表わすデータを含むスタイル・ファイルを生成し；
複数のAPIオブジェクトを含むAPIドキュメンテーションを受領し；
前記APIドキュメンテーションに関連するAPIフォーマットを決定し；
前記APIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットに関して類似性閾値を満たすことに応答して：
前記APIドキュメンテーションを表わすデータを含む一時ファイルを生成する段階；
前記スタイル・ファイルおよび前記一時ファイルに基づくデータを含む表示ファイルを生成する段階であって、前記表示ファイルは、前記スタイル・ファイルの少なくとも一部および前記一時ファイルの少なくとも一部を含むように生成される、段階；および
前記表示ファイルに基づいて前記APIドキュメンテーションを表示するGUIの表示画面上の表示を指揮する段階でって、前記複数のAPIオブジェクトの各APIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従ったフォーマットを含むよう前記GUIを介して表示される、段階を含む、
一つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項１６】
請求項１５記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記動作がさらに：
前記APIドキュメンテーションに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階であって、前記APIドキュメンテーションに対して行なわれる前記一つまたは複数の注釈付けは、前記複数のAPIオブジェクトに一つまたは複数の追加的なAPIオブジェクトを追加することを含む、段階と；
前記複数のAPIオブジェクトに前記一つまたは複数の追加的なAPIオブジェクトを追加するために、前記一時ファイルに注入される一つまたは複数の関数を表わすデータを含む注入ファイルを生成する段階と；
前記一つまたは複数の関数を表わすデータを前記一時ファイルに注入する段階と；
前記一つまたは複数の関数を表わす注入されたデータを含む前記一時ファイルおよび前記注入ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記追加的なAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従って前記GUIを介して表示される、段階と；
前記複数のAPIオブジェクトおよび前記追加的なAPIオブジェクトを含むAPI仕様を機械可読フォーマットで生成する段階とを含む、
一つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項１７】
請求項１５記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記動作がさらに：
前記複数のAPIオブジェクトのうちの一つまたは複数のAPIオブジェクトに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階と；
前記一時ファイルに適用される一つまたは複数の関数を表わすデータを含むアプリケーション・ファイルを生成する段階と；
前記一時ファイルに前記一つまたは複数の関数を適用する段階であって、該一つまたは複数の関数が前記一時ファイルに適用されることが、前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わすデータを更新する、段階と；
前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わす更新されたデータを含む前記一時ファイルおよび前記アプリケーション・ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記複数のAPIオブジェクトの注釈付けされた一つまたは複数のAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従うフォーマットを含むよう、前記GUIを介して表示される、段階と；
前記複数の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ドキュメンテーションは第1のAPIドキュメンテーションであり、前記複数のAPIオブジェクトは第1の複数のAPIオブジェクトであり、前記アプリケーション・ファイルは第1のアプリケーション・ファイルであり、前記一時ファイルは第1の一時ファイルであり、前記動作はさらに：
第2の複数のAPIオブジェクトを含む第2のAPIドキュメンテーションを受領し；
前記第2のAPIドキュメンテーションに関連するAPIフォーマットを決定し；
前記第2のAPIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットと同じであるまたは類似していることに応答して：
前記第2の複数のAPIオブジェクトの一つまたは複数の関係したAPIオブジェクトを識別する段階であって、前記第2の複数のAPIオブジェクトの前記一つまたは複数の関係したAPIオブジェクトは、注釈付けされるべき前記第1の複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトに関係している、段階と；
前記第2のAPIドキュメンテーションを表わすデータを含む第2の一時ファイルを生成する段階と；
前記第2の一時ファイルに適用される一つまたは複数の関数を表わすデータを含む第2のアプリケーション・ファイルを生成する段階と；
前記一つまたは複数の関数を前記第2の一時ファイルに自動的に適用する段階であって、前記一つまたは複数の関数は、前記第2の複数の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ドキュメンテーションを表示するグラフィカル・ユーザー・インターフェース（GUI）の、表示画面上での表示を指令することを含んでいてもよい。前記複数のAPIオブジェクトの各APIオブジェクトは、ユーザー入力に示されたスタイル構成に従ったフォーマットを含むように、GUIを介して表示されてもよい。
【０００５】
実施形態の目的および利点は、少なくとも、特許請求の範囲において特に指摘された要素、特徴、および組み合わせによって実現され、達成される。上記の一般的な説明および以下の詳細な説明はいずれも例示的かつ説明的であり、制約するものではない。
【図面の簡単な説明】
【０００６】
例示的な実施形態は、添付の図面を使用することを通じて、さらなる具体性および詳細さをもって記述および説明される:
【０００７】
【図１】統合APIドキュメンテーション注釈付け技法が実装されうる例示的な動作環境を示す。
【０００８】
【図２】図1の動作環境で実装されうる統合APIドキュメンテーション注釈付けプロセスのブロック図を示す。
【０００９】
【図３Ａ】図1のコンピューティング装置において実装されうる例示的な統合APIドキュメンテーションの選択ボタンおよびツリー・ビューを含むグラフィカル・ユーザー・インターフェース（GUI）のスクリーンショットを示す。
【図３Ｂ】図1のコンピューティング装置において実装されうる例示的な統合APIドキュメンテーションの選択ボタンおよびツリー・ビューを含むグラフィカル・ユーザー・インターフェース（GUI）のスクリーンショットを示す。
【００１０】
【図４Ａ】図1のコンピューティング装置において実装されうる例示的な統合APIドキュメンテーションを表示しているGUIのスクリーンショットを示す。
【図４Ｂ】図1のコンピューティング装置において実装されうる例示的な統合APIドキュメンテーションを表示しているGUIのスクリーンショットを示す。
【００１１】
【図５Ａ】図1のコンピューティング装置において実装されうる例示的な統合APIドキュメンテーションに注釈付けするための選択フィールドを表示しているGUIのスクリーンショットを示す。
【図５Ｂ】図1のコンピューティング装置において実装されうる例示的な統合APIドキュメンテーションに注釈付けするための選択フィールドを表示しているGUIのスクリーンショットを示す。
【００１２】
【図６】例示的なコンピューティング・システムのブロック図である。
【００１３】
【図７】みな本開示に記載される少なくとも一つの実施形態に従った、GUIを介して表示画面上にAPIドキュメンテーションを表示する例示的な方法のフローチャートを示す。
【発明を実施するための形態】
【００１４】
アプリケーション・プログラミング・インターフェース（API）は年々増加し、それとともに、APIを説明するAPIドキュメンテーションの数も年々増加している。さらに、同じAPIについて、ソフトウェア・コンポーネントが異なるフォーマットを使用してどのように該APIと対話するかを記述する異なるAPIドキュメンテーションが生成されることがある。たとえば、APIドキュメンテーションは、APIオブジェクトのラベル付けのバリエーションまたは他の相違点を含みうる。もう一つの例として、任意的な情報が、異なるAPIドキュメンテーション（たとえば、APIのプライバシーを記述するための「x-privacy」）、それらのAPIドキュメンテーション内のAPIオブジェクト・ラベル、またはAPIパラメータ・ラベルに追加されてもよい。
【００１５】
APIドキュメンテーションからAPIオブジェクトを含む情報を抽出するために、機械学習（ML）システムが使用されてもよい。加えて、MLシステムは、一様にフォーマットされたAPIのための統合APIドキュメンテーションを生成してもよい。たとえば、MLシステムは、APIドキュメンテーションから、APIエンドポイント、ハイパーテキスト転送プロトコル（HTTP）動詞関数、パラメータおよび応答を含むAPI属性、または他の任意の適切な情報を抽出することができる。さらに、いくつかの実施形態では、MLシステムは、オープンAPI仕様（open  API  specification、OAS）フォーマットに従ってAPIのための統合APIドキュメンテーションを生成してもよい。いくつかの実施形態では、MLシステムは、APIドキュメンテーションから無効な情報を抽出することがある。たとえば、MLシステムはAPIオブジェクトの無効なラベルを抽出することがある。MLシステムによって抽出された無効な情報のため、統合APIドキュメンテーションも無効な情報を含むことがありうる。さらに、統合APIドキュメンテーションに基づいて生成されたAPI仕様も、無効な情報が含む可能性があり、そのため、ソフトウェア・コンポーネントがAPIと対話するときにエラーが発生する可能性がある。
【００１６】
いくつかのMLシステムは、抽出された情報を検証するための動作を実行してもよい。たとえば、いくつかのMLシステムは、抽出されたAPIオブジェクトまたは関係した情報を使用して、関連したAPIを呼び出すことによって、抽出されたAPIオブジェクトまたは関係した情報を検証してもよい。いくつかの実施形態では、APIは、抽出されたAPIオブジェクトまたは関係した情報を使用するMLシステムによる呼び出しに応答して、期待されるまたは正しい応答を提供しうるが、それでも統合APIドキュメンテーションが無効な情報を含んでいることがありうる。たとえば、APIは、誤って抽出されたパラメータ名を含む、MLシステムによる呼び出しに対して、期待されるまたは正しい応答を提供することがありうる。
【００１７】
無効な情報に注釈付けしたり、訂正したりするためのいくつかの技術は、ユーザーが、統合されたAPIドキュメンテーション内の無効な情報に注釈付けできるようにしうる。しかしながら、これらの技術は、MLアルゴリズムを更新または改良するためにMLシステムにフィードバックを提供することができないことがある。加えて、いくつかの技術は、APIオブジェクト、ラベル、関係した情報、またはそれらの組み合わせに関する追加的なフォーマッティングおよび／または情報なしに、統合APIドキュメンテーションを表示しうる。これらの技術は、その使用を、特定のAPIまたはAPIドキュメンテーションになじみのあるユーザーに限定することがありうる。たとえば、追加的なフォーマッティングおよび／または情報なしにユーザーが統合APIドキュメンテーションをレビューし注釈付けすることは、これらの技術の使用を、統合APIドキュメンテーションにおける特定の用語または特定の関連するAPIになじみのあるユーザーに限定することがありうる。
【００１８】
本開示に記載されるさまざまな実施形態によれば、表示画面上に表示されるグラフィカル・ユーザー・インターフェース（GUI）は、ユーザー入力によって示されるフォーマッティングに従って、統合APIドキュメンテーションを表示しうる。さらに、表示画面に表示されるGUIは、統合APIドキュメンテーションに注釈付けし、MLシステムにフィードバックを提供するステップを通じて、ユーザーをガイドしうる。同様に、表示画面上に表示されるGUIは、関係したAPIオブジェクト、関係した統合APIドキュメンテーション、またはそれらの何らかの組み合わせの注釈付けを自動化する（たとえば、自動的に注釈付けする）ための注釈付けプロファイルを生成するステップを通じて、ユーザーをガイドしてもよい。
【００１９】
いくつかの実施形態では、諸APIフォーマットについてのスタイル構成（style  configuration）を示すユーザー入力が受領されてもよい。いくつかの実施形態では、ユーザー入力は、種々の型のAPIオブジェクトまたは統合APIドキュメンテーションに含まれる他の情報を表示するためのフォーマットの型を示してもよい。たとえば、ユーザー入力は、第1のAPIオブジェクト型が、関連付けられたテキストの緑色のハイライトをもって表示され、第2のAPIオブジェクト型が、関連付けられたテキストの黄色のハイライトをもって表示されることを示してもよい。
【００２０】
いくつかの実施形態では、スタイル・ファイルが生成されてもよい。スタイル・ファイルは、ユーザー入力において示されるスタイル構成を表わすデータを含んでいてもよい。加えて、統合APIドキュメンテーションが受領されてもよい。統合APIドキュメンテーションに関連するAPIフォーマットが決定されてもよい。統合APIドキュメンテーションに関連するAPIフォーマットが、ユーザー入力における少なくとも一つのAPIフォーマットについて類似性閾値を満たす場合、一時ファイルが生成されてもよい。一時ファイルは、APIドキュメンテーションを表わすデータを含んでいてもよい。加えて、表示ファイルが生成されてもよい。表示ファイルは、スタイル・ファイルおよび一時ファイルに基づくデータを含んでいてもよい。たとえば、いくつかの実施形態では、表示ファイルは、スタイル・ファイルの少なくとも一部と、一時ファイルの少なくとも一部とを含んでいてもよい。いくつかの実施形態では、GUIは、表示画面上に表示されてもよい。GUIは、表示ファイルに基づいて、統合APIドキュメンテーションを表示してもよい。たとえば、統合APIドキュメンテーションにおけるAPIオブジェクトは、スタイル構成に従ったフォーマットを含むように表示されてもよい。
【００２１】
あるいはまた、いくつかの実施形態では、統合APIドキュメンテーションに関連するAPIフォーマットが、ユーザー入力における少なくとも一つのAPIフォーマットについての前記類似性閾値を満たさない場合、GUIは、表示画面上に、統合APIドキュメンテーションに関連するAPIフォーマットについてのスタイル構成を示す追加的なユーザー入力の要求を表示してもよい。
【００２２】
本開示に記載される実施形態の潜在的な恩恵は、複数のAPIドキュメンテーションから抽出された情報に基づいて、統合されたAPIドキュメンテーションを信頼性をもって生成することを含みうる。本開示に記載される実施形態の他の潜在的な恩恵は、特定のAPIまたは特定のAPIフォーマットになじみのないユーザーが、統合APIドキュメンテーションに注釈付けできるようにすることを含みうる。同様に、本明細書に記載される実施形態の潜在的な恩恵は、関係した統合APIドキュメンテーションの注釈付けの自動化（たとえば、自動注釈付け）を含みうる。
【００２３】
本開示のこれらの実施形態および他の実施形態は、添付の図面を参照して説明される。図において、同様の番号を有する事項は、特に断わりのない限り、同様の構造および機能を示す。
【００２４】
図1は、統合APIドキュメンテーション注釈付け技法が実装されうる動作環境100の例を示す。動作環境100は、APIドキュメンテーション注釈付け技法を実行するように構成されてもよいコンピューティング装置102を含んでいてもよい。動作環境100は、表示画面112、ネットワーク114、およびAPIリポジトリ120をも含んでいてもよい。
【００２５】
コンピューティング装置102は、フォーマット・モジュール103、機械学習モジュール104（「MLモジュール104」）、ドキュメンテーション・ビューア・モジュール107、GUIドライバ108、および自動化モジュール110を含んでいてもよい。フォーマット・モジュール103、MLモジュール104、ドキュメンテーション・ビューア・モジュール107、GUIドライバ108、および自動化モジュール110は、以下でより詳細に説明するように、統合APIドキュメンテーションに注釈付けするために、ウェブ注釈付けツールAPI（web  annotation  tool  API、WATAPI）に関連するステップおよびプロセスを実装するように構成されてもよい。コンピューティング装置102、APIリポジトリ120、またはそれらのいくつかの組み合わせは、ネットワーク114を介して情報およびデータを通信しうる。コンピューティング装置102およびAPIリポジトリ120は、以下に簡単に説明される。
【００２６】
ネットワーク114は、動作環境100の構成要素の任意のもの（たとえば、102および120）の間で信号を通信するように構成された任意の通信ネットワークを含みうる。ネットワーク114は、有線または無線でありうる。ネットワーク114は、スター構成、トークンリング構成、または他の好適な構成を含む多数の構成を有しうる。さらに、ネットワーク114は、ローカル・エリア・ネットワーク（LAN）、ワイド・エリア・ネットワーク（WAN）（たとえばインターネット）、および／または、そこを通じて複数の装置が通信しうる他の相互接続されたデータ経路を含んでいてもよい。いくつかの実施形態では、ネットワーク114は、ピアツーピア・ネットワークを含んでいてもよい。ネットワーク114はまた、多様な異なる通信プロトコルにおけるデータの通信を可能にしうる遠隔通信ネットワークの一部に結合され、またはこれを含むことができる。
【００２７】
いくつかの実施形態では、ネットワーク114は、BLUETOOTH（登録商標）通信ネットワーク、Z-Wave（登録商標）通信ネットワーク、Insteon（登録商標）通信ネットワーク、EnOcean（登録商標）通信ネットワーク、Wi-Fi通信ネットワーク、ZigBee通信ネットワーク、HomePlug通信ネットワーク、電力線通信（Power-line  Communication、PLC）の通信ネットワーク、メッセージ・キュー・テレメトリ・トランスポート（message  queue  telemetry  transport、MQTT）通信ネットワーク、MQTT-センサー（MQTT-S）通信ネットワーク、制約されたアプリケーション・プロトコル（constrained  application  protocol、CoAP）通信ネットワーク、代表状態転送アプリケーション・プロトコル・インターフェース（representative  state  transfer  application  protocol  interface、REST  API）通信ネットワーク、拡張可能なメッセージング・プレゼンス・プロトコル（extensible  messaging  and  presence  protocol、XMPP）通信ネットワーク、セルラー通信ネットワーク、任意の同様の通信ネットワーク、またはデータを送受信するためのそれらの任意の組み合わせを含む、またはそれらを含むように構成される。ネットワーク114において通信されるデータは、ショートメッセージサービス（SMS）、マルチメディアメッセージサービス（MMS）、ハイパーテキスト転送プロトコル（HTTP）、直接データ接続、無線アプリケーション・プロトコル（WAP）、電子メール、スマートエネルギープロファイル（SEP）、ECHONET  Lite、OpenADR、またはコンピューティング装置102およびAPIリポジトリ120と一緒に実装されうる他の任意のプロトコルを介して通信されるデータを含んでいてもよい。
【００２８】
表示画面112は、GUIをユーザーに対して表示して、統合APIドキュメンテーションに注釈付けし、注釈付けされたAPI仕様116を生成するプロセスを通じて、ユーザーをガイドしうる。表示画面112上に表示されるGUIは、ユーザーがAPIオブジェクト、APIドキュメンテーション、またはAPIドキュメンテーション内に含まれる他の適切なテキストをロード、フィルタリング、閲覧、および注釈付けすることを可能にしうる。さらに、表示画面112上に表示されるGUIは、ユーザーが、種々のAPIおよびAPIドキュメンテーション・ページを解析〔パース〕することを可能にしうる。GUIは、ウェブ・ブラウザーまたは、コンピューティング装置102にとってネイティブなアプリケーションを通じて、表示画面112上に表示されてもよい。
【００２９】
APIリポジトリ120は、任意のメモリまたはデータ記憶を含んでいてもよく、これらは、図6に関連して後述されるメモリ652と同様であってもよい。APIリポジトリ120は、動作環境100内の他の構成要素（たとえば、102）がAPIリポジトリ120と通信できるように、ネットワーク通信機能を含んでいてもよい。APIリポジトリ120は、任意のコンピュータ・ベースまたはハードウェア・ベースのコンピューティング・システムを含みうる。APIリポジトリ120は、APIドキュメンテーションが格納されるように構成されるシステムまたは装置を含んでいてもよい。APIリポジトリ120は、人間が読むことができるフォーマットでAPIを記述するAPIドキュメンテーションを含んでいてもよい。
【００３０】
コンピューティング装置102は、プロセッサ、メモリ、および通信能力を含むコンピュータ・ベースのハードウェア装置を含んでいてもよい。コンピューティング装置102は、動作環境100の他の構成要素（たとえば、120）とデータを通信するためにネットワーク114に結合されてもよい。コンピューティング装置102のいくつかの例は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ等を含みうる。コンピューティング装置102は、プロセッサ・ベースのコンピューティング装置を含んでいてもよい。たとえば、コンピューティング装置102は、ハードウェア・サーバーまたはサーバーとして機能するように構成された別のプロセッサ・ベースのコンピューティング装置を含んでいてもよい。
【００３１】
MLモジュール104は、APIリポジトリ120からのAPIドキュメンテーションにアクセスするまたはこれを受領するように構成されてもよい。いくつかの実施形態では、MLモジュール104は、コンピューティング・システム（たとえば、コンピューティング装置102）がAPIドキュメンテーションにアクセスするまたはこれを受領するために一つまたは複数の動作を実行できるようにするように構成されたコードおよびルーチンを含んでいてもよい。追加的または代替的に、MLモジュール104は、プロセッサ、マイクロプロセッサ（たとえば、一つまたは複数の動作のパフォーマンスを実行または制御するため）、フィールドプログラマブルゲートアレイ（FPGA）、または特定用途向け集積回路（ASIC）を含むハードウェアを使用して実装されてもよい。いくつかの他の例では、MLモジュール104は、ハードウェアおよびソフトウェアの組み合わせを使用して実装されてもよい。本開示において、MLモジュール104によって実行されると記載された動作は、MLモジュール104がシステム（たとえば、コンピューティング装置102）を指揮して実行させうる動作を含んでいてもよい。
【００３２】
APIドキュメンテーションは、異なるフォーマットを使用して同様のAPIを記述することがある。いくつかの実施形態では、MLモジュール104は、APIドキュメンテーションから情報を抽出してもよい。たとえば、MLモジュール104は、APIオブジェクト、APIパラメータ、API基準、APIエンドポイント、API動詞関数、パラメータおよび応答を含むAPI属性、またはそれらの何らかの組み合わせを抽出してもよい。MLモジュール104は、複数のAPIドキュメンテーションを統合APIドキュメンテーションに統合するために、APIオブジェクト、APIパラメータ、API基準、APIエンドポイント、API動詞関数、およびAPI属性を使用してもよい。
【００３３】
MLモジュール104によって抽出されうるコードの例は、次を含みうる：
【表１】
2020187733.tif 000003
このコード例において、テキスト「/users/{username}/favorites」は、このコード例に関連付けられたAPIオブジェクトのパスを含んでいてもよい。同様に、このコード例のテキスト「required:true,  type:'string',  description:'username',  in:'path',  name:'username'」は、APIオブジェクトのAPIパラメータ、パラメータの型、およびこのパラメータをどうやって関連するAPIに入力として提供するかを含んでいてもよい。さらに、このコード例では、テキスト「{-response:  {-200:  {」は、API応答オブジェクト型を表わしていてもよい。
【００３４】
いくつかの実施形態では、MLモジュール104は、米国特許出願第15/374,798号に記載されているように、情報を抽出し、統合APIドキュメンテーションを生成してもよく、同出願の内容は、その全体において本開示に組み込まれる。
【００３５】
さらに、いくつかの実施形態では、統合APIドキュメンテーションは、APIオブジェクトに関連付けられたハイパーテキスト・マークアップ言語（HTML）テーブルを含んでいてもよい。HTMLテーブルは、APIオブジェクトの属性を定義するHTMLテーブル・タグを含んでいてもよい。たとえば、HTMLテーブル・タグは、パラメータ、再取得（repossess）、APIエンドポイント、またはそれらの何らかの組み合わせを定義してもよい。
【００３６】
例示的な統合APIドキュメンテーションは、下記を含んでいてもよい：
BEG::response:table
エラーコード
400  Bad  Request〔無効な要求〕――リクエストが無効です
401  Unauthorized〔認証失敗〕――APIキーが間違っています
403  Forbidden〔禁止〕――要求された内容は、管理者専用であり隠されています
404  Not  Found〔みつからない〕――指定されたエンドポイントがみつかりません
409  Exceeded  usage  limit〔使用制限超過〕――プランの使用限界に達しました
429  Too  Many  Requests〔要求過多〕――多くの要求をしすぎています！もっとゆっくり！
500  Internal  Server  Error〔内部サーバー・エラー〕――サーバーに問題がありました。あとでもう一度試してください
503  Service  Unavailable〔サービス利用不能〕――メンテナンスのために一時的にオフラインになります。あとでもう一度お試しください
END::response:table
この例示的な統合APIドキュメンテーションにおいて、「BEG::response:table」および「END::response:table」はAPIオブジェクトとして同定されてもよく、「400  Bad  Request〔無効な要求〕――リクエストが無効です」、「401  Unauthorized〔認証失敗〕――APIキーが間違っています」、「403  Forbidden〔禁止〕――要求された内容は、管理者専用であり隠されています」、「404  Not  Found〔みつからない〕――指定されたエンドポイントがみつかりません」、「409  Exceeded  usage  limit〔使用制限超過〕――プランの使用限界に達しました」、「429  Too  Many  Requests〔要求過多〕――多くの要求をしすぎています！もっとゆっくり！」、「500  Internal  Server  Error〔内部サーバー・エラー〕――サーバーに問題がありました。あとでもう一度試してください」および「503  Service  Unavailable〔サービス利用不能〕――メンテナンスのために一時的にオフラインになります。あとでもう一度お試しください」は、ハイパーテキスト・マークアップ言語（HTML）テーブル・コンテンツとして同定されてもよい。
【００３７】
いくつかの実施形態では、MLモジュール104は、APIドキュメンテーションから無効な情報を抽出し、統合APIドキュメンテーションを生成して、そのため統合APIドキュメンテーションも無効な情報も含むことがある。統合APIドキュメンテーションの無効な情報のため、APIドキュメンテーションに基づいて生成されたAPI仕様も無効な情報を含む可能性があり、それは、API仕様を使って開発されたソフトウェア・コンポーネントが誤動作する原因となる可能性がある。統合APIドキュメンテーションに含まれる可能性のある無効な情報の例（本開示において「GET  objectの例」として論じられる）は、下記を含むことがありうる：
GET/now/table/{table
無効な情報の例は、APIオブジェクトに関連付けられた不完全なテキストを含むことがありうる。いくつかの実施形態では、フォーマット・モジュール103、GUIドライバ108、ドキュメンテーション・ビューア・モジュール107、自動化モジュール110、またはそれらの何らかの組み合わせが、表示画面112上のGUIを介して受信されたユーザー入力に基づいて、統合APIドキュメンテーションに注釈付けするように構成されうる。これについては下記でより詳細に論じる。
【００３８】
いくつかの実施形態では、フォーマット・モジュール103が、表示画面112上のGUIを介して、統合APIドキュメンテーションを表示するためのスタイル構成を示すユーザー入力を受け取ってもよい。いくつかの実施形態では、フォーマット・モジュール103は、コンピューティング・システム（たとえば、コンピューティング装置102）が、スタイル構成を示すユーザー入力を受領するための一つまたは複数の動作を実行できるようにするように構成されたコードおよびルーチンを含んでいてもよい。追加的または代替的に、フォーマット・モジュール103は、プロセッサ、マイクロプロセッサ（たとえば、一つまたは複数の動作を実行するまたはその実行を制御する）、FPGA、またはASICを含むハードウェアを使用して実装されてもよい。いくつかの他の例では、フォーマット・モジュール103は、ハードウェアおよびソフトウェアの組み合わせを使用して実装されてもよい。本開示において、フォーマット・モジュール103によって実行されると記載された動作は、フォーマット・モジュール103がシステム（たとえば、コンピューティング装置102）を指揮して実行させる動作を含んでいてもよい。
【００３９】
ユーザー入力は、異なるAPIフォーマットのためのスタイル構成を示しうる。たとえば、ユーザー入力は、OAS1.0、OAS2.0、OAS3.0、またはそれらの何らかの組み合わせのためのスタイル構成を示してもよい。加えて、スタイル構成は、異なるAPIオブジェクト定義に関連付けられるフォーマットを示してもよい。
【００４０】
スタイル構成（style  configuration）は、表示画面112上のGUIを介してAPIオブジェクトを表示するためのシェーディング、縁取り、ハイライト、フォント、または他の任意の適切な型のフォーマットを示しうる。フォーマット・モジュール103は、統合APIドキュメンテーション内のAPIオブジェクトにスタイル構成を適用するためのスタイル・ファイル（たとえば、構成ファイル）を生成してもよい。たとえば、スタイル・ファイルは、APIオブジェクト定義と、各APIオブジェクト定義についての関連付けられたフォーマットとのリストを含んでいてもよい。いくつかの実施形態では、スタイル・ファイルは、カスケード・スタイル・シート（CSS）コードでスタイル構成を記録してもよい。これらの実施形態および他の実施形態では、スタイル・ファイルは「WATAPI.css」とラベル付けされてもよい。例示的なスタイル・ファイルは下記を含みうる：
{
"schemes":  "0000FF,[],/oasschemes",
"host":  "",
"basePath":  "",
"info":  {
"title":  ""<
"version":  "",
"description":  ""
}
"securityDefinitions":  {
"basicAuthenticationSecurity":  "",
"apiKeySecutiry":  "",
"oauth2ImplicitSecurity":  ::,
"oauth2PasswordSecurity":  "",
"oauth2ApplicationSecurity":  "",
"oauth2AccessCodeSecurity":  ""
}
この例示的なスタイル・ファイルでは、テキスト"schemes"はAPIオブジェクト定義であってもよく、テキスト"#0000FF,[],/oas/schemes"はCSSコードに従ったフォーマット・スタイルを表わしてもよい。いくつかの実施形態では、スタイル・ファイルは、追加的なユーザー入力に基づいて更新されてもよい。たとえば、スタイル・ファイルは、追加的なAPIオブジェクト定義、フォーマット・スタイル、またはそれらの何らかの組み合わせを含むように更新されてもよい。
追加的な例示的なスタイル・ファイルは、下記を含んでいてもよい：
"info,  #FFFFFF:  #000000,  dict,  N,,  original"  :  {
"title,  #004400:  #FFFFFF,  string,  N,,  original":  "",
"version,  #007700:  #000000,  string,  N,,  original":  "0.0.0",  
"description,  #00AA00:  #000000,  string  N,,  original":  ""
}
"paths,  #FFFFFF  #000000,  dict,  N,,  original":  {
"endpoint,  #777700:  #000000,  dict,  Y,,  original":  {
"httpverb,  #AAAA00:  #000000,  dict,  Y,,  low":  {
"description,  #008888:  #000000,  string,  N,,  original":  "",  
"responses,  #FFFFFF:  #000000,  dict,  N,,  original":  {
"responsecode,  #AA00AA:  #FFFFFF,  dict,  Y,,  low":{
"description,  #BB00BB:  #FFFFFF,  string,  N,,  original":  "’’
}
}
"parameters,  #FFFFFF:  #000000,  list,  N,,  original":  [
{
"name,  #007777;  #FFFFFF,  string,  N,,  original":  "",  
"description,  #00AAAA:  #FFFFFF,  string,  N,,  original":  "",
"type,  #660066:  #FFFFFF,  string,  N,,  original":  "string",  
"required,  #770077:  #FFFFFF,  boolean,  N,,  original":  true,
"in,  #880088:  #FFFFFF,  string,  N,,  original":  "path"
}
]
}
}
},
"swagger,  #777777:  #000000,  string,  N,,  original":"2.0"
}
この追加的な例示的なスタイル・ファイルにおいて、テキスト"info"、"title"、"version"、"description"、"paths"、"endpoint"、"httpverbs"、"description"、"responses"、"responsecode"、"description"、"parameters"、"name"、"type"、"required"、"swagger"および"in"は、APIオブジェクトの関連付けられたAPIパラメータのキー名を表わしうる。APIオブジェクトのAPIパラメータのキー名は、追加的な例示的なスタイル・ファイルを使って生成されるAPI仕様に含められてもよい。追加的な例示的なスタイル・ファイルにおいて、テキスト"#FFFFFF"、"#000000"、"#004400"、"#007700"、"#00AA00"、"#777700"、"#AAAA00"、"#008888"、"#AA00AA"、"#BB00BB"、"#007777"、"#00AAAA"、"#660066"、"770077"、"777777"および"880088"は、CSSコードに従って、関連付けられたAPIパラメータのフォーマット・スタイルを表わしてもよい。さらに、追加的な例示的なスタイル・ファイルにおいて、テキスト「dict」、「string」、「list」、「boolean」は、APIオブジェクトの関連付けられたAPIパラメータのデータ型を表わしうる。さらに、追加的な例示的なスタイル・ファイルにおいて、テキスト「N」および「Y」は、APIオブジェクトの関連付けられたAPIパラメータの複数のバージョンが存在しうるかどうかを示しうる。追加的な例示的なスタイル・ファイルにおいて、テキスト「,,」は、追加的な例示的なスタイル・ファイルを使用して生成されるAPI仕様において、関連付けられたキー名が示されるかどうかを示しうる。たとえば、2つのコンマの間にテキストがない場合、追加的な例示的なスタイル・ファイルを使用して生成されたAPI仕様において、キー名は示されない。同様に、追加的な例示的なスタイル・ファイルンにおいて、テキスト「original」および「low」は、関連付けられたAPIパラメータのケース〔大文字／小文字〕情報を表わす。追加的な例示的なスタイル・ファイルに示されていなくても、関連付けられたAPIパラメータの追加的な例示的なケース情報が「high」を含んでいてもよい。
【００４１】
いくつかの実施形態では、スタイル構成を示すユーザー入力が受領されてもよく、スタイル・ファイルは、MLモジュール104が統合APIドキュメンテーションを生成するのに先立って、フォーマット・モジュール103によって生成されてもよい。他の実施形態では、フォーマット・モジュール103は、統合APIドキュメンテーションがMLモジュール104によって生成されるのに応答して、スタイル構成を示すユーザー入力を提供するようユーザーに要求してもよい。
【００４２】
GUIドライバ108は、統合APIドキュメンテーションおよびスタイル・ファイルを受領してもよい。いくつかの実施形態では、GUIドライバ108は、統合APIドキュメンテーションに関連するAPIフォーマットを決定してもよい。たとえば、GUIドライバ108は、統合APIドキュメンテーションが、OAS1.0、OAS2.0、OAS3.0、または他の任意の適切なAPIフォーマットと関連付けられるかどうかを判別してもよい。いくつかの実施形態では、統合APIドキュメンテーションに関連するAPIフォーマットは、フォーマット・モジュール103によって決定されて、スタイル構成を示すユーザー入力を提供するようにとのユーザーへの要求に含められてもよい。
【００４３】
いくつかの実施形態では、GUIドライバ108は、コンピューティング・システム（たとえば、コンピューティング装置102）が、統合APIドキュメンテーションおよびスタイル・ファイルを受領し、統合APIドキュメンテーションに関連するAPIフォーマットを決定するために一つまたは複数の動作を実行できるようにするように構成されたコードおよびルーチンを含んでいてもよい。代替的または代替的に、GUIドライバ108は、プロセッサ、マイクロプロセッサ（たとえば、一つまたは複数の動作を実行またはその実行を制御する）、FPGA、またはASICを含むハードウェアを使用して実装されてもよい。いくつかの他の例では、GUIドライバ108は、ハードウェアとソフトウェアの組み合わせを使用して実装されてもよい。本開示において、GUIドライバ108によって実行されるものとして記述される動作は、GUIドライバ108がシステム（たとえば、コンピューティング装置102）を指揮して実行させる動作を含んでいてもよい。
【００４４】
いくつかの実施形態では、GUIドライバ108は、統合APIドキュメンテーションに関連するAPIフォーマットがスタイル・ファイルの諸APIフォーマットに関して類似性閾値を満たすかどうかを判定してもよい。ある実施形態では、GUIドライバ108は、各APIについてユーザーによって作成された注釈の少なくとも一部を、APIドキュメンテーションの注釈付けされた部分の内容およびHTMLタグを含むプロバイダー・スキーマ（provider  schema）として、記録してもよい。APIドキュメンテーションの注釈付けされた部分の内容およびHTMLタグを記録することによって、GUIドライバ108は、注釈付けされた情報と注釈付けされた情報の内容との間の類似性を使って、統合APIドキュメンテーションにおいて欠けている何らかのAPIオブジェクトが注釈付けされうるかどうかを判定しうる。他の実施形態では、GUIドライバ108は、統合APIドキュメンテーションのタイトルがスタイル・ファイルの諸APIフォーマットに関連付けられたフォーマットと同じまたは類似のフォーマットであることに基づいて、統合APIドキュメンテーションに関連付けられたAPIフォーマットがAPIフォーマットに関して前記類似性閾値を満たす（たとえば、HTMLタグIDが注釈付けされたAPIオブジェクトのHTMLタグIDと同じまたは類似である）かどうかを判定してもよい。
【００４５】
統合APIドキュメンテーションに関連するAPIフォーマットが類似性閾値を満たすことに応答して、GUIドライバ108は一時ファイルを生成してもよい。一時ファイルは、統合APIドキュメンテーションの少なくとも一部を代表するデータを含んでいてもよい。いくつかの実施形態では、一時ファイル（temporary  file）は、統合されたAPIドキュメンテーションに含まれるAPIオブジェクトのリストを含んでいてもよい。いくつかの実施形態では、一時ファイルは、統合APIドキュメンテーションを表わすデータをHTMLコードにおいて記録してもよい。これらおよび他の実施形態において、一時ファイルは、WATAPI.HTMLとラベル付けされてもよい。
【００４６】
また、GUIドライバ108は、表示ファイルを生成してもよい。表示ファイルは、スタイル・ファイルおよび一時ファイルに基づいて生成されてもよい。いくつかの実施形態では、表示ファイルは、スタイル・ファイル、一時ファイル、またはそれらの何らかの組み合わせの少なくとも一部を含むように生成されてもよい。表示ファイルは、統合APIドキュメンテーションのAPIオブジェクトを、表示画面112上のGUIを介して、ツリー・ビューにおいて表示させてもよい。
【００４７】
さらに、表示ファイルは、統合APIドキュメンテーションのAPIオブジェクトを、表示画面112上のGUIを介して、諸スタイル構成に従って表示させてもよい。たとえば、スタイル・ファイルが、第1のAPIオブジェクト型（たとえば第1のAPI定義）のAPIオブジェクトが黄色のハイライトをもって表示されるべきであることを示す場合、統合APIドキュメンテーション内の任意のAPIオブジェクトは、関連付けられたテキストは黄色でハイライトされて、表示画面112上のGUIを介して表示されうる。よって、表示ファイルは、ユーザーが、表示画面112上に表示されたGUIを介して、統合されたAPIドキュメンテーション内に含まれる情報を閲覧し、これに注釈付けすることを許容しうる。いくつかの実施形態において、表示ファイルは、pythonプログラミング言語に従って生成されてもよい。これらおよび他の実施形態において、表示ファイルは、WATAPI.pyとラベル付けされてもよい。
【００４８】
表示画面112上に表示されるGUIは、ユーザーが異なるAPI、APIドキュメンテーション、APIドキュメンテーションのページ、またはそれらの何らかの組み合わせをブラウズすることを許容する複数のウィンドー、選択フィールド、またはそれらの何らかの組み合わせを含んでいてもよい。図3Aおよび3Bを参照すると、図示されたスクリーンショット300a-bは、選択ボタン335および339と、図1のコンピューティング装置102に実装されうる例示的な統合APIドキュメンテーションのAPIオブジェクトのツリー・ビュー337a〜bとを含むGUIを示す。図3Aに示されるように、選択ボタン339は、「次のAPI」ボタン、「前のAPI」ボタン、「次のページ」ボタン、「前のページ」ボタン、「OASオブジェクトを割り当て」ボタン、「JSONをエクスポート」ボタン、「割り当てをクリア」ボタン、および「OASオブジェクトを自動検出」ボタンを含んでいてもよい。
【００４９】
「次のAPI」ボタンは、異なるAPIに関連する統合APIドキュメンテーションを閲覧するためにユーザーによって選択されるよう構成されてもよい。「前のAPI」ボタンは、前に閲覧されたAPIに関連する統合APIドキュメンテーションを閲覧するためにユーザーによって選択されるよう構成されてもよい。「次のAPIページ」ボタンは、例示的な統合APIドキュメンテーションのその後の諸ページを閲覧するためにユーザーによって選択されるよう構成されてもよい。「前のAPIページ」ボタンは、例示的な統合APIドキュメンテーションの前の諸ページを閲覧するためにユーザーによって選択されるよう構成されてもよい。「OASオブジェクトを割り当て」ボタンは、統合APIドキュメンテーションの選択されたエリアの一部に諸APIオブジェクトを割り当てるためにユーザーによって選択されるよう構成されてもよい。「JSONをエクスポート」ボタンは、例示的な統合APIドキュメンテーションまたは例示的な統合APIドキュメンテーションに含まれるAPIオブジェクトのフォーマットに対してなされた注釈付けを保存するためにユーザーによって選択されるよう構成されてもよい。「割り当てをクリア」ボタンは、割り振られたAPIオブジェクト（たとえば選択されたAPIオブジェクト）をAPIドキュメンテーションから除去するためにユーザーによって選択されるよう構成されてもよい。「OASオブジェクトを自動検出」ボタンは、GUIを介して統合APIドキュメンテーションを取得、ロード、および閲覧するためにユーザーによって選択されて、統合APIドキュメンテーションが以前に注釈付けされていない統合APIドキュメンテーションに関係している場合に該統合APIドキュメンテーションに自動的に注釈付けするように構成されてもよい。
【００５０】
図3Bに示されるように、選択ボタン335は、「選択に新規オブジェクトを追加」ボタン、「自動注釈付け」ボタン、「テーブルを保存」ボタン、「注釈を削除」ボタン、「スキーマを選択に割り当て」ボタン、および「すべての注釈を保存」ボタンを含んでいてもよい。
【００５１】
「選択に新規オブジェクトを追加」ボタンは、APIオブジェクトのキーが繰り返し可能な場合、該APIオブジェクトをツリー・ビュー337a〜bに追加するためにユーザーによって選択されるよう構成されてもよい。「自動注釈付け」ボタンは、注釈付け構成よりAPIドキュメンテーションに自動的に注釈付けするためにユーザーによって選択されるよう構成されてもよい。「テーブルを保存」ボタンは、HTMLテーブルに注釈付けするためにユーザーによって選択されるよう構成されてもよく、それはHTMLテーブル全体を注釈付けしてもよい。「注釈を削除」ボタンは、APIオブジェクトに関連付けられないHTMLテーブルの行、列、またはセルを削除するためにユーザーによって選択されるよう構成されてもよい。「選択にスキーマを割り当て」ボタンは、注釈付け結果をツリー・ビュー337a〜bに保存するためにユーザーによって選択されるよう構成されてもよい。「すべての注釈を保存」ボタンは、すべての注釈を保存し、統合APIドキュメンテーションに基づいてAPI仕様を生成するためにユーザーによって選択されるように構成されてもよい。いくつかの実施形態では、API仕様は、JavaScript(登録商標)オブジェクト記法（JavaScript  object  notation、JSON）ファイルとして生成されてもよい。
【００５２】
図3Aおよび3Bに示されるように、ツリー・ビュー337a〜bは、現在閲覧されている例示的な統合APIドキュメンテーションに含まれるAPIオブジェクトのリストを含んでいてもよい。ツリー・ビュー337a〜bは、諸スタイル構成に従ってフォーマットされた諸APIオブジェクトを表示してもよい。諸選択フィールドは、諸APIオブジェクトがどのようにツリー・ビュー337a〜bに表示されるかを更新するために、ユーザーによって使用されてもよい。
【００５３】
図1に戻って参照すると、GUIドライバ108は、一時ファイルをドキュメンテーション・ビューア・モジュール107に提供してもよい。ドキュメンテーション・ビューア・モジュール107は、一時ファイルを使用して、統合APIドキュメンテーション全体を表示画面112に表示しうる。いくつかの実施形態では、ドキュメンテーション・ビューア・モジュール107は、一時ファイルを使用して、統合APIドキュメンテーション全体を表示画面112に表示するための一つまたは複数の動作を、コンピューティング・システム（たとえば、コンピューティング装置102）が実行できるようにするように構成されたコードおよびルーチンを含んでいてもよい。追加的または代替的に、ドキュメンテーション・ビューア・モジュール107は、プロセッサ、マイクロプロセッサ（たとえば、一つまたは複数の動作を実行するまたはその実行を制御する）、FPGA、またはASICを含むハードウェアを使用して実装されてもよい。いくつかの他の例では、ドキュメンテーション・ビューア・モジュール107は、ハードウェアとソフトウェアの組み合わせを用いて実装されてもよい。本開示において、ドキュメンテーション・ビューア・モジュール107によって実行されると記載される動作は、ドキュメンテーション・ビューア・モジュール107がシステム（たとえば、コンピューティング装置102）を指揮して実行させうる動作を含んでいてもよい。
【００５４】
いくつかの実施形態では、ドキュメンテーション・ビューア・モジュール107は、統合APIドキュメンテーション全体を、選択ボタン335、339およびツリー・ビュー337a〜bと同じウィンドーにおいて表示してもよい。他の実施形態では、ドキュメンテーション・ビューア・モジュール107は、統合APIドキュメンテーション全体を、選択ボタン335、339およびツリー・ビュー337a〜bとは異なるウィンドーで表示してもよい。さらに、ドキュメンテーション・ビューア・モジュール107は、諸スタイル構成に従ってフォーマットされた、統合APIドキュメンテーション内の各APIオブジェクトを表示してもよい。
【００５５】
図4Aを参照すると、図示されたスクリーンショット400aは、選択ボタン335、339およびツリー・ビュー337a〜bとは異なるウィンドーにおいて、例示的な統合APIドキュメンテーションを表示しているGUIを示している。例示的な統合APIドキュメンテーションは、無効な情報442および有効な情報440を含んでいてもよい。有効な情報440は、APIオブジェクトに関連する有効なテキストを含んでいてもよい。図4Aに示されるように、有効な情報440は、「Table  API」〔テーブルAPI〕を含んでいてもよく、ドット〔DOTS〕ハッシュマークを含むようにフォーマットされてもよい。無効な情報442は、APIオブジェクトに関連付けられた無効なテキストを含んでいてもよい。図4Aに示されるように、無効な情報442は、「GET/now/table/{table」を含んでいてもよく、ANSI31ハッシュマークを含むようにフォーマットされてもよい。図4Aに示された無効な情報442は、本開示において論じられるGET  objectの例に対応する。
【００５６】
図1に戻って参照すると、GUIドライバ108は、統合APIドキュメンテーションに対して行なわれるべき注釈付けを示すユーザー入力を受領するように構成されてもよい。たとえば、ユーザーは、ツリー・ビュー337a〜bからAPIオブジェクトを選択してもよく、表示画面112上に表示されたGUIを介して、APIオブジェクトに関連付けられたテキストを注釈してもよい（たとえば、ユーザーはテキストを追加する、テキストを除去するまたはAPIオブジェクトに関連付けられたテキストに対してその両方を行なってもよい）。別の例として、ユーザーは、表示画面112に表示されるGUIを介して、統合APIドキュメンテーションにAPIオブジェクトを追加してもよい。たとえば、ユーザーは、図3Bに示されるように、「選択に新規オブジェクトを追加」ボタンを選択してもよい。GUIは、APIオブジェクトを追加するために必要なAPIパラメータおよびその他の情報を追加するプロセスを通じてユーザーをガイドしてもよい。別の例として、ユーザーが「自動注釈付け」ボタンを選択する場合、GUIドライバ108が制御を引き継ぎ、ユーザーによって注釈付けされ、類似性に基づきAPIプロバイダーの現在のスキーマをチェックしてもよい。GUIドライバ108は、残りのAPIページおよびすべての関連性のあるAPIドキュメンテーションの少なくとも一部に注釈付けしてもよい。これについては下記でより詳細に論じる。
【００５７】
いくつかの実施形態では、ユーザーは、表示画面112上に表示されるGUIを介して、APIオブジェクトを選択し、それらのAPIオブジェクトにHTMLテーブル・タグを割り当ててもよい。たとえば、GUIは、HTMLテーブルの各セルのための選択フィールドを含んでいてもよい。ユーザーは、APIオブジェクトを選択し、それらの選択フィールドを使用して、そのAPIオブジェクトを諸HTMLテーブルの行、列、セル、またはそれらの何らかの組み合わせに関連付けてもよい。たとえば、ユーザーは、HTMLテーブルの第1列をパラメータ名として選択し、同じHTMLテーブルの第2列をパラメータ記述として選択してもよい。別の例として、ユーザーは、HTMLテーブルの一つまたは複数の行、列、セル、またはそれらの何らかの組み合わせを、APIオブジェクトに関連付けられないよう、選択解除してもよい。
【００５８】
図5A〜5Bを参照すると、図示されたスクリーンショット500a〜bは、図1のコンピューティング装置102に実装されうる例示的な統合APIドキュメンテーションに注釈を付けるための選択フィールド（selection  field）を表示するGUIを示している。図5Aに示されるように、GUIは、HTMLテーブル・アクションおよび保存アクション・フィールド544と、適用されるテーブル・アクション・フィールド546とを含んでいてもよい。さらに、図5Bに示されるように、GUIは、埋め込まれたツールチップ534を表示してもよい。埋め込まれたツールチップ534は、現在選択されているAPIオブジェクトの注釈を表示してもよい。同様に、図5Bに示されるように、ユーザーは、APIオブジェクトに関連付けるために、HTMLテーブルの第1列をパラメータ名として選択し、HTMLテーブルの第2列をパラメータ記述として選択してもよい。さらに、図5Bに示されるように、ユーザーは、選択フィールドを使用して、現在選択されているAPIオブジェクトと関連付ける、または関連付けないよう、HTMLテーブルの列、行、セル、またはそれらの何らかの組み合わせを選択してもよい。たとえば、図5Bに示されるように、適用されたテーブル・アクション・フィールド546は、現在選択されているAPIオブジェクトのパラメータ記述として、例示的なHTMLテーブルの列（たとえば、垂直）を関連付けるために使用されてもよい。適用されたテーブル・アクション・フィールド546を介してなされた変更は、本開示の他所で論じられているように、一時ファイルに注入される関数（functions）として記録され、保存されてもよい。
【００５９】
図1に戻って参照すると、GUIドライバ108は、注入ファイル〔インジェクション・ファイル〕（injection  file）を生成してもよい。注入ファイルは、一時ファイルに注入される関数を表わすデータ（たとえば、統合APIドキュメンテーションを表わすデータに注入される関数を表わす注入データ）を含んでいてもよい。たとえば、注入ファイルは、統合APIドキュメンテーションに追加的なAPIオブジェクトを追加するためのコードを含んでいてもよい。別の例として、注入ファイルは、HTMLテーブルの行、列、セル、またはその何らかの組み合わせを一つまたは複数のAPIオブジェクトと関連付ける、または関連付けないコードを含んでいてもよい。いくつかの実施形態において、注入ファイルは、注入される関数をJavaScript（JS）コードで記録してもよい。これらおよび他の実施形態において、注入ファイルは、WATAPI.jsとラベル付けされてもよい。
【００６０】
加えて、GUIドライバ108は、アプリケーション・ファイルを生成してもよい。アプリケーション・ファイルは、一時ファイルに適用される関数を表わすデータ（たとえば、統合APIドキュメンテーションを表わすデータを注釈付けするためのコード）を含んでいてもよい。たとえば、それらの関数は統合APIドキュメンテーション内のAPIオブジェクトを表わすデータに注釈付けしてもよい。いくつかの実施形態では、アプリケーション・ファイルは、Perl（PL）コードで適用される関数を記録してもよい。これらおよび他の実施形態において、アプリケーション・ファイルは、WATAPI.plとラベル付けされてもよい。アプリケーション・ファイルに含まれてもよい例示的な関数は、次を含みうる。
schema_treeview.insert('root','end','root_definitions',text='definitions:',tags=('root_definitions'))
schema_treeview.tag_configure('root_definitions',background='white')
この例示的な関数では、テキスト「'root','end','root_definitions'」は一時ファイルに適用される関数のパスを含んでいてもよく、テキスト「text='definitions:'」は一時ファイルに適用される関数のテキストを含んでいてもよく、テキスト「tags=('root_definitions')」は一時ファイルに適用されるHTMLテーブル・タグおよび対応する値を含んでいてもよく、テキスト「background='white'」は一時ファイル内の関連するAPIオブジェクトに適用されるフォーマットを含んでいてもよい。
【００６１】
加えて、GUIドライバ108は、統合APIドキュメンテーションへの注釈に基づいて表示ファイルを更新してもよい（たとえば、更新された表示ファイルを生成する）。たとえば、表示ファイルは、関数が一時ファイルに注入、適用、またはその両方された後に、一時ファイルに基づいて更新されてもよい。たとえば、APIオブジェクトが統合APIドキュメンテーションに追加された場合、GUIは、追加されたAPIオブジェクトを含む各APIオブジェクトをツリー・ビュー337a〜bに表示してもよい。いくつかの実施形態において、ユーザーは、図3Bに示される「テーブルを保存」または「すべての注釈を保存」ボタンを選択することによって、関数を一時ファイルに注入、適用、または両方させてもよい。
【００６２】
いくつかの実施形態では、GUIドライバ108は、一時ファイルに注入、適用、またはその両方された関数に基づいて、GUI内のツリー・ビュー337a〜bを更新してもよい。たとえば、APIオブジェクトが統合APIドキュメンテーションに追加された場合、ツリー・ビュー337a〜bは、追加されたAPIオブジェクトを含む統合APIドキュメンテーション内の各APIオブジェクトを表示してもよい。
【００６３】
いくつかの実施形態では、GUIドライバ108は、関数が注入、適用、または両方された後に一時ファイルをドキュメンテーション・ビューア・モジュール107に提供してもよい。ドキュメンテーション・ビューア・モジュール107は、表示画面112上のGUIを介して、統合されたAPIドキュメンテーションへの注釈を含む統合APIドキュメンテーション全体を表示してもよい。
【００６４】
図4Bを参照すると、図示されたスクリーンショット400bは、注釈を含む例示的な統合APIドキュメンテーションを表示するGUIを示す。また、この例示的な統合APIドキュメンテーションは、スタイル構成に従って表示されている。図4Bに示されるように、注入または適用された関数の一部は可視であり（たとえば、例示的な統合APIドキュメンテーションにおけるフォーマットに対する更新またはテキストの追加）、注入または適用された関数の一部は不可視である（たとえば、APIオブジェクトに関連付けられたHTMLタグに対する更新）。
【００６５】
図4Bに示される例示的な統合APIドキュメンテーションは、更新された情報443を含んでいてもよい。更新された情報443は、関連付けられたAPIオブジェクトのための有効なテキストを含むために、表示画面112上のGUIを介して注釈されたテキストを含んでいてもよい。図4Bに示されるように、更新された情報443は、「GET/now/table/{tableName}」を含んでいてもよく、ANSI31ハッシュマークを含むようにフォーマットされてもよい。スクリーンショット400bに表示される更新された情報443は、本開示において論じられるGET  objectの例に対応し、「Name」〔名前〕の注釈されたテキストを含む。加えて、更新された情報443は、図4Aに示される無効な情報442に対応する。更新された情報443は、無効な情報442と、表示画面112上のGUIを介して受領されたユーザー入力に基づく注釈とを含んでいてもよい。たとえば、無効な情報442は、図4Aに示されるように「GET/now/table/{table」を含んでいてもよく、更新された情報4443は、図4Bに示されるように「GET/now/table/{tableName}」を含んでいてもよい。
【００６６】
図1に戻って参照すると、ドキュメンテーション・ビューア・モジュール107またはGUIドライバ108は、関数が一時ファイルに注入、適用、または両方された後に、一時ファイルに基づいて注釈付けされたAPI仕様116を生成してもよい。注釈付けされたAPI仕様116は、表示画面112上に表示されたGUIを介してユーザーによって統合APIドキュメンテーションに対して作成された注釈を含んでいてもよい。たとえば、注釈付けされたAPI仕様116は、GUIを介してユーザーによって注釈されたか、または自動化モジュール110を使用して自動的に更新されたAPIオブジェクト（たとえば、注釈付けされた関係したAPIオブジェクト）があればそれを含む、統合APIドキュメンテーションからの各APIオブジェクトを含んでいてもよい。加えて、注釈付けされたAPI仕様116は、GUIを介して追加されたAPIオブジェクトを含んでいてもよい。いくつかの実施形態において、ユーザーは、図3Aに示されるように、「JSONをエクスポート」ボタンを選択してもよい。注釈付けされたAPI仕様116は、ソフトウェア・コンポーネントがAPIと対話するために使用するために、機械可読なフォーマットで生成されてもよい。
【００６７】
いくつかの実施形態では、自動化モジュール110は、ユーザーによって以前に作成された注釈に基づいて、統合APIドキュメンテーション内の関係したAPIオブジェクトに注釈を自動的に適用するように構成されてもよい。さらに、いくつかの実施形態では、自動化モジュール110は、ユーザーによって以前に統合APIドキュメンテーションに対して作成された注釈に基づいて、関係した統合APIドキュメンテーションに注釈を自動的に適用するように構成されてもよい。
【００６８】
いくつかの実施形態では、自動化モジュール110は、ユーザーが関係したAPIオブジェクトまたは関係したAPIドキュメンテーションに他の注釈を提供した後に、該関係したAPIオブジェクトまたは該関係したAPIドキュメンテーションに注釈を自動的に適用するように構成されてもよい。他の実施形態では、自動化モジュール110は、関係したAPIオブジェクトまたは関係したAPIドキュメンテーションに注釈を自動的に適用し、その後、該注釈を含むAPIドキュメンテーションをGUIドライバ108に提供して、追加的な注釈を作成するプロセスを通じてユーザーをガイドするように構成されてもよい。
【００６９】
いくつかの実施形態では、自動化モジュール110は、コンピューティング・システム（たとえば、コンピューティング装置102）が、統合APIドキュメンテーション内の関係したAPIオブジェクトに注釈を自動的に適用するため、または関係した統合APIドキュメンテーションに注釈を自動的に適用するために、一つまたは複数の動作を実行することを可能にするように構成されたコードおよびルーチンを含んでいてもよい。追加的または代替的に、自動化モジュール110は、プロセッサ、マイクロプロセッサ（たとえば、一つまたは複数の動作を実行するまたはその実行を制御する）、FPGA、またはASICを含むハードウェアを使用して実装されてもよい。いくつかの他の例では、自動化モジュール110は、ハードウェアおよびソフトウェアの組み合わせを使用して実装されてもよい。本開示において、自動化モジュール110によって実行されるものとして記載される動作は、自動化モジュール110がシステム（たとえば、コンピューティング装置102）を指揮して実行させうる動作を含んでいてもよい。
【００７０】
たとえば、統合APIドキュメンテーションのAPIページ上のAPIオブジェクトに関連付けられたHTMLテーブルに対して作成された注釈は、図3Bに示される「テーブルを保存」ボタンを使用して、注釈付け構成（annotation  configuration）として保存されてもよい。自動化モジュール110は、同じAPIページ上の関係したHTMLテーブルに、または統合APIドキュメンテーションの異なるAPIページに、該注釈付け構成を適用してもよい。たとえば、自動化モジュール110は、同じAPIページまたは異なるAPIページ上の関係したAPIオブジェクトを自動的に検出し、それらの関係したAPIオブジェクトに該注釈付け構成を適用してもよい。
【００７１】
いくつかの実施形態では、自動化モジュール110は、HTMLテーブル・ヘッダ、HTMLテーブルの内容、またはその両方に基づいて、関係したAPIオブジェクトを識別してもよい。いくつかの実施形態では、HTMLテーブル・ヘッダおよびHTMLテーブルの内容は、文書オブジェクト・モデル（document  object  model、DOM）構造にあってもよい。自動化モジュール110は、注釈付け構成に関連付けられたAPIオブジェクトおよび統合APIドキュメンテーション内のそれぞれの追加的なAPIオブジェクトのHTMLテーブルのHTMLテーブル・ヘッダまたは内容を識別しうる。自動化モジュール110は、注釈付け構成に関連付けられたAPIオブジェクトのHTMLテーブル・ヘッダ、HTMLテーブルの内容、またはその両方を、統合APIドキュメンテーション内のそれぞれの追加的なAPIオブジェクトと比較してもよい。統合APIドキュメンテーション内の追加的なAPIオブジェクトおよび注釈付け構成に関連付けられたAPIオブジェクトのテーブル・ヘッダ、HTMLテーブルの内容またはその両方が同じまたは類似している場合、該追加的なAPIオブジェクトは関係したAPIオブジェクトであってもよく、自動化モジュール110は関係したAPIオブジェクトに注釈構成を自動的に適用してもよい。
【００７２】
いくつかの実施形態では、自動化モジュール110は、注釈付け構成に関連付けられたAPIオブジェクトおよび統合APIドキュメンテーション内のそれぞれの追加的なAPIオブジェクトの構造化された特徴に基づいて、関係したAPIオブジェクトを識別してもよい。構造化された特徴は、APIオブジェクトに関連付けられたAPI要素、HTMLテーブル・タグ、またはその何らかの組み合わせを含みうる。自動化モジュール110は、注釈付け構成に関連付けられたAPIオブジェクトに関連付けられたAPI要素、HTMLテーブル・タグ、またはその何らかの組み合わせを、統合APIドキュメンテーション内のそれぞれの追加的なAPIオブジェクトと比較してもよい。統合APIドキュメンテーション内のそれぞれの追加的なAPIオブジェクトおよび注釈付け構成に関連付けられたAPIオブジェクトのAPI要素、HTMLテーブル・タグ、またはその何らかの組み合わせが同じまたは類似している場合、追加的なAPIオブジェクトは関係したAPIオブジェクトであってもよく、自動化モジュール110は、該関係したAPIオブジェクトに注釈付け構成を自動的に適用してもよい。
【００７３】
いくつかの実施形態では、自動化モジュール110は、注釈付けされたAPIオブジェクトに関連付けられた前記構造化された特徴に基づいて、プロバイダー・スキーマを生成してもよい。これらおよび他の実施形態において、自動化モジュール110は、APIオブジェクトの構造化された特徴を前記プロバイダー・スキーマと比較することによって、関係したAPIオブジェクトを識別してもよい。たとえば、自動化モジュール110は、APIオブジェクトの各レベルのAPI属性およびHTMLタグを、プロバイダー・スキーマの各レベルのAPI属性およびHTMLタグと比較してもよい。APIオブジェクトの構造化された特徴が、プロバイダー・スキーマと同じであるか、またはプロバイダー・スキーマに類似している場合、自動化モジュール110は、そのAPIオブジェクトが関係したAPIオブジェクトであると判定してもよい。
【００７４】
例示的な構造化された特徴は、下記を含みうる：
class::root>>>class::e#tag>>>…>>>class::col-md-12#id::TableAPI#tag::div
この例示的な構造化された特徴では、テキスト「>>>」は、APIオブジェクトに関連付けられたキー（key）の異なるレベルを表わしてもよい。さらに、この例示的な構造化された特徴では、テキスト「class」は、APIオブジェクトに関連付けられたキーの名前を表わしてもよい。さらに、この例示的な構造化された特徴では、テキスト「#」は、APIオブジェクトのキーのAPI属性とHTMLテーブル・タグの分離を表わしてもよい。この例示的な構造化された特徴では、テキスト「root」、「e#tag」、「col-md-12#id」、「TableAPI#tag」、「div」は、APIオブジェクトに関連付けられたキーの名前を表わしてもよい。この例示的な構造化された特徴において示されるように、テキスト「class::root」は、例示的なAPIオブジェクトの例示的なAPIページのルート（root）を表わしてもよく、テキスト「class::col-md-12#ID::TableAPI#::div」は、表示画面112上のGUIを介してユーザーによって注釈付けされたこの例示的なAPIオブジェクトの例示的なキーを表わしてもよい。
【００７５】
いくつかの実施形態では、自動化モジュール110は、注釈付け構成（annotation  configuration）に関連するAPIオブジェクトを表わすデータに対して作成された注釈に基づいて、一時ファイル（temporary  file）内の関係したAPIオブジェクトを表わすデータを更新してもよい。たとえば、自動化モジュール110は、一時ファイル内の、注釈付け構成に関連するAPIオブジェクトを表わすデータに注入または適用された、関係したAPIオブジェクトを表わすデータに、関数を注入したり、または関数を適用したりしてもよい。
【００７６】
いくつかの実施形態では、自動化モジュール110は、統合APIドキュメンテーションに対してユーザーによって以前に作成された注釈に基づいて、関係した統合APIドキュメンテーションに注釈を自動的に適用するように構成されてもよい。たとえば、いくつかの実施形態では、ユーザーは、図3Bに示されるようなGUIを介して、追加的なAPIドキュメンテーションおよび「自動注釈付け」ボタンを選択してもよい。これらおよび他の実施形態において、自動化モジュール110は、追加的な統合APIドキュメンテーションが前記統合APIドキュメンテーションに関係しているかどうかを判定してもよい。いくつかの実施形態では、自動化モジュール110は、追加的な統合APIドキュメンテーションが、関係した統合APIドキュメンテーションであることを示すユーザー入力を、表示画面112上に表示されたGUIを介して受領してもよい。いくつかの実施形態では、自動化モジュール110は、追加的な統合APIドキュメンテーションのAPIフォーマットが、前記統合APIドキュメンテーションに関連付けられたAPIフォーマットと同じであるまたは類似しているかどうかを判定してもよい。あるいはまた、いくつかの実施形態では、自動化モジュール110は、機械学習ベースの注釈付けをベースとして使用して、ユーザー注釈情報および機械学習による注釈付けを使用して、同じAPIプロバイダーの残りのAPIページおよび他のAPIドキュメンテーションの少なくとも一部に注釈を付けしてもよい。
【００７７】
追加的な統合APIドキュメンテーションが、関係した統合APIドキュメンテーションである場合、自動化モジュール110は、上記で論じたようにして統合APIドキュメンテーション内で注釈されたAPIオブジェクトに対する関係したAPIオブジェクトであるAPIオブジェクトが、該関係した統合APIドキュメンテーション内にあるかどうかを判定してもよい。
【００７８】
いくつかの実施形態では、自動化モジュール110は、前記統合APIドキュメンテーションに関係して、関係したAPIドキュメンテーションについての、関係したスタイル・ファイル、関係した表示ファイル、関係したアプリケーション・ファイル、関係した一時ファイル、および関係した注入ファイルを上記で論じたようにして生成してもよい。これらおよび他の実施形態において、自動化モジュール110は、関係した一時ファイル内の関係した統合APIドキュメンテーション内の関係したAPIオブジェクトを表わすデータを、上記で論じたようにして統合APIドキュメンテーション内で注釈付けされたAPIオブジェクトを表わすデータに対して作成された注釈に基づいて更新してもよい。
【００７９】
いくつかの実施形態では、注釈付け構成は、HTMLコードに従って生成されてもよい。さらに、いくつかの実施形態では、諸注釈付け構成が、異なるバージョンとして、表示画面112上に表示されるGUIを介してユーザーによって保存されてもよい。さらに、いくつかの実施形態では、ユーザーは、表示画面112上に表示されたGUIを介して、注釈付け構成の異なるバージョンを選択してもよい。
【００８０】
いくつかの実施形態では、GUIドライバ108は、ユーザーによって作成された統合APIドキュメンテーションへの注釈に基づいて、MLモジュール104にフィードバックを提供してもよい。MLモジュール104は、該フィードバックを使用して、APIドキュメンテーションから情報を抽出するためのMLアルゴリズムを更新してもよい。いくつかの実施形態では、MLモジュール104は、関連するAPIオブジェクト定義に基づいてAPIオブジェクトをより正確に識別するために、GUIドライバ108によって提供されるフィードバックに基づいてMLアルゴリズムを更新してもよい。これらの実施形態および他の実施形態において、MLアルゴリズムを更新するMLモジュール104は、MLモジュール104によってAPIドキュメンテーションから抽出される無効な情報の量を減らすことができる。統合APIドキュメンテーションに含まれる無効な情報の量を減らすことは、MLモジュール104の全体的な精度を高める可能性がある。
【００８１】
たとえば、GET  objectの例では、MLモジュール104のMLアルゴリズムを更新して、GET  API  objectのAPIオブジェクト定義を、「GET/now/table/{table」ではなく「GET/now/table/{tableName}」のフォーマットに従うAPIオブジェクトとして識別してもよい。GET  APIオブジェクトが「GET/now/table/{tableName}」のフォーマットに従うAPIオブジェクトとして識別されるようにMLアルゴリズムを更新することにより、MLモジュール104は、関連付けられたAPIオブジェクトについて、図4Aに示されるような無効な情報442の代わりに、図4Bに示されるような更新された情報443を最初に抽出しうる。
【００８２】
本開示の範囲から逸脱することなく、図1に修正、追加、または省略がなされてもよい。たとえば、動作環境100は、本開示において図示され説明されたものよりも多数の、または少数の要素を含んでいてもよい。さらに、別に記載されるように、いくつかの実施形態では、フォーマット・モジュール103、MLモジュール104、GUIドライバ108、ドキュメンテーション・ビューア・モジュール107、および自動化モジュール110のうちの2つ以上が、同じシステムまたはモジュールの一部であってもよく、あるいは記載されたものとは異なるように分割されてもよい。本稿におけるこれらおよび他の要素の間の輪郭描写は、限定的なものではなく、本開示において使用される概念および原理の理解および説明を助けることが意図されている。
【００８３】
たとえば、いくつかの実施形態では、フォーマット・モジュール103、MLモジュール104、GUIドライバ108、ドキュメンテーション・ビューア・モジュール107、および自動化モジュール110によって実行される動作は、図1に関連して論じられるように、異なるモジュールによって実行されてもよい。他の実施形態では、フォーマット・モジュール103、MLモジュール104、GUIドライバ108、ドキュメンテーション・ビューア・モジュール107、および自動化モジュール110によって実行される動作のうちの一つまたは複数は、異なるモジュールによって実行されてもよい。たとえば、スタイル・ファイル、表示ファイル、アプリケーション・ファイル、一時ファイル、および注入ファイルはすべて、図2に関連して後述するように、GUIドライバ108によって生成されてもよい。別の例として、GUIドライバ108は、上記では自動化モジュール110に関連して論じられている自動化ステップを実行するように構成されてもよい。
【００８４】
図2は、図1の動作環境100で実装されうる、統合APIドキュメンテーション注釈付けプロセス200のブロック図を示す。GUIドライバは、図1に関連して上述したように、APIドキュメンテーション222を受領してもよい。いくつかの実施形態では、APIドキュメンテーション222は、MLモジュール104から受け取った統合APIドキュメンテーションを含んでいてもよい。
【００８５】
GUIドライバ108は、APIドキュメンテーション222、ユーザー入力、またはそれらの何らかの組み合わせに基づいて複数のファイルを生成してもよい。たとえば、GUIドライバ108は、ユーザー入力に基づいてスタイル・ファイル224を生成してもよい。スタイル・ファイル224は、図1に関連して上述したスタイル・ファイルと同じ、または同様であってもよい。スタイル・ファイル（style  file）224は、表示画面112上のGUIを介して表示されるAPIドキュメンテーション222のAPIオブジェクトまたは他の情報をフォーマットするためのデータを含んでいてもよい。たとえば、スタイル・ファイル224は、ツリー・ビュー337a〜bに表示され、ドキュメンテーション・ビューア・モジュール107によって表示されるAPIドキュメンテーション222全体の一部として表示されるAPIオブジェクトをフォーマットするために使用されてもよい。たとえば、特定のAPIオブジェクト定義が赤のハイライトをもって表示されるようにフォーマットされている場合、その特定のAPIオブジェクト定義に関連するAPIオブジェクトが、ツリー・ビュー337a〜b内に、またはAPIドキュメンテーション222全体の一部として、赤のハイライトをもって表示されてもよい。
【００８６】
GUIドライバ108は、一時ファイル230を生成してもよい。一時ファイル（temporary  file）230は、APIドキュメンテーション222に基づいて生成されてもよい。いくつかの実施形態では、一時ファイル230は、APIドキュメンテーション222全体を表わすデータを含むように生成されてもよい。他の実施形態では、一時ファイル230は、表示画面112上のGUIを介してユーザーによって閲覧される現在のAPIページを表わすデータを含むように生成されてもよい。たとえば、APIドキュメンテーション222が3つのAPIページを含み、ユーザーが現在第2のAPIページを閲覧および／または注釈付けしている場合、一時ファイルは、第2のAPIページのみを表わすデータを含んでいてもよい。
【００８７】
GUIドライバ108は、表示画面112上に表示されたGUIを介して受領されたユーザー入力に基づいてアプリケーション・ファイル228を生成してもよい。アプリケーション・ファイル（application  file）228は、一時ファイル230に適用される関数を表わすデータ（たとえば、APIドキュメンテーション222を表わすデータに注釈付けするためのコード）を含んでいてもよい。たとえば、ユーザー入力は、特定のAPIオブジェクト定義のためのフォーマットが変更されることを示してもよく、アプリケーション・ファイルは、その特定のAPIオブジェクト定義を使用するAPIオブジェクトのフォーマットを更新するために一時ファイル230に適用される関数を含んでいてもよい。
【００８８】
GUIドライバ108は、表示画面112に表示されたGUIを介して受領されたユーザー入力に基づいて、注入ファイル232を生成してもよい。注入ファイル〔インジェクション・ファイル〕（injection  file）232は、一時ファイル230に注入される関数を表わすデータ（たとえば、APIドキュメンテーション222を表わすデータに注入される関数を表わすデータ）を含んでいてもよい。たとえば、注入ファイル232は、一時ファイル230内のAPIドキュメンテーション222を表わすデータに注入される追加的なAPIオブジェクトのためのコードおよび該追加的なAPIオブジェクトを表わすデータを含んでいてもよい。
【００８９】
同様に、いくつかの実施形態では、GUIドライバ108は、スタイル・ファイル224、アプリケーション・ファイル228、一時ファイル230、注入ファイル232、ユーザー入力、またはそれらの任意の組み合わせに基づいて、表示ファイル226を生成してもよい。表示ファイル（display  file）226は、APIドキュメンテーション222内のAPIオブジェクトおよび他の情報が、ツリー・ビュー337a〜bにおいておよび／またはドキュメンテーション・ビューア・モジュール107によって表示されるAPIドキュメンテーション222全体の一部として、表示画面112上のGUIを介して表示されることを許容してもよい。表示ファイル226は、表示画面112に表示されたGUIを介して受け取られたユーザー入力に基づいてスタイル・ファイル224、アプリケーション・ファイル228、一時ファイル230、注入ファイル232、またはそれらの任意の組み合わせを更新することによって、ユーザーが、表示画面112に表示されたGUIを介して、APIドキュメンテーション222内に含まれる情報を閲覧および注釈付けすることを許容しうる。
【００９０】
図6は、例示的なコンピューティング・システム600のブロック図である。コンピューティング・システム600は、いくつかの実施形態において、図1のコンピューティング装置102に含まれてもよい。追加的または代替的に、コンピューティング・システム600は、デスクトップコンピュータ、ラップトップコンピュータ、サーバーコンピュータ、タブレットコンピュータ、携帯電話、スマートフォン、パーソナル・デジタル・アシスタント（PDA）、eリーダー装置、ネットワーク・スイッチ、ネットワーク・ルータ、ネットワーク・ハブ、他のネットワーキング装置、または他の好適なコンピューティング装置に含まれてもよい。
【００９１】
コンピューティング・システム600は、プロセッサ648、記憶装置650、メモリ652、および通信装置654を含んでいてもよい。プロセッサ648、記憶装置650、メモリ652、および／または通信装置654はみな、各コンポーネントが他のコンポーネントと通信しうるように、通信上結合されてもよい。コンピューティング・システム600は、本開示に記載される動作の任意のものを実行しうる。
【００９２】
一般に、プロセッサ648は、さまざまなコンピュータハードウェアまたはソフトウェアモジュールを含む、任意の好適な特殊目的または汎用のコンピュータ、計算エンティティ、または処理装置を含んでいてもよく、任意の適用可能なコンピュータ可読記憶媒体に記憶された命令を実行するように構成されてもよい。たとえば、プロセッサ648は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（DSP）、ASIC、FPGA、またはプログラム命令を解釈および／または実行するようにおよび／またはデータを処理するように構成された任意の他のデジタルまたはアナログ回路を含んでいてもよい。図6では単一のプロセッサとして示されているが、プロセッサ648は、個別にまたは集合的に、本開示において説明された動作の任意の数を実行するように構成された任意の数のプロセッサを含んでいてもよい。
【００９３】
いくつかの実施形態では、プロセッサ648は、プログラム命令を解釈および／または実行してもよく、および／または記憶装置650、メモリ652、または記憶装置650およびメモリ652に記憶されたデータを処理してもよい。いくつかの実施形態では、プロセッサ648は、記憶装置650からプログラム命令をフェッチし、該プログラム命令をメモリ652にロードしてもよい。プログラム命令がメモリ652にロードされた後、プロセッサ648は、プログラム命令を実行してもよい。
【００９４】
たとえば、いくつかの実施形態では、コンピューティング・システム600に対する処理動作の一つまたは複数が、プログラム命令として記憶装置650に含まれてもよい。プロセッサ648は、処理動作のうちの一つまたは複数のプログラム命令をフェッチしてもよく、処理動作のプログラム命令をメモリ652内にロードしてもよい。処理動作のプログラム命令がメモリ652にロードされた後、プロセッサ648は、コンピューティング・システム600が、プログラム命令によって指揮されるように前記処理動作に関連する動作を実装しうるように、プログラム命令を実行してもよい。図1に関して上述したモジュールは、記憶装置650に含まれうるプログラム命令の例でありうる。
【００９５】
記憶装置650およびメモリ652は、コンピュータ実行可能な命令またはデータ構造を担持するまたは記憶するためのコンピュータ読み取り可能な記憶媒体を含んでいてもよい。そのようなコンピュータ読み取り可能な記憶媒体は、プロセッサ648のような汎用または専用コンピュータによってアクセスされうる任意の利用可能な媒体を含みうる。限定はなく例として、そのようなコンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスク記憶、磁気ディスク記憶もしくは他の磁気記憶、フラッシュメモリデバイス（たとえば、ソリッドステートメモリデバイス）、またはコンピュータ実行可能命令またはデータ構造の形で所望のプログラムコードを担持または記憶するために使用されてもよく、汎用または専用コンピュータによってアクセスされうる任意の他の記憶媒体を含む、有形なまたは非一時的なコンピュータ読み取り可能な記憶媒体を含みうる。上記の組み合わせもまた、コンピュータ読み取り可能な記憶媒体の範囲内に含まれうる。コンピュータ実行可能命令は、たとえば、プロセッサ648に特定の動作または動作群を実行させるように構成された命令およびデータを含んでいてもよい。
【００９６】
いくつかの実施形態では、記憶装置650および／またはメモリ652は、統合APIドキュメンテーションの注釈付けに関連するデータを記憶してもよい。たとえば、記憶装置650および／またはメモリ652は、スタイル・ファイル224、一時ファイル230、表示ファイル226、注入ファイル232、アプリケーション・ファイル228、統合APIドキュメンテーション、注釈付けされたAPI仕様116、または本開示において論じられる他の任意の適切な形のデータを記憶してもよい。
【００９７】
通信装置654は、コンピュータ・システム600と他の電子装置との間の通信を許容する、または容易にするように構成された任意の装置、システム、コンポーネント、またはコンポーネントの集合を含んでいてもよい。たとえば、通信装置654は、限定なしに、モデム、ネットワークカード（無線または有線）、赤外線通信装置、光通信装置、無線通信装置（アンテナなど）、および／またはチップセット（Bluetooth装置、802.6装置（メトロポリタン・エリア・ネットワーク（MAN）など）、Wi-Fi装置、WiMAX装置、セルラー通信設備など）および／またはその他を含んでいてもよい。通信装置654は、若干の例を挙げればセルラーネットワーク、Wi-Fiネットワーク、MAN、光ネットワークなどといった任意のネットワーク、および／またはリモート装置を含む、本開示において記述される任意の他の装置とデータを交換することを許容しうる。
【００９８】
本開示の範囲から逸脱することなく、図6に対して修正、追加、または省略がなされてもよい。たとえば、コンピューティング・システム600は、本開示において図示され説明されたものよりも多数または少数の要素を含んでいてもよい。たとえば、コンピューティング・システム600は、タブレットまたは携帯電話の画面のような統合された表示装置を含んでいてもよく、または外部モニタ、プロジェクタ、テレビジョン、またはコンピューティング・システム600とは別個でコンピューティング・システム600と通信上結合されていてもよい他の好適な表示装置を含んでいてもよい。
【００９９】
図7は、表示画面上のGUIを介してAPIドキュメンテーションを表示する例示的な方法700のフローチャートを示す。方法700は、任意の好適なシステム、装置、またはデバイスによって実行されてもよい。たとえば、図1のコンピューティング装置102、フォーマット・モジュール103、MLモジュール104、GUIドライバ108、ドキュメンテーション・ビューア・モジュール107、自動化モジュール110、および表示画面112、または図6のコンピューティング・システム600のコンポーネントのうちの一つまたは複数。これらおよび他の実施形態において、コンピュータ読み取り可能な媒体に記憶されたプログラム命令は、方法700の動作の一つまたは複数を実行するために実行されてもよい。さらに、方法700の各動作は、静的または動的であってもよく、オンラインで（たとえばリアルタイムで）またはオフラインで実行されてもよい。さらに、方法700の各動作は、インクリメンタルにまたは非インクリメンタルに実行されてもよい。
【０１００】
方法700は、ブロック702を含んでいてもよく、このブロックにおいて、一つまたは複数のAPIフォーマットのためのスタイル構成を示すユーザー入力が受領されてもよい。いくつかの実施形態では、ユーザー入力は、異なる型のAPIオブジェクトまたはAPIドキュメンテーションに含まれる他の情報を表示するためのフォーマットの型を示してもよい。たとえば、フォーマット・モジュール103は、図1に関係して上述したように、ユーザー入力を受け取ってもよい。ブロック702の後にブロック704が続いてもよい。
【０１０１】
ブロック704では、スタイル・ファイルが生成されてもよい。いくつかの実施形態では、スタイル・ファイルは、ユーザー入力において示されたスタイル構成を表わすデータを含んでいてもよい。スタイル・ファイルは、APIドキュメンテーションに含まれるAPIオブジェクトにスタイル構成を適用するために生成されてもよい。たとえば、フォーマット・モジュール103は、図1に関係して上述したようなスタイル・ファイルを生成してもよい。ブロック704の後に、ブロック706が続いてもよい。
【０１０２】
ブロック706では、APIドキュメンテーションが受領されてもよい。いくつかの実施形態では、APIドキュメンテーションは、上述のように、統合APIドキュメンテーションを含んでいてもよい。たとえば、GUIドライバ108は、図1に関係して上述したように、MLモジュール104から統合APIドキュメンテーションを受領してもよい。ブロック706の後に、ブロック708が続いてもよい。
【０１０３】
ブロック708では、APIドキュメンテーションに関連するAPIフォーマットが決定されてもよい。APIドキュメンテーションに関連付けられたAPIフォーマットが、図1に関係して上述したように、一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットに関して類似性閾値を満たすことに応答して、ブロック708の後にブロック710が続いてもよい。
【０１０４】
ブロック710では、一時ファイルが生成されてもよい。いくつかの実施形態では、一時ファイルは、APIドキュメンテーションを表わすデータを含んでいてもよい。いくつかの実施形態では、一時ファイルは、APIドキュメンテーション内のAPIオブジェクトのリストを含んでいてもよい。たとえば、GUIドライバ108は、図1に関係して上述したように一時ファイルを生成してもよい。ブロック710の後にブロック712が続いてもよい。
【０１０５】
ブロック712では、表示ファイルが生成されてもよい。いくつかの実施形態では、表示ファイルは、スタイル・ファイルおよび一時ファイルに基づくデータを含んでいてもよい。いくつかの実施形態では、表示ファイルは、スタイル・ファイルの少なくとも一部および一時ファイルの少なくとも一部を含むように生成されてもよい。ブロック712の後にブロック714が続いてもよい。
【０１０６】
ブロック714では、APIドキュメンテーションを表示するGUIの、表示画面上での表示が指令されてもよい。GUIは、表示ファイルに基づいて表示画面上に表示されてもよい。いくつかの実施形態では、APIドキュメンテーション内の各APIオブジェクトは、ユーザー入力に示されたスタイル構成に従ったフォーマッティングを含むように、表示画面上のGUIを介して表示されてもよい。いくつかの実施形態では、表示ファイルは、APIドキュメンテーションのAPIオブジェクトが、図1に関係して上述したように、ツリー・ビュー337a〜b内で表示画面112上にGUIを介して表示されることを許容しうる。
【０１０７】
本開示の範囲から逸脱することなく、方法700に修正、追加、または省略がなされてもよい。たとえば、方法700の動作は、異なる順序で実装されてもよい。追加的または代替的に、2つ以上の動作が同時に実行されてもよい。さらに、概説された動作およびアクションは、例として与えられているだけであり、開示された実施形態の本質を損なうことなく、かかる動作およびアクションのいくつかは任意的であってもよく、より少数の動作およびアクションに組み合わされてもよく、または追加的な動作およびアクションに展開されてもよい。
【０１０８】
本開示に記載の実施形態は、コンピュータ実行可能命令またはデータ構造を担持するまたは記憶するためのコンピュータ読み取り可能な媒体を用いて実装されてもよい。そのようなコンピュータ読み取り可能な媒体は、ランダムアクセスメモリ（RAM）、読み出し専用メモリ（ROM）、電気的に消去可能なプログラム可能型読み出し専用メモリ（EEPROM）、コンパクトディスク読み出し専用メモリ（CD-ROM）、または他の光ディスク記憶、磁気ディスク記憶もしくは他の磁気記憶、フラッシュメモリデバイス（たとえば、ソリッドステートメモリデバイス）、またはコンピュータ実行可能命令またはデータ構造の形で所望のプログラムコードを担持または記憶するために使用されてもよく、汎用または専用コンピュータによってアクセスされうる任意の他の記憶媒体を含む、非一時的なコンピュータ読み取り可能な記憶媒体を含みうる。上記の組み合わせもまた、コンピュータ読み取り可能な記憶媒体の範囲内に含まれうる。
【０１０９】
コンピュータ実行可能命令は、たとえば、汎用コンピュータ、特殊目的コンピュータ、または特殊目的処理装置（たとえば、一つまたは複数のプロセッサ）に特定の機能または機能群を実行させる命令およびデータを含んでいてもよい。主題は、構造的特徴および／または方法論的工程に特有の言辞で記載されているが、添付の請求項において定義された主題は、必ずしも上記の特定の特徴または工程に限定されるものではないことは理解しておくべきである。むしろ、上述の特定の特徴および工程は、請求項を実装する例示的な形として開示されている。
【０１１０】
本開示において使用されるところでは、本開示において、特に添付の特許請求の範囲（たとえば、添付の特許請求の範囲の本文）において使用される用語は、一般に「開放的」な用語として意図されている（たとえば、「含む」という用語は、「含むが、これに限定されない」と解釈されるべきであり、「有する」という用語は、「少なくとも…を有する」と解釈されるべきであり、「含む」という用語は、「含むが、これに限定されない」と解釈されるべきである、など）。
【０１１１】
さらに、導入される請求項記載の特定の数が意図されている場合、そのような意図は請求項において明示的に記載される。そのような記載がない場合は、そのような意図は存在しない。たとえば、理解の助けとして、以下の添付の特許請求の範囲は、請求項記載を導入するために「少なくとも一つの」および「一つまたは複数の」という導入句の使用を含むことがありうるが、そのような句の使用は、不定冠詞「a」または「an」による請求項記載の導入が、そのような導入された請求項記載を含むいずれかの特定の請求項を、そのような記載を一つだけ含む実施形態に限定することを含意していると解釈されるべきではない。これはたとえ同じ請求項が導入句「一つまたは複数の」または「少なくとも一つの」および「a」または「an」のような不定冠詞を含んでいるときでも同じである（たとえば、「a」および／または「an」は「少なくとも一つの」または「一つまたは複数の」と解釈されるべきである）。同じことは、請求項記載を導入するために使用される定冠詞の使用にも当てはまる。
【０１１２】
さらに、導入された請求項記載の特定の数が明示的に記載されている場合であっても、当業者は、そのような記載は、少なくともその記載された数、を意味すると解約されるべきであることを認識するであろう（たとえば、他の修飾語を伴わない「2つの記載」というだけの記載は、少なくとも2つの記載、または2つ以上の記載を意味する）。さらに、「A、B、C等の少なくとも一つ」または「A、B、C等の一つまたは複数」と類似の慣用表現が用いられる場合、一般に、そのような構文は、Aのみ、Bのみ、Cのみ、A、Bが一緒、A、Cが一緒、B、Cが一緒、またはA、B、Cが一緒等を含むことが意図される。
【０１１３】
さらに、明細書、特許請求の範囲、または図面のいずれかに記載されているかを問わず、2つ以上の代替的な用語を提示する何らかの離接的な語句は、それらの用語の一方、それらの用語のどちらでもよい一方、または両方の用語を含む可能性を考慮するものと理解されるべきである。たとえば、句「AまたはB」は、「A」または「B」または「AおよびB」の可能性を含むと理解されるべきである。さらに、本開示における用語「および／または」の使用は、本開示の他所で使用される用語「または」の使用のこの解釈を変更するものではない。
【０１１４】
本開示に記載されたすべての例および条件付き言辞は、本開示および発明者によって当該技術分野の促進に寄与される概念を理解する際に読者を助けるための教育目的のために意図されており、そのような具体的に記載された例および条件に限定されるものではないと解釈されるべきである。本開示の実施形態を詳細に説明したが、本開示の精神および範囲から逸脱することなく、さまざまな変更、置換、および代替がそれになされてもよい。
【０１１５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
一つまたは複数のアプリケーション・プログラミング・インターフェース（API）フォーマットについてのスタイル構成を示すユーザー入力を受領し；
前記ユーザー入力において示されたスタイル構成を表わすデータを含むスタイル・ファイルを生成し；
複数のAPIオブジェクトを含むAPIドキュメンテーションを受領し；
前記APIドキュメンテーションに関連するAPIフォーマットを決定し；
前記APIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットに関して類似性閾値を満たすことに応答して：
前記APIドキュメンテーションを表わすデータを含む一時ファイルを生成する段階；
前記スタイル・ファイルおよび前記一時ファイルに基づくデータを含む表示ファイルを生成する段階であって、前記表示ファイルは、前記スタイル・ファイルの少なくとも一部および前記一時ファイルの少なくとも一部を含むように生成される、段階；および
前記表示ファイルに基づいて前記APIドキュメンテーションを表示するグラフィカル・ユーザー・インターフェース（GUI）の表示画面上の表示を指揮する段階でって、前記複数のAPIオブジェクトの各APIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従ったフォーマットを含むよう前記GUIを介して表示される、段階を実行することを含む方法。
（付記２）
付記１記載の方法であって、さらに：
前記APIドキュメンテーションに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階であって、前記APIドキュメンテーションに対して行なわれる前記一つまたは複数の注釈付けは、前記複数のAPIオブジェクトに一つまたは複数の追加的なAPIオブジェクトを追加することを含む、段階と；
前記複数のAPIオブジェクトに前記一つまたは複数の追加的なAPIオブジェクトを追加するために、前記一時ファイルに注入される一つまたは複数の関数を表わすデータを含む注入ファイルを生成する段階と；
前記一つまたは複数の関数を表わすデータを前記一時ファイルに注入する段階と；
前記一つまたは複数の関数を表わす注入されたデータを含む前記一時ファイルおよび前記注入ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記追加的なAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従って前記GUIを介して表示される、段階と；
前記複数のAPIオブジェクトおよび前記追加的なAPIオブジェクトを含むAPI仕様を機械可読フォーマットで生成する段階とを含む、
方法。
（付記３）
付記１記載の方法であって、さらに：
前記複数のAPIオブジェクトのうちの一つまたは複数のAPIオブジェクトに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階と；
前記一時ファイルに適用される一つまたは複数の関数を表わすデータを含むアプリケーション・ファイルを生成する段階と；
前記一時ファイルに前記一つまたは複数の関数を適用する段階であって、該一つまたは複数の関数が前記一時ファイルに適用されることが、前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わすデータを更新する、段階と；
前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わす更新されたデータを含む前記一時ファイルおよび前記アプリケーション・ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記複数のAPIオブジェクトの注釈付けされた一つまたは複数のAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従うフォーマットを含むよう、前記GUIを介して表示される、段階と；
前記複数の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ドキュメンテーションは第1のAPIドキュメンテーションであり、前記複数のAPIオブジェクトは第1の複数のAPIオブジェクトであり、前記アプリケーション・ファイルは第1のアプリケーション・ファイルであり、前記一時ファイルは第1の一時ファイルであり、当該方法はさらに：
第2の複数のAPIオブジェクトを含む第2のAPIドキュメンテーションを受領し；
前記第2のAPIドキュメンテーションに関連するAPIフォーマットを決定し；
前記第2のAPIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットと同じであるまたは類似していることに応答して：
前記第2の複数のAPIオブジェクトの一つまたは複数の関係したAPIオブジェクトを識別する段階であって、前記第2の複数のAPIオブジェクトの前記一つまたは複数の関係したAPIオブジェクトは、注釈付けされるべき前記第1の複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトに関係している、段階と；
前記第2のAPIドキュメンテーションを表わすデータを含む第2の一時ファイルを生成する段階と；
前記第2の一時ファイルに適用される一つまたは複数の関数を表わすデータを含む第2のアプリケーション・ファイルを生成する段階と；
前記一つまたは複数の関数を前記第2の一時ファイルに自動的に適用する段階であって、前記一つまたは複数の関数は、前記第2の複数のAPIオブジェクトの少なくとも一つのAPIオブジェクトを表わすデータを更新する、段階とを実行することを含む、
方法。
（付記７）
付記３記載の方法であって、前記APIドキュメンテーションは、一つまたは複数のハイパーテキスト・マークアップ言語（HTML）テーブルも含み、前記複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトに対して行なわれる前記一つまたは複数の注釈付けは、前記複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトを、前記HTMLテーブルのうちの少なくとも一つのHTMLテーブルの一つまたは複数の行、列、セル、またはそれらの何らかの組み合わせと関連付けることを含む、方法。
（付記８）
命令を記憶するように構成された一つまたは複数のコンピュータ可読記憶媒体と：
前記一つまたは複数のコンピュータ可読記憶媒体に通信上結合されたプロセッサとを有するシステムであって、前記プロセッサは、前記命令の実行に応答して、当該システムにAPIドキュメンテーションの注釈付けのために表示画面上にGUIを表示する動作を実行させるよう構成されており、前記動作は：
一つまたは複数のAPIフォーマットについてのスタイル構成を示すユーザー入力を受領し；
前記ユーザー入力において示された前記スタイル構成を表わすデータを含むスタイル・ファイルを生成し；
複数のAPIオブジェクトを含むAPIドキュメンテーションを受領し；
前記APIドキュメンテーションに関連するAPIフォーマットを決定し；
前記APIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットに関して類似性閾値を満たすことに応答して：
前記APIドキュメンテーションを表わすデータを含む一時ファイルを生成する段階；
前記スタイル・ファイルおよび前記一時ファイルに基づくデータを含む表示ファイルを生成する段階であって、前記表示ファイルは、前記スタイル・ファイルの少なくとも一部および前記一時ファイルの少なくとも一部を含むように生成される、段階；および
前記表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの前記表示画面上の表示を指揮する段階でって、前記複数のAPIオブジェクトの各APIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従ったフォーマットを含むよう前記GUIを介して表示される、段階を含む、
システム。
（付記９）
付記８記載のシステムであって、前記動作がさらに：
前記APIドキュメンテーションに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階であって、前記APIドキュメンテーションに対して行なわれる前記一つまたは複数の注釈付けは、前記複数のAPIオブジェクトに一つまたは複数の追加的なAPIオブジェクトを追加することを含む、段階と；
前記複数のAPIオブジェクトに前記一つまたは複数の追加的なAPIオブジェクトを追加するために、前記一時ファイルに注入される一つまたは複数の関数を表わすデータを含む注入ファイルを生成する段階と；
前記一つまたは複数の関数を表わすデータを前記一時ファイルに注入する段階と；
前記一つまたは複数の関数を表わす注入されたデータを含む前記一時ファイルおよび前記注入ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記追加的なAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従って前記GUIを介して表示される、段階と；
前記複数のAPIオブジェクトおよび前記追加的なAPIオブジェクトを含むAPI仕様を機械可読フォーマットで生成する段階とを含む、
システム。
（付記１０）
付記８記載のシステムであって、前記動作がさらに：
前記複数のAPIオブジェクトのうちの一つまたは複数のAPIオブジェクトに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階と；
前記一時ファイルに適用される一つまたは複数の関数を表わすデータを含むアプリケーション・ファイルを生成する段階と；
前記一時ファイルに前記一つまたは複数の関数を適用する段階であって、該一つまたは複数の関数が前記一時ファイルに適用されることが、前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わすデータを更新する、段階と；
前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わす更新されたデータを含む前記一時ファイルおよび前記アプリケーション・ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記複数のAPIオブジェクトの注釈付けされた一つまたは複数のAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従うフォーマットを含むよう、前記GUIを介して表示される、段階と；
前記複数の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ドキュメンテーションは第1のAPIドキュメンテーションであり、前記複数のAPIオブジェクトは第1の複数のAPIオブジェクトであり、前記アプリケーション・ファイルは第1のアプリケーション・ファイルであり、前記一時ファイルは第1の一時ファイルであり、前記動作はさらに：
第2の複数のAPIオブジェクトを含む第2のAPIドキュメンテーションを受領し；
前記第2のAPIドキュメンテーションに関連するAPIフォーマットを決定し；
前記第2のAPIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットと同じであるまたは類似していることに応答して：
前記第2の複数のAPIオブジェクトの一つまたは複数の関係したAPIオブジェクトを識別する段階であって、前記第2の複数のAPIオブジェクトの前記一つまたは複数の関係したAPIオブジェクトは、注釈付けされるべき前記第1の複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトに関係している、段階と；
前記第2のAPIドキュメンテーションを表わすデータを含む第2の一時ファイルを生成する段階と；
前記第2の一時ファイルに適用される一つまたは複数の関数を表わすデータを含む第2のアプリケーション・ファイルを生成する段階と；
前記一つまたは複数の関数を前記第2の一時ファイルに自動的に適用する段階であって、前記一つまたは複数の関数は、前記第2の複数のAPIオブジェクトの少なくとも一つのAPIオブジェクトを表わすデータを更新する、段階とを実行することを含む、
システム。
（付記１４）
付記１０記載のシステムであって、前記APIドキュメンテーションは、一つまたは複数のHTMLテーブルも含み、前記複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトに対して行なわれる前記一つまたは複数の注釈付けは、前記複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトを、前記HTMLテーブルのうちの少なくとも一つのHTMLテーブルの一つまたは複数の行、列、セル、またはそれらの何らかの組み合わせと関連付けることを含む、システム。
（付記１５）
実行されることに応答して、システムに動作を実行させる命令を記憶するように構成された一つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記動作は：
一つまたは複数のAPIフォーマットについてのスタイル構成を示すユーザー入力を受領し；
前記ユーザー入力において示された前記スタイル構成を表わすデータを含むスタイル・ファイルを生成し；
複数のAPIオブジェクトを含むAPIドキュメンテーションを受領し；
前記APIドキュメンテーションに関連するAPIフォーマットを決定し；
前記APIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットに関して類似性閾値を満たすことに応答して：
前記APIドキュメンテーションを表わすデータを含む一時ファイルを生成する段階；
前記スタイル・ファイルおよび前記一時ファイルに基づくデータを含む表示ファイルを生成する段階であって、前記表示ファイルは、前記スタイル・ファイルの少なくとも一部および前記一時ファイルの少なくとも一部を含むように生成される、段階；および
前記表示ファイルに基づいて前記APIドキュメンテーションを表示するGUIの表示画面上の表示を指揮する段階でって、前記複数のAPIオブジェクトの各APIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従ったフォーマットを含むよう前記GUIを介して表示される、段階を含む、
一つまたは複数の非一時的なコンピュータ可読記憶媒体。
（付記１６）
付記１５記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記動作がさらに：
前記APIドキュメンテーションに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階であって、前記APIドキュメンテーションに対して行なわれる前記一つまたは複数の注釈付けは、前記複数のAPIオブジェクトに一つまたは複数の追加的なAPIオブジェクトを追加することを含む、段階と；
前記複数のAPIオブジェクトに前記一つまたは複数の追加的なAPIオブジェクトを追加するために、前記一時ファイルに注入される一つまたは複数の関数を表わすデータを含む注入ファイルを生成する段階と；
前記一つまたは複数の関数を表わすデータを前記一時ファイルに注入する段階と；
前記一つまたは複数の関数を表わす注入されたデータを含む前記一時ファイルおよび前記注入ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記追加的なAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従って前記GUIを介して表示される、段階と；
前記複数のAPIオブジェクトおよび前記追加的なAPIオブジェクトを含むAPI仕様を機械可読フォーマットで生成する段階とを含む、
一つまたは複数の非一時的なコンピュータ可読記憶媒体。
（付記１７）
付記１５記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記動作がさらに：
前記複数のAPIオブジェクトのうちの一つまたは複数のAPIオブジェクトに対して行なわれる一つまたは複数の注釈付けを示す追加的なユーザー入力を受領する段階と；
前記一時ファイルに適用される一つまたは複数の関数を表わすデータを含むアプリケーション・ファイルを生成する段階と；
前記一時ファイルに前記一つまたは複数の関数を適用する段階であって、該一つまたは複数の関数が前記一時ファイルに適用されることが、前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わすデータを更新する、段階と；
前記複数のAPIオブジェクトのうちの少なくとも一つのAPIオブジェクトを表わす更新されたデータを含む前記一時ファイルおよび前記アプリケーション・ファイルのうちの一つまたは複数に基づいて前記表示ファイルを更新する段階と；
前記更新された表示ファイルに基づいて前記APIドキュメンテーションを表示する前記GUIの、前記表示画面上の表示を指揮する段階であって、前記複数のAPIオブジェクトの注釈付けされた一つまたは複数のAPIオブジェクトを含む前記複数のAPIオブジェクトが、前記ユーザー入力において示された前記スタイル構成に従うフォーマットを含むよう、前記GUIを介して表示される、段階と；
前記複数の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ドキュメンテーションは第1のAPIドキュメンテーションであり、前記複数のAPIオブジェクトは第1の複数のAPIオブジェクトであり、前記アプリケーション・ファイルは第1のアプリケーション・ファイルであり、前記一時ファイルは第1の一時ファイルであり、前記動作はさらに：
第2の複数のAPIオブジェクトを含む第2のAPIドキュメンテーションを受領し；
前記第2のAPIドキュメンテーションに関連するAPIフォーマットを決定し；
前記第2のAPIドキュメンテーションに関連する前記APIフォーマットが、前記一つまたは複数のAPIフォーマットのうちの少なくとも一つのAPIフォーマットと同じであるまたは類似していることに応答して：
前記第2の複数のAPIオブジェクトの一つまたは複数の関係したAPIオブジェクトを識別する段階であって、前記第2の複数のAPIオブジェクトの前記一つまたは複数の関係したAPIオブジェクトは、注釈付けされるべき前記第1の複数のAPIオブジェクトのうちの前記一つまたは複数のAPIオブジェクトに関係している、段階と；
前記第2のAPIドキュメンテーションを表わすデータを含む第2の一時ファイルを生成する段階と；
前記第2の一時ファイルに適用される一つまたは複数の関数を表わすデータを含む第2のアプリケーション・ファイルを生成する段階と；
前記一つまたは複数の関数を前記第2の一時ファイルに自動的に適用する段階であって、前記一つまたは複数の関数は、前記第2の複数のAPIオブジェクトの少なくとも一つのAPIオブジェクトを表わすデータを更新する、段階とを実行することを含む、
一つまたは複数の非一時的なコンピュータ可読記憶媒体。
【符号の説明】
【０１１６】
１０２  コンピューティング装置
１０３  フォーマット・モジュール
１０４  機械学習モジュール
１０７  ドキュメンテーション・ビューア・モジュール
１０８  GUIドライバ
１１０  自動化モジュール
１１４  ネットワーク
１１６  注釈付けされたAPI仕様
１２０  APIリポジトリ
２２２  APIドキュメンテーション
２２４  スタイル・ファイル
２２６  表示ファイル
２２８  アプリケーション・ファイル
２３０  一時ファイル
２３２  注入ファイル
図３Ａのボタン
次のAPI
前のAPI
次のページ
前のページ
OASオブジェクトを割り当て
割り当てをクリア
JSONをエクスポート
OASオブジェクトを自動検出
図３Ｂのボタン
選択に新規オブジェクトを追加
自動注釈付け
テーブルを保存
注釈を削除
スキーマを選択に割り当て
すべての注釈を保存
図４Ａ
REST  APIレファレンス
ServiceNowは一組のRESTfulなAPIを通じてインスタンスに対する広範なアクセスを提供します。下記には、利用可能なエンドポイントのリストが最新情報とともに見出されます。特定のエンドポイント、適用可能なクエリー・パラメータ、複数フォーマットでの見本の要求、および見本の応答ペイロードについてのさらなる情報について。
加えて、REST  API  Explorerを使って自分のインスタンス内からこれらのAPIを発見することができます。自分のニーズに合ったAPIがみつからない場合には、Genevaリリースの時点での当社のスクリプトされたREST  API特徴を使って、ServiceNow上でカスタムREST  APIを生成することができます。
REST  APIが初めてなら、当社のREST入門ページを見てみて下さい。
ServiceNow  REST  APIは、要求を認証するために基本的な認証およびOAuth  2.0をサポートします。
ServiceNow  REST  APIにはバージョンがあります。ドキュメンテーションのどのバージョンを見たいかを選ぶには、このページの左下隅に示されるバージョン・セレクターを使って下さい。
Table API
Table  APIにより、作成（create）、読み取り（read）、更新（updated）および削除（delete）（CRUD）動作を既存のテーブルに対して実行することができます。
GET  /now/table/{table
このメソッドは、指定されたテーブルのための複数のレコードを、適正なパジネーション情報をもって取得します。
図４Ａ
REST  APIレファレンス
ServiceNowは一組のRESTfulなAPIを通じてインスタンスに対する広範なアクセスを提供します。下記には、利用可能なエンドポイントのリストが最新情報とともに見出されます。特定のエンドポイント、適用可能なクエリー・パラメータ、複数フォーマットでの見本の要求、および見本の応答ペイロードについてのさらなる情報について。
加えて、REST  API  Explorerを使って自分のインスタンス内からこれらのAPIを発見することができます。自分のニーズに合ったAPIがみつからない場合には、Genevaリリースの時点での当社のスクリプトされたREST  API特徴を使って、ServiceNow上でカスタムREST  APIを生成することができます。
REST  APIが初めてなら、当社のREST入門ページを見てみて下さい。
ServiceNow  REST  APIは、要求を認証するために基本的な認証およびOAuth  2.0をサポートします。
ServiceNow  REST  APIにはバージョンがあります。ドキュメンテーションのどのバージョンを見たいかを選ぶには、このページの左下隅に示されるバージョン・セレクターを使って下さい。
Table API
Table  APIにより、作成（create）、読み取り（read）、更新（updated）および削除（delete）（CRUD）動作を既存のテーブルに対して実行することができます。
GET  /now/table/{tableName}
このメソッドは、指定されたテーブルのための複数のレコードを、適正なパジネーション情報をもって取得します。
６４８  プロセッサ
６５０  記憶装置
６５２  メモリ
６５４  通信装置
７０２  一つまたは複数のAPIフォーマットについてのスタイル構成を示すユーザー入力を受領
７０４  スタイル・ファイルを生成
７０６  APIドキュメンテーションを受領
７０８  APIドキュメンテーションに関連付けられたAPIフォーマットを決定
７１０  一時ファイルを生成
７１２  表示ファイルを生成
７１４  APIドキュメンテーションを表示するGUIの、表示画面上での表示を指揮
【図１】
2020187733.tif 000004
【図２】
2020187733.tif 000005
【図３Ａ】
2020187733.tif 000006
【図３Ｂ】
2020187733.tif 000007
【図４Ａ】
2020187733.tif 000008
【図４Ｂ】
2020187733.tif 000009
【図５Ａ】
2020187733.tif 000010
【図５Ｂ】
2020187733.tif 000011
【図６】
2020187733.tif 000012
【図７】
2020187733.tif 000013