(57)【要約】      （修正有）【課題】アプリケーションプログラムインターフェイス（ＡＰＩ）を、機能性、パラメータ、演算及びアクセシビリティに基づきインテリジェントに認識する。【解決手段】通信インターフェイスを介して、ＡＰＩドキュメンテーションのためのソースをクロールし、ソースからＡＰＩドキュメントを収集し、２つのセンテンスを含むＡＰＩドキュメントのコンテンツに基づきトークンを生成し、トークンに基づきＡＰＩオントロジーグラフを生成し、ＡＰＩオントロジーグラフに基づき２つのセンテンスの夫々についてセマンティックビューを展開し、優先順位を２つのセンテンスの夫々と関連付け、優先順位に基づき２つのセンテンスから第１センテンスを選択し、第１センテンスに基づきＡＰＩドキュメントのセマンティックビューを修正する。【選択図】図２
2018097846.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
通信インターフェイスと、
前記メモリ及び前記通信インターフェイスへ動作上結合されるプロセッサと
を有し、
前記プロセッサは、
前記通信インターフェイスを介して、アプリケーションプログラムインターフェイス（ＡＰＩ）ドキュメンテーションのための１つ以上のソースをクロールし、
前記通信インターフェイスを介して、前記１つ以上のソースからＡＰＩドキュメントを収集し、
少なくとも２つのセンテンスを含む前記ＡＰＩドキュメントのコンテンツに基づき少なくとも１つのトークンを生成するよう前記ＡＰＩドキュメントをトークン化し、
前記少なくとも１つのトークンに基づきＡＰＩオントロジーグラフを生成し、
前記ＡＰＩオントロジーグラフに基づき前記少なくとも２つのセンテンスの夫々についてセマンティックビューを展開し、
優先順位を前記少なくとも２つのセンテンスの夫々と関連付け、
第１センテンスの第１優先順位に基づき前記少なくとも２つのセンテンスから前記第１センテンスを選択し、
前記第１センテンスに基づき前記ＡＰＩドキュメントの前記セマンティックビューを修正する
ことを有する動作を実施するよう構成される、
システム。
【請求項２】
前記ＡＰＩドキュメントは、人間が読める言語における人間が読めるドキュメントを含む、
請求項１に記載のシステム。
【請求項３】
前記優先順位は、ＡＰＩオントロジーに基づく有限な文脈自由文法の確率に基づく、
請求項１に記載のシステム。
【請求項４】
前記プロセッサは、前記ＡＰＩドキュメントの更新のために前記１つ以上のソースを周期的にクロールするよう更に構成される、
請求項１に記載のシステム。
【請求項５】
前記プロセッサは、
前記ＡＰＩドキュメントの前記更新に基づき第２トークンを生成するよう前記ＡＰＩドキュメントの前記更新をトークン化し、
前記第２トークンに基づき、前記ＡＰＩオントロジーグラフ、第１セマンティックビュー、又は第２セマンティックビューのうちの少なくとも１つを更新する
ことを有する動作を実施するよう更に構成される、
請求項４に記載のシステム。
【請求項６】
前記プロセッサは、
ＡＰＩと相互作用するインターフェイスを提供し、
前記インターフェイスを介して前記ＡＰＩドキュメントのセマンティックビューを提供し、
前記セマンティックビューから特徴を抽出し、
ネイティブＡＰＩコードへマッピングされるジェネリックＡＰＩを生成し、
ジェネリック関数を実行するためのリクエストを受け取り、
前記リクエストを前記ＡＰＩのジェネリックコードからネイティブコードへマッピングし、
前記ジェネリック関数に対応する前記ＡＰＩのネイティブ関数が実行されるようにし、
前記インターフェイスを介して、前記ＡＰＩの前記ネイティブ関数の実行に基づきレスポンスを供給する
ことを有する更なる動作を実施するよう構成される、
請求項１に記載のシステム。
【請求項７】
前記プロセッサは、前記ジェネリック関数を前記ＡＰＩの前記ネイティブ関数へマッピングするよう更に構成される、
請求項６に記載のシステム。
【請求項８】
前記ＡＰＩの前記ネイティブ関数は、前記ＡＰＩの前記ネイティブ関数の演算、パラメータ、又はアクセシビリティのうちの少なくとも１つを含む、
請求項７に記載のシステム。
【請求項９】
ＡＰＩは、ウェブベースＡＰＩ、デバイスＡＰＩ、又はオペレーティングシステムベースＡＰＩのうちの少なくとも１つを含む、
請求項１に記載のシステム。
【請求項１０】
通信インターフェイスを介して、アプリケーションプログラムインターフェイス（ＡＰＩ）ドキュメンテーションのための１つ以上のソースをクロールし、
前記通信インターフェイスを介して、前記１つ以上のソースからＡＰＩドキュメントを収集し、
前記ＡＰＩドキュメントをトークン化し、
優先順位を夫々のセンテンスと関連付け、
第１セマンティックビューのためのＡＰＩオントロジーグラフを生成し、
機械学習法によって計算されるコーパスにおいて現れる確率に基づきセンテンスを選択し、
前記ＡＰＩオントロジーグラフに基づき夫々のＡＰＩドキュメントのために前記第１セマンティックビューを展開し、
ＡＰＩドキュメントが更新されると第２セマンティックビューを生成するよう前記ＡＰＩドキュメントの前記第１セマンティックビューを修正する
ことを有する方法。
【請求項１１】
前記１つ以上のソースは、前記ＡＰＩドキュメントの更新のために周期的にクロールされる、
請求項１０に記載の方法。
【請求項１２】
前記ＡＰＩドキュメントの前記更新に基づき第２トークンを生成するよう前記ＡＰＩドキュメントの前記更新をトークン化し、
前記第２トークンに基づき、前記ＡＰＩオントロジーグラフ、前記第１セマンティックビュー、又は前記第２セマンティックビューのうちの少なくとも１つを更新する
ことを更に有する請求項１１に記載の方法。
【請求項１３】
ＡＰＩと相互作用するインターフェイスを提供し、
前記インターフェイスを介して前記ＡＰＩドキュメントの前記第２セマンティックビューを提供し、
前記ＡＰＩドキュメントに基づきジェネリック関数を実行するためのリクエストを受け取り、
前記ジェネリック関数に対応する前記ＡＰＩのネイティブ関数が実行されるようにし、
前記インターフェイスを介して、前記ＡＰＩの前記ネイティブ関数の実行に基づきレスポンスを供給する
ことを更に有する請求項１０に記載の方法。
【請求項１４】
前記ジェネリック関数を前記ＡＰＩの前記ネイティブ関数へマッピングする
ことを更に有する請求項１３に記載の方法。
【請求項１５】
前記ＡＰＩの前記ネイティブ関数は、前記ＡＰＩの前記ネイティブ関数の演算、パラメータ、又はアクセシビリティのうちの少なくとも１つを含む、
請求項１４に記載の方法。
【請求項１６】
通信インターフェイスを介して、アプリケーションプログラムインターフェイス（ＡＰＩ）ドキュメンテーションのための１つ以上のソースをクロールし、
前記通信インターフェイスを介して、前記１つ以上のソースからＡＰＩドキュメントを収集し、
少なくとも２つのセンテンスを含む前記ＡＰＩドキュメントのコンテンツに基づき少なくとも１つのトークンを生成するよう前記ＡＰＩドキュメントをトークン化し、
ＡＰＩオントロジーグラフを生成し、
出現するセンテンスの確率を関連付け、
最も高い確率から１つ以上を選択し、
前記１つ以上の選択された最も高い確率に基づき前記ＡＰＩドキュメントの第１セマンティックビューを生成し、
前記ＡＰＩドキュメントの前記第１セマンティックビューを修正する
ことを有する動作を実施するようプロセッサによって実行可能なプログラミングコードが符号化されている非一時的なコンピュータ可読媒体。
【請求項１７】
前記１つ以上のソースは、前記ＡＰＩドキュメントの更新のために周期的にクロールされる、
請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記動作は、
前記ＡＰＩドキュメントの前記更新に基づき第２トークンを生成するよう前記ＡＰＩドキュメントの前記更新をトークン化し、
前記第２トークンに基づき、第２セマンティックビューを生成するよう前記ＡＰＩオントロジーグラフ又は前記第１セマンティックビューのうちの少なくとも１つを更新する
ことを更に有する、
請求項１７に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記動作は、
ＡＰＩと相互作用するインターフェイスを提供し、
前記インターフェイスを介して前記ＡＰＩドキュメントのセマンティックビューを提供し、
前記ＡＰＩドキュメントに基づきジェネリック関数を実行するためのリクエストを受け取り、
前記ジェネリック関数に対応する前記ＡＰＩのネイティブ関数が実行されるようにし、
前記インターフェイスを介して、前記ＡＰＩの前記ネイティブ関数の実行に基づきレスポンスを供給する
ことを更に有する、
請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記動作は、前記ジェネリック関数を前記ＡＰＩの前記ネイティブ関数へマッピングすることを更に有する、
請求項１９に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願で説明される実施形態は、ＡＰＩ学習システム及び関連する方法に関係がある。
【背景技術】
【０００２】
アプリケーションプログラミングインターフェイス（ＡＰＩ；Application  Programming  Interface）は、ソフトウェア・アプリケーションを構築するためのルーチン、プロトコル、及びツールの組である。ＡＰＩは、如何にしてソフトウェア・コンポーネントが相互作用すべきかを特定し、ＡＰＩは、グラフィカルユーザインターフェイス（ＧＵＩ；Graphical  User  Interface）コンポーネントをプログラムするときに使用される。ＡＰＩは、通常、ソフトウェア・アプリケーションの関数又はデータを公開し、他のアプリケーションが関数又はデータの実装への関心なしでＡＰＩのリソースを使用することを可能にする。
【０００３】
本願で請求される対象は、上述されたような環境でしか動作しない実施形態又は上述された如何なる欠点も解消する実施形態に制限されない。むしろ、この背景は、本願で記載される実施形態が実施され得る技術分野の一例を説明するためにのみ設けられている。
【発明の概要】
【０００４】
実施形態の態様に従って、システムは、通信インターフェイス及び該通信インターフェイスへ動作上結合されるプロセッサを含む。前記プロセッサは、インターネット又はイントラネット上で、前記通信インターフェイスを介して、アプリケーションプログラムインターフェイス（ＡＰＩ）ドキュメンテーションのための１つ以上のソースをクロールするよう構成される。前記プロセッサは、前記通信インターフェイスを介して、インターネット上で前記１つ以上のソースからＡＰＩドキュメントを収集するよう更に構成される。前記プロセッサはまた、前記ＡＰＩドキュメントのコンテンツに基づき少なくとも１つのトークンを生成するよう前記ＡＰＩドキュメントをトークン化するよう構成される。前記コンテンツは、少なくとも２つのセンテンスを有する少なくとも１つのウェブページを含む。前記プロセッサは、前記少なくとも１つのトークンに基づきＡＰＩオントロジーグラフを生成するよう構成される。前記プロセッサは、前記ＡＰＩオントロジーグラフに基づき前記ＡＰＩドキュメントの前記少なくとも２つのセンテンスのうちの夫々のセンテンスについてセマンティックビューを展開するよう更に構成される。前記プロセッサはまた、優先順位を前記ＡＰＩドキュメントの前記少なくとも２つのセンテンスのうちの夫々のセンテンスと関連付けるよう構成される。前記プロセッサは、夫々のセンテンスの第１優先順位に基づき前記ＡＰＩドキュメントの前記少なくとも２つのセンテンスから夫々のセンテンスを選択するよう構成される。生成された前記セマンティックビューは、前記プロセッサがデータを取り出し、種々のＡＰＩの機能性、メソッド、パラメータ、特徴を理解するのを可能にする。前記プロセッサは、種々のＡＰＩと相互作用するよう構成される。
【０００５】
実施形態の目的及び利点は、特許請求の範囲で特に指し示されている要素、特徴、及び組み合わせによって少なくとも実現及び達成される。
【０００６】
前述の概要及び以下の詳細な説明はいずれも、説明及び例示であり、請求される発明の制限ではない点が理解されるべきである。
【図面の簡単な説明】
【０００７】
例となる実施形態は、添付の図面の使用を通じて更なる特性及び詳細をもって記載及び説明される。
【０００８】
【図１】ＡＰＩ学習システムの動作環境の例のブロック図を表す。
【０００９】
【図２】ＡＰＩ学習システムに関連する方法の例のフロー図を表す。
【００１０】
【図３】ＡＰＩドキュメントのトークン化に関連する方法の例のフロー図を表す。
【００１１】
【図４】ＡＰＩを分類するよう初期オントロジーを生成することに関連する方法の例のフロー図を表す。
【００１２】
【図５】例となる初期オントロジー構造を表す。
【００１３】
【図６】オントロジーグラフの生成に関連する方法の例のフロー図を表す。
【００１４】
【図７】初期オントロジーのセマンティックビュー及び初期オントロジーに基づく選択されたドキュメントのタグ付けプロセスを表す。
【００１５】
【図８】ＡＰＩドキュメントのセマンティックビューのタグの夫々についての有限ＣＦＧの確率（ＰＬＣＦＧ）のための順位付けの例を表す。
【００１６】
【図９】ＲＥＳＴオントロジーのオントロジーグラフの例を表す。
【００１７】
【図１０】ＡＰＩ学習システムを使用することに関連する方法の例のフロー図を表す。
【００１８】
【図１１】ジェネリックＡＰＩ特徴とネイティブＡＰＩ特徴との間のマッピンググラフの例を表す。
【００１９】
【図１２】ネイティブＡＰＩ関数を実行するためにジェネリックＡＰＩ関数を使用することに関連する方法の例のフロー図を表す。
【００２０】
【図１３】ＡＰＩ学習システムにおけるインターフェイスに関連する方法の例のフロー図を表す。
【００２１】
【図１４】本願で記載される少なくとも１つの実施形態に従って全て配置される、本願で説明される方法のうちのいずれか１つ以上をマシンに実施させる命令の組が実行され得るコンピューティングデバイスの形を例としてマシンの図解表現を表す。
【発明を実施するための形態】
【００２２】
いくつかのタイプのＡＰＩが存在する。ウェブＡＰＩは、例えば、インターネット又はイントラネットにおいてウェブサービスを通じてその関数及びデータを公開し得る。デバイスＡＰＩは、デバイスハードウェアモジュールの機能性を全てのデバイス及び／又はソフトウェアへ公開し得る。アプリケーションＡＰＩは、例えばオペレーティングシステムを通じて、ソフトウェア・アプリケーションの関数又はデータベースへのアクセスを提供し得る。通常、ＡＰＩは、ＡＰＩから又はそれを通じて提供されるサービス、関数又はデータに基づき、新しいシステムを実装するときに、開発者にとって有用であり得る。従来のＡＰＩは、サービスを提供する“ブラック・ボックス”としてしばしば働き、一方、開発者は、通常は、実装の詳細を識別するためにブラック・ボックス内を見ることができない。いくつかのＡＰＩは、システムの複雑性を取り去り、いくつかのＡＰＩは、一部の詳細を開発者から隠して、実装の柔軟性を低下させることがある。
【００２３】
夫々のＡＰＩは、通常、異なる属性を伴った異なるタイプのデータを有している異なるプロトコルを通じてそれ自身のサービス及び／又はデータを公開する。この従来アプローチは、開発者が様々なＡＰＩとともに働いているときに異種問題を引き起こし得る。更には、ほとんどのＡＰＩは、形式的定義を有しておらず、それらの大部分は、ＨＴＭＬファイルとして記述されている人間が読める記述である。結果として、ソフトウェア開発者は、通常は、ＡＰＩ関数にアクセスしてそれと相互作用するために、ＡＰＩドキュメントを読んで学習する。ＡＰＩ機能性及びそれらのドキュメンテーションは、周期的に更新され得る。その後に、開発者は、新しいＡＰＩドキュメンテーションを読み学習し、次いで、新しいＡＰＩ機能性に基づき彼／彼女自身のアプリケーションを修正する必要がある。ソフトウェア開発を更に複雑にするよう、夫々のＡＰＩは、異なったプログラミング言語を通じてアクセス可能であり得る。
【００２４】
本開示の態様は、ジェネリックＡＰＩを提供することによってＡＰＩ及び関連するシステムのそれら及び他の欠点に対処する。ジェネリックＡＰＩによって提供される統一されたＡＰＩ言語は、ソフトウェア開発者及びエンドユーザが１つのインターフェイス及び／又は言語により異なったＡＰＩと相互作用するのを助けることができる。ジェネリックＡＰＩを使用すれば、開発者及び／又はエンドユーザは、個々の要素を統一されたジェネリックＡＰＩへマッピングする統一インターフェイスを通じて、異なったＡＰＩと相互作用し得る。加えて、ジェネリックＡＰＩは、プロセッサを通じて新しいドキュメンテーションを学習する。ドキュメンテーションは、異なるＡＰＩへの最新のアクセスを維持するために周期的に更新され得る。
【００２５】
ジェネリックＡＰＩは、対象の人間の言語（例えば、英語、日本語、ドイツ語、など）からＡＰＩドキュメンテーションを収集することを通じて、異種ＡＰＩを、それらの機能性、パラメータ、演算及びアクセシビリティに基づきインテリジェントに認識し得る。第２に、ジェネリックＡＰＩは、サービスのタイプ、プロトコル、アクセシビリティ・メソッド、セキュリティ・メソッド、機能性、パラメータ、属性、及びその基本動作並びに出力フォーマットを含むＡＰＩの特徴を認識するようＡＰＩのドキュメントを読み出す。異なるＡＰＩのための所与の命令の夫々は、ジェネリックＡＰＩ特徴へマッピングされる。プログラマ又はエンドユーザは、その場合に、ジェネリックＡＰＩに基づき複数の異種ＡＰＩへのアクセスを有し得る。ジェネリックＡＰＩは、プログラムが異なる対象ＡＰＩと相互作用するよう統一コードを使用することを可能にする統合開発環境（ＩＤＥ；Integrated  Development  Environment）を提供し、そして、ジェネリックＡＰＩは、対象のネイティブＡＰＩコードを提供することができる。
【００２６】
本願で記載されるいくつかの実施形態は、複数のプロトコル上で通信するデバイスの統合を可能にする。加えて、デバイス構成に統合されると、デバイスは、必ずしも中央システムを通らずに、ピア・ツー・ピアで通信し得る。
【００２７】
図１は、本願で記載される少なくとも１つの実施形態に従って配置される、ＡＰＩ学習システムの例となる動作環境１００のブロック図を表す。図１で表されるように、動作環境１００は、デバイス１１０、１つ以上のＡＰＩドキュメントソース１１５、ネットワーク１２４、及びデータストレージ１２８を含んでよい。
【００２８】
デバイス１１０は、プロセッサ、メモリ、及び通信機能を含むコンピュータベースのハードウェアデバイスを含んでよい。デバイス１１０は、動作環境１００の他のコンポーネントのいずれかとデータをやり取りするようネットワーク１２４へ結合されてよい。デバイス１１０のいくつかの例は、携帯電話機、スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータ、デスクトップ・コンピュータ、セットトップボックス、仮想現実デバイス、又は接続型デバイス、などを含んでよい。デバイス１１０は、プロセッサベースのコンピューティングデバイスを含んでよい。例えば、デバイス１１０は、ハードウェアサーバ、又はサーバとして機能するよう構成された他のプロセッサベースのコンピューティングデバイスを含んでよい。デバイス１１０は、メモリ及びネットワーク通信機能を含んでよい。
【００２９】
１つ以上のＡＰＩドキュメントソース１１５は、ＡＰＩドキュメンテーションのための如何なるコンピュータベースのソースも含んでよい。例えば、ＡＰＩドキュメントソース１１５は、サーバ、クライアント・コンピュータ、リポジトリ、などを含んでよい。１つ以上のＡＰＩドキュメントソース１１５は、如何なる電子フォーマットでもＡＰＩドキュメントを保持してよい。更には、ＡＰＩドキュメントは、機械が読めるもの及び／又は人間が読めるものであってよい。ＡＰＩドキュメントは如何なる言語であってもよい。例えば、ＡＰＩドキュメントは、如何なる対象の人間の言語（例えば、英語、日本語、ドイツ語）であってもよい。少なくとも１つの実施形態において、１つ以上のＡＰＩドキュメントソース１１５は、ネットワーク１２４（例えば、ワールド・ワイド・ウェブ）を介して互いと通信して１つの電子デバイスによって他の電子デバイスへ提供されるＡＰＩ情報サービスを含んでよい。
【００３０】
ネットワーク１２４は、動作環境１００のコンポーネント（例えば、１１０、１１５及び１２８）のいずれかの間の信号のやり取りのために構成された如何なる通信ネットワークも含んでよい。ネットワーク１２４は有線又は無線であってよい。ネットワーク１２４は、星形構成、トークンリング構成、又は他の適切な構成を含む多数の構成を有してよい。更には、ネットワーク１２４は、ローカルエリアネットワーク（ＬＡＮ；Local  Area  Network）、ワイドエリアネットワーク（ＷＡＮ；Wide  Area  Network）（例えば、インターネット）、及び／又は他の相互接続されたデータ経路を含んでよく、それらにわたって、複数のデバイスは通信し得る。いくつかの実施形態において、ネットワーク１２４はピア・ツー・ピアネットワークを含んでよい。ネットワーク１２４はまた、多種多様な通信プロトコルにおけるデータの通信を可能にし得る電気通信ネットワークへ結合されるか、あるいは、その部分を含んでよい。
【００３１】
いくつかの実施形態において、ネットワーク１２４は、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信ネットワーク、Ｚ−Ｗａｖｅ（登録商標）通信ネットワーク、Ｉｎｓｔｅｏｎ（登録商標）通信ネットワーク、ＥｎＯｃｅａｎ（登録商標）通信ネットワーク、ワイヤレス・フィデリティ（Ｗｉ−Ｆｉ）通信ネットワーク、ＺｉｇＢｅｅ通信ネットワーク、ＨｏｍｅＰｌｕｇ通信ネットワーク、電力回線通信（ＰＬＣ；Power-line  Communication）通信ネットワーク、メッセージ・キュー・テレメトリ・トランスポート（ＭＱＴＴ；Message  Queue  Telemetry  Transport）通信ネットワーク、ＭＱＴＴセンサ（ＭＱＴＴ−Ｓ）通信ネットワーク、制約付きアプリケーションプロトコル（ＣｏＡＰ；Constrained  Application  Protocol）通信ネットワーク、表現可能状態転送アプリケーションプロトコルインターフェイス（ＲＥＳＴＡＰＩ；Representative  State  Transfer  Application  Protocol  Interface）通信ネットワーク、拡張可能メッセージング及びプレゼンスプロトコル（ＸＭＰＰ；eXtensible  Messaging  and  Presence  Protocol）通信ネットワーク、セルラー通信ネットワーク、何らかの同様の通信ネットワーク、又はデータを送信及び受信するためのそれらのあらゆる組み合わせを含むか、あるいは、それらを含むよう構成される。ネットワーク１２４においてやり取りされるデータは、ショート・メッセージング・サービス（ＳＭＳ；Short  Messaging  Service）、マルチメディア。メッセージング・サービス（ＭＭＳ；Multimedia  Messaging  Service）、ハイパーテキスト転送プロトコル（ＨＴＴＰ；HyperText  Transfer  Protocol）、直接データ接続、無線アプリケーションプロトコル（ＷＡＰ；Wireless  Application  Protocol）、電子メール、スマート・エネルギ・プロファイル（ＳＥＰ；Smart  Energy  Profile）、ＥＣＨＯＮＥＴ  Ｌｉｔｅ、ＯｐｅｎＡＤＲ、又はデバイス、クラウドサーバ通信、若しくはゲートウェイにより実施され得る何らかの他のプロトコルを介してやり取りされるデータを含んでよい。
【００３２】
データストレージ１２８は、如何なるメモリ又はデータストレージも含んでよい。データストレージ１２８は、動作環境１００における他のコンポーネントがデータストレージ１２８と通信し得るようにネットワーク通信機能を含んでよい。いくつかの実施形態において、データストレージ１２８は、コンピュータ実行可能命令又はデータ構造を運ぶか、又はそれらが記憶されるためのコンピュータ可読記憶媒体を含んでよい。コンピュータ可読記憶媒体は、例えばプロセッサのような、汎用又は特別目的のコンピュータによってアクセスされ得る如何なる利用可能な媒体も含んでよい。例えば、データストレージ１２８は、ランダム・アクセス・メモリ（ＲＡＭ；Random  Access  Memory）、リードオンリー・メモリ（ＲＯＭ；Read-Only  Memory）、電気的消去可能なプログラム可能リードオンリー・メモリ（ＥＥＰＲＯＭ；Electrically  Erasable  Programmable  Read-Only  Memory）、コンパクトディスク・リードオンリー・メモリ（ＣＤ−ＲＯＭ；Compact  Disc  Read-Only  Memory）若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、フラッシュメモリデバイス（例えば、固体状態メモリデバイス）、あるいは、コンピュータ実行可能命令又はデータ構造の形で所望のプログラムコードを搬送又は記憶するために使用され得且つ汎用又は特別目的のコンピュータによってアクセスされ得る何らかの他の記憶媒体を含む有形な又は非一時的なコンピュータ可読記憶媒体であってよいコンピュータ可読記憶媒体を含んでよい。上記の記憶媒体の組み合わせが、データストレージ１２８において含まれてよい。
【００３３】
データストレージ１２８は、様々なデータを記憶してよい。データは、例えば関係データベース構造のような如何なるデータ構造においても記憶されてよい。例えば、データストレージ１２８は、少なくとも１つのオントロジーグラフ１４５、ＡＰＩドキュメントの処理された組１５０、抽出された特徴の組１５５、マッピンググラフ１６０、等を含んでよい。
【００３４】
デバイス１１０は、ジェネリックＡＰＩ生成器１２６を含んでよい。いくつかの実施形態において、ジェネリックＡＰＩ生成器１２６は、ホストから直接に又はインターネットからのアプリケーションストアからダウンロードされ得るスタンドアローンのアプリケーション（“ａｐｐ”）を含んでよい。ジェネリックＡＰＩ生成器１２６は、本開示で記載されるように、ＡＰＩ学習システムに及びジェネリックＡＰＩの生成に関連した様々な動作を実施してよい。
【００３５】
動作において、ジェネリックＡＰＩ生成器１２６は、１つ以上のＡＰＩドキュメントソース１１５からＡＰＩドキュメントを読み出してよく、そして、ＡＰＩドキュメントから特徴を抽出してよい。ジェネリックＡＰＩ生成器１２６は、ＡＰＩのドキュメントのオントロジーに基づきＡＰＩドキュメントのセマンティックモデル（例えば、図７のセマンティックビュー７００）を生成してよい。ジェネリックＡＰＩ生成器１２６は、ＡＰＩの特徴を抽出するようオントロジー（例えば、図９のオントロジー９００）のグラフを生成してよい。次いで、ジェネリックＡＰＩ生成器１２６は、ＡＰＩの特徴を抽出するためにセマンティックモデル（例えば、図８のセマンティックモデル８００）を使用してよい。
【００３６】
ジェネリックＡＰＩ生成器１２６は、構造化されていないドキュメント（例えば、人間が読めるもの）及び／又は異種ＡＰＩに基づき異なるＡＰＩの機能性を理解するために、且つ、ＡＰＩの夫々の抽出された特徴（例えば、ネイティブ特徴）をジェネリックＡＰＩ特徴へマッピングすることによってジェネリック関数の組及びアクセシビリティを異なるＡＰＩへ提供するために、機械学習法を使用してよい。
【００３７】
ジェネリックＡＰＩ生成器１２６は、ブランド、デバイスのタイプ、サポートされているネットワークプロトコル及び利用可能なアクションに基づきＡＰＩの分類を提供してよい。ジェネリックＡＰＩ生成器１２６は、ＡＰＩ特徴（例えば、入力のタイプ、出力のタイプ、ＡＰＩエンドポイント、アクセスキー、認証（authentication））を抽出してよい。ジェネリックＡＰＩ生成器１２６は、複数のＡＰＩ（マッシュアップ（mashup）ＡＰＩ）の統合に基づくリコメンデーションシステムを含んでよく、そして、異なるＡＰＩの新しい使用ケースを見つけてよい。ジェネリックＡＰＩ生成器１２６は、ソフトウェア開発者／エンドユーザが異種ＡＰＩへ接続するためにジェネリックＡＰＩインターフェイス（ＩＤＥ、ＧＵＩ）を使用している（ジェネリックＡＰＩ関数が異種ネイティブＡＰＩ関数へマッピングしている。）ときに、彼らのために使いやすさを提供してよい。
【００３８】
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに、動作環境１００に対して行われてよい。例えば、動作環境１００は、記載されているデバイス及びサービスをいくつでも含んでよい。更には、本願で記載されている実施形態における様々なコンポーネント及びサーバの分離は、そのような分離が全ての実施形態で起こることを示すよう意図されない。更には、記載されているコンポーネント及びサーバは、一般に、単一のコンポーネント又はサーバにまとめられるか、あるいは、複数のコンポーネント又はサーバに分けられてよいことが、本開示をもって理解され得る。
【００３９】
図２〜４、６、１０及び１２〜１３は、ＡＰＩ学習システムに関連した方法の例のフロー図を表す。方法は、ハードウェア（回路、専用のロジック、など）、ソフトウェア（例えば、汎用のコンピュータシステム若しくは専用の機械で実行されるもの）、又は両者の組み合わせを含んでよいプロセッシングロジックによって実施されてよい。プロセッシングロジックは、図１のジェネリックＡＰＩ生成器１２６、又は他のコンピュータシステム若しくはデバイスに含まれてよい。しかし、他のシステム又はシステムの組み合わせが、方法を実施するために使用されてよい。説明の簡単のために、本願で説明される方法は、動作の連続として図示及び記載される。しかし、本開示に従う動作は、様々な順序で及び／又は同時に、そして、本願で図示及び記載されていない他の動作とともに、起こってよい。更には、全ての表されている動作が、開示されている対象に従って方法を実施するために使用されなくてもよい。その上、当業者は、方法が代替的に状態図による相互関係のある状態又は事象の連続として表されてよいことを理解及び認識するだろう。加えて、本明細書で開示されている方法は、そのような方法をコンピューティングデバイスへ輸送及び転送することを容易にするよう、例えば非一時的なコンピュータ可読媒体のような製品において記憶されることが可能である。本願で使用される語「製品」は、如何なるコンピュータ可読デバイス又は記憶媒体からもアクセス可能なコンピュータプログラムを含むよう意図される。別個のブロックとして表されているが、様々なブロックは、所望の実施に応じて、更なるブロックに分けられても、より少ないブロックへとまとめられても、あるいは、削除されてもよい。
【００４０】
図２は、ＡＰＩ学習システムに関連した、例となる方法２００のフロー図を表す。方法２００はブロック２０５から開始してよい。ブロック２０５で、プロセッシングロジックは、ＡＰＩドキュメンテーションのための１つ以上のソースをクロールしてよい。例えば、プロセッシングロジックは、ＡＰＩドキュメンテーションについて図１の１つ以上のＡＰＩドキュメンテーションソース１１５をクロールしてよい。プロセッシングロジックは、ＡＰＩドキュメンテーションを識別するためのリクエストに応答して、１つ以上のソースをクロールしてよい。例えば、ソフトウェア開発者又はエンドユーザは、ＡＰＩ又はＡＰＩを使用した特定の機能を使用するためのリクエストを電子的に提示してよい。
【００４１】
ブロック２１０で、プロセッシングロジックは、１つ以上のソースからＡＰＩドキュメントをいくつでも収集してよい。ＡＰＩドキュメントは、対象の人間の言語にあってよい。ＡＰＩドキュメントは、１つ以上のセンテンスを含んでよい。
【００４２】
ブロック２１５で、プロセッシングロジックは、ＡＰＩドキュメントをトークン化してよい。トークン化は、テキストのストリーム（例えば、センテンス）を語（words）、語句（phrases）、符号（symbols）、又はトークンと呼ばれる他の有意味な要素に分けることを指してよい。トークンのリストは、例えばパーシング（parsing）又はテキストマイニング（text  mining）のような更なる処理のための入力になり得る。少なくとも１つの実施形態において、プロセッシングロジックは、図３の方法に従ってＡＰＩドキュメントをトークン化してよい。
【００４３】
ブロック２２０で、プロセッシングロジックは、初期ＡＰＩオントロジーを生成してよい。オントロジーは、例えばリソース記述フレームワーク（ＲＤＦ；Resource  Description  Framework）フォーマットのような如何なるフォーマットにも基づき定義されてよい。一例としてＲＤＦを使用すると、ＲＤＦは、例えば、ワールド・ワイド・ウェブ・コンソーシアム（Ｗ３Ｃ；World  Wide  Web  Consortium）のＲＤＦデータアクセス作業グループ（ＤＡＷＧ；Data  Access  Working  Group）によって示されているＳＰＡＲＱＬクエリ処理法のような、種々の方法によってパースされ得る。初期オントロジーは、図４に関連して図示され、更に説明されるように、そのアプリケーション、特性、記述、メソッド及びクラスに基づきＡＰＩを分類してよい。ＡＰＩドメインのための利用可能なオントロジーを有さない実施形態では、初期オントロジーは、図５に関連して図示され、更に説明されるように、ＡＰＩオントロジーのルート構造を定義してよい。プロセッシングロジックは、ＯＳベースのＡＰＩ、ウェブベースのＡＰＩ及びデバイスベースのＡＰＩを含む様々なオントロジーに基づき、初期オントロジーを定義してよい。初期ＡＰＩオントロジーを定義又は精緻化するよう、プロセッシングロジックは、多数のＡＰＩドキュメンテーションのコーパス（corpus）を収集してよい。ＡＰＩドキュメンテーションのコーパスは、新しいエンティティを加えること、初期オントロジー内のオブジェクト間の新しい関係を見つけること、又はエンティティ間の新しい関係を見つけること、などによって、初期オントロジーが拡張されることを可能にし得る。ＡＰＩオントロジーを生成することはまた、ＡＰＩオントロジーグラフを生成することを含んでよく、その方法は、図６に関連して図示され、更に説明される。例となるオントロジーグラフは、図９に関連して図示され、更に説明される。
【００４４】
ブロック２２５で、プロセッシングロジックは、ＡＰＩドキュメント内の各センテンスについてセマンティックビューを展開してよい。例となるセマンティックビューは、図７に関連して図示され、更に説明される。プロセッシングロジックはまた、例えば、オントロジーへの新しいエンティティの追加又は初期オントロジーの拡張に応答して、セマンティックビュープロセスを更新してよい。
【００４５】
ブロック２３０で、プロセッシングロジックは、センテンスを夫々の優先順位に基づきソートしてよい。各センテンスは、例えば、夫々の優先順位を有してよい。プロセッシングロジックは、夫々の優先順位を決定してよく、あるいは、夫々の優先順位は、予め決定されてよい。夫々の優先順位は、収集されたコーパス、そして、ＡＰＩドキュメンテーション内の出現する異なるセンテンスの統計値を提供するコーパスの機械学習ベースのモデルに基づき、生成されてよい。モデル内の最上位は、コーパス内のセンテンスの出現する異なるタイプの確率を示してよい。
【００４６】
ブロック２３５で、プロセッシングロジックは、最も高い優先順位のセンテンスを選択する。少なくとも１つの実施形態において、プロセッシングロジックは、最も高い優先順位を有している１つ以上のセンテンスを選択してよい。閾パラメータは、ＡＰＩ学習が、更なる処理のために、種々の個数の最も高い優先順位を選択することを可能にしてよい。
【００４７】
ブロック２４０で、プロセッシングロジックは、選択されたセンテンスに基づきＡＰＩドキュメントのセマンティックビューを生成してよい。ブロック２４５で、プロセッシングロジックは、ＡＰＩドキュメントに関連した新しいオブジェクトを識別してよく、その新しいオブジェクトの更なる処理のためにブロック２２５へ進んでよい。
【００４８】
当業者は、本願で開示されているこの及び他のプロシージャ及び方法について、プロセス及び方法において行われる機能が別の順序で実施されてよいことを認識するだろう。更には、説明されているステップ及び動作は、単に例として与えられており、ステップ及び動作の一部は、開示されている実施形態から逸脱することなしに、任意であっても、より少ないステップ及び動作にまとめられても、あるいは、更なるステップへと拡張されてもよい。
【００４９】
図３は、ＡＰＩドキュメントのトークン化に関連して、例となる方法３００のフロー図を表す。ＡＰＩドキュメントは１つ以上のページを含んでよい。方法３００は、ブロック３０５から開始してよい。ブロック３０５で、プロセッシングロジックは、ＡＰＩドキュメントの各ページをトークン化してよい。例えば、プロセッシングロジックは、ページのセンテンスをトークンへとトークン化してよい。トークンは、単一の語句又は複数の語句を含んでよい。
【００５０】
ブロック３１０で、プロセッシングロジックは、夫々のトークン化されたページの言語を検出してよい。言語は、人間が読める言語を含んでよい。
【００５１】
ブロック３１５で、プロセッシングロジックは、検出された言語が対象の言語であるかどうかを判定してよい。対象の言語は、所定の言語又は言語の組であってよく、あるいは、システム管理者によって指定されてよい。検出された言語が対象の言語でない（ブロック３１５での“いいえ”）場合に、プロセッシングロジックは、ブロック３２０で、ページを処理することを中止してよい。
【００５２】
検出された言語が対象の言語である（ブロック３１５での“はい”）場合に、プロセッシングロジックは、ブロック３２５で、トークン化されたページのうちの１つ以上から要素を除いてよい。それらの要素は、更なる処理のために重要でない語又は語句を含んでよい。そのような要素の例は、語“the”であってよい。ブロック３３０で、プロセッシングロジックは、１つ以上のトークン化されたページ内の夫々の語をトークン化してよい。ブロック３３５で、プロセッシングロジックは、ＡＰＩドキュメントダイジェストを生成してよい。ＡＰＩドキュメントダイジェストは、トークン化された語のうちの１つ以上を含んでよい。ＡＰＩドキュメントダイジェストは、図４に関連して更に説明される更なる処理のために精緻化され用意されるＡＰＩの白紙ページ（clean  pages）の組を含んでよい。
【００５３】
図４は、ＡＰＩを分類するよう初期オントロジーを生成することに関連した、例となる方法４００のフロー図を表す。方法４００は、ブロック４０５から開始してよい。ブロック４０５で、プロセッシングロジックは、ＡＰＩドキュメント内のＡＰＩコンテンツを読み出してよい。ＡＰＩコンテンツを読み出すことは、ＡＰＩドキュメント内のテキストをパース及び／又はスキャンすることを含んでよい。
【００５４】
ブロック４１０で、プロセッシングロジックは、ＡＰＩドキュメントから１つ以上のセンテンスを抽出してよい。ブロック４１５で、プロセッシングロジックは、１つ以上の抽出されたセンテンスをトークン化してよい。これは、各センテンスを２つ以上のトークンに分けることを含んでよい。トークンは、それらがセンテンス内に現れた順序を表す順序通りであってよい。プロセッシングロジックは、センテンスの外にある如何なる更なるコンテンツも除外又は削除してよい。
【００５５】
ブロック４２０で、プロセッシングロジックは、トークン化された抽出されたセンテンスをパースしてよい。初期オントロジーは、ＲＥＳＴオントロジーを定義し得るオントロジーのルート構造を含んでよい。例えば、それはプロトコルタイプを含んでよく、ＲＥＳＴ  ＡＰＩドキュメンテーションは更なる定義をプロトコルタイプに加える。夫々のパースされたトークンは、１つ以上の要素を含んでよい。例えば、夫々のパースされたトークンは、ＲＤＦリソースの記録として記憶され得る３つの要素を生成するために使用され得る。少なくとも１つの実施形態において、要素Ｆｉ（ｉ番目の抽出されたＡＰＩ特徴）は、ＲＤＦリソースの記録として３つの要素を使用することによって、エントリとしてオントロジーに加えられてよい。少なくとも１つの実施形態において、オントロジーは、ＲＤＦリソースとして定義されてよい。少なくとも１つの実施形態において、プロセッシングロジックは、１つ以上の抽出ルールに基づきＡＰＩ及び／又はトークン化された抽出されたセンテンスをパースしてよい。抽出されたデータは、ＲＤＦリソースとして記憶されてよい。
【００５６】
ブロック４２５で、プロセッシングロジックは、１つ以上のセンテンスから１つ以上の要素を抽出してよい。例えば、プロセッシングロジックは、各センテンスから３つの要素（例えば、主体、関係、対象）を抽出するために抽出ルールを使用してよい。プロセッシングロジックは、ＲＤＦリソースにおいて記録として記憶され得る１つ又は複数のトリプル（triples）を生成してよい。
【００５７】
ブロック４３０で、プロセッシングロジックは、抽出された要素に基づきファイルを生成してよい。例えば、プロセッシングロジックは、図５に関連して更に説明されるように、“オブジェクト記述（Object  Description）”に加えられ得る抽出されたトリプルに基づき、ＲＤＦファイルを生成してよい。
【００５８】
図５は、初期オントロジー構造５００の例を表す。初期オントロジー構造５００は、ジェネリックＡＰＩ５０２を含んでよく、様々なタイプ（Type）５０４、メソッド（Method）５０６、及びクラス（Class）５０８を有してよい。タイプ５０４は、いくつかあるタイプの中でも、ウェブベースＡＰＩ５１０、ＯＳベースＡＰＩ５１２、及びデバイスＡＰＩ５１４を含んでよい。ウェブベースＡＰＩ５１０は、名称（Name）５１６及びオブジェクト（Object）記述５１８を含んでよい。ＯＳベースＡＰＩ５１２は、ＯＳ５１２及びオブジェクト記述５２２を含んでよい。デバイスＡＰＩ５１４は、タイプ５２４及びオブジェクト記述５２６を含んでよい。
【００５９】
メソッド５０６は、とりわけ、名称５２８、メソッドの１つ以上のパラメータ５３０、メソッドのデータ出力５３２、データタイプ５３４、及びコンテンツ５３６を含んでよい。クラス５０８は、名称５３８及びオブジェクト記述５４０を含んでよい。
【００６０】
図６は、オントロジーグラフの生成に関連した、例となる方法６００のフロー図を表す。生成されるオントロジーグラフは、図９に関連して更に説明されるオントロジーグラフ９００であってよい。オントロジーグラフは、初期オントロジー６１５及び／又は１つ以上のトークン６０５に基づいてよい。方法６００は、ブロック６１０から開始してよい。ブロック６１０で、プロセッシングロジックは、トークン６０５のためのオントロジーを照合してよい。トークン６０５のためのオントロジーを照合するよう、プロセッシングロジックは、トークン６０５のための１つ以上のオントロジー（例えば、初期オントロジー６１５）にクエリしてよい。
【００６１】
ブロック６２０で、プロセッシングロジックは、トークン６０５が初期オントロジー６１５からの要素と適合するかどうかを判定してよい。トークン６０５が初期オントロジー６１５からの要素と適合する（ブロック６２０での“はい”）場合に、プロセッシングロジックは、ブロック６２５で、初期オントロジー６１５内の要素に基づきトークン６０５にラベルを付けてよい。ブロック６３０で、プロセッシングロジックは、照合するよう試みるべき更なるトークンが存在するかどうかを判定してよい。照合するよう試みるべき更なるトークンが存在する（ブロック６３０での“いいえ”）場合に、プロセッシングロジックは、ブロック６３５で、次のトークンを読み出してよい。
【００６２】
トークン６０５が初期オントロジー６１５からの要素と適合しない（ブロック６２０での“いいえ”）場合に、プロセッシングロジックはトークン６０５を発見してよい。トークンがブロック６２０での目下の照合プロセスによって拒絶される場合には、プロセッシングロジックは、更なる処理のための様々な選択肢を有してよい。例えば、２つの選択肢が存在し得る。第１に、新しいトークンは、新しい定義を初期オントロジー６１５に加えてよい。この場合に、ブロック６２０で、プロセッシングロジックは、ブロック６４０からの新たに発見された要素により初期オントロジーを変更してよく、そして、ブロック６１０で再処理されてよい。第２の可能性は、ブロック６４０のトークンの発見が初期オントロジー６１５に対する如何なる変更要件も含まないとの決定を含んでよい。この場合に、トークンは、ブロック６５０で断念されてよい。
【００６３】
ブロック６４５で、プロセッシングロジックは、トークン６０５が初期オントロジー６１５からの要素と適合するかどうかを判定してよい。トークン６０５が初期オントロジー６１５からの要素と適合する（ブロック６４５での“はい”）場合に、プロセッシングロジックは、トークン６０５を初期オントロジー６１５に加えてよい。トークン６０５が初期オントロジー６１５からの要素と適合しない（ブロック６４５での“いいえ”）場合に、プロセッシングロジックは、初期オントロジー６１５の如何なる変更もない場合には、トークン６０５を断念し且つ／あるいはトークン６０５の処理を中止してよい。
【００６４】
図７は、初期オントロジーのセマンティックビュー７００及び初期オントロジーに基づく選択されたドキュメントのタグ付けプロセスを表す。選択されたドキュメントは、対象の人間の言語におけるドキュメント（例えば、英語におけるドキュメント）を含んでよい。
【００６５】
少なくとも１つの実施形態において、セマンティックビュー７００は、有限な文脈自由文法（ＬＣＦＧ；Limited  Context-Free  Grammar）においてフォーマットされてよい。例えば、文脈自由文法（ＣＦＧ）は、ＡＰＩオントロジーに基づきＡＰＩドキュメントについて制限されてよい。
【００６６】
少なくとも１つの実施形態において、ＡＰＩドキュメントは、４タプルＣＦＧとして定義され得るＬＣＦＧに基づいてよい。４タプルは、＜Ｎ，Σ，Ｒ，Ｓ＞を含んでよい。このとき、Ｎは、ＡＰＩオントロジーの非終端を表す非終端の組であり、Σは、ＡＰＩオントロジーの終端を表す終端の組であり、Ｒは、Ｒ⊆｛Ａ→β｜Ａ∈Ｎ且つβ∈（Ｎ∪Σ）＊｝としてルールの組であり、ＡＰＩドキュメントのセマンティックビューはルール（Ｒ）を定義し、Ｓは、開始シンボル（センテンス）である。
【００６７】
ＡＰＩドキュメントの各ページは、各センテンスについて複数のタグを生成するために使用されてよい。１つのセンテンス（センテンス７０５）が、説明を容易にするために表されている。センテンスはいくつであっても考えられる。
【００６８】
表されているように、“hue”は、Name::Object７１０のためのタグであってよい。“resource  web  address”は、Resource::Object７１５のためのタグであってよい。http://<bridge  IP  address>/apiは、IP::Resource７２０のためのタグであってよい。“RESTful”は、Type::Feature７３０のためのタグであってよい。“talks”は、Method７３５のためのタグであってよい。“bridge  interface”は、Type::Object７４０のためのタグであってよい。全ての処理されたドキュメントの集合は、図８に関連して説明されるように、異なるタグの順序を生成するために使用されてよい。
【００６９】
ＡＰＩを使用して光源を制御する例において、色合い（hue）により制御され得る多数の特性がある。それらの特性の全ては、光源の/stateリソースと関連付けられてよい。例えば、“オン又はオフ”は、光源及び色合いの“/state”リソースであってよい。このリソースを真（true）に設定することは、光源をその最後の設定にオンしてよい。このリソースを偽（false）に設定することは、光源をオフしてよい。
【００７０】
他の例において、“/state”リソース“bri”は、光源の輝度をその最低輝度（例えば、０）からその最大輝度（例えば、２５４）まで示してよい。少なくとも１つの実施形態において、最低輝度は“オフ”でなくてよく、光源は、実際には、０に設定されるときに１を返し、２５５に設定されるときに２５４を返し得る。“bri”リソースは、特定の値に設定されてよい。例えば、次のコマンドは、光源をそれらの最大輝度の４２／２５４に設定してよい。
【表１】
2018097846.tif 000003
【００７１】
図８は、ＡＰＩドキュメントのセマンティックビューのタグの夫々についてのＬＣＦＧの確率（ＰＬＣＦＧ；Probability  of  LCFG）のための、例となる順位付け８００を表す。ＰＬＣＦＧは、異なるＬＣＦＧパーサ（parsers）（例えば、確率的ＣＫＹ法を使用する。）の確率を計算し、次いで、タグの順序の最上位を選択する（例えば、上位２５％が選択され得る。）ことによって、抽出され得る。表されるように、グループ８０５は、８５％のＰＬＣＦＧを含んでよく、グループ８１０は、７１％のＰＬＣＦＧを含んでよく、グループ８１５は、２５％のＰＬＣＦＧを含んでよく、グループ８２０は、１５％のＰＬＣＦＧを含んでよく、グループ８２５は、１０％のＰＬＣＦＧを含んでよく、グループ８３０は、５％のＰＬＣＦＧを含んでよい。よって、上位２５％が選択されるべき場合には、グループ８０５、８１０及び８１５が選択され得る。
【００７２】
図９は、ＲＥＳＴオントロジー９００のオントロジーグラフの例を表す。ＲＥＳＴオントロジー９００は、１つ以上のサブクラス９０５を有するスーパークラスであってよい。表されるように、スーパークラスは、セグメント９０５ａ、セグメント９０５ｂ及びセグメント９０５ｃを含んでよい。各サブクラスは、１つ以上の特性を含んでよい。表されるように、サブクラスセグメント９０５ａは、特性としてType::Object９１０と、Method９１５と、Type::Feature９２０と、Name９３０を伴ったObject９２５とを含んでよい。サブクラスセグメント９０５ｂは、特性としてObject９２５（サブクラスセグメント９０５ａと共有され得る。）と、Resource::Object９３５と、IP::Resource９４０とを含んでよい。サブクラスセグメント９０５ｃは、特性としてObject９２５（サブクラスセグメント９０５ａと共有され得る。）と、Resource::Object９４５とを含んでよい。
【００７３】
図１０は、ＡＰＩ学習システムを使用することに関連した、例となる方法１０００のフロー図を表す。方法１０００は、ブロック１００５から開始してよい。ブロック１００５で、プロセッシングロジックはインターフェイス（例えば、ＩＤＥ及び／又はＧＵＩ）を提供してよい。ブロック１０１０で、プロセッシングロジックは、ＡＰＩのセマンティックビューを提供してよい。少なくとも１つの実施形態において、プロセッシングロジックは、図７に関連して説明されたセマンティックビューと同様のセマンティックビューを提供してよい。プロセッシングロジックは、セマンティックビューから特徴を抽出してよい。プロセッシングロジックはジェネリックＡＰＩを生成してよく、ジェネリックＡＰＩはネイティブＡＰＩコードへマッピングされる。プロセッシングロジックは、ジェネリック関数を実行するためのリクエストを受け取ってよい。
【００７４】
ブロック１００５で、プロセッシングロジックは、ジェネリックＡＰＩをネイティブＡＰＩへマッピングしてよい。例えば、プロセッシングロジックは、ジェネリックＡＰＩ関数からネイティブＡＰＩの関連する関数へ特徴をマッピングしてよい。プロセッシングロジックは、ジェネリックコードからＡＰＩのネイティブコードへリクエストをマッピングしてよい。ブロック１０２０で、プロセッシングロジックはネイティブＡＰＩコードを実行してよい。ブロック１０２５で、プロセッシングロジックは、インターフェイスを介してレスポンスを提供してよい。例えば、レスポンスは、光源の色合いが低減されているとのメッセージを含んでよい。
【００７５】
図１１は、ジェネリックＡＰＩ特徴とネイティブＡＰＩ特徴との間の例となるマッピンググラフ１１００を表す。マッピンググラフ１１００は、ジェネリックコードを異種ネイティブＡＰＩコードへマッピングするために使用されてよい。マッピンググラフ１１００は、オントロジーグラフの少なくとも一部を含んでよい。表されるように、マッピンググラフ１１００は、図９のＲＥＳＴオントロジーグラフ９００の少なくとも一部を含み、セグメント９０５ａ、９０５ｂ及び９０５ｃを含む。
【００７６】
マッピンググラフ１１００は、ジェネリック関数１１０５の様々なクラスに基づくリンクされたオブジェクトを含んでよい。表されるように、ジェネリック関数１１０５は、２つのクラス、すなわち、ＡＰＩ定義１１１０及びアクション１１１５を含んでよい。ＡＰＩ定義１１１０は、サブクラスをいくつでも含んでよい。２つのサブクラスが表されている。すなわち、タイトル１１２０及びベースＵＲＬ１１２５である。アクション１１１５は、サブクラスをいくつでも含んでよい。２つのサブクラスが表されている。すなわち、ＧＥＴ１１３０及びＰＵＴ１１３５である。表されるように、セグメント９０５ａは、ＧＥＴ１１３０関数へマッピングされており、セグメント９０５ｂは、ＰＵＴ１１３５関数へマッピングされており、セグメント９０５ｃは、ＧＥＴ１１３０関数へマッピングされている。
【００７７】
図１２は、ネイティブＡＰＩ関数を実行するためにジェネリックＡＰＩ関数を使用することに関連した、例となる方法１２００のフロー図を表す。方法１２００は、ブロック１２０５から開始してよい。ブロック１２０５で、プロセッシングロジックはジェネリックＡＰＩコードを記憶してよい。プロセッシングロジックは、開発者又はエンドユーザから、ジェネリックＡＰＩコードの関数を実行するための命令を受け取ってよい。
【００７８】
ブロック１２１０で、プロセッシングロジックは、ジェネリックコードをネイティブＡＰＩコード（対象コード）へ動的に変換してよい。ジェネリックコードから対象のＡＰＩコードへ動的に変換するよう、プロセッシングロジックは、対象コード１２２０を識別するためにＡＰＩ関数マップ１２１５（例えば、図１１のマッピンググラフ１１００）を使用してよい。ＡＰＩ関数マップ１２１５は、特定のＡＰＩ関数とジェネリックＡＰＩとの間のマップ又は関係を提供し得る。ＡＰＩ関数マップ１２１５は、ＡＰＩ関数のキーワード又は他の表示子（indicator）を示してよい。
【００７９】
ブロック１２２５で、プロセッシングロジックは、対象ＡＰＩコードリクエスト（例えば、対象ＡＰＩ１２２０のコードの少なくとも一部）をＡＰＩプラットフォームへ送ってよい。ＡＰＩプラットフォームは、ローカルのコンピュータ及び／又は遠隔のコンピュータを含んでよい。少なくとも１つの実施形態において、ＡＰＩプラットフォームは、図１のＡＰＩドキュメントソース１１５を含む。対象ＡＰＩコードリクエストは、ＡＰＩプラットフォームがＡＰＩを実行し、結果として生じるデータをプロセッシングロジックへ送るためのリクエストを含んでよい。対象ＡＰＩコードリクエストはまた、プロセッシングロジックによる実行のために対象ＡＰＩコードを送るためのリクエストを含んでよい。
【００８０】
ブロック１２３０で、プロセッシングロジックは、ＡＰＩプラットフォームからＡＰＩコンテンツを受け取ってよい。ＡＰＩコンテンツは、ＡＰＩコードの実行の結果として得られた特定のＡＰＩコード又はデータを含んでよい。ブロック１２３５で、プロセッシングロジックは、ＡＰＩコンテンツをジェネリックＡＰＩコンテンツへ変換してよい。例えば、プロセッシングロジックは、ＡＰＩコンテンツの実行から返されたデータを、ジェネリックＡＰＩによって使用され得るデータに変換してよい。ブロック１２４０で、プロセッシングロジックは、ジェネリックＡＰＩコンテンツをクライアントデバイスへ送ってよい。
【００８１】
図１３は、ＡＰＩ学習システムにおけるインターフェイスに関連した、例となる方法１３００のフロー図を表す。方法１３００は、ブロック１３０５から開始してよい。ブロック１３０５で、プロセッシングロジックは、開発者のためのジェネリックＩＤＥ又はエンドユーザのためのＧＵＩを受け取ってよい。プロセッシングロジックは、ジェネリックＩＤＥ及び／又はＧＵＩをデータストレージにおいて記憶してよい。プロセッシングロジックは、本願で説明されるように、ジェネリックＡＰＩを生成してよい。ブロック１３１０で、プロセッシングロジックは、１つよりも多いネイティブＡＰＩへのジェネリックＡＰＩのマップを生成してよい。１つよりも多いネイティブＡＰＩは、ＡＰＩ１１３２０、ＡＰＩ２１３２５、及びＡＰＩ３１３３０を含んでよい。
【００８２】
本願で記載される実施形態は、以下で更に詳細に説明されるように、様々なコンピュータハードウェア又はソフトウェアモジュールを含む特別目的の又は汎用のコンピュータの使用を含んでよい。
【００８３】
図１４は、本願で説明される方法のうちのいずれか１つ以上をマシンに実施させる命令の組が実行され得るコンピューティングデバイス１４００の形を例としてマシンの図解表現を表す。コンピューティングデバイス１４００は、携帯電話機、スマートフォン、ネットブック・コンピュータ、ラックマウント・サーバ、ルータ・コンピュータ、サーバ・コンピュータ、パーソナル・コンピュータ、メインフレーム・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、デスクトップ・コンピュータなどを含んでよい。それらの中で、本願で説明される方法のうちのいずれか１つ以上をマシンに実施させる命令の組が実行されてよい。代替の実施形態において、マシンは、ＬＡＮ、イントラネット、エクストラネット、又はインターネットにおいて他のマシンへ接続（例えば、ネットワーク接続）されてよい。マシンは、クライアント−サーバ・ネットワーク環境においてサーバ・マシンとして動作してよい。マシンは、パーソナル・コンピュータ（ＰＣ）、セットトップボックス（ＳＴＢ）、サーバ、ネットワーク・ルータ、スイッチ若しくはブリッジ、又はそのマシンによって行われる動作を特定する命令の組（シーケンス又は他）を実行可能なあらゆるマシンを含んでよい。更には、ただ１つのマシンしか表されていないが、語「マシン」はまた、本願で説明される方法のうちのいずれか１つ以上を実施するための命令の組（又は複数の組）を個々に又はまとめて実行するマシンの如何なる集合も含んでよい。
【００８４】
例となるコンピューティングデバイス１４００は、プロセッシングデバイス（例えば、プロセッサ）１４０２、メインメモリ１４０４（例えば、リードオンリー・メモリ（ＲＯＭ）、フラッシュメモリ、例えば同期ＤＲＡＭ（ＳＤＲＡＭ）のような動的ランダム・アクセス・メモリ（ＤＲＡＭ））、静的メモリ１４０６（例えば、フラッシュメモリ、静的ランダム・アクセス・メモリ（ＳＤＲＡＭ））、及びデータストレージデバイス１４１６を含み、それらはバス１０４８を介して互いに通信する。
【００８５】
プロセッシングデバイス１４０２は、例えばマイクロプロセッサ、中央演算処理装置、又は同様のもののような、１つ以上の汎用のプロセッシングデバイスに相当する。より具体的には、プロセッシングデバイス１４０２は、複数命令セット演算（ＣＩＳＣ；Complex  Instruction  Set  Computing）マイクロプロセッサ、縮小命令セット演算（ＲＩＳＣ；Reduced  Instruction  Set  Computing）マイクロプロセッサ、超長命令語（ＶＬＩＷ；Very  Long  Instruction  Word）マイクロプロセッサ、又は他の命令セットを実装するプロセッサ若しくは命令セットの組を実装する複数のプロセッサを含んでよい。プロセッシングデバイス１４０２はまた、例えば、特定用途向け集積回路（ＡＳＩＣ；Application  Specific  Integrated  Circuit）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ；Field  Programmable  Gate  Array）、デジタル信号プロセッサ（ＤＳＰ；Digital  Signal  Processor）、ネットワーク・プロセッサ、又は同様のもののような、１つ以上の特別目的のプロセッシングデバイスを含んでよい。プロセッシングデバイス１４０２は、本願で説明される動作及びステップを実施するための命令１４２６を実行するよう構成される。
【００８６】
コンピューティングデバイス１４００は、ネットワーク１４１８と通信し得るネットワーク・インターフェイス・デバイス１４２２を更に含んでよい。コンピューティングデバイス１４００はまた、表示デバイス１４１０（例えば、液晶ディスプレイ（ＬＣＤ；Liquid  Crystal  Display）又は陰極線管（ＣＲＴ；Cathode  Ray  Tube））、英数字入力デバイス１４１２（例えば、キーボード）、カーソル制御デバイス１４１４（例えば、マウス）、及び信号生成デバイス１４２０（例えば、スピーカ）を含んでよい。１つの実施において、表示デバイス１４１０、英数字入力デバイス１４１２、及びカーソル制御デバイス１４１４は、単一のコンポーネント又はデバイス（例えば、ＬＣＤタッチスクリーン）にまとめられてよい。
【００８７】
データストレージデバイス１４１６は、本願で記載されている方法又は機能のうちのいずれか１つ以上を具現化する命令１４２６（例えば、デバイス１１０、ジェネリックＡＰＩ生成器１２６）の１つ以上の組が記憶されているコンピュータ可読記憶媒体１４２４を含んでよい。命令１４２６はまた、コンピューティングデバイス１４００によるその実行中にメインメモリ１４０４内及び／又はプロセッシングデバイス１４０２内に完全に又は少なくとも部分的に存在してよい。メインメモリ１４０４及びプロセッシングデバイス１４０２も、コンピュータ可読媒体を構成する。命令１４２６は更に、ネットワーク・インターフェイス・デバイス１４２２を介してネットワーク１４１８上で送信又は受信されてよい。
【００８８】
コンピュータ可読記憶媒体１４２４は、例となる実施形態において、単一の媒体であるよう示されているが、語「コンピュータ可読記憶媒体」は、命令の１つ以上の組を記憶する単一の媒体又は複数の媒体（例えば、中央集権型又は分散型データベース及び／又は関連するキャッシュ及びサーバ）を含んでよい。語「コンピュータ可読記憶媒体」はまた、マシンによる実行のために命令の組を記憶、符号化、又は搬送することが可能であり、マシンに本開示の方法のうちのいずれか１つ以上を実施させる如何なる媒体も含んでよい。語「コンピュータ可読記憶媒体」は、固体状態メモリ、光学媒体及び磁気媒体を含むがそれらに制限されないと然るべく解釈され得る。
【００８９】
本願で記載される実施形態は、コンピュータ実行可能命令又はデータ構造を搬送し又はそれらを記憶しているコンピュータ可読媒体を用いて実装されてよい。そのようなコンピュータ可読媒体は、汎用又は特別目的のコンピュータによってアクセスされ得る如何なる利用可能な媒体であってもよい。一例として、制限なしに、そのようなコンピュータ可読媒体は、ランダム・アクセス・メモリ（ＲＡＭ）、リードオンリー・メモリ（ＲＯＭ）、電気的消去可能なプログラム可能リードオンリー・メモリ（ＥＥＰＲＯＭ）、コンパクトディスク・リードオンリー・メモリ（ＣＤ−ＲＯＭ）若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス（例えば、固体状態メモリデバイス）、又はコンピュータ実行可能命令若しくはデータ構造の形で所望のプログラムコードを搬送若しくは記憶するために使用され得且つ汎用若しくは特別目的のコンピュータによってアクセスされ得る何らかの他の記憶媒体を含む非一時的なコンピュータ可読記憶媒体を含んでよい。前述の記憶媒体の組み合わせも、コンピュータ可読媒体の適用範囲内に含まれてよい。
【００９０】
コンピュータ実行可能命令は、例えば、汎用のコンピュータ、特別目的のコンピュータ、又は特別目的のプロセッシングデバイス（例えば、１つ以上のプロセッサ）に特定の関数又は関数のグループを実施させる命令及びデータを含んでよい。対象は、構造的特徴及び／又は方法動作に特有の言語において記載されてきたが、添付の特許請求の範囲で定義される対象は、上述された具体的な特徴又は動作に必ずしも制限されない。むしろ、上述された具体的な特徴及び動作は、特許請求の範囲を実施する形態の例として開示されている。
【００９１】
本願で使用されるように、語「モジュール」又は「コンポーネント」は、モジュール若しくはコンポーネントの動作を実施するよう構成された特定のハードウェア実装、及び／又はコンピューティングシステムの汎用ハードウェアによって記憶及び／又は実行され得るソフトウェア／オブジェクト又はソフトウェア・ルーチンを指してよい。いくつかの実施形態において、本願で記載される異なるコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステムにおいて（例えば、別個のスレッド）として実行されるオブジェクト又はプロセスとして実装されてよい。本願で記載されるシステム及び方法のいくつかは、ソフトウェアで実装される（汎用ハードウェアによって記憶及び実行される）ものとして概して記載されているが、特定のハードウェア実装又はソフトウェアと特定のハードウェア実装との組み合わせも可能であり、考えられている。本明細書において、「コンピューティングエンティティ」は、本願で先に定義されているあらゆるコンピューティングシステム、又はコンピューティングシステムで実行されるあらゆるモジュール若しくはモジュールの組み合わせであってよい。
【００９２】
本願で挙げられている全ての例及び条件付き言語は、当該技術の促進に本発明者によって寄与される概念及び発明を読者が理解するのを助ける教育上の目的を意図され、そのような、具体的に挙げられている例及び条件に制限されないと解釈されるべきである。本発明の実施形態は詳細に記載されてきたが、様々な変更、置換及び代替は、本発明の主旨及び適用範囲から逸脱することなしにそれらに対して行われてよいことが理解されるべきである。
【００９３】
上記の実施形態に加えて、以下の付記を開示する。
（付記１）
メモリと、
通信インターフェイスと、
前記メモリ及び前記通信インターフェイスへ動作上結合されるプロセッサと
を有し、
前記プロセッサは、
前記通信インターフェイスを介して、アプリケーションプログラムインターフェイス（ＡＰＩ）ドキュメンテーションのための１つ以上のソースをクロールし、
前記通信インターフェイスを介して、前記１つ以上のソースからＡＰＩドキュメントを収集し、
少なくとも２つのセンテンスを含む前記ＡＰＩドキュメントのコンテンツに基づき少なくとも１つのトークンを生成するよう前記ＡＰＩドキュメントをトークン化し、
前記少なくとも１つのトークンに基づきＡＰＩオントロジーグラフを生成し、
前記ＡＰＩオントロジーグラフに基づき前記少なくとも２つのセンテンスの夫々についてセマンティックビューを展開し、
優先順位を前記少なくとも２つのセンテンスの夫々と関連付け、
第１センテンスの第１優先順位に基づき前記少なくとも２つのセンテンスから前記第１センテンスを選択し、
前記第１センテンスに基づき前記ＡＰＩドキュメントの前記セマンティックビューを修正する
ことを有する動作を実施するよう構成される、
システム。
（付記２）
前記ＡＰＩドキュメントは、人間が読める言語における人間が読めるドキュメントを含む、
付記１に記載のシステム。
（付記３）
前記優先順位は、ＡＰＩオントロジーに基づく有限な文脈自由文法の確率に基づく、
付記１に記載のシステム。
（付記４）
前記プロセッサは、前記ＡＰＩドキュメントの更新のために前記１つ以上のソースを周期的にクロールするよう更に構成される、
付記１に記載のシステム。
（付記５）
前記プロセッサは、
前記ＡＰＩドキュメントの前記更新に基づき第２トークンを生成するよう前記ＡＰＩドキュメントの前記更新をトークン化し、
前記第２トークンに基づき、前記ＡＰＩオントロジーグラフ、第１セマンティックビュー、又は第２セマンティックビューのうちの少なくとも１つを更新する
ことを有する動作を実施するよう更に構成される、
付記４に記載のシステム。
（付記６）
前記プロセッサは、
ＡＰＩと相互作用するインターフェイスを提供し、
前記インターフェイスを介して前記ＡＰＩドキュメントのセマンティックビューを提供し、
前記セマンティックビューから特徴を抽出し、
ネイティブＡＰＩコードへマッピングされるジェネリックＡＰＩを生成し、
ジェネリック関数を実行するためのリクエストを受け取り、
前記リクエストを前記ＡＰＩのジェネリックコードからネイティブコードへマッピングし、
前記ジェネリック関数に対応する前記ＡＰＩのネイティブ関数が実行されるようにし、
前記インターフェイスを介して、前記ＡＰＩの前記ネイティブ関数の実行に基づきレスポンスを供給する
ことを有する更なる動作を実施するよう構成される、
付記１に記載のシステム。
（付記７）
前記プロセッサは、前記ジェネリック関数を前記ＡＰＩの前記ネイティブ関数へマッピングするよう更に構成される、
付記６に記載のシステム。
（付記８）
前記ＡＰＩの前記ネイティブ関数は、前記ＡＰＩの前記ネイティブ関数の演算、パラメータ、又はアクセシビリティのうちの少なくとも１つを含む、
付記７に記載のシステム。
（付記９）
ＡＰＩは、ウェブベースＡＰＩ、デバイスＡＰＩ、又はオペレーティングシステムベースＡＰＩのうちの少なくとも１つを含む、
付記１に記載のシステム。
（付記１０）
通信インターフェイスを介して、アプリケーションプログラムインターフェイス（ＡＰＩ）ドキュメンテーションのための１つ以上のソースをクロールし、
前記通信インターフェイスを介して、前記１つ以上のソースからＡＰＩドキュメントを収集し、
前記ＡＰＩドキュメントをトークン化し、
優先順位を夫々のセンテンスと関連付け、
第１セマンティックビューのためのＡＰＩオントロジーグラフを生成し、
機械学習法によって計算されるコーパスにおいて現れる確率に基づきセンテンスを選択し、
前記ＡＰＩオントロジーグラフに基づき夫々のＡＰＩドキュメントのために前記第１セマンティックビューを展開し、
ＡＰＩドキュメントが更新されると第２セマンティックビューを生成するよう前記ＡＰＩドキュメントの前記第１セマンティックビューを修正する
ことを有する方法。
（付記１１）
前記１つ以上のソースは、前記ＡＰＩドキュメントの更新のために周期的にクロールされる、
付記１０に記載の方法。
（付記１２）
前記ＡＰＩドキュメントの前記更新に基づき第２トークンを生成するよう前記ＡＰＩドキュメントの前記更新をトークン化し、
前記第２トークンに基づき、前記ＡＰＩオントロジーグラフ、前記第１セマンティックビュー、又は前記第２セマンティックビューのうちの少なくとも１つを更新する
ことを更に有する付記１１に記載の方法。
（付記１３）
ＡＰＩと相互作用するインターフェイスを提供し、
前記インターフェイスを介して前記ＡＰＩドキュメントの前記第２セマンティックビューを提供し、
前記ＡＰＩドキュメントに基づきジェネリック関数を実行するためのリクエストを受け取り、
前記ジェネリック関数に対応する前記ＡＰＩのネイティブ関数が実行されるようにし、
前記インターフェイスを介して、前記ＡＰＩの前記ネイティブ関数の実行に基づきレスポンスを供給する
ことを更に有する付記１０に記載の方法。
（付記１４）
前記ジェネリック関数を前記ＡＰＩの前記ネイティブ関数へマッピングする
ことを更に有する付記１３に記載の方法。
（付記１５）
前記ＡＰＩの前記ネイティブ関数は、前記ＡＰＩの前記ネイティブ関数の演算、パラメータ、又はアクセシビリティのうちの少なくとも１つを含む、
付記１４に記載の方法。
（付記１６）
通信インターフェイスを介して、アプリケーションプログラムインターフェイス（ＡＰＩ）ドキュメンテーションのための１つ以上のソースをクロールし、
前記通信インターフェイスを介して、前記１つ以上のソースからＡＰＩドキュメントを収集し、
少なくとも２つのセンテンスを含む前記ＡＰＩドキュメントのコンテンツに基づき少なくとも１つのトークンを生成するよう前記ＡＰＩドキュメントをトークン化し、
ＡＰＩオントロジーグラフを生成し、
出現するセンテンスの確率を関連付け、
最も高い確率から１つ以上を選択し、
前記１つ以上の選択された最も高い確率に基づき前記ＡＰＩドキュメントの第１セマンティックビューを生成し、
前記ＡＰＩドキュメントの前記第１セマンティックビューを修正する
ことを有する動作を実施するようプロセッサによって実行可能なプログラミングコードが符号化されている非一時的なコンピュータ可読媒体。
（付記１７）
前記１つ以上のソースは、前記ＡＰＩドキュメントの更新のために周期的にクロールされる、
付記１６に記載の非一時的なコンピュータ可読媒体。
（付記１８）
前記動作は、
前記ＡＰＩドキュメントの前記更新に基づき第２トークンを生成するよう前記ＡＰＩドキュメントの前記更新をトークン化し、
前記第２トークンに基づき、第２セマンティックビューを生成するよう前記ＡＰＩオントロジーグラフ又は前記第１セマンティックビューのうちの少なくとも１つを更新する
ことを更に有する、
付記１７に記載の非一時的なコンピュータ可読媒体。
（付記１９）
前記動作は、
ＡＰＩと相互作用するインターフェイスを提供し、
前記インターフェイスを介して前記ＡＰＩドキュメントのセマンティックビューを提供し、
前記ＡＰＩドキュメントに基づきジェネリック関数を実行するためのリクエストを受け取り、
前記ジェネリック関数に対応する前記ＡＰＩのネイティブ関数が実行されるようにし、
前記インターフェイスを介して、前記ＡＰＩの前記ネイティブ関数の実行に基づきレスポンスを供給する
ことを更に有する、
付記１６に記載の非一時的なコンピュータ可読媒体。
（付記２０）
前記動作は、前記ジェネリック関数を前記ＡＰＩの前記ネイティブ関数へマッピングすることを更に有する、
付記１９に記載の非一時的なコンピュータ可読媒体。
【符号の説明】
【００９４】
１００            動作環境
１１０            デバイス
１１５            ＡＰＩドキュメントソース
１２４            ネットワーク
１２６            ジェネリックＡＰＩ生成器
１２８            データストレージ
１４５，９００    オントロジーグラフ
１５０            ＡＰＩドキュメントの処理された組
１５５            抽出された特徴の組
１６０，１１００  マッピンググラフ
５００            初期オントロジー構造
５０２            ジェネリックＡＰＩ
６０５            トークン
６１５            初期オントロジー
７００            セマンティックビュー
７０５            センテンス
８００            セマンティックモデル
１１０５          ジェネリック関数
１４００          コンピューティングデバイス
１４０２          プロセッシングデバイス
１４２４          コンピュータ可読記憶媒体
【図１】
2018097846.tif 000004
【図２】
2018097846.tif 000005
【図３】
2018097846.tif 000006
【図４】
2018097846.tif 000007
【図５】
2018097846.tif 000008
【図６】
2018097846.tif 000009
【図７】
2018097846.tif 000010
【図８】
2018097846.tif 000011
【図９】
2018097846.tif 000012
【図１０】
2018097846.tif 000013
【図１１】
2018097846.tif 000014
【図１２】
2018097846.tif 000015
【図１３】
2018097846.tif 000016
【図１４】
2018097846.tif 000017