JP7155739B2 - Apiドキュメンテーションの収集 - Google Patents

Apiドキュメンテーションの収集 Download PDF

Info

Publication number
JP7155739B2
JP7155739B2 JP2018152604A JP2018152604A JP7155739B2 JP 7155739 B2 JP7155739 B2 JP 7155739B2 JP 2018152604 A JP2018152604 A JP 2018152604A JP 2018152604 A JP2018152604 A JP 2018152604A JP 7155739 B2 JP7155739 B2 JP 7155739B2
Authority
JP
Japan
Prior art keywords
api
documentation
rest api
content
sentences
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018152604A
Other languages
English (en)
Other versions
JP2019133621A (ja
Inventor
バーラミ・メフディ
チェン・ウェイ-ペン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2019133621A publication Critical patent/JP2019133621A/ja
Application granted granted Critical
Publication of JP7155739B2 publication Critical patent/JP7155739B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Description

本稿で論じられる実施形態はAPIドキュメンテーションのコレクションに関する。
アプリケーション・プログラミング・インターフェース(API)は、ソフトウェア・アプリケーションを構築するためのルーチン、プロトコルおよびツールの集合である。APIはソフトウェア・コンポーネントに結果を返してもよい。APIは典型的にはソフトウェア・アプリケーションの関数またはデータを公開するものであり、それが他のアプリケーションが、該関数またはデータの実装を心配することなく、該APIの資源を使うことを可能にする。
本願で請求される主題は、何らかの欠点を解決する、あるいは記載されたような環境でのみ動作する実施形態に限定されるものではない。むしろ、この背景は、本稿に記載されるいくつかの実施形態が実施されうる一つの例示的な技術を例解するために与えられているだけである。
ある実施形態のある側面によれば、システムは、メモリと、通信インターフェースと、該通信インターフェースに動作上結合されたプロセッサとを含んでいてもよい。プロセッサは、分類モデルの集合を生成するよう構成されていてもよい。分類モデルは、アプリケーション・プログラミング・インターフェース(API)ドキュメンテーションに関連付けられた一つまたは複数の文を含んでいてもよい。プロセッサは、コンテンツとして一つまたは複数のコンテンツ源にアクセスするよう構成されてもよい。さらに、プロセッサは、前記コンテンツにおける一つまたは複数の文が、分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定するよう構成されてもよい。前記コンテンツにおける一つまたは複数の文が同じまたは実質的に同様であると判定するのに応答して、プロセッサは、前記コンテンツをAPIドキュメンテーションとして収集するよう構成されてもよい。
実施形態の目的および利点は、少なくとも、請求項において具体的に指摘される要素、特徴および組み合わせによって、実現され、達成される。
上記の一般的な記述および以下の詳細な説明はいずれも例示および説明するものであり、特許請求される本発明を制約するものでないことは理解されるものとする。
例示的実施形態は、付属の図面を使ってさらに具体的かつ詳細に記述され、説明される。
API収集システムの例示的な動作環境のブロック図である。 分類モデルの集合を生成することに関係した例示的方法の流れ図である。 例示的な分類モジュールのブロック図である。 REST APIモデルの集合を生成することに関係した例示的方法の流れ図である。 例示的なREST APIモジュールのブロック図である。 コンテンツがAPIドキュメンテーションであるかどうかを判定することに関係した例示的方法の流れ図である。 コンテンツがREST APIドキュメンテーションであるかどうかを判定することに関係した例示的方法の流れ図である。 コンテンツがREST APIドキュメンテーションであるかどうかを判定することに関係したもう一つの例示的方法の流れ図である。 分類モデルの集合を生成することに関係した例示的方法の流れ図である。 本稿で論じられる方法の任意の一つまたは複数を機械に実行させるための一組の命令が実行されうる、コンピューティング装置という例示的な形の機械の図的な表現である。 みな、本稿に記載される少なくとも一つの実施形態に基づいて構成される。
アプリケーション・プログラミング・インターフェース(API)のいくつかの型がある。たとえばウェブAPIはその関数およびデータを、インターネットまたはイントラネット・ネットワークにおけるウェブ・サービスを通じて公開してもよい。装置APIは、装置ハードウェア・モジュール機能を他の装置および/またはソフトウェアに公開してもよい。アプリケーションAPIは、オペレーティング・システムなどを通じて、ソフトウェア・アプリケーションの関数またはデータベースへのアクセスを提供してもよい。典型的には、APIは、APIからまたはAPIを通じて提供されるサービス、関数またはデータに基づいて新たなシステムを実装するときに、開発者にとって有用でありうる。通常のAPIはしばしば、サービスを提供する「ブラックボックス」として機能する一方、開発者は典型的には、ブラックボックスの内部を見て実装の詳細を識別することはできない。いくつかのAPIはシステムの複雑さを抽象化することがあり、いくつかのAPIはいくつかの詳細を開発者から隠すことがあり、それは実装における柔軟性を低下させることがある。
各APIは典型的には、自分のサービスおよび/またはデータを、異なる属性をもつ異なる型のデータをもつ異なるプロトコルを通じて公開する。この通常のアプローチは、開発者が多様なAPIを用いて作業しているときに、異種性問題を引き起こすことがある。さらに、たいていのAPIは形式的な定義をもたず、大半はHTMLファイルとして記述された、人間が読んでわかる記述である。結果として、ソフトウェア開発者は典型的には、API関数にアクセスしてこれと対話するために、APIドキュメンテーションを読んで学習する。API機能およびそのドキュメンテーションは(たとえばスワッガー(swagger)または他のツールを使って)定期的に更新されることがあり、その後、開発者は新しいAPIドキュメンテーションを読んで学習し、新しいAPI機能に基づいて自分のアプリケーションを修正する必要がある。ソフトウェア開発をさらに複雑にすることに、各APIは異なるプログラミング言語を通じてアクセス可能であることがある。
さらに、API公開者は、APIを公開する(たとえばAPIドキュメンテーションを公開する)ために異なるツールを使うことがある。たとえば、API公開者は、ソース・コードを通じてAPIを自動的に公開してもよく、あるいはAPI公開者は手動でAPIを公開してもよい。APIフォーマットは、ハイパーテキスト・マークアップ言語(HTML)フォーマット、ポータブル・ドキュメント・フォーマット(PDF)、マイクロソフト・ワード(DOC)フォーマットまたはAPIドキュメンテーションを公開するための他の任意の好適なフォーマットを含みうる。
電子装置(たとえばクローラーとしてはたらくもの)が自動的にさまざまなAPIを収集してもよく、該さまざまなAPIはユーザーのためにローカルに記憶されてもよい。これは、ユーザーがさまざまなコンテンツ源においてAPIドキュメンテーションを探すのに費やす時間を短縮しうる。電子装置は、一時に単一のコンテンツ源にアクセスするよう構成されてもよく、あるいは電子装置は同時に複数のコンテンツ源に(たとえば並列に)アクセスするよう構成されてもよい。
電子装置は、APIドキュメンテーションに関連付けられた一つまたは複数の文を含む分類モデルの集合を生成してもよい。電子装置は、コンテンツ源に含まれるコンテンツがAPIドキュメンテーションを含むかまたは他のドキュメンテーションを含むかを判定するために分類モデルを使ってもよい。分類モデルは、サンプルAPIドキュメンテーションから抽出された文を含んでいてもよい。電子装置は、コンテンツ源に含まれるコンテンツを分類モデルと比較してもよい。たとえば、電子装置は、分類モデルに含まれる文を、コンテンツに含まれる文と比較してもよい。コンテンツがAPIドキュメンテーションを含むなら、電子装置は該APIドキュメンテーションを収集してもよく、該APIドキュメンテーションを、ユーザーによるさらなるパースおよび/またはアクセスのために、収集されたAPI文書として記憶してもよい。
同様に、電子装置は、REST APIドキュメンテーションに関連付けられた一つまたは複数のREST APIキーワードを含む代表状態転送(REST: representational state transfer)APIモデルの集合を生成してもよい。電子装置は、コンテンツ源に含まれるコンテンツがREST APIドキュメンテーションを含むかまたは他のドキュメンテーションを含むかを判定するためにREST APIモデルを使ってもよい。電子装置は、サンプルREST APIドキュメンテーションからREST APIキーワードを抽出してもよい。電子装置は、コンテンツ源に含まれるコンテンツをREST APIモデルと比較してもよい。たとえば、電子装置は、コンテンツに含まれるREST APIキーワードの総数および/または各REST APIキーワードの頻度を、サンプルREST APIドキュメンテーションから抽出されたREST APIキーワードの数および/または頻度と比較してもよい。コンテンツがREST APIドキュメンテーションを含むなら、電子装置は該REST APIドキュメンテーションを収集してもよく、該REST APIドキュメンテーションを、ユーザーによるさらなるパースおよび/またはアクセスのために、収集されたREST API文書として記憶してもよい。さらに、電子装置は、収集されたAPI文書にアクセスして、収集されたAPI文書の一つまたは複数がREST APIドキュメンテーションを含むかどうかを判定してもよい。さらに、電子装置は、他のフォーマットで一つまたは複数のキーワードを含むAPIモデルの集合を生成してもよい。たとえば、コンテンツ源に含まれるコンテンツがJAVA(登録商標) APIドキュメンテーションを含むか他のドキュメンテーションを含むかを判定するために、JAVA APIモデルの集合が生成され、使用されてもよい。
たとえば、複数のウェブサイト(たとえば複数のコンテンツ源)は複数のウェブページ(たとえばコンテンツ)および/または種々のリンク(たとえば外部および/または内部リンク)を含んでいてもよい。電子装置は、それらさまざまなリンクをたどることによって、各ウェブサイトおよびウェブページにアクセスしてもよい。電子装置は、いずれかのウェブページがAPIドキュメンテーションを含むかどうかを、各ウェブページを分類モデルと比較することによって、判定してもよい。ウェブページがAPIドキュメンテーションを含む場合、電子装置はそのウェブページを収集し、収集されたAPI文書として記憶してもよい。さらに、電子装置は、いずれかのウェブページがREST APIドキュメンテーションを含むかどうかを、各ウェブページまたは収集されたAPI文書をREST APIモデルと比較することによって、判定してもよい。ウェブページがREST APIドキュメンテーションを含む場合、電子装置はそのウェブページおよび/または収集されたAPI文書を収集し、収集されたREST API文書として記憶してもよい。
図1は、本稿に記載される少なくとも一つの実施形態に基づいて構成された、API収集システムの例示的な動作環境100のブロック図を示している。図1に描かれるように、動作環境100は、装置102と、コンテンツ源116aおよびコンテンツ源116b(本稿ではまとめて「コンテンツ源116」)の少なくとも一方と、データ記憶部108と、ネットワーク114とを含んでいてもよい。
装置102は、プロセッサ、メモリおよび通信機能を含むコンピュータ・ベースのハードウェア装置を含んでいてもよい。装置102は、動作環境100の他のコンポーネントの任意のものとデータを通信するためにネットワーク114に結合されていてもよい。装置102のいくつかの例は、携帯電話、スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータ、デスクトップ・コンピュータ、セットトップボックス、仮想現実乾燥地または接続された装置などを含んでいてもよい。装置102は、プロセッサ・ベースのコンピューティング装置を含んでいてもよい。たとえば、装置102は、ハードウェア・サーバーまたはサーバーとして機能するよう構成された他のプロセッサ・ベースのコンピューティング装置を含んでいてもよい。装置102はメモリおよびネットワーク通信機能を含んでいてもよい。
コンテンツ源106は、コンテンツ(たとえばAPI文書、REST API文書、他の任意のAPIドキュメンテーションまたは電子コンテンツ)のための、任意のコンピュータ・ベースの源を含んでいてもよい。たとえば、コンテンツ源116はサーバー、クライアント・コンピュータ、貯蔵所などを含んでいてもよい。コンテンツ源116aはコンテンツ118aを記憶していてもよく、および/またはコンテンツ源116bはコンテンツ118b(本稿ではまとめて「コンテンツ118」)を、任意の電子フォーマットで記憶していてもよい。さらに、コンテンツ118は、機械可読および/または人間が読んでわかるものであってもよい。コンテンツ118は任意の言語であってもよい。たとえば、コンテンツ118は、任意の目標となる人間の言語(たとえば英語、日本語、ドイツ語)であってもよい。少なくとも一つの実施形態では、コンテンツ源116は、ネットワーク114(たとえばワールドワイドウェブ)を介して互いと通信するある電子装置から別の電子装置にオファーされるAPI情報サービスを含んでいてもよい。さらに、コンテンツ源116はウェブサイトを含んでいてもよく、コンテンツ118はそのウェブサイトの複数のウェブページを含んでいてもよい。
ネットワーク114は、動作環境100のコンポーネント(たとえば102、108および116)の任意のものの間での信号の通信のために構成された任意の通信ネットワークを含みうる。ネットワーク114は有線または無線でありうる。ネットワーク114は、スター構成、トークンリング構成または他の好適な構成を含む数多くの構成をもちうる。さらに、ネットワーク114はローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)(たとえばインターネット)および/または他の相互接続されたデータ経路であってそれを通じて複数の装置が通信しうるものを含んでいてもよい。いくつかの実施形態では、ネットワーク114はピアツーピア・ネットワークを含んでいてもよい。ネットワーク114は、多様な異なる通信プロトコルでのデータの通信を可能にしうる遠隔通信ネットワークの諸部分に結合されていてもよく、あるいは該諸部分を含んでいてもよい。
いくつかの実施形態では、ネットワーク114は、ブルートゥース(登録商標)通信ネットワーク、Z-Wave(登録商標)通信ネットワーク、Insteon(登録商標)通信ネットワーク、EnOcean(登録商標)通信ネットワーク、ワイヤレスフィデリティー(Wi-Fi)通信ネットワーク、ZigBee(登録商標)通信ネットワーク、HomePlug通信ットワーク、パワーライン通信(PLC)通信ネットワーク、メッセージ・キュー・テレメトリー・トランスポート(MQTT)通信ネットワーク、MQTTセンサー(MQTT-S)通信ネットワーク、制約アプリケーションプロトコル(CoAP: constrained application protocol)通信ネットワーク、代表状態転送アプリケーション・プロトコル・インターフェース(REST API)通信ネットワーク、拡張可能メッセージングおよびプレゼンス・プロトコル(XMPP)通信ネットワーク、セルラー通信ネットワーク、任意の同様な通信ネットワークまたはデータを送受信するためのそれらの任意の組み合わせを含む、または含むよう構成される。ネットワーク114において通信されるデータは、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、ワイヤレス・アプリケーション・プロトコル(WAP)、電子メール、スマート・エネルギー・プロファイル(SEP)、ECHONET(登録商標) Lite、OpenADRまたは装置102、コンテンツ源116、クラウドサーバー通信またはゲートウェイで実装されうる他の任意のプロトコルを介して通信されるデータを含んでいてもよい。
データ記憶部108は、任意のメモリまたはデータ記憶を含んでいてもよい。データ記憶部108は、ネットワーク通信機能を含んでいてもよく、動作環境100における他のコンポーネントがデータ記憶部108と通信してもよい。いくつかの実施形態では、データ記憶部108は、コンピュータ実行可能命令またはデータ構造を担持するまたは記憶するためのコンピュータ可読記憶媒体を含んでいてもよい。コンピュータ可読記憶媒体は、プロセッサのような汎用または特殊目的コンピュータによってアクセスされうるいかなる利用可能な媒体を含んでいてもよい。たとえば、データ記憶部108は、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、電気的に消去可能なプログラム可能な読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD-ROM)または他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、フラッシュメモリ・デバイス(たとえば半導体メモリ・デバイス)またはコンピュータ実行可能命令またはデータ構造の形で所望されるプログラム・コードを担持または記憶するために使用されうる、汎用または特殊目的コンピュータによってアクセスされうる他の任意の記憶媒体を含む、有体のまたは非一時的なコンピュータ可読記憶媒体でありうるコンピュータ可読記憶媒体を含みうる。上記の組み合わせがデータ記憶部108に含められてもよい。
データ記憶部108はさまざまなデータを記憶していてもよい。データは、リレーショナルデータベース構造のようないかなるデータ構造で記憶されてもよい。たとえば、データ記憶部108は、収集されたAPI文書110および収集されたREST API文書112を含んでいてもよい。
装置102は、分類モジュール104およびREST APIモジュール106を含んでいてもよい。いくつかの実施形態では、分類モジュール104および/またはREST APIモジュール106は、直接ホストからまたはアプリケーション・ストアからまたはインターネットからダウンロード可能であってもよいスタンドアローン・アプリケーション(「アプリ」)を含んでいてもよい。装置102は、本開示に記載されるAPI収集システムならびにAPI文書およびREST API文書の収集に関係するさまざまな動作を実行してもよい。
動作では、装置102は、一つまたは複数のコンテンツ源116およびコンテンツ118にアクセスして、コンテンツ118がAPIドキュメンテーションおよび/またはREST APIドキュメンテーションを含むかどうかを判定してもよい。
分類モジュール104は、サンプルAPI文書に基づいて、種々のAPIに関連する言語/用語を識別するよう、機械学習方法を使ってもよい。分類モジュール104は、機械学習を介して分類モデルの集合を生成してもよい。機械学習を介した分類モデルの生成は、下記で図2との関係でより詳細に論じられる。分類モジュール104は、分類モデルを使って、コンテンツ118がAPIドキュメンテーションを含むかどうかを判定してもよい。分類モジュール104は、図3との関係で下記でより詳細に論じられる。
REST APIモジュール106は、サンプルREST API文書に基づいて、種々のREST APIに関連するREST APIキーワードを識別するよう、機械学習方法を使ってもよい。REST APIモジュール106は、機械学習を介してREST APIモデルの集合を生成してもよい。機械学習を介したREST APIモデルの生成は、下記で図4との関係でより詳細に論じられる。REST APIモジュール106は、REST APIモデルを使って、コンテンツ118および/または収集されたAPI文書110がREST APIドキュメンテーションを含むかどうかを判定してもよい。REST APIモジュール106は、図5との関係で下記でより詳細に論じられる。
いくつかの実施形態では、装置102は、コンテンツ源116およびコンテンツ118に並列にアクセスするよう構成された複数のクローラーとして構成されてもよい。たとえば、装置102は、コンテンツ源116aに含まれるコンテンツ118aおよびコンテンツ源116bに含まれるコンテンツ118bに並列にアクセスしてもよい。分類モジュール104はコンテンツ118を分類モデルと比較してもよい。コンテンツ118に含まれる一つまたは複数の文が、分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様である場合、コンテンツ118は収集され、データ記憶部108に送られてもよい。収集されたコンテンツ118は、収集されたAPI文書110として記憶されてもよい。分類モジュール104は、動作環境100において各コンテンツ源116およびコンテンツ118について前記プロセスを反復してもよい。
同様に、REST APIモジュール106はコンテンツ源116に含まれるコンテンツ118をREST APIモデルと比較してもよい。コンテンツ118に含まれるREST APIキーワードの総数および/または一つまたは複数のREST APIキーワードの頻度がキーワード閾値を超えるおよび/またはいずれかのREST APIキーワードの頻度が頻度閾値を超える場合、コンテンツ118は収集され、データ記憶部108に送られてもよい。いくつかの実施形態では、キーワード閾値は20個のREST APIキーワード以上であってもよい。追加的または代替的に、キーワード閾値は20個のREST APIキーワード未満であってもよい。これらおよび他の実施形態において、キーワード閾値についての最大値は1000個のREST APIキーワードに等しくてもよい。いくつかの実施形態では、反復されるREST APIキーワードについての頻度閾値は20回以上であってもよい。追加的または代替的に、反復されるREST APIキーワードについての頻度閾値は20回未満であってもよい。これらおよび他の実施形態において頻度閾値についての最大値はREST APIキーワードの1000回の反復に等しくてもよい。収集されたコンテンツ118は、収集されたREST API文書112として記憶されてもよい。REST APIモジュール106は、動作環境100において各コンテンツ源116およびコンテンツ118について前記プロセスを反復してもよい。あるいはまた、REST APIモジュール106は動作環境100におけるすべてのコンテンツ118を比較しなくてもよい。その代わり、REST APIモジュール106は、収集されたAPI文書110を比較するだけでもよい。
追加的または代替的に、コンテンツ118は複数の部分(たとえば複数のウェブページ)を含んでいてもよく、装置102はこのプロセスを、コンテンツ118に含まれる各部分に関して実行してもよい。たとえば、コンテンツ源116はウェブサイトを含んでいてもよく、コンテンツ118は複数のウェブページを含んでいてもよい(本稿において「ウェブサイトの例」と称される)。ウェブサイトの例では、装置102は各ウェブページにアクセスして、各ウェブページがAPIドキュメンテーションを含んでいるかどうかを判定してもよい。分類モジュール104は各ウェブページを分類モデルと比較して、ウェブページの一つまたは複数がAPIドキュメンテーションを含むかどうかを判定してもよい。ウェブページがAPIドキュメンテーションを含む場合、装置102はそのウェブページを収集してもよく、収集されたウェブページをデータ記憶部108に送ってもよい。データ記憶部108はそのウェブページを、収集されたAPI文書110として記憶してもよい。
さらに、装置102は各ウェブページにアクセスしてもよく、各ウェブページがREST APIドキュメンテーションを含んでいるかどうかを判定してもよい。REST APIモジュール106は各ウェブページをREST APIモデルと比較して、ウェブページの一つまたは複数がREST APIドキュメンテーションを含むかどうかを判定してもよい。ウェブページがREST APIドキュメンテーションを含む場合、装置102はそのウェブページを収集してもよく、収集されたウェブページをデータ記憶部108に送ってもよい。データ記憶部108はそのウェブページを、収集されたREST API文書112として記憶してもよい。
あるいはまた、装置102は、収集されたAPI文書110として記憶されているウェブページを比較してもよい。REST APIモジュール106は収集されたAPI文書110のそれぞれにアクセスしてもよく、収集されたAPI文書110の一つまたは複数がREST APIドキュメンテーションを含んでいるかどうかを判定してもよい。収集されたAPI文書110がREST APIドキュメンテーションを含む場合、その収集されたAPI文書110も収集されてもよく、収集されたREST API文書112として記憶されてもよい。
収集されたAPI文書110および/または収集されたREST API文書112は自然言語フォーマットで記憶されてもよい。たとえば、収集されたAPI文書110および/または収集されたREST API文書112はJavaScript(登録商標)オブジェクト記法(JSON)フォーマットで記憶されてもよい。収集されたAPI文書110および/または収集されたREST API文書112を記憶することは、収集されたAPI文書110および/または収集されたREST API文書112がユーザーによってさらにパースおよび/またはアクセスされることを許容する。
いくつかの実施形態では、装置102は、コンテンツ118のオートメーション・ブラウザー・ベース収集を実行するよう構成されてもよい。コンテンツ118は、あるフォーマットを使って集積〔コンパイル〕されてもよく、その後、異なるフォーマットで提供されてもよい。たとえば、コンテンツ118はJSONフォーマットで集積されてもよく、ハイパーテキスト・マークアップ言語(HTML)フォーマットで提供されてもよい。装置102は、ブラウザー・ベースのデータ収集〔コレクション〕を使ってもよい。たとえば、装置102は、ウェブページを集積し、ウェブページをHTMLファイルとして収集するために、インターネット・ブラウザーを使ってもよい。
図2、図4および図6~図9は、例示的方法の流れ図を示している。これらの方法は、ハードウェア(回路、専用論理など)、ソフトウェア(汎用コンピュータ・システムまたは専用機において実行されるようなもの)または両者の組み合わせを含んでいてもよい処理論理によって実行されてもよい。該処理論理は図1の装置102、分類モジュール104および/もしくはREST APIモジュール106または別のコンピュータ・システムもしくは装置に含まれてもよい。しかしながら、これらの方法を実行するために、別のシステムまたはシステムの組み合わせが使われてもよい。説明の簡単のため、本稿に記載される方法は、一連の工程として描かれ、記述される。しかしながら、本開示に基づく工程は、さまざまな順序でおよび/または同時並行して、あるいは本稿では呈示および記載されない他の工程とともに行なわれてもよい。さらに、図示したすべての工程が開示される主題に基づく方法を実装するために必要とされるとは限らない。さらに、当業者は、これらの方法は代替的に、状態図またはイベントを介して一連の相互に関係した状態として表現されうることを理解するであろう。さらに、本明細書で開示される方法は、そのような方法をコンピューティング装置に輸送し、転送することを容易にするために、非一時的なコンピュータ可読媒体のような製造物に記憶されることができる。本稿で使われるところの製造物という用語は、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータ・プログラムを包含することが意図されている。離散的なブロックとして示されているが、所望される実装に依存して、さまざまなブロックは追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。
図2は、本稿に記載される少なくとも一つの実施形態に基づく、分類モデルの集合を生成することに関する例示的方法200の流れ図を示している。方法200は、ブロック202で始まってもよく、ここで、処理論理は、一つまたは複数のサンプルAPIドキュメンテーションを受け取ってもよい。たとえば、前記一つまたは複数のサンプルAPIドキュメンテーションは、APIドキュメンテーションに関連付けられている情報および一つまたは複数の文を含んでいてもよい。追加的または代替的に、前記一つまたは複数のサンプルAPIドキュメンテーションは、APIドキュメンテーションに関連付けられていない情報および/または文を含んでいてもよい。いくつかの実施形態では、前記一つまたは複数のサンプルAPIドキュメンテーションは、処理のために用意されるウェブ・コンテンツのリストを含んでいてもよい。
ブロック204では、処理論理は、前記一つまたは複数のサンプルAPIドキュメンテーションから情報を抽出してもよい。たとえば、該情報は、抽出され、個別の部分に分離されてもよい。個別の部分とは、APIタイトル、APIエンドポイント、APIエンドポイントのパラメータ、APIエンドポイントの応答またはAPIドキュメンテーションに含まれる情報の他の任意の好適な部分などである。
ブロック206では、処理論理は、一つまたは複数のJSONファイルを生成してもよい。たとえば、JSONファイルは、サンプルAPIドキュメンテーションから抽出された情報に基づいて生成されてもよい。いくつかの実施形態では、各JSONファイルは、API情報の一つまたは複数の部分を含んでいてもよい。該部分とは、APIタイトル、APIエンドポイント、APIエンドポイントのパラメータ、APIエンドポイントの応答またはAPIドキュメンテーションに含まれる情報の他の任意の好適な部分などである。
ブロック208では、処理論理は、JSONファイルに含まれる一つまたは複数の文に注釈付けしてもよい。たとえば、JSONファイルに含まれる一つまたは複数の文は、陽性の文として注釈付けされてもよい。陽性の文は、APIドキュメンテーションに関係していてもよい。追加的または代替的に、陽性の文はAPI機能または他のAPI関係情報を説明してもよい。たとえば、陽性の文はAPIコールのコスト、APIのパラメータ、どのようにしてAPIをコールするか、APIコールのポリシーなどを示してもよい。
いくつかの実施形態では、処理論理は、ユーザーから受領されたユーザー入力に基づいてJSONファイルに含まれる一つまたは複数の文に注釈付けしてもよい。たとえば、ディスプレイを介してユーザーに文が提供されてもよく、ユーザーがその文を陽性の文として注釈付けする入力を提供してもよく、あるいはユーザーはその文に注釈付けしなくてもよい。追加的または代替的に、処理論理は、以前に陽性の文として注釈付けされた文に基づいて、JSONファイルに含まれる一つまたは複数の文に注釈付けしてもよい。
ブロック210では、処理論理は、JSONファイルに含まれる一つまたは複数の文に逆注釈付けしてもよい。たとえば、陽性の文として注釈付けされなかった各文は、陰性の文として、逆注釈付けされてもよい。陰性の文は、APIドキュメンテーションに関係していなくてもよい。たとえば、陰性の文は、APIサービスをオファーしないアプリケーションを示してもよい。追加的または代替的に、処理論理は、以前に陽性の文として注釈付けされた文および/または以前に陰性の文として逆注釈付けされた文に基づいて、JSONファイルに含まれる一つまたは複数の文に逆注釈付けしてもよい。
ブロック212では、処理論理は、前記一つまたは複数のサンプルAPIドキュメンテーションから一つまたは複数の文を抽出してもよい。たとえば、それらの文は、ブロック206で生成された一つまたは複数のJSONファイル、ブロック208で注釈付けされた一つまたは複数の文および/またはブロック210で逆注釈付けされた一つまたは複数の文に基づいて抽出されてもよい。
ブロック214では、処理論理は、前記一つまたは複数のサンプルAPIドキュメンテーションから抽出された一つまたは複数の文を分類してもよい。たとえば、前記一つまたは複数の文は、陽性の文として注釈付けされた文および/または陰性の文として逆注釈付けされた文に基づいて分類されてもよい。いくつかの実施形態では、それらの文は、畳み込みニューラル・ネットワーク(CNN: convolutional neural network)、リカレント・ニューラル・ネットワーク(RNN: recurrent neural network)または他の任意の受け入れ可能なニューラル・ネットワークを使って分類されてもよい。
ブロック216では、処理論理は分類モデルの集合を生成してもよい。たとえば、分類モデルは、サンプルAPIドキュメンテーションから抽出された文の分類に基づいて生成されてもよい。いくつかの実施形態では、分類された文は、APIドキュメンテーションに関係している文およびAPIドキュメンテーションに関係していない文を識別するための分類モデルをトレーニングするために使われてもよい。
当業者は、本稿で開示されるこのおよび他の手順および方法について、該プロセスおよび方法において実行される機能は異なる順序で実装されてもよいことを理解するであろう。さらに、概説される段階および動作は例として提供されるだけであり、該段階および動作のいくつかは、開示される実施形態を損なうことなく、任意的であってもよく、より少数の段階および動作に組み合わされたり、あるいは追加的な段階および動作に展開されたりしてもよい。
図3は、本稿に記載される少なくとも一つの実施形態に基づく、例示的な分類モジュール104のブロック図を示している。分類モジュール104は、サンプルAPIドキュメンテーション324、一つまたは複数の文326、一つまたは複数のJSONファイル328、一つまたは複数の陽性の文330、一つまたは複数の陰性の文332および分類モデルの集合333を含んでいてもよい。分類モジュール104は、図1の分類モジュール104と同じまたは実質的に同様であってもよい。
サンプルAPIドキュメンテーション324は、APIドキュメンテーションに関連した情報および/または文を含んでいてもよい。追加的または代替的に、サンプルAPIドキュメンテーション324は、APIドキュメンテーションに関連しない情報および/または文を含んでいてもよい。
文326は、サンプルAPIドキュメンテーション324から抽出されてもよい。文326の抽出は図2との関係で上記でより詳細に論じられている。さらに、サンプルAPIドキュメンテーション324に含まれる情報に基づいてJSONファイル328が生成されてもよい。JSONファイル328の生成は図2との関係で上記でより詳細に論じられている。さらに、文326の一つまたは複数が陽性の文330として分類され、記憶されてもよい。陽性の文330はAPIドキュメンテーションに関連していてもよい。たとえば、陽性の文330はAPI機能または他のAPI関係情報を説明してもよい。もう一つの例として、陽性の文330はAPIコールのコスト、APIのパラメータ、どのようにしてAPIをコールするか、APIコールのポリシーなどを示してもよい。
さらに、文326の一つまたは複数が陰性の文332として分類され、記憶されてもよい。陰性の文332はAPIドキュメンテーションに関連していなくてもよい。文326を陽性の文330または陰性の文332として分類することは、図2との関係で上記でより詳細に論じられている。
分類モデル333は、陽性の文330および/または陰性の文332に基づいて生成されてもよい。たとえば、陽性の文330および/または陰性の文332は、APIドキュメンテーションに関係しているまたは関係していないコンテンツ内の文を識別するための分類モデル333をトレーニングするために使われてもよい。分類モデル333の生成は、図2との関係で上記でより詳細に論じられている。
ウェブサイトの例では、分類モジュール104はウェブサイト中のウェブページからテキストを抽出してもよい。分類モジュール104は分類モデル333を抽出されたテキストと比較してもよい。それぞれの文が、分類モデル333に含まれる文と比較されてもよい。テキストおよび分類モデル333における一つまたは複数の文が同じまたは実質的に同様である場合、分類モジュール104はそのウェブページを収集し、収集されたAPI文書としてデータ記憶部に送ってもよい。たとえば、図1のデータ記憶部108および収集されたAPI文書110参照。
図4は、本稿に記載される少なくとも一つの実施形態に基づく、REST APIモデルの集合を生成することに関係する例示的方法400の流れ図を示している。方法400はブロック402で始まってもよく、ここで、処理論理は一つまたは複数のサンプル・ドキュメンテーションをパースしてもよい。たとえば、前記一つまたは複数のサンプル・ドキュメンテーションは、テキストの一つまたは複数のページを含んでいてもよい。処理論理は、前記一つまたは複数のサンプル・ドキュメンテーションから前記テキストを抽出してもよい。さらに、目標言語(たとえば英語)におけるストップワード、記号、句読点などがテキストから除去されてもよい。たとえば、単語「the」は英語におけるストップワードであり、感嘆符、他の句読点はテキストから除去されてもよい。
ブロック404では、処理論理は、前記一つまたは複数のサンプル・ドキュメンテーションにおける一つまたは複数のREST APIキーワードの頻度を決定してもよい。処理論理は、前記一つまたは複数のサンプル・ドキュメンテーションの抽出されたテキストにおいてREST APIキーワードを検索してもよい。REST APIキーワードはたとえばGET、POST、PUSH、DELETEなどを含んでいてもよい。いくつかの実施形態では、REST APIキーワードのテキストは大文字を含んでいてもよい。特定のREST APIキーワードの頻度とは、その特定のREST APIキーワードが、抽出されたテキストにおいて何回現われるかを示してもよい。
ブロック406では、処理論理はREST APIモデル・キーワード配列を生成してもよい。たとえば、REST APIモデル・キーワード配列は、前記一つまたは複数のサンプル・ドキュメンテーションの抽出されたテキストの各ページについて生成されてもよい。さらに、たとえば、REST APIモデル・キーワード配列は、前記一つまたは複数のサンプル・ドキュメンテーションの抽出されたテキストの関連付けられたページにおけるすべてのREST APIキーワードおよび各REST APIキーワードの対応する頻度を含んでいてもよい。例示的なREST APIモデル・キーワード配列を表Iに与える。
Figure 0007155739000001
表Iにおいて、TFは、用語頻度(term frequency)を表わし、前記一つまたは複数のサンプル・ドキュメンテーションから抽出されたテキストの対応するページにおけるREST APIキーワードの頻度を示していてもよい。
ブロック408がブロック402に続き、ブロック408では、処理論理は、前記一つまたは複数のサンプル・ドキュメンテーションの各ページに注釈付けしてもよい。各ページは、陽性ページまたは陰性ページとして注釈付けされてもよい。陽性ページは、APIドキュメンテーションに関係していてもよい。陰性ページは、APIドキュメンテーションに関係していなくてもよい。いくつかの実施形態では、ページが陽性ページであるか陰性ページであるかを示すために、追加的な行がREST APIモデル・キーワード配列に追加されてもよい。たとえば、陽性ページに関連付けられた追加的な行におけるフィールドは「1」を含んでいてもよく、陰性ページに関連付けられた追加的な行におけるフィールドは「0」を含んでいてもよい。表IIは、各ページの注釈を含む例示的なREST APIモデル・キーワード配列である。
Figure 0007155739000002
いくつかの実施形態では、処理論理は、ユーザーから受領されたユーザー入力に基づいて、各ページを陽性ページまたは陰性ページとして注釈付けしてもよい。ディスプレイを介してページがユーザーに提供されてもよく、ユーザーはそのページに、陽性ページまたは陰性ページとして注釈付けしてもよい。
ブロック410では、処理論理は、REST APIモデルの集合を生成してもよい。REST APIモデルは、更新されたREST APIモデル・キーワード配列に基づいて生成されてもよい。
追加的または代替的に、REST APIモデルは、機械学習アルゴリズムを使って生成されてもよい。たとえば、REST APIモデルは式1(たとえばロジスティック回帰の式)を使って生成されてもよい。
Figure 0007155739000003
式1において、Xは入力配列(たとえば、更新されたTF REST APIキーワード配列)、yは各ページについて該ページがREST APIページであるかどうかの情報を与えるトレーニング配列、wは係数ベクトル、Cは正則化強度(regularization strength)の逆数、Tは行列転置演算を表わす。ロジスティック回帰の式は、0とマイナス1との間の最大エントロピーを見出すための最大エントロピー分類として知られる線形モデルであってもよい。追加的または代替的に、REST APIモデルは、任意のトレーニングされたAPIモデルを使って生成されてもよい。
当業者は、本稿で開示されるこのおよび他の手順および方法について、該プロセスおよび方法において実行される機能は異なる順序で実装されてもよいことを理解するであろう。さらに、概説される段階および動作は例として提供されるだけであり、該段階および動作のいくつかは、開示される実施形態を損なうことなく、任意的であってもよく、より少数の段階および動作に組み合わされたり、あるいは追加的な段階および動作に展開されたりしてもよい。
図5は、本稿に記載される少なくとも一つの実施形態に基づく、例示的なREST APIモジュール106のブロック図を示している。REST APIモジュール106は、サンプルREST[ APIドキュメンテーション534、一つまたは複数のREST APIキーワード536、REST APIモデル・キーワード配列538およびREST APIモデルの集合542を含んでいてもよい。REST APIモジュール106は、図1のREST APIモジュール106と同じまたは実質的に同様であってもよい。
サンプルREST APIドキュメンテーション534は、REST APIドキュメンテーションに関連したドキュメンテーションを含んでいてもよい。サンプルREST APIドキュメンテーション534は抽出されたテキストを含んでいてもよい。たとえばサンプルREST APIドキュメンテーションは、テキストであって、該テキストからストップワード、記号および/または句読点が除去されたものを含んでいてもよい。
REST APIキーワード536は、既知のREST APIキーワードのリストを含んでいてもよい。たとえば、REST APIキーワードはGET、POST、PUSH、DELETEなどを含んでいてもよい。REST APIモデル・キーワード配列538は、サンプルREST APIドキュメンテーション534に現われるキーワードのリストおよび各キーワードの頻度を含んでいてもよい。REST APIモデル・キーワード配列の生成については、図4に関係して上記でより詳細に論じられている。
REST APIモデル542は、REST APIモデル・キーワード配列538に基づいて生成されてもよい。たとえば、REST APIモデル・キーワード配列538を使って、REST APIドキュメンテーションに関係しているまたは関係していないページ中のREST API用語の頻度および/または総数を識別するためのREST APIモデル542をトレーニングしてもよい。REST APIモデル542の生成については、図4に関係して上記でより詳細に論じられている。
ウェブサイトの例では、REST APIモジュール106は、ウェブサイト中のウェブページからREST APIキーワードを抽出してもよい。REST APIモジュール106は、REST APIモデル542を抽出されたテキストと比較してもよい。テキスト中のREST APIキーワードの総数および/または各REST APIキーワードの頻度が、REST APIモジュール542に含まれているキーワード閾値および/または頻度閾値と比較されてもよい。テキスト中のREST APIキーワードの総数および/または一つまたは複数のREST APIキーワードの頻度が閾値および/または頻度閾値を超える場合、REST APIモジュール106はそれらのウェブページを収集し、収集されたREST API文書としてデータ記憶部に送ってもよい。たとえば、図1のデータ記憶部108および収集されたREST API文書112参照。
図6は、本稿に記載される少なくとも一つの実施形態に基づく、コンテンツがAPIドキュメンテーションであるかどうかを判定することに関係した例示的方法600の流れ図を示している。方法600はブロック602で始まってもよく、ここで、処理論理は分類モデルの集合を生成してもよい。分類モデルの生成は図2に関係して上記でより詳細に論じられている。
ブロック604では、処理論理は、コンテンツを求めて、一つまたは複数のコンテンツ源にアクセスしてもよい。たとえば、処理論理は、図1のコンテンツ118を求めてコンテンツ源116にアクセスしてもよい。ウェブサイトの例では、処理論理はウェブページを求めてウェブサイトにアクセスしてもよい。
ブロック606では、処理論理は、コンテンツ中の一つまたは複数の文が、分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定してもよい。たとえば、処理論理は、コンテンツ中の一つまたは複数の文を分類モデルに含まれる文と比較してもよく、一つまたは複数の文が同じまたは実質的に同様であれば、そのコンテンツはAPIドキュメンテーションでありうる。ウェブサイトの例では、処理論理は、各ウェブページにおける一つまたは複数の文が分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定してもよい。
ブロック608では、処理論理は前記コンテンツをAPIドキュメンテーションとして収集してもよい。たとえば、コンテンツは収集され、図1の収集されたAPI文書110としてデータ記憶部108に記憶されてもよい。ウェブサイトの例では、処理論理は、APIドキュメンテーションとして識別されたウェブページを収集し、該ウェブページをデータ記憶部に送ってもよい。
当業者は、本稿で開示されるこのおよび他の手順および方法について、該プロセスおよび方法において実行される機能は異なる順序で実装されてもよいことを理解するであろう。さらに、概説される段階および動作は例として提供されるだけであり、該段階および動作のいくつかは、開示される実施形態を損なうことなく、任意的であってもよく、より少数の段階および動作に組み合わされたり、あるいは追加的な段階および動作に展開されたりしてもよい。
図7は、本稿に記載される少なくとも一つの実施形態に基づく、コンテンツがREST APIドキュメンテーションであるかどうかを判定することに関係した例示的方法700の流れ図を示している。方法700はブロック702で始まってもよく、ここで、処理論理はREST APIモデルの集合を生成してもよい。REST APIモデルの生成は図4に関係して上記でより詳細に論じられている。
ブロック704では、処理論理は、コンテンツ中の一つまたは複数のREST APIキーワードが、REST APIモデルに含まれる一つまたは複数のREST APIキーワードと同じまたは実質的に同様であるかどうかを判定してもよい。ウェブサイトの例では、処理論理は、ウェブページにおける一つまたは複数のREST APIキーワードがREST APIモデルにおける一つまたは複数のREST APIキーワードと同じまたは実質的に同様であるかどうかを判定してもよい。
ブロック706では、コンテンツ中の一つまたは複数のREST APIキーワードが同じまたは実質的に同様である場合、処理論理は前記コンテンツをREST APIドキュメンテーションとして収集してもよい。該REST APIドキュメンテーションは収集されたREST API文書として記憶されてもよい。たとえば、そのコンテンツは、図1の収集されたREST API文書112としてデータ記憶部108によって記憶されてもよい。ウェブサイトの例では、REST APIドキュメンテーションとして識別されたウェブページが収集され、収集されたREST API文書として記憶されてもよい。
当業者は、本稿で開示されるこのおよび他の手順および方法について、該プロセスおよび方法において実行される機能は異なる順序で実装されてもよいことを理解するであろう。さらに、概説される段階および動作は例として提供されるだけであり、該段階および動作のいくつかは、開示される実施形態を損なうことなく、任意的であってもよく、より少数の段階および動作に組み合わされたり、あるいは追加的な段階および動作に展開されたりしてもよい。
図8は、本稿に記載される少なくとも一つの実施形態に基づく、コンテンツがREST APIドキュメンテーションであるかどうかを判定することに関係したもう一つの例示的方法800の流れ図を示している。方法800はブロック802で始まってもよく、ここで、処理論理は一つまたは複数のサンプル・ドキュメンテーションを受領してもよい。
ブロック804では、処理論理は、前記一つまたは複数のサンプル・ドキュメンテーションをパースしてもよい。たとえば、前記一つまたは複数のサンプル・ドキュメンテーションはテキストの一つまたは複数のページを含んでいてもよい。処理論理は、前記一つまたは複数のサンプル・ドキュメンテーションからテキストを抽出してもよい。さらに、テキストから、ストップワード、記号などが除去されてもよい。たとえば、単語「the」、感嘆符、他の句読点などがテキストから除去されてもよい。
ブロック806では、前記一つまたは複数のサンプル・ドキュメンテーションにおける一つまたは複数のREST APIキーワードの頻度を決定してもよい。処理論理は、前記一つまたは複数のサンプルAPIドキュメンテーションのパースされたテキストにおいてREST APIキーワードを検索してもよい。REST APIキーワードはたとえばGET、POST、PUSH、DELETEなどを含んでいてもよい。REST APIキーワードの頻度は、特定のREST APIキーワードが、パースされたテキストにおいて何回現われるかを示してもよい。
ブロック808において、処理論理は、REST APIモデル・キーワード配列を生成してもよい。たとえば、REST APIモデル・キーワード配列は、前記一つまたは複数のサンプル・ドキュメンテーションの各ページについて生成されてもよい。さらに、たとえば、REST APIモデル・キーワード配列は、前記一つまたは複数のサンプル・ドキュメンテーションの関連付けられたページにおけるすべてのREST APIキーワードおよび各REST APIキーワードの対応する頻度を含んでいてもよい。例示的なREST APIモデル・キーワード配列は上記で表Iにおいて与えてある。
ブロック810では、処理論理はコンテンツをパースしてもよい。処理論理は、コンテンツからテキストを抽出してもよい。さらに、コンテンツのテキストから、ストップワード、記号などが除去されてもよい。パースされているコンテンツは、図1のコンテンツ118を含んでいてもよい。ウェブサイトの例では、処理論理は、ウェブサイトのウェブページに含まれるテキストをパースしてもよい。
ブロック812では、処理論理は、コンテンツに含まれるREST APIキーワードの総数および任意のREST APIキーワードの頻度を決定してもよい。たとえば、処理論理は、テキスト中にREST APIキーワードが見出される全回数および/または各REST APIキーワードの頻度を数えてもよい。ウェブサイトの例では、処理論理は、ウェブページに含まれるREST APIキーワードの総数および任意のREST APIキーワードの頻度を決定してもよい。
ブロック814では、処理論理は、REST APIドキュメンテーション・キーワード配列を生成してもよい。REST APIドキュメンテーション・キーワード配列は、コンテンツに含まれるREST APIキーワードの総数および/または任意のREST APIキーワードの頻度に基づいて生成されてもよい。ウェブサイトの例では、処理論理は、ウェブサイト中の各ウェブページについてREST APIドキュメンテーション・キーワード配列を生成してもよい。
ブロック816では、処理論理は、コンテンツに含まれるREST APIキーワードの総数がキーワード閾値を超える、およびコンテンツに含まれるいずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかを判定してもよい。コンテンツに含まれるREST APIキーワードの総数がキーワード閾値を超える、および/またはコンテンツに含まれるいずれかのREST APIキーワードの頻度が頻度閾値を超える場合、処理論理は、そのコンテンツを、REST APIドキュメンテーションとして収集してもよい。
ウェブサイトの例では、処理論理は、あるウェブページに含まれるREST APIキーワードの総数がキーワード閾値を超える、およびあるウェブページに含まれるいずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかを判定してもよい。あるウェブページに含まれるREST APIキーワードの総数がキーワード閾値を超える、および/またはあるウェブページに含まれるいずれかのREST APIキーワードの頻度が頻度閾値を超える場合、処理論理はそのウェブページを、REST APIドキュメンテーションとして収集してもよい。
当業者は、本稿で開示されるこのおよび他の手順および方法について、該プロセスおよび方法において実行される機能は異なる順序で実装されてもよいことを理解するであろう。さらに、概説される段階および動作は例として提供されるだけであり、該段階および動作のいくつかは、開示される実施形態を損なうことなく、任意的であってもよく、より少数の段階および動作に組み合わされたり、あるいは追加的な段階および動作に展開されたりしてもよい。
図9は、本稿に記載される少なくとも一つの実施形態に基づく、分類モデルの集合を生成することに関する例示的方法の流れ図を示している。方法900は、ブロック902で始まってもよく、ここで、処理論理は、一つまたは複数のサンプルAPIドキュメンテーションを受け取ってもよい。前記一つまたは複数のサンプルAPIドキュメンテーションは、たとえば、APIドキュメンテーションに関連付けられている情報および一つまたは複数の文を含んでいてもよい。追加的または代替的に、前記一つまたは複数のサンプルAPIドキュメンテーションは、APIドキュメンテーションに関連付けられていない情報および/または文を含んでいてもよい。いくつかの実施形態では、前記一つまたは複数のサンプルAPIドキュメンテーションは、処理のために用意されるウェブ・コンテンツのリストを含んでいてもよい。
ブロック904では、処理論理は、前記一つまたは複数のサンプルAPIドキュメンテーションから、APIドキュメンテーションに関連する一つまたは複数の文を抽出してもよい。たとえば、該文は、ブロック908で生成される一つまたは複数のJSONファイルおよび/またはブロック910で生成される一つまたは複数の陽性の文または一つまたは複数の陰性の文に基づいて抽出されてもよい。
ブロック906では、処理論理は、前記一つまたは複数のサンプルAPIドキュメンテーションから情報を抽出してもよい。たとえば、該情報は、抽出され、個別の部分に分離されてもよい。個別の部分とは、APIタイトル、APIエンドポイント、APIエンドポイントのパラメータ、APIエンドポイントの応答またはAPIドキュメンテーションに含まれる情報の他の任意の好適な部分などである。
ブロック908では、処理論理は、一つまたは複数のJSONファイルを生成してもよい。たとえば、JSONファイルは、前記一つまたは複数のサンプルAPIドキュメンテーションからの前記情報に基づいて生成されてもよい。いくつかの実施形態では、各JSONファイルは、API情報の一つまたは複数の部分を含んでいてもよい。該部分とは、APIタイトル、APIエンドポイント、APIエンドポイントのパラメータ、APIエンドポイントの応答またはAPIドキュメンテーションに含まれる情報の他の任意の好適な部分などである。
ブロック910では、処理論理は、一つまたは複数の陽性の文または一つまたは複数の陰性の文を生成してもよい。JSONファイルに含まれる前記一つまたは複数の文は、陽性の文として注釈付けされてもよい。陽性の文は、APIドキュメンテーションに関係していてもよい。追加的または代替的に、陽性の文はAPI機能または他のAPI関係情報を説明してもよい。たとえば、陽性の文はAPIコールのコスト、APIのパラメータ、どのようにしてAPIをコールするか、APIコールのポリシーなどを示してもよい。陰性の文は、APIドキュメンテーションに関係していなくてもよい。たとえば、陰性の文は、APIサービスを提供しないアプリケーションを示してもよい。
いくつかの実施形態では、処理論理は、ユーザーから受領されたユーザー入力に基づいてJSONファイルに含まれる一つまたは複数の文に注釈付けしてもよい。ディスプレイを介してユーザーに文が提供されてもよく、ユーザーがその文を陽性の文または陰性の文として注釈付けする入力を提供してもよい。
ブロック912では、処理論理は、分類モデルの集合を生成してもよい。たとえば、分類モデルは、前記一つまたは複数の陽性の文および/または前記一つまたは複数の陰性の文に基づいて生成されてもよい。
当業者は、本稿で開示されるこのおよび他の手順および方法について、該プロセスおよび方法において実行される機能は異なる順序で実装されてもよいことを理解するであろう。さらに、概説される段階および動作は例として提供されるだけであり、該段階および動作のいくつかは、開示される実施形態を損なうことなく、任意的であってもよく、より少数の段階および動作に組み合わされたり、あるいは追加的な段階および動作に展開されたりしてもよい。
図10は、本稿で論じられる方法の任意の一つまたは複数を機械に実行させるための一組の命令が実行されうるコンピューティング装置1000の例示的な形での機械の図的な表現を示している。コンピューティング装置1000は、携帯電話、スマートフォン、ネットブック・コンピュータ、ラックマウント・サーバー、ルーター・コンピュータ、サーバー・コンピュータ、パーソナル・コンピュータ、メインフレーム・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、デスクトップ・コンピュータなどを含んでいてもよく、その中で、本稿で論じられる方法の任意の一つまたは複数を機械に実行させるための一組の命令が実行されうる。代替的な実施形態では、機械はLAN、イントラネット、エクストラネットまたはインターネット内の他の機械に接続(たとえばネットワーク接続)されていてもよい。機械は、クライアント‐サーバー・ネットワーク環境におけるサーバー機械の役割で動作してもよい。機械は、パーソナル・コンピュータ(PC)、セットトップボックス(STB)、サーバー、ネットワーク・ルーター、スイッチまたはブリッジまたは、その機械によって行なわれるべきアクションを指定する一組の命令(逐次的またはその他)を実行することのできるいかなる機械であってもよい。さらに、一つの機械が図示されているだけだが、用語「機械」は、本稿で論じられる方法の任意の一つまたは複数を実行するために、個々にまたは合同して一組の(または複数組の)命令を実行する機械の任意の集合をも含みうる。
例示的なコンピューティング装置1000は、処理装置(たとえばプロセッサ)1002、メイン・メモリ1004(たとえば読み出し専用メモリ(ROM)、フラッシュメモリ、動的ランダム・アクセス・メモリ(DRAM)、たとえば同期DRAM(SDRAM))、静的メモリ1006(たとえばフラッシュメモリ、静的ランダム・アクセス・メモリ(SRAM))およびデータ記憶装置1016を含み、これらはバス1008を介して互いと通信する。
処理装置1002は、マイクロプロセッサ、中央処理ユニットなどといった一つまたは複数の汎用処理装置を表わす。より具体的には、処理装置1002は、複雑命令セット・コンピューティング(CISC)マイクロプロセッサ、縮小命令セット・コンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW: very long instruction word)マイクロプロセッサまたは他の命令セットを実装するプロセッサまたは諸命令セットの組み合わせを実装する諸プロセッサを含んでいてもよい。処理装置1002は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワーク・プロセッサなどといった一つまたは複数の特殊目的処理装置をも含んでいてもよい。処理装置1002は、本稿で論じられた動作および段階を実行するための命令1026を実行するよう構成されてもよい。
コンピューティング装置1000はさらに、ネットワーク1018と通信しうるネットワーク・インターフェース装置1022を含んでいてもよい。コンピューティング装置1000は、ディスプレイ装置1010(たとえば液晶ディスプレイ(LCD)または陰極線管(CRT))、英数字入力装置1012(たとえばキーボード)、カーソル制御装置1014(たとえばマウス)および信号生成装置1020(たとえばスピーカー)をも含んでいてもよい。ある実装では、ディスプレイ装置1010、英数字入力装置1012およびカーソル制御装置1014は単一のコンポーネントまたは装置(たとえばLCDタッチスクリーン)に組み合わされてもよい。
データ記憶装置1016は、本稿に記載される方法または機能の任意の一つまたは複数を具現する一組または複数組の命令1026(たとえば装置102、分類モジュール104およびREST APIモジュール106)が記憶されているコンピュータ可読記憶媒体1024を含んでいてもよい。命令1026は、コンピューティング装置1000によるその実行の間、完全にまたは少なくとも部分的に、メイン・メモリ1004内および/または処理装置1002内に存在し、メイン・メモリ1004および処理装置1002もコンピュータ可読媒体をなしてもよい。命令はさらに、ネットワーク・インターフェース装置1022を介してネットワーク1018を通じて送受信されてもよい。
コンピュータ可読記憶媒体1024はある例示的実施形態では単一の媒体であると示されているが、「コンピュータ可読記憶媒体」という用語は、前記一組または複数組の命令を記憶する単一の媒体または複数の媒体(たとえば、中央集中式または分散式のデータベースおよび/または付随するキャッシュおよびサーバー)を含んでいてもよい。「コンピュータ可読記憶媒体」という用語はまた、本開示の方法の任意の一つまたは複数を機械に実行させる、機械による実行のための一組の命令を、記憶する、エンコードするまたは担持することができる任意の媒体をも含んでいてもよい。よって、「コンピュータ可読記憶媒体」という用語は、半導体メモリ、光メディアおよび磁気メディアを含むがそれに限られないと解釈されうる。
本稿に記載される実施形態は、コンピュータ実行可能命令を担持するまたは記憶するためのコンピュータ可読媒体を使って実装されてもよい。そのようなコンピュータ可読媒体は、汎用または特殊目的コンピュータによってアクセスされうるいかなる利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、非一時的なコンピュータ可読記憶媒体を含んでいてもよく、それは、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、電気的に消去可能なプログラム可能な読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD-ROM)または他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、フラッシュメモリ・デバイス(たとえば半導体メモリ・デバイス)またはコンピュータ実行可能命令またはデータ構造の形で所望されるプログラム・コードを担持または記憶するために使用されうる、汎用または専用コンピュータによってアクセスされうる他の任意の記憶媒体を含んでいてもよい。上記の組み合わせも、コンピュータ可読媒体の範囲内に含められてもよい。
コンピュータ実行可能命令はたとえば、汎用コンピュータ、専用コンピュータまたは専用処理装置(たとえば一つまたは複数のプロセッサ)に、ある機能または機能群を実行させる命令およびデータを含んでいてもよい。主題は構造的な特徴および/または方法論的な工程に固有の言辞で記述されてきたが、付属の請求項において定義される主題は必ずしも上記の個別的な特徴または工程に限定されないことは理解される。むしろ、上記の個別的な特徴および工程は、請求項を実装する例示的な形として開示されている。
本稿での用法では、用語「モジュール」または「コンポーネント」は、コンピューティング・システムの汎用ハードウェア(たとえばコンピュータ可読媒体、処理装置など)に記憶および/または実行されうるモジュールまたはコンポーネントおよび/またはソフトウェア・オブジェクトまたはソフトウェア・ルーチンの動作を実行するよう構成された個別的なハードウェア実装を指すことがありうる。いくつかの実施形態では、本稿に記載される種々のコンポーネント、モジュール、エンジンおよびサービスは、(たとえば別個のスレッドとして)コンピューティング・システム上で実行されるオブジェクトまたはプロセスとして実装されてもよい。本稿に記載されるシステムおよび方法のいくつかは一般に(汎用ハードウェアに記憶されるおよび/または実行される)ソフトウェアで実装されるものとして記述されるが、個別的なハードウェア実装またはソフトウェアおよび個別的ハードウェア実装の組み合わせも可能であり、考えられている。本稿において、「コンピューティング・エンティティ」は、本稿で先に定義した任意のコンピューティング・システムまたはコンピューティング・システム上で走る任意のモジュールまたはモジュレットの組み合わせであってよい。
本稿に記載されるすべての例および条件付きの言辞は、本発明および発明者によって当技術分野の発展のために寄与される概念の理解において読者を助ける教育目的を意図されており、そのような特定的に挙げられる例および条件に限定することなく解釈されるものとする。本発明の実施形態について詳細に述べてきたが、本発明の精神および範囲から外れることなく、これにさまざまな変化、代替および変更をなすことができることは理解しておくべきである。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
メモリと;通信インターフェースと;前記メモリおよび前記通信インターフェースに動作上結合されたプロセッサとを有するシステムであって、前記プロセッサは:
分類モデルの集合を生成する段階であって、前記分類モデルは、アプリケーション・プログラミング・インターフェース(API)ドキュメンテーションに関連する一つまたは複数の文を含む、段階と;
前記通信インターフェースを介して、コンテンツとして一つまたは複数のコンテンツ源にアクセスする段階と;
前記コンテンツにおける一つまたは複数の文が、前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定する段階と;
前記コンテンツにおける一つまたは複数の文が同じまたは実質的に同様であるよ判定することに応答して、前記コンテンツをAPIドキュメンテーションとして収集する段階とを含む動作を実行するよう構成されている、
システム。
(付記2)
前記プロセッサはさらに:
代表状態転送(REST)APIモデルの集合を生成する段階であって、前記REST APIモデルは、REST APIドキュメンテーションに関連する一つまたは複数のREST APIキーワードを含む、段階と;
前記コンテンツにおける一つまたは複数のREST APIキーワードが、前記REST APIモデルに含まれる一つまたは複数のREST APIキーワードと同じまたは実質的に同様であるかどうかを判定する段階と;
前記コンテンツにおける一つまたは複数のREST APIキーワードが同じまたは実質的に同様であると判定するのに応答して、前記コンテンツをREST APIドキュメンテーションとして収集する段階とを実行するよう構成されている、
付記1記載のシステム。
(付記3)
REST APIモデルの集合を生成する動作が:
一つまたは複数のサンプル・ドキュメンテーションを受領する段階と;
前記一つまたは複数のサンプル・ドキュメンテーションをパースする段階であって、前記サンプル・ドキュメンテーションの一つまたは複数はREST APIに関連している、段階と;
前記サンプル・ドキュメンテーションにおける一つまたは複数のREST APIキーワードの頻度を決定する段階と;
REST APIモデル・キーワード配列を生成する段階であって、前記REST APIモデル・キーワード配列は、前記サンプル・ドキュメンテーションの各ページがREST APIに関連しているかどうかを示す、段階とを含み、
前記REST APIモデルは、前記REST APIモデル・キーワード配列に基づいて生成される、
付記2記載のシステム。
(付記4)
前記コンテンツをREST APIドキュメンテーションとして収集する動作が:
前記コンテンツをパースする段階と;
前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度を決定する段階と;
前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度に基づいて、REST APIドキュメンテーション・キーワード配列を生成する段階と;
前記コンテンツに含まれるREST APIキーワードの総数がキーワード閾値を超える、前記コンテンツに含まれるいずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかを判定する段階であって、前記コンテンツは、REST APIキーワードの総数がキーワード閾値を超える、いずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかに基づいて、REST APIドキュメンテーションとして収集される、段階とを含む、
付記3記載のシステム。
(付記5)
前記プロセッサが、前記REST APIモデルを、トレーニングされたAPIモデルに従って生成する、付記2記載のシステム。
(付記6)
分類モデルの集合を生成する動作が:
一つまたは複数のサンプルAPIドキュメンテーションを受領する段階と;
前記一つまたは複数のサンプルAPIドキュメンテーションから、APIドキュメンテーションに関連する一つまたは複数の文を抽出する段階と;
前記一つまたは複数のサンプルAPIドキュメンテーションから情報を抽出する段階と;
前記一つまたは複数のサンプルAPIドキュメンテーションからの前記情報に基づいて、一つまたは複数のジャバスクリプト・オブジェクト記法(JSON)ファイルを生成する段階と;
一つまたは複数の陽性の文または一つまたは複数の陰性の文を生成する段階であって、前記分類モデルは、前記一つまたは複数の陽性の文および前記一つまたは複数の陰性の文の少なくとも一方に基づいて生成される、段階とを含む、
付記1記載のシステム。
(付記7)
前記コンテンツが、ウェブ・ベースのAPIドキュメンテーション、装置APIドキュメンテーションおよびオペレーティング・システム・ベースのAPIドキュメンテーションのうちの少なくとも一つを含む、付記1記載のシステム。
(付記8)
分類モデルの集合を生成する段階であって、前記分類モデルは、APIドキュメンテーションに関連する一つまたは複数の文を含む、段階と;
コンテンツとして一つまたは複数のコンテンツ源にアクセスする段階と;
前記コンテンツにおける一つまたは複数の文が、前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定する段階と;
前記コンテンツにおける一つまたは複数の文が同じまたは実質的に同様であるよ判定することに応答して、前記コンテンツをAPIドキュメンテーションとして収集する段階とを含む、
方法。
(付記9)
当該方法がさらに:
REST APIモデルの集合を生成する段階であって、前記REST APIモデルは、REST APIドキュメンテーションに関連する一つまたは複数のREST APIキーワードを含む、段階と;
前記コンテンツにおける一つまたは複数のREST APIキーワードが、前記REST APIモデルに含まれる一つまたは複数のREST APIキーワードと同じまたは実質的に同様であるかどうかを判定する段階と;
前記コンテンツにおける一つまたは複数のREST APIキーワードが同じまたは実質的に同様であると判定するのに応答して、前記コンテンツをREST APIドキュメンテーションとして収集する段階とを含む、
付記8記載の方法。
(付記10)
REST APIモデルの集合を生成する動作が:
一つまたは複数のサンプル・ドキュメンテーションを受領する段階と;
前記一つまたは複数のサンプル・ドキュメンテーションをパースする段階であって、前記サンプル・ドキュメンテーションの一つまたは複数はREST APIに関連している、段階と;
前記サンプル・ドキュメンテーションにおける一つまたは複数のREST APIキーワードの頻度を決定する段階と;
REST APIモデル・キーワード配列を生成する段階であって、前記REST APIモデル・キーワード配列は、前記サンプル・ドキュメンテーションの各ページがREST APIに関連しているかどうかを示す、段階とを含み、
前記REST APIモデルは、前記REST APIモデル・キーワード配列に基づいて生成される、
付記9記載の方法。
(付記11)
前記コンテンツをREST APIドキュメンテーションとして収集する動作が:
前記コンテンツをパースする段階と;
前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度を決定する段階と;
前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度に基づいて、REST APIドキュメンテーション・キーワード配列を生成する段階と;
前記コンテンツに含まれるREST APIキーワードの総数がキーワード閾値を超える、前記コンテンツに含まれるいずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかを判定する段階であって、前記コンテンツは、REST APIキーワードの総数がキーワード閾値を超える、いずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかに基づいて、REST APIドキュメンテーションとして収集される、段階とを含む、
付記10記載の方法。
(付記12)
前記REST APIモデルが、トレーニングされたAPIモデルに従って生成される、付記9記載の方法。
(付記13)
分類モデルの集合を生成する動作が:
一つまたは複数のサンプルAPIドキュメンテーションを受領する段階と;
前記一つまたは複数のサンプルAPIドキュメンテーションから、APIドキュメンテーションに関連する一つまたは複数の文を抽出する段階と;
前記一つまたは複数のサンプルAPIドキュメンテーションから情報を抽出する段階と;
前記一つまたは複数のサンプルAPIドキュメンテーションからの前記情報に基づいて、一つまたは複数のJSONファイルを生成する段階と;
一つまたは複数の陽性の文または一つまたは複数の陰性の文を生成する段階であって、前記分類モデルは、前記一つまたは複数の陽性の文および前記一つまたは複数の陰性の文の少なくとも一方に基づいて生成される、段階とを含む、
付記8記載の方法。
(付記14)
動作を実行するためにプロセッサによって実行可能なプログラミング・コードがエンコードされている非一時的なコンピュータ可読媒体であって、前記動作は:
分類モデルの集合を生成する段階であって、前記分類モデルは、APIドキュメンテーションに関連する一つまたは複数の文を含む、段階と;
コンテンツとして一つまたは複数のコンテンツ源にアクセスする段階と;
前記コンテンツにおける一つまたは複数の文が、前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定する段階と;
前記コンテンツにおける一つまたは複数の文が同じまたは実質的に同様であるよ判定することに応答して、前記コンテンツをAPIドキュメンテーションとして収集する段階とを含む、
非一時的なコンピュータ可読媒体。
(付記15)
前記動作がさらに:
REST APIモデルの集合を生成する段階であって、前記REST APIモデルは、REST APIドキュメンテーションに関連する一つまたは複数のREST APIキーワードを含む、段階と;
前記コンテンツにおける一つまたは複数のREST APIキーワードが、前記REST APIモデルに含まれる一つまたは複数のREST APIキーワードと同じまたは実質的に同様であるかどうかを判定する段階と;
前記コンテンツにおける一つまたは複数のREST APIキーワードが同じまたは実質的に同様であると判定するのに応答して、前記コンテンツをREST APIドキュメンテーションとして収集する段階とを含む、
付記14記載の非一時的なコンピュータ可読媒体。
(付記16)
REST APIモデルの集合を生成する動作が:
一つまたは複数のサンプル・ドキュメンテーションを受領する段階と;
前記一つまたは複数のサンプル・ドキュメンテーションをパースする段階であって、前記サンプル・ドキュメンテーションの一つまたは複数はREST APIに関連している、段階と;
前記サンプル・ドキュメンテーションにおける一つまたは複数のREST APIキーワードの頻度を決定する段階と;
REST APIモデル・キーワード配列を生成する段階であって、前記REST APIモデル・キーワード配列は、前記サンプル・ドキュメンテーションの各ページがREST APIに関連しているかどうかを示す、段階とを含み、
前記REST APIモデルは、前記REST APIモデル・キーワード配列に基づいて生成される、
付記15記載の非一時的なコンピュータ可読媒体。
(付記17)
前記コンテンツをREST APIドキュメンテーションとして収集する動作が:
前記コンテンツをパースする段階と;
前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度を決定する段階と;
前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度に基づいて、REST APIドキュメンテーション・キーワード配列を生成する段階と;
前記コンテンツに含まれるREST APIキーワードの総数がキーワード閾値を超える、前記コンテンツに含まれるいずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかを判定する段階であって、前記コンテンツは、REST APIキーワードの総数がキーワード閾値を超える、いずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかに基づいて、REST APIドキュメンテーションとして収集される、段階とを含む、
付記16記載の非一時的なコンピュータ可読媒体。
(付記18)
前記REST APIモデルが、トレーニングされたAPIモデルに従って生成される、付記15記載の非一時的なコンピュータ可読媒体。
(付記19)
分類モデルの集合を生成する動作が:
一つまたは複数のサンプルAPIドキュメンテーションを受領する段階と;
前記一つまたは複数のサンプルAPIドキュメンテーションから、APIドキュメンテーションに関連する一つまたは複数の文を抽出する段階と;
前記一つまたは複数のサンプルAPIドキュメンテーションから情報を抽出する段階と;
前記一つまたは複数のサンプルAPIドキュメンテーションからの前記情報に基づいて、一つまたは複数のJSONファイルを生成する段階と;
一つまたは複数の陽性の文または一つまたは複数の陰性の文を生成する段階であって、前記分類モデルは、前記一つまたは複数の陽性の文および前記一つまたは複数の陰性の文の少なくとも一方に基づいて生成される、段階とを含む、
付記14記載の非一時的なコンピュータ可読媒体。
(付記20)
前記コンテンツが、ウェブ・ベースのAPIドキュメンテーション、装置APIドキュメンテーションまたはオペレーティング・システム・ベースのAPIドキュメンテーションのうちの少なくとも一つを含む、付記14記載の非一時的なコンピュータ可読媒体。
102 装置
104 分類モジュール
106 REST APIモジュール
108 データ記憶部
110 収集されたAPI文書
112 収集されたREST API文書
114 ネットワーク
116 コンテンツ源
118 コンテンツ

202 一つまたは複数のサンプルAPIドキュメンテーションを受領
204 一つまたは複数のサンプルAPIドキュメンテーションから情報を抽出
206 一つまたは複数のJSONファイルを生成
208 JSONファイルに含まれる一つまたは複数の文に注釈付け
210 JSONファイルに含まれる一つまたは複数の文に逆注釈付け
212 一つまたは複数のサンプルAPIドキュメンテーションから一つまたは複数の文を抽出
214 一つまたは複数のサンプルAPIドキュメンテーションから抽出された一つまたは複数の文を分類
216 一組の分類モデルを生成

324 サンプルAPIドキュメンテーション
326 文
328 JSONファイル
330 陽性の文
332 陰性の文
333 分類モデル

402 一つまたは複数のサンプル・ドキュメンテーションをパース
404 一つまたは複数のサンプル・ドキュメンテーションにおける一つまたは複数のREST APIキーワードの頻度を決定
406 REST APIモデル・キーワード配列を生成
408 一つまたは複数のサンプル・ドキュメンテーションの各ページに注釈付け
410 一組のREST APIモデルを生成

106 REST APIモジュール
534 サンプルREST APIドキュメンテーション
534 REST APIキーワード
538 REST APIモデル・キーワード配列
542 REST APIモデル

602 一組の分類モデルを生成
604 コンテンツを求めて一つまたは複数のコンテンツ源にアクセス
606 コンテンツ中の一つまたは複数の文が分類モデルに含まれる一つまたは複数の文と同じまたは類似かどうか判定
608 コンテンツをAPIドキュメンテーションとして収集

702 一組のREST APIモデルを生成
704 コンテンツ中の一つまたは複数のREST APIキーワードがREST APIモデルに含まれる一つまたは複数のREST APIキーワードと同じまたは類似かどうか判定
706 コンテンツ中の一つまたは複数のREST APIキーワードが同じまたは類似であれば、コンテンツをREST APIドキュメンテーションとして収集

802 一つまたは複数のサンプル・ドキュメンテーションを受領
804 一つまたは複数のサンプル・ドキュメンテーションをパース
806 一つまたは複数のサンプル・ドキュメンテーションにおける一つまたは複数のREST APIキーワードの頻度を決定
808 REST APIモデル・キーワード配列を生成
810 コンテンツをパース
812 コンテンツに含まれるREST APIキーワードの総数および任意のREST APIキーワードの頻度を決定
814 REST APIドキュメンテーション・キーワード配列を生成
816 コンテンツに含まれるREST APIキーワードの総数がキーワード閾値を超える、コンテンツに含まれるいずれかのREST APIキーワードの頻度が頻度閾値を超えるの少なくとも一方であるかどうかを判定

902 一つまたは複数のサンプルAPIドキュメンテーションを受領
904 一つまたは複数のサンプルAPIドキュメンテーションから、APIドキュメンテーションに関連する一つまたは複数の文を抽出
906 一つまたは複数のサンプルAPIドキュメンテーションから情報を抽出
908 一つまたは複数のJSONファイルを生成
910 一つまたは複数の陽性の文または一つまたは複数の陰性の文を生成
912 一組の分類モデルを生成

1002 プロセッサ
1004 メイン・メモリ
1006 静的メモリ
1010 表示装置
1012 英数字入力装置
1014 カーソル制御装置
1016 データ記憶装置
1018 ネットワーク
1020 信号生成装置
1022 ネットワーク・インターフェース装置
1024 コンピュータ可読媒体
1026 命令

Claims (17)

  1. メモリと;通信インターフェースと;前記メモリおよび前記通信インターフェースに動作上結合されたプロセッサとを有するシステムであって、前記プロセッサは:
    分類モデルの集合を生成する段階であって、前記分類モデルは、アプリケーション・プログラミング・インターフェース(API)ドキュメンテーションに関連する一つまたは複数の文を含む、段階と;
    前記通信インターフェースを介して、コンテンツとして一つまたは複数のコンテンツ源にアクセスする段階と;
    前記コンテンツにおける一つまたは複数の文が、前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定する段階と;
    前記コンテンツにおける一つまたは複数の文が前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様である判定することに応答して、前記コンテンツをAPIドキュメンテーションとして収集する段階と
    代表状態転送(REST)APIモデルの集合を生成する段階であって、前記REST APIモデルは、REST APIドキュメンテーションに関連する一つまたは複数のREST APIキーワードを含む、段階と;
    前記コンテンツにおける一つまたは複数のREST APIキーワードが、前記REST APIモデルに含まれる一つまたは複数のREST APIキーワードと同じまたは実質的に同様であるかどうかを判定する段階と;
    前記コンテンツにおける一つまたは複数のREST APIキーワードが同じまたは実質的に同様であると判定するのに応答して、前記コンテンツをREST APIドキュメンテーションとして収集する段階とを含む動作を実行するよう構成されている
    システム。
  2. REST APIモデルの集合を生成する動作が:
    一つまたは複数のサンプル・ドキュメンテーションを受領する段階と;
    前記一つまたは複数のサンプル・ドキュメンテーションをパースする段階であって、前記サンプル・ドキュメンテーションの一つまたは複数はREST APIに関連している、段階と;
    前記サンプル・ドキュメンテーションにおける一つまたは複数のREST APIキーワードの頻度を決定する段階と;
    REST APIモデル・キーワード配列を生成する段階であって、前記REST APIモデル・キーワード配列は、前記サンプル・ドキュメンテーションの各ページがREST APIに関連しているかどうかを示す、段階とを含み、
    前記REST APIモデルは、前記REST APIモデル・キーワード配列に基づいて生成される、
    請求項記載のシステム。
  3. 前記コンテンツをREST APIドキュメンテーションとして収集する動作が:
    前記コンテンツをパースする段階と;
    前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度を決定する段階と;
    前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度に基づいて、REST APIドキュメンテーション・キーワード配列を生成する段階と;
    前記コンテンツに含まれるREST APIキーワードの総数がキーワード閾値を超える、前記コンテンツに含まれるいずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかを判定する段階であって、前記コンテンツは、REST APIキーワードの総数がキーワード閾値を超える、いずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかに基づいて、REST APIドキュメンテーションとして収集される、段階とを含む、
    請求項記載のシステム。
  4. 前記プロセッサが、前記REST APIモデルを、トレーニングされたAPIモデルに従って生成する、請求項記載のシステム。
  5. メモリと;通信インターフェースと;前記メモリおよび前記通信インターフェースに動作上結合されたプロセッサとを有するシステムであって、前記プロセッサは:
    分類モデルの集合を生成する段階であって、前記分類モデルは、アプリケーション・プログラミング・インターフェース(API)ドキュメンテーションに関連する一つまたは複数の文を含む、段階と;
    前記通信インターフェースを介して、コンテンツとして一つまたは複数のコンテンツ源にアクセスする段階と;
    前記コンテンツにおける一つまたは複数の文が、前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定する段階と;
    前記コンテンツにおける一つまたは複数の文が前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であると判定することに応答して、前記コンテンツをAPIドキュメンテーションとして収集する段階とを含む動作を実行するよう構成されており、
    分類モデルの集合を生成する動作が:
    一つまたは複数のサンプルAPIドキュメンテーションを受領する段階と;
    前記一つまたは複数のサンプルAPIドキュメンテーションから、APIドキュメンテーションに関連する一つまたは複数の文を抽出する段階と;
    前記一つまたは複数のサンプルAPIドキュメンテーションから情報を抽出する段階と;
    前記一つまたは複数のサンプルAPIドキュメンテーションからの前記情報に基づいて、一つまたは複数のジャバスクリプト・オブジェクト記法(JSON)ファイルを生成する段階と;
    一つまたは複数の陽性の文または一つまたは複数の陰性の文を生成する段階であって、前記分類モデルは、前記一つまたは複数の陽性の文および前記一つまたは複数の陰性の文の少なくとも一方に基づいて生成される、段階とを含む、
    ステム。
  6. 前記コンテンツが、ウェブ・ベースのAPIドキュメンテーション、装置APIドキュメンテーションおよびオペレーティング・システム・ベースのAPIドキュメンテーションのうちの少なくとも一つを含む、請求項1記載のシステム。
  7. 分類モデルの集合を生成する段階であって、前記分類モデルは、APIドキュメンテーションに関連する一つまたは複数の文を含む、段階と;
    コンテンツとして一つまたは複数のコンテンツ源にアクセスする段階と;
    前記コンテンツにおける一つまたは複数の文が、前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定する段階と;
    前記コンテンツにおける一つまたは複数の文が前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様である判定することに応答して、前記コンテンツをAPIドキュメンテーションとして収集する段階と
    REST APIモデルの集合を生成する段階であって、前記REST APIモデルは、REST APIドキュメンテーションに関連する一つまたは複数のREST APIキーワードを含む、段階と;
    前記コンテンツにおける一つまたは複数のREST APIキーワードが、前記REST APIモデルに含まれる一つまたは複数のREST APIキーワードと同じまたは実質的に同様であるかどうかを判定する段階と;
    前記コンテンツにおける一つまたは複数のREST APIキーワードが同じまたは実質的に同様であると判定するのに応答して、前記コンテンツをREST APIドキュメンテーションとして収集する段階とを含む、
    法。
  8. REST APIモデルの集合を生成する動作が:
    一つまたは複数のサンプル・ドキュメンテーションを受領する段階と;
    前記一つまたは複数のサンプル・ドキュメンテーションをパースする段階であって、前記サンプル・ドキュメンテーションの一つまたは複数はREST APIに関連している、段階と;
    前記サンプル・ドキュメンテーションにおける一つまたは複数のREST APIキーワードの頻度を決定する段階と;
    REST APIモデル・キーワード配列を生成する段階であって、前記REST APIモデル・キーワード配列は、前記サンプル・ドキュメンテーションの各ページがREST APIに関連しているかどうかを示す、段階とを含み、
    前記REST APIモデルは、前記REST APIモデル・キーワード配列に基づいて生成される、
    請求項記載の方法。
  9. 前記コンテンツをREST APIドキュメンテーションとして収集する動作が:
    前記コンテンツをパースする段階と;
    前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度を決定する段階と;
    前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度に基づいて、REST APIドキュメンテーション・キーワード配列を生成する段階と;
    前記コンテンツに含まれるREST APIキーワードの総数がキーワード閾値を超える、前記コンテンツに含まれるいずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかを判定する段階であって、前記コンテンツは、REST APIキーワードの総数がキーワード閾値を超える、いずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかに基づいて、REST APIドキュメンテーションとして収集される、段階とを含む、
    請求項記載の方法。
  10. 前記REST APIモデルが、トレーニングされたAPIモデルに従って生成される、請求項記載の方法。
  11. 分類モデルの集合を生成する段階であって、前記分類モデルは、APIドキュメンテーションに関連する一つまたは複数の文を含む、段階と;
    コンテンツとして一つまたは複数のコンテンツ源にアクセスする段階と;
    前記コンテンツにおける一つまたは複数の文が、前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定する段階と;
    前記コンテンツにおける一つまたは複数の文が前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であると判定することに応答して、前記コンテンツをAPIドキュメンテーションとして収集する段階とを含み、
    分類モデルの集合を生成する動作が:
    一つまたは複数のサンプルAPIドキュメンテーションを受領する段階と;
    前記一つまたは複数のサンプルAPIドキュメンテーションから、APIドキュメンテーションに関連する一つまたは複数の文を抽出する段階と;
    前記一つまたは複数のサンプルAPIドキュメンテーションから情報を抽出する段階と;
    前記一つまたは複数のサンプルAPIドキュメンテーションからの前記情報に基づいて、一つまたは複数のJSONファイルを生成する段階と;
    一つまたは複数の陽性の文または一つまたは複数の陰性の文を生成する段階であって、前記分類モデルは、前記一つまたは複数の陽性の文および前記一つまたは複数の陰性の文の少なくとも一方に基づいて生成される、段階とを含む、
    法。
  12. 動作を実行するためにプロセッサによって実行可能なプログラミング・コードがエンコードされている非一時的なコンピュータ可読媒体であって、前記動作は:
    分類モデルの集合を生成する段階であって、前記分類モデルは、APIドキュメンテーションに関連する一つまたは複数の文を含む、段階と;
    コンテンツとして一つまたは複数のコンテンツ源にアクセスする段階と;
    前記コンテンツにおける一つまたは複数の文が、前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定する段階と;
    前記コンテンツにおける一つまたは複数の文が前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様である判定することに応答して、前記コンテンツをAPIドキュメンテーションとして収集する段階と
    REST APIモデルの集合を生成する段階であって、前記REST APIモデルは、REST APIドキュメンテーションに関連する一つまたは複数のREST APIキーワードを含む、段階と;
    前記コンテンツにおける一つまたは複数のREST APIキーワードが、前記REST APIモデルに含まれる一つまたは複数のREST APIキーワードと同じまたは実質的に同様であるかどうかを判定する段階と;
    前記コンテンツにおける一つまたは複数のREST APIキーワードが同じまたは実質的に同様であると判定するのに応答して、前記コンテンツをREST APIドキュメンテーションとして収集する段階とを含む、
    一時的なコンピュータ可読媒体。
  13. REST APIモデルの集合を生成する動作が:
    一つまたは複数のサンプル・ドキュメンテーションを受領する段階と;
    前記一つまたは複数のサンプル・ドキュメンテーションをパースする段階であって、前記サンプル・ドキュメンテーションの一つまたは複数はREST APIに関連している、段階と;
    前記サンプル・ドキュメンテーションにおける一つまたは複数のREST APIキーワードの頻度を決定する段階と;
    REST APIモデル・キーワード配列を生成する段階であって、前記REST APIモデル・キーワード配列は、前記サンプル・ドキュメンテーションの各ページがREST APIに関連しているかどうかを示す、段階とを含み、
    前記REST APIモデルは、前記REST APIモデル・キーワード配列に基づいて生成される、
    請求項12記載の非一時的なコンピュータ可読媒体。
  14. 前記コンテンツをREST APIドキュメンテーションとして収集する動作が:
    前記コンテンツをパースする段階と;
    前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度を決定する段階と;
    前記コンテンツに含まれるREST APIキーワードの総数およびいずれかのREST APIキーワードの頻度に基づいて、REST APIドキュメンテーション・キーワード配列を生成する段階と;
    前記コンテンツに含まれるREST APIキーワードの総数がキーワード閾値を超える、前記コンテンツに含まれるいずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかを判定する段階であって、前記コンテンツは、REST APIキーワードの総数がキーワード閾値を超える、いずれかのREST APIキーワードの頻度が頻度閾値を超える、の少なくとも一方であるかどうかに基づいて、REST APIドキュメンテーションとして収集される、段階とを含む、
    請求項13記載の非一時的なコンピュータ可読媒体。
  15. 前記REST APIモデルが、トレーニングされたAPIモデルに従って生成される、請求項12記載の非一時的なコンピュータ可読媒体。
  16. 動作を実行するためにプロセッサによって実行可能なプログラミング・コードがエンコードされている非一時的なコンピュータ可読媒体であって、前記動作は:
    分類モデルの集合を生成する段階であって、前記分類モデルは、APIドキュメンテーションに関連する一つまたは複数の文を含む、段階と;
    コンテンツとして一つまたは複数のコンテンツ源にアクセスする段階と;
    前記コンテンツにおける一つまたは複数の文が、前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であるかどうかを判定する段階と;
    前記コンテンツにおける一つまたは複数の文が前記分類モデルに含まれる一つまたは複数の文と同じまたは実質的に同様であると判定することに応答して、前記コンテンツをAPIドキュメンテーションとして収集する段階と;
    分類モデルの集合を生成する動作が:
    一つまたは複数のサンプルAPIドキュメンテーションを受領する段階と;
    前記一つまたは複数のサンプルAPIドキュメンテーションから、APIドキュメンテーションに関連する一つまたは複数の文を抽出する段階と;
    前記一つまたは複数のサンプルAPIドキュメンテーションから情報を抽出する段階と;
    前記一つまたは複数のサンプルAPIドキュメンテーションからの前記情報に基づいて、一つまたは複数のJSONファイルを生成する段階と;
    一つまたは複数の陽性の文または一つまたは複数の陰性の文を生成する段階であって、前記分類モデルは、前記一つまたは複数の陽性の文および前記一つまたは複数の陰性の文の少なくとも一方に基づいて生成される、段階とを含む、
    一時的なコンピュータ可読媒体。
  17. 前記コンテンツが、ウェブ・ベースのAPIドキュメンテーション、装置APIドキュメンテーションまたはオペレーティング・システム・ベースのAPIドキュメンテーションのうちの少なくとも一つを含む、請求項12記載の非一時的なコンピュータ可読媒体。
JP2018152604A 2018-02-02 2018-08-14 Apiドキュメンテーションの収集 Active JP7155739B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/887896 2018-02-02
US15/887,896 US10635435B2 (en) 2018-02-02 2018-02-02 Collection of API documentations

Publications (2)

Publication Number Publication Date
JP2019133621A JP2019133621A (ja) 2019-08-08
JP7155739B2 true JP7155739B2 (ja) 2022-10-19

Family

ID=67476617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018152604A Active JP7155739B2 (ja) 2018-02-02 2018-08-14 Apiドキュメンテーションの収集

Country Status (2)

Country Link
US (1) US10635435B2 (ja)
JP (1) JP7155739B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
WO2018200135A1 (en) * 2017-04-25 2018-11-01 Intento, Inc. Intent-based organisation of apis
US11308132B2 (en) 2017-09-27 2022-04-19 Oracle International Corporation Reference attributes for related stored objects in a multi-tenant cloud service
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
JP7143624B2 (ja) * 2018-05-09 2022-09-29 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
US10579372B1 (en) * 2018-12-08 2020-03-03 Fujitsu Limited Metadata-based API attribute extraction
US11792226B2 (en) * 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US11379748B2 (en) 2020-06-15 2022-07-05 Bank Of America Corporation System for threshold detection using learning reinforcement
WO2022019159A1 (ja) * 2020-07-20 2022-01-27 ソニーグループ株式会社 情報処理装置、情報処理方法、情報検索装置及び情報検索方法
US11900074B2 (en) * 2020-08-20 2024-02-13 Jpmorgan Chase Bank, N.A. Method and apparatus for implementing an end-to-end API design and development module integrating with firmwide tools and processes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346598A (ja) 2004-06-07 2005-12-15 Sangaku Renkei Kiko Kyushu:Kk ウェブ情報収集装置とウェブクローラープログラム、及びウェブ情報収集方法
US20120296929A1 (en) 2011-05-18 2012-11-22 Google Inc. APIS Discovery Service
JP2017142640A (ja) 2016-02-10 2017-08-17 日本電信電話株式会社 類似文書推薦システム、類似文書推薦方法および類似文書推薦プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9621440B2 (en) * 2012-08-31 2017-04-11 Rackspace Us, Inc. System and method for validating documentation of representational state transfer (REST) services
US20160026461A1 (en) * 2013-03-14 2016-01-28 Gamesys Ltd Systems and methods for automatic api documentation
US9582301B2 (en) * 2014-09-17 2017-02-28 International Business Machines Corporation Method of defining javascript objects
US9552237B2 (en) * 2014-11-26 2017-01-24 Sas Institute Inc. API validation system
US10194001B1 (en) * 2015-05-27 2019-01-29 Google Llc Automatic discovery of API information
US9563490B1 (en) * 2015-10-15 2017-02-07 International Business Machines Corporation Adaptive integration flow using automated service discovery
US10586173B2 (en) * 2016-01-27 2020-03-10 Bonsai AI, Inc. Searchable database of trained artificial intelligence objects that can be reused, reconfigured, and recomposed, into one or more subsequent artificial intelligence models
US11663110B2 (en) * 2016-10-31 2023-05-30 International Business Machines Corporation Analysis to check web API code usage and specification
US10942708B2 (en) * 2017-01-10 2021-03-09 International Business Machines Corporation Generating web API specification from online documentation
US10929899B2 (en) * 2017-12-18 2021-02-23 International Business Machines Corporation Dynamic pricing of application programming interface services

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346598A (ja) 2004-06-07 2005-12-15 Sangaku Renkei Kiko Kyushu:Kk ウェブ情報収集装置とウェブクローラープログラム、及びウェブ情報収集方法
US20120296929A1 (en) 2011-05-18 2012-11-22 Google Inc. APIS Discovery Service
JP2017142640A (ja) 2016-02-10 2017-08-17 日本電信電話株式会社 類似文書推薦システム、類似文書推薦方法および類似文書推薦プログラム

Also Published As

Publication number Publication date
US10635435B2 (en) 2020-04-28
JP2019133621A (ja) 2019-08-08
US20190243642A1 (en) 2019-08-08

Similar Documents

Publication Publication Date Title
JP7155739B2 (ja) Apiドキュメンテーションの収集
US10691507B2 (en) API learning
Prieto et al. Twitter: a good place to detect health conditions
Chang et al. TokensRegex: Defining cascaded regular expressions over tokens
US20160196491A1 (en) Method For Recommending Content To Ingest As Corpora Based On Interaction History In Natural Language Question And Answering Systems
CN110991171B (zh) 敏感词检测方法及装置
US20150193535A1 (en) Identifying influencers for topics in social media
US20160247088A1 (en) Confidence weighting of complex relationships in unstructured data
US20180260389A1 (en) Electronic document segmentation and relation discovery between elements for natural language processing
US20180068018A1 (en) Managed document research domains
Piao et al. Sparse structure learning via graph neural networks for inductive document classification
Hsu et al. Integrating machine learning and open data into social Chatbot for filtering information rumor
Miao et al. A dynamic financial knowledge graph based on reinforcement learning and transfer learning
Demirbaga HTwitt: a hadoop-based platform for analysis and visualization of streaming Twitter data
Sindhu et al. Subjectivity detection for sentiment analysis on Twitter data
Gupta et al. Sentiment analysis on hadoop with hadoop streaming
Li et al. Words analysis of online Chinese news headlines about trending events: a complex network perspective
Laclavík et al. Towards large scale semantic annotation built on mapreduce architecture
Kaur et al. Sentiment knowledge discovery in twitter using CoreNLP library
CN113792232B (zh) 页面特征计算方法、装置、电子设备、介质及程序产品
Munot et al. Conceptual framework for abstractive text summarization
JP2024507029A (ja) ウェブページ識別方法、装置、電子機器、媒体およびコンピュータプログラム
Liu et al. Retracted article: a joint model for analyzing topic and sentiment dynamics from large-scale online news
Wijaya et al. Sentiment Analysis Covid-19 Spread Tracing on Google Play Store Application
CN113536773A (zh) 商品评论情感分析方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220513

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220919

R150 Certificate of patent or registration of utility model

Ref document number: 7155739

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150