JP2019016352A - Application program interface mash-up generation - Google Patents

Application program interface mash-up generation Download PDF

Info

Publication number
JP2019016352A
JP2019016352A JP2018120664A JP2018120664A JP2019016352A JP 2019016352 A JP2019016352 A JP 2019016352A JP 2018120664 A JP2018120664 A JP 2018120664A JP 2018120664 A JP2018120664 A JP 2018120664A JP 2019016352 A JP2019016352 A JP 2019016352A
Authority
JP
Japan
Prior art keywords
api
mashup
combination
mashups
keyword
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.)
Pending
Application number
JP2018120664A
Other languages
Japanese (ja)
Inventor
リィウ・レイ
Lei Liu
チェン・ウェイ−ペン
Wei-Peng Chen
シュエ・チンハヌ
Qin Hanu Xue
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
Priority claimed from US15/641,196 external-priority patent/US10191786B2/en
Priority claimed from US15/727,540 external-priority patent/US10430255B2/en
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2019016352A publication Critical patent/JP2019016352A/en
Pending legal-status Critical Current

Links

Images

Abstract

To provide a method for generating an application program interface (API) mash-up.SOLUTION: A method includes: a step of grouping a plurality of API into a plurality of sub-clusters on the basis of at least one keyword as for each of the plurality of API; a step of specifying a plurality of keyword combinations as for the plurality of sub-clusters on the basis of two or more keywords as for the plurality of sub-clusters and real world data; a step of determining a plurality of possible API mash-ups including two or more API among the plurality of API as for the plurality of keyword combinations; and a step of processing the plurality of possible API mash-ups, and generating at least one priority-given API mash-up associated with at least one keyword combination among the plurality of keyword combinations among the plurality of possible API mash-ups.SELECTED DRAWING: Figure 2

Description

本開示に記載の実施形態は、アプリケーションプログラムインタフェース(API)マッシュアップ生成に関する。   Embodiments described in this disclosure relate to application program interface (API) mashup generation.

アプリケーションプログラムインタフェース(API)は、アプリケーションソフトウェアを作成するためのプロトコル、コマンド、定義、及びツールのセットである。APIは、グラフィカルユーザインタフェース(GUI)コンポーネントをプログラムするときに又はサービス若しくは機能を実装するときに、ソフトウェアコンポーネントがどのようにインタラクトすべきであるか及びAPIがどのように使用されるかを指定することができる。APIマッシュアップは、新たなサービス又は付加価値サービスを提供するために、一緒になって機能する複数のAPIである。   An application program interface (API) is a set of protocols, commands, definitions, and tools for creating application software. APIs specify how software components should interact and how APIs are used when programming graphical user interface (GUI) components or implementing services or functions be able to. API mashups are multiple APIs that work together to provide new or value-added services.

本出願において特許請求される主題は、あらゆる欠点を解決する実施形態又は上記のような環境においてのみ動作する実施形態に限定されるものではない。そうではなく、この背景技術の記載は、本開示に記載のいくつかの実施形態が実施され得る1つの例示的な技術領域を示すために提供されているに過ぎない。   The claimed subject matter in this application is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background description is provided merely to illustrate one exemplary technology area in which some embodiments described in the present disclosure may be implemented.

一実施形態の一態様に従うと、方法は、複数のAPIを、前記複数のAPIの各APIについての少なくとも1つのキーワードに基づいて、複数のサブクラスタにグループ化するステップを含み得る。本方法はまた、前記複数のサブクラスタについての2つ以上のキーワードと実世界データとに基づいて、前記複数のサブクラスタについての複数のキーワード組合せを特定するステップを含み得る。さらに、本方法は、前記複数のキーワード組合せについて、前記複数のAPIのうちの2つ以上のAPIを含む複数の可能なAPIマッシュアップを決定するステップを含み得る。本方法はまた、前記複数の可能なAPIマッシュアップを処理して、前記複数の可能なAPIマッシュアップのうち、前記複数のキーワード組合せのうちの少なくとも1つのキーワード組合せに関連付けられた少なくとも1つの優先度付けされたAPIマッシュアップを生成するステップを含み得る。   According to an aspect of an embodiment, a method may include grouping a plurality of APIs into a plurality of sub-clusters based on at least one keyword for each API of the plurality of APIs. The method may also include identifying a plurality of keyword combinations for the plurality of sub-clusters based on two or more keywords for the plurality of sub-clusters and real world data. Further, the method may include determining a plurality of possible API mashups that include two or more APIs of the plurality of APIs for the plurality of keyword combinations. The method also processes the plurality of possible API mashups and, among the plurality of possible API mashups, at least one priority associated with at least one keyword combination of the plurality of keyword combinations. Generating a refined API mashup may be included.

実施形態の目的及び利点が、少なくとも請求項において特に示される要素、特徴、及び組合せにより、実現及び達成される。   The objects and advantages of the embodiments will be realized and attained by at least the elements, features, and combinations particularly pointed out in the claims.

前述の総括的な説明及び以下の詳細な説明の両方ともが、例示的で説明的なものであり、特許請求される発明を限定するものではない。   Both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the claimed invention.

例示的な実施形態が、添付の図面を使用して、より具体的且つ詳細に記載及び説明される。
APIマッシュアップ生成器を含む例示的なシステムのブロック図。 1つ以上のAPIマッシュアップを生成する例示的な方法のフロー図。 例示的なAPIツリー構造を示す図。 別の例示的なAPIツリー構造を示す図。 固有表現抽出ツールを含む例示的なシステムを示す図。 1つ以上のAPIマッシュアップを生成して処理するために使用され得る例示的なフローの図。 エンドポイント、入力記述、出力記述、及びエンドポイント記述を含む例示的なAPIを示す図。 1つ以上のAPIマッシュアップを処理する方法の例示的なフロー図。 1つ以上のAPIマッシュアップを処理する別の方法の例示的なフロー図。 1つ以上のAPIマッシュアップを処理するさらに別の方法の例示的なフロー図。 例示的な学習アルゴリズムを示す図。 例示的な学習アルゴリズムを示す図。 1つ以上のキーワード組合せを生成するための処理ツールを含む例示的なシステムを示す図。 例示的なコンピューティングシステムのブロック図。
Exemplary embodiments will be described and explained with more specificity and detail through the use of the accompanying drawings in which:
1 is a block diagram of an exemplary system that includes an API mashup generator. FIG. 3 is a flow diagram of an example method for generating one or more API mashups. FIG. 3 illustrates an exemplary API tree structure. FIG. 4 illustrates another example API tree structure. FIG. 3 illustrates an example system that includes a named entity extraction tool. FIG. 4 is an example flow diagram that may be used to generate and process one or more API mashups. FIG. 3 illustrates an example API that includes an endpoint, an input description, an output description, and an endpoint description. FIG. 4 is an exemplary flow diagram of a method for processing one or more API mashups. FIG. 4 is an exemplary flow diagram of another method of processing one or more API mashups. FIG. 4 is an exemplary flow diagram of yet another method of processing one or more API mashups. The figure which shows an example learning algorithm. The figure which shows an example learning algorithm. FIG. 3 illustrates an example system that includes a processing tool for generating one or more keyword combinations. 1 is a block diagram of an exemplary computing system.

本出願において開示される様々な実施形態は、アプリケーションプログラムインタフェース(API)マッシュアップ生成に関する。いくつかの実施形態において、APIマッシュアップは、テキストマイニング技術及び/又は自然言語処理技術を介して、実世界データ(real-world data)に基づいて、自動的に特定及び/又は生成され得る。様々な実施形態に従うと、APIマッシュアップは、word embedding(例えば、文字及び/又は文(センテンス)ベースのword embedding)及び/又は固有表現抽出(例えば、固有表現抽出のための異なるデータセットの組合せ)に基づいて、特定及び/又は生成され得る。   Various embodiments disclosed in this application relate to application program interface (API) mashup generation. In some embodiments, API mashups can be automatically identified and / or generated based on real-world data via text mining techniques and / or natural language processing techniques. In accordance with various embodiments, API mashups can include word embedding (eg, character and / or sentence-based word embedding) and / or proper expression extraction (eg, a combination of different data sets for proper expression extraction). ) Based on and / or generated.

さらに、いくつかの実施形態は、さらに、精査された(例えば、優先度付けされた)APIマッシュアップを生成する(例えば、妥当なAPIマッシュアップをフィルタリング、レコメンド、ランク付け、及び/又は特定する)処理に関連し得る。さらに、精査されたAPIマッシュアップは、1以上のアプリケーション開発者に提供され得る。より具体的には、いくつかの実施形態において、特定された(例えば、生成された)APIマッシュアップは、例えば、1つ以上の最も適したAPIマッシュアップが(例えば、高優先度で)レコメンドされ得るように、フィルタリング、テスト、及び/又はランク付けされ得る。いくつかの実施形態は、妥当なAPIマッシュアップのために複数のAPIを使用することができるか否か及び/又はAPIを導入して性能を高めることができる否かの予測を容易にするためのオンライン処理を含み得る。   Further, some embodiments further generate scrutinized (eg, prioritized) API mashups (eg, filter, recommend, rank, and / or identify valid API mashups). ) May be related to processing. Further, the scrutinized API mashup can be provided to one or more application developers. More specifically, in some embodiments, the identified (eg, generated) API mashup is, for example, one or more most suitable API mashups recommended (eg, at high priority). As can be done, it can be filtered, tested and / or ranked. Some embodiments facilitate the prediction of whether multiple APIs can be used for reasonable API mashups and / or whether APIs can be introduced to increase performance. Online processing.

いくつかの実施形態に従うと、APIマッシュアップは、実世界データに基づいてランク付けされ得、したがって、アプリケーション開発者は、特定及び/又は生成されたAPIマッシュアップの実行可能性及び有用性を検証するためにAPIメソッドを検索するよう要求されない場合がある。本出願において開示される実施形態は、いかなる特定のユースケースにも限定されるものではなく、任意の適切なユースケースについてアプリケーションを開発するために使用され得る。   According to some embodiments, API mashups can be ranked based on real world data, so application developers can verify the feasibility and usefulness of identified and / or generated API mashups You may not be required to search for API methods to do this. The embodiments disclosed in this application are not limited to any particular use case and can be used to develop applications for any suitable use case.

従来、莫大な数の利用可能なAPIに起因して、アプリケーションにおいて使用する適切なAPIを特定することは、負担がかかり、多様なウェブサイトのセットにわたる時間のかかる手作業の検索を要することがあった。さらに、情報は、主に、単一のAPIに制限されていた。したがって、複数のAPIを利用することによりアプリケーションを開発するために、開発者は、APIを検索及び選択し、ドキュメントをレビューすることにより各APIを理解し、これらのAPIがAPIマッシュアップとして組み合わせられ得るかどうかを判断するために入力及び出力を検証する必要があった。   Traditionally, due to the vast number of available APIs, identifying the right API to use in an application can be burdensome and require time-consuming manual searches across a diverse set of websites. there were. Furthermore, the information was mainly limited to a single API. Therefore, in order to develop applications by using multiple APIs, developers understand each API by searching and selecting APIs and reviewing the documents, and these APIs can be combined as an API mashup. It was necessary to verify the input and output to determine whether to obtain.

本開示の実施形態が、添付の図面を参照して説明される。   Embodiments of the present disclosure will be described with reference to the accompanying drawings.

図1は、APIデータベース102及びAPIマッシュアップ生成器104を含む例示的なAPIマッシュアップ生成システム100のブロック図である。APIデータベース102は、複数のAPI(例えば、API1〜API1n)を含み得、いくつかの実施形態においては、APIエンドポイント、パラメータ、及びこれらの記述等の様々なAPIデータを含み得る。APIデータベース102は、API及び/又はAPIデータについての任意のコンピュータベースのソースを含み得る。例えば、APIデータベース102は、サーバ、クライアントコンピュータ、リポジトリ等を含み得る。APIデータベース102は、API及びAPIデータを任意の電子フォーマットで記憶することができる。さらに、APIデータは、マシンにより読み取り可能であり得る且つ/又は人間により読み取り可能であり得る。APIデータは、任意の言語であり得る。例えば、APIデータは、任意のターゲットの人間の言語(例えば、英語、日本語、ドイツ語等)であり得る。APIは、任意の構造化データフォーマットであり得る。例えば、APIデータは、Open API仕様、JavaScript(登録商標) Object Notation(JavaScript(登録商標)オブジェクト表記:JSON)、拡張マークアップ言語(XML)等であり得る。   FIG. 1 is a block diagram of an exemplary API mashup generation system 100 that includes an API database 102 and an API mashup generator 104. The API database 102 may include a plurality of APIs (eg, API1-API1n), and in some embodiments may include various API data such as API endpoints, parameters, and descriptions thereof. The API database 102 may include any computer-based source for APIs and / or API data. For example, the API database 102 can include servers, client computers, repositories, and the like. The API database 102 can store API and API data in an arbitrary electronic format. Further, the API data may be readable by a machine and / or human readable. The API data can be in any language. For example, the API data can be in any target human language (eg, English, Japanese, German, etc.). The API can be any structured data format. For example, the API data may be the Open API specification, JavaScript (registered trademark) Object Notation (JavaScript (registered trademark) object notation: JSON), Extensible Markup Language (XML), or the like.

APIデータベース102の各APIは、一次カテゴリキーワード(例えば、医療)、二次カテゴリキーワード(例えば、ヘルスケア、ビジネス、オフィス等)、API記述、及び、APIに関連する他の情報(例えば、エンドポイント、HTTPメソッド、パラメータ、及びこれらの記述)に関連付けられ得る。いくつかの実施形態において、APIカテゴリキーワード(例えば、一次カテゴリキーワード及び二次カテゴリキーワード)及び/又はAPI記述は、リポジトリ(例えば、ProgrammableWeb等のパブリックリポジトリ)により定められ得る。   Each API in the API database 102 includes a primary category keyword (eg, medical), a secondary category keyword (eg, healthcare, business, office, etc.), an API description, and other information related to the API (eg, endpoint) , HTTP methods, parameters, and their descriptions). In some embodiments, API category keywords (eg, primary category keywords and secondary category keywords) and / or API descriptions may be defined by a repository (eg, a public repository such as ProgrammableWeb).

APIマッシュアップ生成器104は、本開示に記載の1つ以上の実施形態に従って、APIデータベース102からAPI及び/又はAPIデータを受信し、1つ以上のAPIマッシュアップを生成するよう構成され得る。さらに、いくつかの実施形態に従うと、APIマッシュアップ生成器104は、1つ以上のAPIマッシュアップを処理して、1つ以上の精査されたAPIマッシュアップを生成することができる。   The API mashup generator 104 may be configured to receive APIs and / or API data from the API database 102 and generate one or more API mashups according to one or more embodiments described in this disclosure. Further, according to some embodiments, the API mashup generator 104 can process one or more API mashups to generate one or more scrutinized API mashups.

図2は、本開示に記載の少なくとも1つの実施形態に従って構成される、1つ以上のAPIマッシュアップを生成する方法200の例示的なフロー図を示している。別個のブロックで図示されているが、様々なブロックは、所望の実装に応じて、追加のブロックに分割されることもあるし、より少ないブロックに組み合わされることもあるし、除去されることもある。   FIG. 2 illustrates an example flow diagram of a method 200 for generating one or more API mashups configured in accordance with at least one embodiment described in this disclosure. Although illustrated in separate blocks, the various blocks may be divided into additional blocks, combined into fewer blocks, or removed depending on the desired implementation. is there.

いくつかの実施形態において、方法200は、図1のシステム100及び/又は図13のシステム1300等の1つ以上のデバイスにより実行され得る。例えば、図13のプロセッサ1310は、メモリ1330に記憶されているコンピュータ命令を実行して、方法200のブロックのうちの1つ以上のブロックにより表される機能及び動作を実行するよう構成され得る。   In some embodiments, method 200 may be performed by one or more devices, such as system 100 of FIG. 1 and / or system 1300 of FIG. For example, the processor 1310 of FIG. 13 may be configured to execute computer instructions stored in the memory 1330 to perform functions and operations represented by one or more of the blocks of the method 200.

方法200は、ブロック202で開始し得る。ブロック202において、複数のAPIがグループ化され得る。いくつかの実施形態において、複数のAPIは、カテゴリ、クラスタ、及び/又はサブクラスタにグループ化され得る。例えば、データベース(例えば、図1のAPIデータベース102)及び/又は様々なソース(例えば、ウェブサイト)から受信され得るこれらのAPIは、少なくとも1つのプロセッサ(例えば、図13のプロセッサ1310)により、APIツリー構造(例えば、カテゴリ、クラスタ、及びサブクラスタ、又はさらなる層/レベル)に従って、グループ化され得る。より具体的には、例えば、APIについてのカテゴリは、APIのカテゴリフィールド及び一次カテゴリフィールドの両方においてあらゆるキーワードの出現回数を決定し、キーワードの出現回数に基づいてキーワードをランク付け及び選択し(例えば、機械分類)、上位のキーワード(例えば、M個のキーワード)を、APIについてのカテゴリとして選択することにより、生成され得る。   The method 200 may begin at block 202. At block 202, multiple APIs may be grouped. In some embodiments, multiple APIs may be grouped into categories, clusters, and / or sub-clusters. For example, these APIs that may be received from a database (eg, API database 102 of FIG. 1) and / or various sources (eg, websites) are sent by at least one processor (eg, processor 1310 of FIG. 13) to the API. Can be grouped according to a tree structure (eg, categories, clusters, and sub-clusters, or additional layers / levels). More specifically, for example, the category for an API determines the number of occurrences of any keyword in both the API category field and the primary category field, and ranks and selects keywords based on the number of keyword occurrences (eg, , Machine classification), top keywords (eg, M keywords) can be generated by selecting as a category for the API.

さらに、各カテゴリにおける、APIについてのクラスタが生成され得る。いくつかの実施形態において、テキストマイニング技術及び/又は自然言語処理(NLP)技術を使用して、二次カテゴリキーワードを解析することができる。例えば、「ストップ」ワード及び/又は一般語(general word)が除去され得、ワードステミング(word stemming)動作が実行され得、キーワードが、出現回数に基づいてカウント及びランク付けされ得、上位のキーワード(例えば、N個のキーワード)が、クラスタとして選択され得る。   In addition, a cluster for the API in each category can be generated. In some embodiments, secondary category keywords can be analyzed using text mining techniques and / or natural language processing (NLP) techniques. For example, “stop” words and / or general words may be removed, word stemming operations may be performed, keywords may be counted and ranked based on the number of occurrences, top keywords (Eg, N keywords) may be selected as a cluster.

さらに、各クラスタにおける、APIについてのサブクラスタが生成され得る。いくつかの実施形態において、テキストマイニングツール及び/若しくはテキストマイニング技術、並びに/又は、NLPツール及び/若しくはNLP技術を使用して、APIの記述が解析され得、選定されたキーワード間の類似度スコアが算出され得、上位のキーワード(例えば、K個のキーワード)が、サブクラスタとして選択され得る。より具体的には、いくつかの実施形態において、APIは、例えば、テキストマイニングツール及び/若しくはテキストマイニング技術、並びに/又は、NLPツール及び/若しくはNLP技術を使用して、APIのカテゴリ及び記述に基づいて、異なるサブクラスタにグループ化され得る。例えば、「ストップ」ワード及び/又は記号が除去され得、キーワードタイプ(例えば、名詞、動詞等)が決定され得、ワードステミング動作が実行され得、キーワードが、出現回数に基づいてカウント及びランク付けされ得、キーワード間の(例えば、NLP技術を用いた)類似度スコアが算出され得、上位のキーワード(例えば、K個のキーワード)が、サブクラスタとして選択され得る。キーワード類似度は、任意の適切な指標(例えば、レーベンシュタイン距離、ユークリッド距離、ハミング距離、Simhash、Minhash、LSH(Locality-sensitive hashing)等)を用いて評価され得る。   In addition, a sub-cluster for the API in each cluster may be generated. In some embodiments, text mining tools and / or text mining techniques and / or NLP tools and / or NLP techniques can be used to analyze API descriptions and similarity scores between selected keywords. Can be calculated and the top keywords (eg, K keywords) can be selected as sub-clusters. More specifically, in some embodiments, APIs are classified into API categories and descriptions using, for example, text mining tools and / or text mining techniques, and / or NLP tools and / or NLP techniques. Based on, it can be grouped into different sub-clusters. For example, “stop” words and / or symbols can be removed, keyword types (eg, nouns, verbs, etc.) can be determined, word stemming operations can be performed, and keywords can be counted and ranked based on the number of occurrences. Similarity scores between keywords (eg, using NLP technology) can be calculated, and top keywords (eg, K keywords) can be selected as sub-clusters. The keyword similarity may be evaluated using any appropriate index (for example, Levenshtein distance, Euclidean distance, Hamming distance, Simhash, Minhash, LSH (Locality-sensitive hashing), etc.).

いくつかの実施形態において、実世界データが(例えば、各カテゴリについての1つ以上の対応するウェブサイトから)取得可能である場合、サブクラスタキーワード組合せが、例えば、固有表現抽出を介して、特定され得、サブクラスタキーワード組合せは、サブクラスタキーワードと、実世界データが各カテゴリについての1つ以上の対応するウェブサイトから取得可能であるときには実世界データと、に基づき得る。   In some embodiments, if real-world data is available (eg, from one or more corresponding websites for each category), sub-cluster keyword combinations are identified, eg, via named entity extraction. Sub-cluster keyword combinations may be based on sub-cluster keywords and real-world data when real-world data is available from one or more corresponding websites for each category.

他の実施形態において、実世界データが取得可能でない場合、サブクラスタキーワード組合せは、サブクラスタキーワードの全ての可能なサブクラスタキーワード組合せを特定すること、及び/又は、閾値(例えば、5回の出現、10回の出現、20回の出現)を超える記述出現回数であるサブクラスタキーワードを有するサブクラスタキーワード組合せを特定すること、により、特定され得る。   In other embodiments, if real-world data is not obtainable, the sub-cluster keyword combination may identify all possible sub-cluster keyword combinations of the sub-cluster keyword and / or threshold (eg, 5 occurrences). By specifying a sub-cluster keyword combination having a sub-cluster keyword that has a description appearance count exceeding 10 occurrences and 20 occurrences).

ブロック204において、複数のサブクラスタキーワードが決定され得、方法200はブロック206に進み得る。より具体的には、例えば、複数のAPIが、少なくとも1つのプロセッサ(例えば、図13のプロセッサ1310)により、複数のAPIの各APIについての少なくとも1つのキーワードに基づいて、複数のサブクラスタにグループ化され得る。方法200は、ブロック204からブロック206に進むとして図示されているが、ブロック206の動作は、ブロック204の動作と独立したものであってもよい。例えば、ブロック204からブロック208に進んでもよい。   At block 204, a plurality of sub-cluster keywords may be determined and method 200 may proceed to block 206. More specifically, for example, a plurality of APIs are grouped into a plurality of subclusters based on at least one keyword for each API of the plurality of APIs by at least one processor (for example, the processor 1310 in FIG. 13). Can be Although the method 200 is illustrated as proceeding from block 204 to block 206, the operation of block 206 may be independent of the operation of block 204. For example, block 204 may proceed to block 208.

図3に示されている例示的なツリー構造300を参照すると、第1レベル(例えば、トップレベル)302は、カテゴリ及び/又は一次カテゴリキーワードを含み得、第2レベル304は、二次カテゴリキーワードを含み得、第3レベル306は、(例えば、API記述を通じて決定された)キーワードを含み得る。第3レベル306は、複数のサブクラスタを含み得、各サブクラスタは、キーワード及び1つ以上の(例えば、複数の)APIを含む。   Referring to the exemplary tree structure 300 shown in FIG. 3, a first level (eg, top level) 302 may include categories and / or primary category keywords, and a second level 304 may include secondary category keywords. The third level 306 may include keywords (eg, determined through an API description). The third level 306 may include multiple subclusters, each subcluster including a keyword and one or more (eg, multiple) APIs.

ツリー構造300は、ヘルスケア領域に関連するが、本開示はそのように限定されるものではない。そうではなく、本開示に記載の実施形態は、科学、金融、ビジネス、教育、電子商取引等といった任意の領域に適用可能である。   Although tree structure 300 is associated with a healthcare area, the present disclosure is not so limited. Instead, the embodiments described in this disclosure are applicable to any area such as science, finance, business, education, electronic commerce, and the like.

図4は、別の例示的なツリー構造400を示している。構造400は、第1レベル(例えば、トップレベル)402、第2レベル404、及び第3レベル406を含み、第1レベル402は、カテゴリ及び/又は一次カテゴリキーワードを含み、第2レベル404は、二次カテゴリキーワードを含み、第3レベル406は、(例えば、API記述を通じて決定された)キーワードを含み得る。第3レベル406は、複数のサブクラスタを含み得、各サブクラスタは、キーワード及び1つ以上の(例えば、複数の)APIを含む。いくつかの実施形態において、API(例えば、認証API)は、APIのキーワード及び記述に基づいて、(例えば、異なる領域における)複数のサブクラスタにグループ化され得る。   FIG. 4 shows another exemplary tree structure 400. The structure 400 includes a first level (eg, top level) 402, a second level 404, and a third level 406, where the first level 402 includes categories and / or primary category keywords, and the second level 404 includes Including secondary category keywords, the third level 406 may include keywords (eg, determined through an API description). The third level 406 may include multiple subclusters, each subcluster including a keyword and one or more (eg, multiple) APIs. In some embodiments, APIs (eg, authentication APIs) may be grouped into multiple sub-clusters (eg, in different areas) based on API keywords and descriptions.

図2における方法200を再度参照すると、ブロック206において、実世界データ(例えば、実世界の質問)が特定され得、方法200はブロック208に進み得る。例えば、実世界の質問を含み得る実世界データが、少なくとも1つのプロセッサ(例えば、図13のプロセッサ1310)により、(例えば、ウェブクローラを介してインターネットから)収集され得る。例えば、ヘルスケア固有の領域に関しては、患者の質問が、専門的なヘルスケア関連ウェブサイト等のウェブサイトから抽出され得る。他の例において、他の領域に関しては、関連する情報が、(例えば、関連するウェブブログを介して)特定され得、ウェブクローラを使用して、関連する情報が抽出され得る。例えば、金融関連領域において、データ(例えば、質問)は、1つ以上の金融投資ブログ(例えば、Vanguard(登録商標)ブログ)から収集され得る。   Referring back to the method 200 in FIG. 2, at block 206, real world data (eg, real world questions) may be identified, and the method 200 may proceed to block 208. For example, real world data that may include real world questions may be collected (eg, from the Internet via a web crawler) by at least one processor (eg, processor 1310 of FIG. 13). For example, for healthcare specific areas, patient questions may be extracted from websites such as specialized healthcare related websites. In other examples, for other areas, relevant information may be identified (eg, via an associated web blog) and relevant information may be extracted using a web crawler. For example, in the financial area, data (eg, questions) may be collected from one or more financial investment blogs (eg, Vanguard® blogs).

ブロック208において、特定されたデータ(例えば、実世界データ)及びサブクラスタキーワードに基づいて、サブクラスタキーワード組合せが決定され得、方法200はブロック210に進み得る。一例として、少なくとも1つのプロセッサ(例えば、図13のプロセッサ1310)が、サブクラスタキーワード組合せを決定するために使用され得る。さらに、例えば、有用なサブクラスタ組合せが、固有表現抽出技術を使用して決定され得る。例えば、図5の例示的なシステム500に示されているように、固有表現抽出ツール502が、(例えば、実世界の質問等の実世界データといった)データ504及びサブクラスタキーワード506を受信し、サブクラスタキーワード組合せのリストを含む出力508を生成し得る。   At block 208, based on the identified data (eg, real world data) and subcluster keywords, subcluster keyword combinations may be determined, and method 200 may proceed to block 210. As an example, at least one processor (eg, processor 1310 of FIG. 13) may be used to determine subcluster keyword combinations. Further, for example, useful sub-cluster combinations can be determined using named entity extraction techniques. For example, as shown in the exemplary system 500 of FIG. 5, a named entity extraction tool 502 receives data 504 (eg, real world data such as real world questions) and subcluster keywords 506, An output 508 may be generated that includes a list of subcluster keyword combinations.

いくつかの実施形態において、キーワード組合せ出現回数を使用して、サブクラスタキーワード組合せの評価を決定することができる。例えば、少なくとも1つのプロセッサ(例えば、図13のプロセッサ1310)が、キーワード組合せ出現回数を決定するために使用され得る。例えば、およそ50000個の臨床的質問が処理され得、およそ10000個のサブクラスタキーワード組合せが、これらの臨床的質問に基づいて生成され得る。いくつかの実施形態において、キーワード組合せ出現回数は、収集された質問が、所与の組合せについての全てのキーワードと合致すると、インクリメントされ得る。   In some embodiments, the number of keyword combination occurrences can be used to determine an evaluation of sub-cluster keyword combinations. For example, at least one processor (eg, processor 1310 of FIG. 13) can be used to determine the number of keyword combination occurrences. For example, approximately 50,000 clinical questions can be processed, and approximately 10,000 subcluster keyword combinations can be generated based on these clinical questions. In some embodiments, the number of keyword combination occurrences can be incremented when the collected questions match all keywords for a given combination.

各サブクラスタにおけるAPI及びサブクラスタキーワード組合せに基づいて、複数のAPIのうちの2つ以上のAPIを含む1つ以上の可能なAPIマッシュアップが、(例えば、少なくとも1つのプロセッサ(例えば、図13のプロセッサ1310)により)決定され得る。   Based on the API and subcluster keyword combination in each subcluster, one or more possible API mashups that include two or more of the plurality of APIs (eg, at least one processor (eg, FIG. 13 Processor 1310)).

ブロック210において、APIマッシュアップが特定され得、方法200はブロック212に進み得る。例えば、APIマッシュアップは、少なくとも1つのプロセッサ(例えば、図13のプロセッサ1310)により特定され得る。より具体的には、所与のサブクラスタキーワード組合せについて、各サブクラスタからAPIを選択することにより、全ての可能なAPIマッシュアップが特定され得る。さらに、特定された可能なAPIマッシュアップの各々についての類似度解析を実行して、APIマッシュアップを特定し、必要に応じてランク付けすることができる。   At block 210, an API mashup may be identified and method 200 may proceed to block 212. For example, an API mashup may be specified by at least one processor (eg, processor 1310 of FIG. 13). More specifically, for a given subcluster keyword combination, all possible API mashups can be identified by selecting an API from each subcluster. In addition, a similarity analysis can be performed for each of the identified possible API mashups to identify the API mashups and rank them as needed.

APIマッシュアップにおける各APIについて、記述は既知であり得る。API記述は、所与のAPIについての短縮されたサマリを含み得、このようなサマリは、APIタイトル及びキーワード、入力/出力パラメータ、API解説、プロトコルフォーマット、エンドポイント記述、入力/出力記述等を含み得るが、これらに限定されるものではない。記述の各部分が、1つ以上のソース(例えば、API関連ウェブサイト)から取得されて結集され得る。さらに、いくつかの実施形態において、各記述についての単語(ワード)ベクトルが生成され得、類似度スコアの平均値が算出され得る。類似度解析は、キーワードに基づいてもよいし、文に基づいてもよいし、これらの両方に基づいてもよい。例えば、類似度解析は、少なくとも1つのプロセッサ(例えば、図13のプロセッサ1310)により実行され得る。   The description may be known for each API in the API mashup. An API description may include a shortened summary for a given API, such a summary including API title and keywords, input / output parameters, API description, protocol format, endpoint description, input / output description, etc. It can include, but is not limited to these. Each part of the description can be obtained and aggregated from one or more sources (eg, API related websites). Further, in some embodiments, a word vector for each description may be generated and an average value of similarity scores may be calculated. The similarity analysis may be based on a keyword, a sentence, or both. For example, the similarity analysis may be performed by at least one processor (eg, processor 1310 of FIG. 13).

より具体的には、いくつかの実施形態において、類似度解析・算出は、APIの記述に基づき得る。より具体的には、APIマッシュアップにおける各APIの記述が、文に分離され得、「ストップ」ワード及び記号が除去され得、ワードステミング動作が実行され得、NLP技術を使用して、各文が単語ベクトルに変換され得る。さらに、例えば、単語ベクトル間のハミング距離又は他の類似度指標が算出され得る。一例として、平均類似度スコアは、(ハミング距離の総和/算出の総回数)に等しいものであり得る。   More specifically, in some embodiments, the similarity analysis / calculation may be based on an API description. More specifically, the description of each API in the API mashup can be separated into sentences, “stop” words and symbols can be removed, word stemming operations can be performed, and each sentence using NLP technology. Can be converted to a word vector. Further, for example, a Hamming distance between word vectors or other similarity measure can be calculated. As an example, the average similarity score may be equal to (total Hamming distance / total number of calculations).

一例として、1つのAPI(「API1」)の記述が2つの文(例えば、API1_s1及びAPI_s2)を含み、別のAPI(「API2」)の記述が3つの文(例えば、API2_s1、API2_s2、及びAP2_s3)を含むと仮定すると、全ての2文間のハミング距離(Ham(API1_sp,API2_sq))が算出され得、類似度スコアは、(Ham(API1_s1,API2_s1)+Ham(API1_s1,API2_s2)+Ham(API1_s1,API2_s3)+Ham(API1_s2,API2_s1)+Ham(API1_s2,API2_s2)+Ham(API1_s2,API2_s3))/6に等しいものであり得る。   As an example, the description of one API (“API1”) includes two statements (eg, API1_s1 and API_s2), and the description of another API (“API2”) includes three statements (eg, API2_s1, API2_s2, and AP2_s3) ), The Hamming distance (Ham (API1_sp, API2_sq)) between all two sentences can be calculated, and the similarity score is (Ham (API1_s1, API2_s1) + Ham (API1_s1, API2_s2) + Ham ( API1_s1, API2_s3) + Ham (API1_s2, API2_s1) + Ham (API1_s2, API2_s2) + Ham (API1_s2, API2_s3)) / 6.

ブロック212において、特定されたAPIマッシュアップが精査され得、方法200はブロック214に進み得る。例えば、APIマッシュアップが、API記述類似度解析に基づいて特定及び/又は生成された後、(例えば、少なくとも1つのプロセッサ(例えば、図13のプロセッサ1310)により、)結果が、フィルタリングされて、特定されたAPIマッシュアップが、精査及び/又はランク付けされ得、APIマッシュアップがレコメンドされ得る。例えば、結果は、特定されたAPIマッシュアップを1つ以上のパブリックリポジトリ(例えば、API Harmony、Github(登録商標)、ProgrammableWeb等)と比較することにより、精査及び/又はランク付けされ得る。   At block 212, the identified API mashup may be reviewed and the method 200 may proceed to block 214. For example, after an API mashup is identified and / or generated based on an API description similarity analysis, the results are filtered (eg, by at least one processor (eg, processor 1310 of FIG. 13)) and Identified API mashups can be reviewed and / or ranked and API mashups can be recommended. For example, results can be reviewed and / or ranked by comparing identified API mashups with one or more public repositories (eg, API Harmony, Github®, ProgrammableWeb, etc.).

より具体的には、例えば、決定されたAPIマッシュアップを所与として、リポジトリが、決定されたAPIマッシュアップを特定しようと試みるために検索され得る。リポジトリが、決定されたAPIマッシュアップのAPIを、関連するとして(例えば、プロジェクトにおいて使用されるとして)特定した場合、そのAPIマッシュアップが(例えば、高優先度で)レコメンドされ得る。例えば、Validic API及びFitbit(登録商標) APIが、いくつかのGithub(登録商標)プロジェクトにおいて使用され、したがって、Validic API及びFitbit(登録商標) APIを含むAPIマッシュアップが、高優先度でレコメンドされ得る。別の例として、入力としての所与のAPIマッシュアップについて、所与のAPIマッシュアップにおけるAPIが関連することを示す、少なくとも1つのリポジトリにおける関連する情報が特定された場合、そのAPIマッシュアップが、(例えば、アプリケーション開発者に)高優先度でレコメンドされ得る。   More specifically, given a determined API mashup, for example, a repository may be searched to attempt to identify the determined API mashup. If the repository identifies the API of the determined API mashup as relevant (eg, as used in the project), that API mashup can be recommended (eg, with high priority). For example, Validic API and Fitbit® API are used in some Github® projects, so API mashups including Validic API and Fitbit® API are recommended with high priority. obtain. As another example, for a given API mashup as input, if relevant information in at least one repository is identified that indicates that the API in the given API mashup is relevant, the API mashup is , (Eg, to application developers) can be recommended with high priority.

ブロック214において、APIマッシュアップが、1以上の第三者(サードパーティ)(例えば、アプリケーション開発者)に公開され得る(例えば、レコメンドされ得る)。例えば、APIマッシュアップが、特定され、必要に応じてランク付けされた後、APIマッシュアップは、少なくとも1の第三者(例えば、アプリケーション開発者)に公開され得る(例えば、レコメンド及び/又は提供され得る)。   At block 214, the API mashup may be published (eg, recommended) to one or more third parties (eg, application developers). For example, after an API mashup has been identified and ranked as needed, the API mashup can be published to at least one third party (eg, an application developer) (eg, recommendations and / or offers) Can be).

本開示の範囲から逸脱することなく、方法200に対して、変更、追加、又は省略が可能である。例えば、方法200の動作は、異なる順序で実行されることがある。さらに、説明されたステップ及び動作は、例として提供されているに過ぎず、これらのステップ及び動作のうちの一部は、開示された実施形態の本質を損なうことなく、任意的であることもあるし、より少ないステップ及び動作に組み合わされることもあるし、追加のステップ及び動作に拡張されることもある。   Changes, additions, or omissions may be made to method 200 without departing from the scope of the present disclosure. For example, the operations of method 200 may be performed in a different order. In addition, the steps and operations described are provided as examples only, and some of these steps and operations may be optional without detracting from the nature of the disclosed embodiments. Or may be combined with fewer steps and actions, and may be extended to additional steps and actions.

1つの企図される例示的な動作において、サブクラスタキーワード組合せは、「<security,administration>」を含み得る。このキーワード組合せは、実世界データの収集及び解析から得られ得る。この例において、「security」サブクラスタは、第1のAPIである「API_1」及び第2のAPIである「API_2」を含む。さらに、「administration」サブクラスタは、第3のAPIである「API_3」及び第4のAPIである「API_4」を含む。この例を続けると、4つの可能なAPIマッシュアップ組合せ(例えば、<API_1,API_3>、<API_1,API_4>、<API_2,API_3>、及び<API_2,API_4>)が特定され得る。さらに、API記述から、可能なAPIマッシュアップの各々についての類似度スコアを算出して(例えば、類似度解析を介して決定して)、APIマッシュアップを特定することができる。いくつかの例に従うと、類似度スコアが高いほど、APIマッシュアップはより妥当である。いくつかの実施形態において、特定されたAPIマッシュアップは、ランク付けされ、必要に応じて1以上の第三者にレコメンドされ得る。   In one contemplated exemplary operation, the sub-cluster keyword combination may include “<security, administration>”. This keyword combination can be obtained from collection and analysis of real world data. In this example, the “security” sub-cluster includes “API_1” that is the first API and “API_2” that is the second API. Further, the “administration” sub-cluster includes “API_3” that is the third API and “API_4” that is the fourth API. Continuing with this example, four possible API mashup combinations (eg, <API_1, API_3>, <API_1, API_4>, <API_2, API_3>, and <API_2, API_4>) may be identified. Furthermore, from the API description, a similarity score for each possible API mashup can be calculated (eg, determined via similarity analysis) to identify the API mashup. According to some examples, the higher the similarity score, the more reasonable the API mashup. In some embodiments, identified API mashups can be ranked and recommended to one or more third parties as needed.

図6は、本開示に記載の少なくとも1つの実施形態に従って構成される、1つ以上のAPIマッシュアップを生成して処理するために使用され得る例示的なフロー600の図である。フロー600は、任意の適切なシステム、装置、又はデバイスにより実行され得る。例えば、システム100(図1)、システム1300(図13)、又はこれらのコンポーネントのうちの1つ以上のコンポーネントが、フロー200に関連付けられている動作のうちの1つ以上の動作を実行できる。これらの実施形態及び他の実施形態において、コンピュータ読み取り可能な媒体に記憶されているプログラム命令が、フロー200の動作のうちの1つ以上の動作を実行するために実行され得る。   FIG. 6 is a diagram of an example flow 600 that may be used to generate and process one or more API mashups configured in accordance with at least one embodiment described in this disclosure. Flow 600 may be performed by any suitable system, apparatus, or device. For example, system 100 (FIG. 1), system 1300 (FIG. 13), or one or more of these components can perform one or more of the operations associated with flow 200. In these and other embodiments, program instructions stored on a computer readable medium may be executed to perform one or more of the operations of flow 200.

いくつかの実施形態において、フロー600における1つ以上のブロック及び/又はコンポーネントにおける1つ以上の動作は、オンライン処理を介して実行され得る。さらに、フロー600における1つ以上のブロック及び/又はコンポーネントにおける1つ以上の動作は、オフライン処理を介して実行され得る。例えば、少なくとも1つの実施形態において、ブロック602、604、及び606、並びにモデル608における動作は、オフライン処理を介して実行され得、モデル610、並びにブロック612及び614における動作は、オンライン処理を介して実行され得る。   In some embodiments, one or more operations in one or more blocks and / or components in flow 600 may be performed via online processing. Further, one or more operations on one or more blocks and / or components in flow 600 may be performed via offline processing. For example, in at least one embodiment, the operations in blocks 602, 604, and 606 and model 608 may be performed via offline processing, and the operations in model 610 and blocks 612 and 614 are performed via online processing. Can be executed.

ブロック604において、APIマッシュアップデータベース602からの1つ以上の生成されたAPIマッシュアップが処理されて、APIマッシュアップデータベース606の1つ以上の精査された(例えば、優先度付けされた)APIマッシュアップが生成され得る。様々な実施形態に従うと、APIマッシュアップデータベース602は、本出願において開示される1つ以上の実施形態を介して生成された1つ以上のAPIマッシュアップを含み得る。より具体的には、APIマッシュアップデータベース602のAPIマッシュアップは、方法200(図2参照)の1つ以上の動作を介して、且つ/又は、APIマッシュアップ生成器(図1参照)を介して、生成され得る。いくつかの実施形態において、APIマッシュアップデータベース602は、例に過ぎないが、医療、ヘルスケア、ビジネス、オフィス、科学、電子商取引等といった異なる領域について生成されたAPIマッシュアップ(例えば、領域固有のAPIマッシュアップ)を含み得る。   At block 604, one or more generated API mashups from the API mashup database 602 are processed to produce one or more scrutinized (eg, prioritized) API mashes in the API mashup database 606. Up can be generated. According to various embodiments, the API mashup database 602 can include one or more API mashups generated via one or more embodiments disclosed in the present application. More specifically, API mashups in API mashup database 602 may be made via one or more operations of method 200 (see FIG. 2) and / or via an API mashup generator (see FIG. 1). Can be generated. In some embodiments, the API mashup database 602 is by way of example only and API mashups generated for different domains such as medical, healthcare, business, office, science, e-commerce, etc. (eg, domain specific API mashup).

例えば、APIマッシュアップデータベース602の1つ以上のAPIマッシュアップを、本開示においてより詳細に説明されるように、例えば、入力/出力照合、APIテスト、及び/又は、データフォーマット/単位互換性検証を介して、フィルタリング、ランク付け、優先度付け、及び/又はテストして、APIマッシュアップデータベース606の1つ以上の精査されたAPIマッシュアップを生成することができる。様々な実施形態に従うと、APIマッシュアップデータベース606は、各サブクラスタキーワード組合せについての精査されたAPIマッシュアップに加えて、サブクラスタキーワード組合せをさらに含み得る。   For example, one or more API mashups in the API mashup database 602 may be processed, for example, input / output verification, API testing, and / or data format / unit compatibility verification, as described in more detail in this disclosure. Filtering, ranking, prioritization, and / or testing to generate one or more scrutinized API mashups in the API mashup database 606. According to various embodiments, API mashup database 606 may further include subcluster keyword combinations in addition to the scrutinized API mashup for each subcluster keyword combination.

様々な実施形態に従うと、(例えば、ブロック604における)処理動作は、APIマッシュアップをフィルタリング及び/又はランク付けするために、単独で又は組合せで実行され得る。例えば、そのような処理動作は、順次に又は並列に実行され得る。いくつかの実施形態において、1つ以上の動作(例えば、フィルタリング、テスト等)を成功裡に通過したAPIマッシュアップは、高優先度のAPIマッシュアップ及び/又は妥当なAPIマッシュアップとして優先度付けされ得、少なくともいくつかの実施形態において、各動作(例えば、フィルタリング、テスト等)に対して割り当てられた重みに基づいてランク付けされ得る。いくつかの実施形態において、APIマッシュアップは、低優先度のAPIマッシュアップ及び/又は妥当でないAPIマッシュアップとして優先度付けされ得る。さらに、いくつかの実施形態において、類似度スコアが、(例えば、APIマッシュアップ間の同列に対処するために)考慮され得る。   According to various embodiments, processing operations (eg, at block 604) may be performed alone or in combination to filter and / or rank API mashups. For example, such processing operations can be performed sequentially or in parallel. In some embodiments, API mashups that successfully pass one or more operations (eg, filtering, testing, etc.) are prioritized as high priority API mashups and / or valid API mashups. In at least some embodiments, it may be ranked based on the weight assigned to each action (eg, filtering, testing, etc.). In some embodiments, API mashups may be prioritized as low priority API mashups and / or invalid API mashups. Further, in some embodiments, similarity scores can be considered (eg, to deal with collateral between API mashups).

図7は、エンドポイント702、出力記述704、入力記述706、及びエンドポイント記述708を含む、JSONフォーマットの例示的なAPI700を示している。記述を解析するために、いくつかの実施形態に従うと、異なるエンドポイントについての入力記述及び/又は出力記述が、各APIについて一緒に集められ得る。この例において、集められた記述は、APIレベルの入力記述及び/又は出力記述とみなされ得る。記述を解析するために、他の実施形態に従うと、各APIエンドポイントについての入力記述及び/又は出力記述が、別々に考慮され得る。この例において、記述は、APIエンドポイントレベルの入力記述及び/又は出力記述を含み得る。   FIG. 7 shows an exemplary API 700 in JSON format that includes an endpoint 702, an output description 704, an input description 706, and an endpoint description 708. To parse the description, according to some embodiments, input descriptions and / or output descriptions for different endpoints may be gathered together for each API. In this example, the collected descriptions may be considered API level input descriptions and / or output descriptions. In order to parse the description, according to other embodiments, the input description and / or output description for each API endpoint may be considered separately. In this example, the description may include an API endpoint level input description and / or an output description.

例えば、入力/出力照合に関して、生成されたAPIマッシュアップ(例えば、API_1、API_2)について、APIマッシュアップの入力/出力記述が特定及び/又は検証され得、類似度スコアが算出され得る。例えば、APIマッシュアップについて、類似度スコアが、API_1の入力とAPI_2の出力との間又はAPI_1の出力とAPI_2の入力との間のいずれかで、比較的に高い場合、このAPIマッシュアップは、高優先度のAPIマッシュアップとして指定され得る、且つ/又は、(例えば、開発者に)レコメンドされ得る。   For example, for input / output matching, for generated API mashups (eg, API_1, API_2), API mashup input / output descriptions can be identified and / or verified, and similarity scores can be calculated. For example, for an API mashup, if the similarity score is relatively high, either between API_1 input and API_2 output or between API_1 output and API_2 input, this API mashup is It can be designated as a high priority API mashup and / or can be recommended (eg, to a developer).

いくつかの実施形態に従うと、2つの異なるAPI(例えば、API1及びAPI2)の間の類似度スコアが算出され得る。一例として、API1(入力記述)−API2(出力記述)が、類似度スコアを算出するために使用され得る。別の例として、API1(出力記述)−API2(入力記述)が、類似度スコアを算出するために使用され得る。いくつかの実施形態において、APIの入力記述又は出力記述が、「ヌル(null)」である場合(例えば、所与のAPIについての記述が、APIデータベースブロック102に含まれていない場合)、この記述は、算出に関与し得ない。   According to some embodiments, a similarity score between two different APIs (eg, API1 and API2) can be calculated. As an example, API1 (input description) -API2 (output description) can be used to calculate a similarity score. As another example, API1 (output description) -API2 (input description) can be used to calculate a similarity score. In some embodiments, if the input description or output description of an API is “null” (eg, if the description for a given API is not included in the API database block 102), this The description cannot be involved in the calculation.

さらに、いくつかの実施形態において、類似度解析・算出は、APIの記述に基づき得る。より具体的には、APIマッシュアップにおける各APIの記述が、文に分離され得、「ストップ」ワード及び/又は記号が除去され得、ワードステミング動作が実行され得、NLP技術を使用して、各文が単語ベクトルに変換され得る。さらに、例えば、単語ベクトル間のハミング距離又は他の類似度指標が算出され得る。一例として、平均類似度スコアは、(ハミング距離の総和/算出の総回数)に等しいものであり得る。   Furthermore, in some embodiments, the similarity analysis / calculation may be based on a description of the API. More specifically, the description of each API in the API mashup can be separated into sentences, “stop” words and / or symbols can be removed, word stemming operations can be performed, using NLP techniques, Each sentence can be converted to a word vector. Further, for example, a Hamming distance between word vectors or other similarity measure can be calculated. As an example, the average similarity score may be equal to (total Hamming distance / total number of calculations).

一例として、1つのAPI(「API1」)の記述が2つの文(例えば、API1_s1及びAPI_s2)を含み、別のAPI(「API2」)の記述が3つの文(例えば、API2_s1、API2_s2、及びAP2_s3)を含むと仮定すると、全ての2文間のハミング距離(Ham(API1_sp,API2_sq))が算出され得、類似度スコアは、(Ham(API1_s1,API2_s1)+Ham(API1_s1,API2_s2)+Ham(API1_s1,API2_s3)+Ham(API1_s2,API2_s1)+Ham(API1_s2,API2_s2)+Ham(API1_s2,API2_s3))/6に等しいものであり得る。   As an example, the description of one API (“API1”) includes two statements (eg, API1_s1 and API_s2), and the description of another API (“API2”) includes three statements (eg, API2_s1, API2_s2, and AP2_s3) ), The Hamming distance (Ham (API1_sp, API2_sq)) between all two sentences can be calculated, and the similarity score is (Ham (API1_s1, API2_s1) + Ham (API1_s1, API2_s2) + Ham ( API1_s1, API2_s3) + Ham (API1_s2, API2_s1) + Ham (API1_s2, API2_s2) + Ham (API1_s2, API2_s3)) / 6.

いくつかの実施形態において、類似度スコアは、2つの異なるAPI/エンドポイント(例えば、API1/endpoint_x及びAPI2/endpoint_y)の間で算出され得る。一例において、API1/endpoint_x(入力記述)−API2/endpoint_y(出力記述)が、類似度スコアを算出するために使用され得る。別の例において、API1/endpoint_x(出力記述)−API2/endpoint_y(入力記述)が、類似度スコアを算出するために使用され得る。いくつかの実施形態において、API/エンドポイントの入力記述又は出力記述が、「ヌル」である場合(例えば、所与のAPIのエンドポイントについての記述が、APIデータベースブロック102に含まれていない場合)、この記述は、算出に関与し得ない。   In some embodiments, a similarity score can be calculated between two different API / endpoints (eg, API1 / endpoint_x and API2 / endpoint_y). In one example, API1 / endpoint_x (input description) -API2 / endpoint_y (output description) may be used to calculate a similarity score. In another example, API1 / endpoint_x (output description) -API2 / endpoint_y (input description) may be used to calculate a similarity score. In some embodiments, if the API / endpoint input description or output description is “null” (eg, the API database block 102 does not include a description for the endpoint of a given API). ), This description cannot be involved in the calculation.

図8は、本開示に記載の少なくとも1つの実施形態に従って構成される、1つ以上のAPIマッシュアップを処理する(例えば、フィルタリング、ランク付け、及び/又は優先度付けする)方法800の例示的なフロー図を示している。別個のブロックで図示されているが、様々なブロックは、所望の実装に応じて、追加のブロックに分割されることもあるし、より少ないブロックに組み合わされることもあるし、除去されることもある。例えば、方法800は、図6のブロック604において実行され得る。   FIG. 8 is an illustration of a method 800 for processing (eg, filtering, ranking, and / or prioritizing) one or more API mashups configured in accordance with at least one embodiment described in this disclosure. A simple flow diagram is shown. Although illustrated in separate blocks, the various blocks may be divided into additional blocks, combined into fewer blocks, or removed depending on the desired implementation. is there. For example, the method 800 may be performed at block 604 of FIG.

いくつかの実施形態において、方法800は、図1のシステム100及び/又は図13のシステム1300等の1つ以上のデバイス及び/又はシステムにより実行され得る。例えば、図13のプロセッサ1310が、メモリ1330に記憶されているコンピュータ命令を実行して、方法800のブロックのうちの1つ以上のブロックにより表される機能及び動作を実行するよう構成され得る。   In some embodiments, the method 800 may be performed by one or more devices and / or systems, such as the system 100 of FIG. 1 and / or the system 1300 of FIG. For example, the processor 1310 of FIG. 13 may be configured to execute computer instructions stored in the memory 1330 to perform functions and operations represented by one or more of the blocks of the method 800.

ブロック802において、APIマッシュアップのAPI組合せについての入力記述及び/又は出力記述が解析され得、方法800はブロック804に進み得る。より具体的には、例えば、APIマッシュアップのAPI組合せ(例えば、API_1、API_2)について、API_1及びAPI_2の入力記述及び出力記述が解析され得る。例えば、図13のプロセッサ1310が、APIマッシュアップのAPI組合せについての入力記述及び/又は出力記述を解析し得る。   At block 802, the input description and / or output description for the API combination of the API mashup may be parsed and the method 800 may proceed to block 804. More specifically, for example, for API combinations (for example, API_1, API_2) of API mashup, the input description and output description of API_1 and API_2 can be analyzed. For example, the processor 1310 of FIG. 13 may parse the input description and / or output description for the API mashup API combination.

ブロック804において、APIマッシュアップの第1のAPIの出力記述とAPIマッシュアップの第2のAPIの入力記述との間の類似度スコアが決定され得、方法800はブロック806に進み得る。より具体的には、例えば、API_1の出力記述とAPI_2の入力記述との間の類似度スコアが決定され得る。例えば、図13のプロセッサ1310が、APIマッシュアップの第1のAPIの出力記述とAPIマッシュアップの第2のAPIの入力記述との間の類似度スコアを決定し得る。   At block 804, a similarity score between the output description of the first API of the API mashup and the input description of the second API of the API mashup may be determined, and the method 800 may proceed to block 806. More specifically, for example, the similarity score between the output description of API_1 and the input description of API_2 can be determined. For example, the processor 1310 of FIG. 13 may determine a similarity score between the output description of the first API of the API mashup and the input description of the second API of the API mashup.

ブロック806において、決定された類似度スコアが閾値よりも大きいかどうかが判定され得る。例えば、図13のプロセッサ1310が、決定された類似度スコアを閾値と比較して、決定された類似度スコアが閾値よりも大きいかどうかを判定し得る。決定された類似度スコアが閾値よりも大きい場合、方法800はブロック808に進み得る。決定された類似度スコアが閾値以下である場合、方法800はブロック810に進み得る。   At block 806, it can be determined whether the determined similarity score is greater than a threshold. For example, the processor 1310 of FIG. 13 may compare the determined similarity score with a threshold value to determine whether the determined similarity score is greater than the threshold value. If the determined similarity score is greater than the threshold, method 800 may proceed to block 808. If the determined similarity score is less than or equal to the threshold, the method 800 may proceed to block 810.

ブロック808において、APIマッシュアップが、高優先度のマッシュアップとして指定され得る。例えば、APIマッシュアップは、図13のプロセッサ1310により、高優先度のマッシュアップとして指定され得る(例えば、優先度付けされ得る)。   At block 808, the API mashup may be designated as a high priority mashup. For example, an API mashup may be designated (eg, prioritized) by the processor 1310 of FIG. 13 as a high priority mashup.

ブロック810において、APIマッシュアップの可能なAPI組合せの各々が評価されたかどうかが判定され得る。例えば、API_1及びAPI_2を含むAPIマッシュアップについて、API_1->API_2及びAPI_2->API_1の両方が評価されたかどうかが判定され得る。より具体的には、API_1の出力記述とAPI_2の入力記述との間の類似度スコアが評価されたかどうか、及び、API_2の出力記述とAPI_1の入力記述との間の類似度スコアが評価されたかどうか、が判定され得る。APIマッシュアップの可能なAPI組合せの各々が評価された場合、方法800はブロック812に進み得、ブロック812において、APIマッシュアップが、低優先度のマッシュアップとして指定され得る(例えば、優先度付けされ得る)。例えば、APIマッシュアップの可能なAPI組合せの各々が評価されたかどうかを判定することは、図13のプロセッサ1310により実行され得る。APIマッシュアップの可能なAPI組合せの各々が評価されていない場合、方法800はブロック802に戻り得、ブロック802において、別のAPI組合せが特定され得る。   At block 810, it may be determined whether each possible API combination for API mashup has been evaluated. For example, for an API mashup that includes API_1 and API_2, it may be determined whether both API_1-> API_2 and API_2-> API_1 have been evaluated. More specifically, whether the similarity score between the output description of API_1 and the input description of API_2 was evaluated, and whether the similarity score between the output description of API_2 and the input description of API_1 was evaluated. Can be determined. If each possible API combination for an API mashup is evaluated, the method 800 may proceed to block 812, where the API mashup may be designated as a low priority mashup (eg, prioritization). Can be). For example, determining whether each possible API combination for an API mashup has been evaluated can be performed by the processor 1310 of FIG. If each of the possible API combinations for the API mashup has not been evaluated, the method 800 may return to block 802, where another API combination may be identified.

本開示の範囲から逸脱することなく、方法800に対して、変更、追加、又は省略が可能である。例えば、方法800の動作は、異なる順序で実行されることがある。さらに、説明されたステップ及び動作は、例として提供されているに過ぎず、これらのステップ及び動作のうちの一部は、開示された実施形態の本質を損なうことなく、任意的であることもあるし、より少ないステップ及び動作に組み合わされることもあるし、追加のステップ及び動作に拡張されることもある。   Changes, additions, or omissions may be made to method 800 without departing from the scope of the present disclosure. For example, the operations of method 800 may be performed in a different order. In addition, the steps and operations described are provided as examples only, and some of these steps and operations may be optional without detracting from the nature of the disclosed embodiments. Or may be combined with fewer steps and actions, and may be extended to additional steps and actions.

図9は、本開示に記載の少なくとも1つの実施形態に従って構成される、1つ以上のAPIマッシュアップを処理する(例えば、フィルタリング、ランク付け、及び/又は優先度付けする)別の方法900の例示的なフロー図を示している。別個のブロックで図示されているが、様々なブロックは、所望の実装に応じて、追加のブロックに分割されることもあるし、より少ないブロックに組み合わされることもあるし、除去されることもある。例えば、方法900は、図6のブロック604において実行され得る。   FIG. 9 is an illustration of another method 900 for processing (eg, filtering, ranking, and / or prioritizing) one or more API mashups configured in accordance with at least one embodiment described in this disclosure. An exemplary flow diagram is shown. Although illustrated in separate blocks, the various blocks may be divided into additional blocks, combined into fewer blocks, or removed depending on the desired implementation. is there. For example, the method 900 may be performed at block 604 of FIG.

いくつかの実施形態において、方法900は、図1のシステム100及び/又は図13のシステム1300等の1つ以上のデバイス及び/又はシステムにより実行され得る。例えば、図13のプロセッサ1310が、メモリ1330に記憶されているコンピュータ命令を実行して、方法900のブロックのうちの1つ以上のブロックにより表される機能及び動作を実行するよう構成され得る。   In some embodiments, method 900 may be performed by one or more devices and / or systems, such as system 100 of FIG. 1 and / or system 1300 of FIG. For example, the processor 1310 of FIG. 13 may be configured to execute computer instructions stored in the memory 1330 to perform functions and operations represented by one or more of the blocks of the method 900.

APIテストに関して、(例えば、図6のデータベース602の)所与のAPIマッシュアップについて、自動APIテストを用いて、APIマッシュアップを優先度付けすることができる、且つ/又は、APIマッシュアップが妥当であるか否かを検証することができる。APIマッシュアップが自動APIテストをパスした場合、APIマッシュアップは、高優先度のマッシュアップとして指定され得る、且つ/又は、アプリケーション開発者にレコメンドされ得る。APIマッシュアップが自動APIテストをパスしなかった場合、APIマッシュアップは、低優先度のマッシュアップとして指定され得る。   With respect to API testing, for a given API mashup (eg, in database 602 of FIG. 6), automatic API testing can be used to prioritize API mashups and / or API mashups are valid It can be verified whether or not. If the API mashup passes automatic API testing, the API mashup can be designated as a high priority mashup and / or recommended to the application developer. If the API mashup does not pass the automatic API test, the API mashup can be designated as a low priority mashup.

ブロック902において、APIマッシュアップのAPI組合せについての入力及び/又は出力が解析され得、方法900はブロック904に進み得る。より具体的には、例えば、APIマッシュアップのAPI組合せ(例えば、API_1、API_2)について、各APIの入力及び出力(例えば、タイプ、記述等)が解析され得る。一例として、天候APIに関して、入力は、市(city)の名前又はジップコード(郵便番号)を含み得、出力は、気温を含み得る。例えば、APIマッシュアップのAPI組合せについての入力及び/又は出力は、図13のプロセッサ1310により解析され得る。   At block 902, inputs and / or outputs for API combinations of the API mashup may be analyzed and the method 900 may proceed to block 904. More specifically, for example, for API combinations (for example, API_1, API_2) of API mashup, the input and output (for example, type, description, etc.) of each API can be analyzed. As an example, for a weather API, the input may include a city name or zip code (zip code) and the output may include temperature. For example, the inputs and / or outputs for the API mashup API combinations may be analyzed by the processor 1310 of FIG.

ブロック904において、API組合せについての入力が生成され得、方法900はブロック906に進み得る。より具体的には、例えば、API組合せの意味タイプ及び/又は入力タイプに基づいて、テストに用いられ得る、APIについての入力が生成され得る。一例として、天候APIに関して、市の名前(例えば、Sunnyvale)又はジップコード(例えば、94085)が、知識ベースから自動的に生成され得る。例えば、APIについての入力は、図13のプロセッサ1310により生成され得る。   At block 904, input for the API combination may be generated and the method 900 may proceed to block 906. More specifically, an input for an API may be generated that may be used for testing based on, for example, the semantic type and / or input type of the API combination. As an example, for a weather API, a city name (eg, Sunnyvale) or a zip code (eg, 94085) can be automatically generated from the knowledge base. For example, the input for the API may be generated by the processor 1310 of FIG.

ブロック906において、API組合せが妥当な出力を生成し得るかどうかが判定され得る。例えば、API組合せが妥当な出力を生成し得るかどうかの判定は、図13のプロセッサ1310により実行され得る。API組合せが妥当な(例えば、正しい)出力を生成し得ると判定された場合、方法900はブロック908に進み得、ブロック908において、APIマッシュアップが、高優先度のマッシュアップとして指定され得る(例えば、優先度付けされ得る)。API組合せが妥当な出力を生成し得ないと判定された場合、方法900はブロック910に進み得る。   At block 906, it can be determined whether the API combination can produce a valid output. For example, a determination of whether an API combination can produce a valid output can be performed by the processor 1310 of FIG. If it is determined that the API combination can produce a valid (eg, correct) output, the method 900 may proceed to block 908 where the API mashup may be designated as a high priority mashup ( For example, it can be prioritized). If it is determined that the API combination cannot produce a valid output, the method 900 may proceed to block 910.

ブロック910において、APIマッシュアップの可能なAPI組合せの各々が評価されたかどうかが判定され得る。例えば、API_1及びAPI_2を含むAPIマッシュアップについて、API_1->API_2及びAPI_2->API_1の両方が評価されたかどうかが判定され得る。APIマッシュアップの可能なAPI組合せの各々が評価された場合、方法900はブロック912に進み得、ブロック912において、APIマッシュアップが、低優先度のマッシュアップとして指定され得る(例えば、優先度付けされ得る)。例えば、APIマッシュアップの可能なAPI組合せの各々が評価されたかどうかの判定は、図13のプロセッサ1310により実行され得る。APIマッシュアップの可能なAPI組合せの各々が評価されていない場合、方法900はブロック902に戻り得、ブロック902において、別のAPI組合せが特定され得る。   At block 910, it may be determined whether each possible API combination for API mashup has been evaluated. For example, for an API mashup that includes API_1 and API_2, it may be determined whether both API_1-> API_2 and API_2-> API_1 have been evaluated. If each possible API combination for an API mashup has been evaluated, the method 900 can proceed to block 912 where the API mashup can be designated as a low priority mashup (eg, prioritization). Can be). For example, the determination of whether each possible API combination for API mashup has been evaluated can be performed by the processor 1310 of FIG. If each of the possible API combinations for the API mashup has not been evaluated, the method 900 can return to block 902, where another API combination can be identified.

本開示の範囲から逸脱することなく、方法900に対して、変更、追加、又は省略が可能である。例えば、方法900の動作は、異なる順序で実行されることがある。さらに、説明されたステップ及び動作は、例として提供されているに過ぎず、これらのステップ及び動作のうちの一部は、開示された実施形態の本質を損なうことなく、任意的であることもあるし、より少ないステップ及び動作に組み合わされることもあるし、追加のステップ及び動作に拡張されることもある。   Changes, additions, or omissions may be made to method 900 without departing from the scope of the present disclosure. For example, the operations of method 900 may be performed in a different order. In addition, the steps and operations described are provided as examples only, and some of these steps and operations may be optional without detracting from the nature of the disclosed embodiments. Or may be combined with fewer steps and actions, and may be extended to additional steps and actions.

図10は、本開示に記載の少なくとも1つの実施形態に従って構成される、1つ以上のAPIマッシュアップを処理する(例えば、フィルタリング、ランク付け、及び/又は精査する)さらに別の方法1000の例示的なフロー図を示している。別個のブロックで図示されているが、様々なブロックは、所望の実装に応じて、追加のブロックに分割されることもあるし、より少ないブロックに組み合わされることもあるし、除去されることもある。例えば、方法1000は、図6のブロック604において実行され得る。   FIG. 10 is an illustration of yet another method 1000 for processing (eg, filtering, ranking, and / or reviewing) one or more API mashups configured in accordance with at least one embodiment described in this disclosure. Shows a typical flow diagram. Although illustrated in separate blocks, the various blocks may be divided into additional blocks, combined into fewer blocks, or removed depending on the desired implementation. is there. For example, the method 1000 may be performed at block 604 of FIG.

いくつかの実施形態において、方法1000は、図1のシステム100及び/又は図13のシステム1300等の1つ以上のデバイス及び/又はシステムにより実行され得る。例えば、図13のプロセッサ1310が、メモリ1330に記憶されているコンピュータ命令を実行して、方法1000のブロックのうちの1つ以上のブロックにより表される機能及び動作を実行するよう構成され得る。   In some embodiments, method 1000 may be performed by one or more devices and / or systems, such as system 100 of FIG. 1 and / or system 1300 of FIG. For example, the processor 1310 of FIG. 13 may be configured to execute computer instructions stored in the memory 1330 to perform functions and operations represented by one or more of the blocks of the method 1000.

(例えば、図6のデータベース602の)所与のAPIマッシュアップについて、入力/出力データフォーマットを解析して、APIマッシュアップが妥当であるか否かを検証することができる。APIマッシュアップが、合致する入力/出力データフォーマットを有する場合、又は、知識グラフにおいて、入力パラメータと出力パラメータとの間に、リンク(例えば、(例えば、XMLフォーマットからJSONフォーマットに変換する)データフォーマット変換又は(例えば、摂氏から華氏へと温度の単位を変換する)データ単位変換を含む関係を示す)が存在する場合、APIマッシュアップは、高優先度のマッシュアップとして指定され得る(例えば、優先度付けされ得る)、且つ/又は、アプリケーション開発者にレコメンドされ得る。   For a given API mashup (eg, in database 602 of FIG. 6), the input / output data format can be analyzed to verify whether the API mashup is valid. If the API mashup has a matching input / output data format, or in the knowledge graph, link between input parameters and output parameters (eg, data format (eg, convert from XML format to JSON format) An API mashup can be designated as a high priority mashup (eg, priority) if there is a conversion or a relationship involving a data unit conversion (eg, converting a unit of temperature from Celsius to Fahrenheit). And / or recommended to application developers.

いくつかの実施形態において、複数の出力パラメータ及び入力パラメータが存在し得る。いくつかの実施形態に従うと、1つのAPIの出力データフォーマット/単位と別のAPIの入力データフォーマット/単位との間に合致がある限り、APIマッシュアップは、互換性のあるデータフォーマットを有し得、APIマッシュアップは、高優先度のマッシュアップとして指定され得る(例えば、優先度付けされ得る)、且つ/又は、アプリケーション開発者にレコメンドされ得る。   In some embodiments, there may be multiple output parameters and input parameters. According to some embodiments, as long as there is a match between the output data format / unit of one API and the input data format / unit of another API, the API mashup has a compatible data format. In particular, API mashups can be designated as high priority mashups (eg, can be prioritized) and / or recommended to application developers.

ブロック1002において、APIマッシュアップのAPI組合せにおける各APIについての入力及び/又は出力が解析され得、方法1000はブロック1004に進み得る。より具体的には、例えば、APIマッシュアップのAPI組合せ(例えば、API_1、API_2)について、API_1及びAPI_2の入力及び出力(例えば、タイプ、記述等)が解析され得る。例えば、APIマッシュアップのAPI組合せについての入力及び/又は出力は、図13のプロセッサ1310により解析され得る。   At block 1002, the input and / or output for each API in the API combination of the API mashup may be analyzed and the method 1000 may proceed to block 1004. More specifically, for example, the input and output (eg, type, description, etc.) of API_1 and API_2 can be analyzed for an API combination (eg, API_1, API_2) of the API mashup. For example, the inputs and / or outputs for the API mashup API combinations may be analyzed by the processor 1310 of FIG.

ブロック1004において、API組合せの1つのAPIの出力が、API組合せの別のAPIの入力と同じデータフォーマット及び/又は単位を有するかどうかが判定され得る。より具体的には、例えば、API組合せにおけるAPIの意味タイプ及び/又は入力/出力タイプに基づいて、API組合せの1つのAPIの出力が、API組合せの別のAPIの入力と同じデータフォーマット及び/又は単位を有するかどうかが判定され得る。例えば、API組合せの1つのAPIの出力が、API組合せの別のAPIの入力と同じデータフォーマット及び/又は単位を有するかどうかの判定は、図13のプロセッサ1310により実行され得る。   At block 1004, it may be determined whether the output of one API of the API combination has the same data format and / or unit as the input of another API of the API combination. More specifically, for example, based on the semantic type and / or input / output type of an API in the API combination, the output of one API of the API combination has the same data format and / or the input of another API of the API combination Or it can be determined whether it has units. For example, the determination of whether the output of one API of an API combination has the same data format and / or unit as the input of another API of the API combination may be performed by the processor 1310 of FIG.

API組合せの1つのAPIの出力が、API組合せの別のAPIの入力と同じデータフォーマット及び/又は単位を有する場合、方法1000はブロック1006に進み得、ブロック1006において、APIマッシュアップが、高優先度のマッシュアップとして指定され得る(例えば、優先度付けされ得る)。API組合せの1つのAPIの出力が、API組合せの別のAPIの入力と同じデータフォーマット及び/又は単位を有しない場合、方法1000はブロック1008に進み得る。   If the output of one API of the API combination has the same data format and / or unit as the input of another API of the API combination, the method 1000 may proceed to block 1006, where the API mashup is high priority. It can be designated as a degree mashup (eg, can be prioritized). If the output of one API of the API combination does not have the same data format and / or unit as the input of another API of the API combination, the method 1000 may proceed to block 1008.

ブロック1008において、データフォーマット/単位変換について、知識グラフにおいて、入力パラメータと出力パラメータとの間にリンクが存在するかどうかが判定され得る。例えば、データフォーマット/単位変換について、知識グラフにおいて、入力パラメータと出力パラメータとの間にリンクが存在するかどうかの判定は、図13のプロセッサ1310により実行され得る。データフォーマット/単位変換について、知識グラフにおいて、入力パラメータと出力パラメータとの間にリンクが存在すると判定された場合、方法1000はブロック1006に進み得、ブロック1006において、APIマッシュアップが、高優先度のマッシュアップとして指定され得る(例えば、優先度付けされ得る)。データフォーマット/単位変換について、知識グラフにおいて、入力パラメータと出力パラメータとの間にリンクが存在しないと判定された場合、方法1000はブロック1010に進み得る。   At block 1008, for data format / unit conversion, it can be determined whether a link exists between the input parameter and the output parameter in the knowledge graph. For example, for data format / unit conversion, determination of whether a link exists between an input parameter and an output parameter in a knowledge graph may be performed by the processor 1310 of FIG. For data format / unit conversion, if it is determined in the knowledge graph that a link exists between the input parameter and the output parameter, the method 1000 may proceed to block 1006 where the API mashup is a high priority. As a mashup (e.g., can be prioritized). For data format / unit conversion, if it is determined in the knowledge graph that there is no link between the input parameter and the output parameter, the method 1000 may proceed to block 1010.

ブロック1010において、APIマッシュアップの可能なAPI組合せの各々が評価されたかどうかが判定され得る。例えば、API_1及びAPI_2を含むAPIマッシュアップについて、API_1->API_2及びAPI_2->API_1の両方が評価されたかどうかが判定され得る。APIマッシュアップの可能なAPI組合せの各々が評価された場合、方法1000はブロック1012に進み得、ブロック1012において、APIマッシュアップが、妥当でないマッシュアップとして指定され得る(例えば、優先度付けされ得る)。例えば、APIマッシュアップの可能なAPI組合せの各々が評価されたかどうかの判定は、図13のプロセッサ1310により実行され得る。APIマッシュアップの可能なAPI組合せの各々が評価されていない場合、方法1000はブロック1002に戻り得、ブロック1002において、別のAPI組合せが特定され得る。   At block 1010, it may be determined whether each possible API combination for API mashup has been evaluated. For example, for an API mashup that includes API_1 and API_2, it may be determined whether both API_1-> API_2 and API_2-> API_1 have been evaluated. If each of the possible API combinations for an API mashup has been evaluated, the method 1000 can proceed to block 1012 where the API mashup can be designated as an invalid mashup (eg, can be prioritized). ). For example, the determination of whether each possible API combination for API mashup has been evaluated can be performed by the processor 1310 of FIG. If each of the possible API combinations for the API mashup has not been evaluated, the method 1000 can return to block 1002 where another API combination can be identified.

本開示の範囲から逸脱することなく、方法1000に対して、変更、追加、又は省略が可能である。例えば、方法1000の動作は、異なる順序で実行されることがある。さらに、説明されたステップ及び動作は、例として提供されているに過ぎず、これらのステップ及び動作のうちの一部は、開示された実施形態の本質を損なうことなく、任意的であることもあるし、より少ないステップ及び動作に組み合わされることもあるし、追加のステップ及び動作に拡張されることもある。   Changes, additions, or omissions may be made to method 1000 without departing from the scope of the present disclosure. For example, the operations of method 1000 may be performed in a different order. In addition, the steps and operations described are provided as examples only, and some of these steps and operations may be optional without detracting from the nature of the disclosed embodiments. Or may be combined with fewer steps and actions, and may be extended to additional steps and actions.

図6を再度参照すると、(例えば、サブクラスタキーワード組合せと各組合せについてのAPIマッシュアップとを含む)APIマッシュアップデータベース606は、フィルタリング及び/又は精査されているが、いくつかの実施形態において、全てのAPIマッシュアップ及び/又はキーワード組合せが(例えば、オフライン処理を介して)評価されているわけではないことがある。したがって、本開示の様々な実施形態は、1つ以上の学習モデル(例えば、機械学習モデル及び/又は深層学習モデル)を使用して、いくつかのAPIが、妥当なAPIマッシュアップのために、組み合わせられ使用され得るか否かを予測することを含み得る。   Referring back to FIG. 6, the API mashup database 606 (eg, including sub-cluster keyword combinations and API mashups for each combination) has been filtered and / or scrutinized, but in some embodiments, Not all API mashups and / or keyword combinations may be evaluated (eg, via offline processing). Accordingly, various embodiments of the present disclosure use one or more learning models (e.g., machine learning models and / or deep learning models) to allow some APIs to be valid API mashups, Predicting whether they can be combined and used.

例えば、いくつかの実施形態において、少なくとも1つのモデルは、トレーニングモデル608を含み得、少なくとも1つの他のモデルは、テストモジュール610を含み得る。モデル608及びモデル610が、2つのモデルとして図示されているが、モデル608及びモデル610は、同じ機械学習モデル又は深層学習モデルであってもよい。いくつかの実施形態に従うと、1つ以上のモデルは、タイトル、カテゴリ、一次カテゴリ、二次カテゴリ、リンク、記述、プロトコルフォーマット等といった、APIマッシュアップの特徴に関する情報(例えば、各APIに関する仕様情報)を含み得る。さらに、例えば、CNN(一例として、2つの層;図11Aを参照されたい)及び/又はLSTM(一例として、8つのノード;図11Bを参照されたい)等、1つ以上の機械学習アルゴリズム及び/又は深層学習アルゴリズムが使用され得る。   For example, in some embodiments, at least one model can include a training model 608 and at least one other model can include a test module 610. Although model 608 and model 610 are illustrated as two models, model 608 and model 610 may be the same machine learning model or deep learning model. According to some embodiments, one or more models can include information about API mashup features such as title, category, primary category, secondary category, link, description, protocol format, etc. (eg, specification information about each API). ). Further, one or more machine learning algorithms such as, for example, CNN (two layers as an example; see FIG. 11A) and / or LSTM (eight nodes as an example; see FIG. 11B) and / or Or a deep learning algorithm may be used.

いくつかの実施形態において、APIマッシュアップデータベース606からのデータを含み得る1つ以上のトレーニングデータセットが、トレーニングモデル608により受け取られ得る。さらに、開発者616からのフィードバック(例えば、開発者のAPIマッシュアップの選択(例えば、好む又は好まない)が、モデル608において受け取られ得、このようなフィードバックを使用して、トレーニングモデル608を生成及び/又は更新することができる。異なる機械学習アルゴリズム又は深層学習アルゴリズムについて、モデルトレーニングは、ブロック606において優先度付けされ得る、妥当なAPIマッシュアップデータセットのみ、又は、妥当なAPIマッシュアップデータセット及び妥当でないAPIマッシュアップデータセットの両方、を必要とし得る。   In some embodiments, one or more training data sets that may include data from the API mashup database 606 may be received by the training model 608. Further, feedback from developer 616 (eg, a developer's API mashup selection (eg, preferred or disliked) can be received in model 608 and such feedback can be used to generate training model 608. For different machine learning or deep learning algorithms, model training can be prioritized at block 606, only valid API mashup data sets, or valid API mashup data sets and valid You may need both, but not API mashup datasets.

ブロック612において、(例えば、開発者616等の第三者からの)要求が処理され得る。例えば、フロー600に示されているように、要求処理は、開発者616からの(本開示において「問合せ」とも呼ばれる)要求(例えば、サービス要求の自然言語記述)、並びに/又は、APIマッシュアップデータベース606からの1つ以上のAPIマッシュアップ及び/若しくはサブクラスタキーワード、といった1つ以上の入力に基づき得る。さらに、要求処理に応じて、1つ以上のキーワード組合せを含み得る出力が生成され得る。図12の例示的なシステム1200において、要求処理ツール1202が、1つ以上の入力(例えば、要求1204及びサブクラスタキーワード1206)を受信し、1つ以上のキーワード組合せを含み得る出力1208を生成し得る。   At block 612, the request (eg, from a third party such as developer 616) may be processed. For example, as shown in flow 600, request processing can include requests from developers 616 (also referred to as “queries” in this disclosure) (eg, natural language descriptions of service requests) and / or API mashups. Based on one or more inputs such as one or more API mashups and / or subcluster keywords from database 606. Further, an output that can include one or more keyword combinations can be generated in response to the request processing. In the exemplary system 1200 of FIG. 12, a request processing tool 1202 receives one or more inputs (eg, request 1204 and subcluster keywords 1206) and generates an output 1208 that can include one or more keyword combinations. obtain.

さらに、いくつかの実施形態において、図6のブロック614において、(例えば、ブロック612において)生成されたキーワード組合せが、データベース606のキーワード組合せと比較されて、(例えば、問合せからの)生成されたキーワード組合せとデータベース606のキーワード組合せとの間に合致があるかどうかが判定され得る。合致がある場合、データベース606からの関連するAPIマッシュアップが、開発者616に提供され得る。合致がない場合、キーワード組合せの各キーワードについて、(例えば、ブロック606からの)関連APIが特定され得、特定されたAPIについての全ての可能なAPI組合せが特定され得る。   Further, in some embodiments, at block 614 of FIG. 6, the generated keyword combination (eg, at block 612) is compared with the keyword combination of database 606 and generated (eg, from a query). It can be determined whether there is a match between the keyword combination and the keyword combination in the database 606. If there is a match, an associated API mashup from database 606 can be provided to developer 616. If there is no match, for each keyword in the keyword combination, an associated API (eg, from block 606) may be identified and all possible API combinations for the identified API may be identified.

さらに、API組合せの各々が、モデル610に伝達され得、機械学習アルゴリズム又は深層学習アルゴリズムとブロック606の既存のAPIマッシュアップデータセットとに基づいてトレーニングされたモデル610は、受け取ったAPIが、妥当なAPIマッシュアップとして組み合わせられ得るか否かを表し得る、ラベル(例えば、「1」又は「0」)等の出力を生成することができる。例えば、ラベルが1である場合、APIマッシュアップは、高優先度のマッシュアップとして指定され得る(例えば、優先度付けされ得る)、且つ/又は、妥当なAPIマッシュアップとして開発者616に提供され得る。さらに、例えば、ラベルが0である場合、APIマッシュアップは、低優先度のマッシュアップとして指定され得る(例えば、優先度付けされ得る)。   Further, each of the API combinations can be communicated to the model 610, and the model 610 trained based on the machine learning algorithm or deep learning algorithm and the existing API mashup data set in block 606 can receive the appropriate API. An output such as a label (eg, “1” or “0”) can be generated that can represent whether it can be combined as an API mashup. For example, if the label is 1, the API mashup can be designated as a high priority mashup (eg, can be prioritized) and / or provided to the developer 616 as a valid API mashup. obtain. Further, for example, if the label is 0, the API mashup can be designated as a low priority mashup (eg, can be prioritized).

さらに、いくつかの実施形態に従うと、レコメンドされたAPIマッシュアップに応じて、開発者616は、開発者616がこのAPIマッシュアップを好むか又は好まないかを選択することができる。この選択は、(例えば、モデル608における)学習モデルを更新及び/又は精緻化するための、学習モデルに対するフィードバックとして提供され得る。   Further, according to some embodiments, depending on the recommended API mashup, developer 616 can choose whether developer 616 likes or dislikes this API mashup. This selection may be provided as feedback to the learning model to update and / or refine the learning model (eg, in model 608).

いくつかの実施形態において、APIマッシュアップが、(例えば、テストモデル608を介して)元々は1でラベル付けされていた(例えば、妥当な/高優先度のAPIマッシュアップであった)が、複数の開発者(例えば、多数の開発者)が、このAPIマッシュアップを好まない場合、このAPIマッシュアップは、「0」で再ラベル付けされ得る。いくつかの実施形態において、APIマッシュアップが、元々は0でラベル付けされていた(例えば、妥当でない/低優先度のAPIマッシュアップであった)が、複数の開発者(例えば、多数の開発者)が、このAPIマッシュアップを好む場合、このAPIマッシュアップは、「1」で再ラベル付けされ得る。   In some embodiments, the API mashup was originally labeled 1 (eg, via test model 608) (eg, was a valid / high priority API mashup) If multiple developers (eg, a large number of developers) do not like this API mashup, the API mashup can be relabeled with “0”. In some embodiments, the API mashup was originally labeled 0 (eg, it was an invalid / low priority API mashup), but multiple developers (eg, multiple developments) If this person prefers this API mashup, the API mashup can be relabeled with “1”.

さらに、いくつかの実施形態に従うと、任意のデータセット(例えば、新たなデータセット)を使用して、学習モデルを再トレーニングすることができる。さらに、いくつかの実施形態において、(例えば、データベース606からの情報及び/又は開発者616からのフィードバックを用いて)トレーニングされ得るモデル608は、モデル610が、受け取ったAPIが妥当なAPIマッシュアップとして組み合わせられ得るか否かをより正確に予測することを可能にするように、モデル610を更新することができる。   Further, according to some embodiments, an arbitrary data set (eg, a new data set) can be used to retrain the learning model. Further, in some embodiments, the model 608 that can be trained (eg, using information from the database 606 and / or feedback from the developer 616) is an API mashup where the model 610 is valid for the received API. Model 610 can be updated to allow a more accurate prediction of whether they can be combined as

図13は、本開示の少なくとも1つの実施形態に従った例示的なコンピューティングシステム1300のブロック図である。例えば、システム100(図1参照)、システム500(図5参照)、システム1200(図12参照)、又はこれらの1つ以上のコンポーネントが、コンピューティングシステム1300として実装され得る。コンピューティングシステム1300は、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、タブレットコンピュータ、携帯電話機、スマートフォン、携帯情報端末(PDA)、電子リーダデバイス、ネットワークスイッチ、ネットワークルータ、ネットワークハブ、他のネットワーキングデバイス、又は他の適切なコンピューティングデバイスを含み得る。   FIG. 13 is a block diagram of an exemplary computing system 1300 in accordance with at least one embodiment of the present disclosure. For example, system 100 (see FIG. 1), system 500 (see FIG. 5), system 1200 (see FIG. 12), or one or more of these components may be implemented as computing system 1300. The computing system 1300 is a desktop computer, laptop computer, server computer, tablet computer, mobile phone, smartphone, personal digital assistant (PDA), electronic reader device, network switch, network router, network hub, other networking device, or Other suitable computing devices may be included.

コンピューティングシステム1300は、プロセッサ1310、記憶デバイス1320、メモリ1330、及び通信デバイス1340を含み得る。プロセッサ1310、記憶デバイス1320、メモリ1330、及び/又は通信デバイス1340は全て、これらのコンポーネントの各々が他のコンポーネントと通信できるように、通信可能に接続され得る。コンピューティングシステム1300は、本開示に記載の動作のうちの任意の動作を実行することができる。   Computing system 1300 can include a processor 1310, a storage device 1320, a memory 1330, and a communication device 1340. Processor 1310, storage device 1320, memory 1330, and / or communication device 1340 can all be communicatively connected such that each of these components can communicate with other components. The computing system 1300 can perform any of the operations described in this disclosure.

概して、プロセッサ1310は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む任意の適切な専用又は汎用のコンピュータ、コンピューティングエンティティ、又は処理デバイスを含み得、任意の適用可能なコンピュータ読み取り可能な記憶媒体に記憶されている命令を実行するよう構成され得る。例えば、プロセッサ1310は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は、プログラム命令を解釈及び/又は実行し、且つ/又はデータを処理するよう構成されている任意の他のデジタル回路若しくはアナログ回路を含み得る。プロセッサ1310は、図13において1つのプロセッサとして示されているが、プロセッサ1310は、本開示に記載の任意の数の動作を個別的又は集合的に実行するよう構成されている任意の数のプロセッサを含んでもよい。   In general, processor 1310 may include any suitable dedicated or general purpose computer, computing entity, or processing device including various computer hardware or software modules, stored in any applicable computer readable storage medium. May be configured to execute the instructions being executed. For example, the processor 1310 may interpret and / or execute a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA), or program instructions and / or Or any other digital or analog circuit configured to process data. Although processor 1310 is shown as one processor in FIG. 13, processor 1310 may be any number of processors configured to perform any number of operations described herein individually or collectively. May be included.

いくつかの実施形態において、プロセッサ1310は、記憶デバイス1320、メモリ1330、又は記憶デバイス1320とメモリ1330との両方に記憶されているプログラム命令を解釈及び/又は実行し、且つ/又は、記憶デバイス1320、メモリ1330、又は記憶デバイス1320とメモリ1330との両方に記憶されているデータを処理するよう構成され得る。いくつかの実施形態において、プロセッサ1310は、記憶デバイス1320からプログラム命令をフェッチして、プログラム命令をメモリ1320にロードすることができる。プログラム命令がメモリ1330にロードされた後、プロセッサ1310は、プログラム命令を実行することができる。   In some embodiments, processor 1310 interprets and / or executes program instructions stored on storage device 1320, memory 1330, or both storage device 1320 and memory 1330, and / or storage device 1320. , Memory 1330, or data stored in both storage device 1320 and memory 1330. In some embodiments, the processor 1310 can fetch program instructions from the storage device 1320 and load the program instructions into the memory 1320. After the program instructions are loaded into the memory 1330, the processor 1310 can execute the program instructions.

例えば、いくつかの実施形態において、デバイス及び/又はシステム(例えば、アプリケーションプログラム、サーバ等)の処理動作のうちの1つ以上の処理動作は、プログラム命令として、記憶デバイス1320に含められ得る。プロセッサ1310は、処理動作のうちの1つ以上の処理動作のプログラム命令をフェッチして、処理動作のうちの1つ以上の処理動作のプログラム命令をメモリ1330にロードすることができる。処理動作のうちの1つ以上の処理動作のプログラム命令がメモリ1330にロードされた後、プロセッサ1310は、そのプログラム命令により指示されるように処理動作に関連付けられている動作を実施できるように、処理動作のうちの1つ以上の処理動作のプログラム命令を実行することができる。   For example, in some embodiments, one or more of the processing operations of the device and / or system (eg, application program, server, etc.) may be included in the storage device 1320 as a program instruction. The processor 1310 may fetch program instructions for one or more of the processing operations and load program instructions for one or more of the processing operations into the memory 1330. After a program instruction for one or more of the processing operations is loaded into memory 1330, processor 1310 may perform an operation associated with the processing operation as directed by the program instruction. Program instructions for one or more of the processing operations can be executed.

記憶デバイス1320及びメモリ1330は、コンピュータ実行可能な命令又はデータ構造を運ぶ又は記憶するコンピュータ読み取り可能な記憶媒体を含み得る。そのようなコンピュータ読み取り可能な記憶媒体は、プロセッサ1310等の汎用又は専用のコンピュータによりアクセスされ得る任意の利用可能な媒体を含み得る。限定ではなく例として、そのようなコンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)、又は、コンピュータ実行可能な命令又はデータ構造の形態の所望のプログラムコードを運ぶ又は記憶するために使用され得る任意の他の記憶媒体であって、汎用又は専用のコンピュータによりアクセスされ得る任意の他の記憶媒体、を含む有形の又は非一時的なコンピュータ読み取り可能な記憶媒体を含み得る。上記の組合せも、コンピュータ読み取り可能な記憶媒体の範囲に含まれ得る。コンピュータ実行可能な命令は、例えば、プロセッサ1310に所定の動作又は動作群を実行させるよう構成されている命令及びデータを含み得る。   Storage device 1320 and memory 1330 may include computer-readable storage media that carry or store computer-executable instructions or data structures. Such computer-readable storage media may include any available media that can be accessed by a general purpose or special purpose computer such as processor 1310. By way of example, and not limitation, such computer readable storage media may be RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage device, flash memory device (eg, solid state Memory device) or any other storage medium that can be used to carry or store the desired program code in the form of computer-executable instructions or data structures, which can be accessed by a general purpose or special purpose computer It may include a tangible or non-transitory computer readable storage medium including any other storage medium. Combinations of the above may also be included within the scope of computer-readable storage media. Computer-executable instructions may include, for example, instructions and data configured to cause processor 1310 to perform a predetermined operation or group of operations.

いくつかの実施形態において、記憶デバイス1320及び/又はメモリ1330は、APIマッシュアップ生成システム(例えば、図1のAPIマッシュアップ生成システム100)に関連するデータを記憶することができる。例えば、記憶デバイス1320及び/又はメモリ1330は、API、API組合せ、API情報(例えば、キーワード、パラメータ記述、エンドポイント記述、カテゴリ、クラスタ、サブクラスタ等)、及び/又は、APIマッシュアップ生成システムに関連する任意の他のデータを記憶することができる。   In some embodiments, storage device 1320 and / or memory 1330 may store data associated with an API mashup generation system (eg, API mashup generation system 100 of FIG. 1). For example, the storage device 1320 and / or the memory 1330 may include APIs, API combinations, API information (eg, keywords, parameter descriptions, endpoint descriptions, categories, clusters, sub-clusters, etc.) and / or API mashup generation systems. Any other relevant data can be stored.

通信デバイス1340は、コンピューティングシステム1300と別の電子デバイスとの間の通信を可能にする又は円滑にするよう構成されている任意のデバイス、システム、コンポーネント、又はコンポーネントの集合を含み得る。例えば、通信デバイス1340は、モデム、ネットワークカード(無線又は有線)、赤外線通信デバイス、光通信デバイス、無線通信デバイス(アンテナ等)、及び/若しくはチップセット(Bluetooth(登録商標)デバイス、802.6デバイス(例えば、メトロポリタンエリアネットワーク(MAN))、Wi-Fi(登録商標)デバイス、WiMAX(登録商標)デバイス、セルラ通信設備等)、並びに/又は同様のものを含み得るが、これらに限定されるものではない。通信デバイス1340は、ほんの少しの例を挙げると、セルラネットワーク、Wi-Fi(登録商標)ネットワーク、MAN、光ネットワーク等といった任意のネットワークとの間で、且つ/又は、リモートデバイスを含め、本開示に記載の任意の他のデバイスとの間で、データが交換されることを可能にし得る。   Communication device 1340 may include any device, system, component, or collection of components configured to enable or facilitate communication between computing system 1300 and another electronic device. For example, the communication device 1340 may be a modem, a network card (wireless or wired), an infrared communication device, an optical communication device, a wireless communication device (such as an antenna), and / or a chipset (Bluetooth® device, 802.6 device (eg, , Metropolitan Area Network (MAN)), Wi-Fi® device, WiMAX® device, cellular communication facility, etc.), and / or the like. . The communication device 1340 may include and / or include remote devices with any network, such as a cellular network, Wi-Fi® network, MAN, optical network, etc., to name just a few. May allow data to be exchanged with any other device described in.

本開示の範囲から逸脱することなく、図13に対して、変更、追加、又は省略が可能である。例えば、いくつかの実施形態において、コンピューティングシステム1300は、本開示において図示及び説明された要素よりも多い又は少ない要素を含んでもよい。例えば、コンピューティングシステム1300は、タブレット又は携帯電話機のスクリーン等の統合されたディスプレイデバイスを含んでもよいし、コンピューティングシステム1300から分離されコンピューティングシステム1300に通信可能に接続され得る外部モニタ、プロジェクタ、テレビジョン、又は他の適切なディスプレイデバイスを含んでもよい。   Changes, additions, or omissions may be made to FIG. 13 without departing from the scope of the present disclosure. For example, in some embodiments, computing system 1300 may include more or fewer elements than those shown and described in this disclosure. For example, the computing system 1300 may include an integrated display device, such as a tablet or mobile phone screen, or may be separated from the computing system 1300 and communicatively connected to the computing system 1300, projector, A television or other suitable display device may be included.

本開示において使用される場合、「モジュール」又は「コンポーネント」という用語は、モジュール又はコンポーネントの動作を実行するよう構成されている特定のハードウェア実装、及び/又は、例えば、APIマッシュアップ生成器104に記憶され得る且つ/又はAPIマッシュアップ生成器104により実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを指し得る。いくつかの実施形態において、本開示に記載の異なるコンポーネント及びモジュールは、コンピューティングシステム上で実行されるオブジェクト又はプロセスとして(例えば、別個のスレッドとして)実装され得る。本開示に記載のシステム及び方法のうちの一部は、(システム1300に記憶される且つ/又はシステム1300により実行される)ソフトウェアにより実装されるとして一般に説明されるが、特定のハードウェア実装又はソフトウェアと特定のハードウェア実装との組合せも可能であり企図されている。本説明において、「コンピューティングエンティティ」は、本開示において定義された任意のコンピューティングシステム、又は、システム1300等のコンピューティングデバイス上で動作する任意のモジュール又はモジュールの組合せを含み得る。   As used in this disclosure, the term “module” or “component” refers to a particular hardware implementation configured to perform the operation of the module or component, and / or, for example, the API mashup generator 104. May refer to software objects or software routines that may be stored in and / or executed by the API mashup generator 104. In some embodiments, the different components and modules described in this disclosure may be implemented as objects or processes (eg, as separate threads) that execute on a computing system. Although some of the systems and methods described in this disclosure are generally described as being implemented by software (stored in and / or executed by system 1300), certain hardware implementations or Combinations of software and specific hardware implementations are possible and contemplated. In this description, a “computing entity” may include any computing system defined in this disclosure, or any module or combination of modules that operates on a computing device, such as system 1300.

本開示において使用される場合、「モジュール」又は「コンポーネント」という用語は、モジュール又はコンポーネントのアクションを実行するよう構成されている特定のハードウェア実装、及び/又は、コンピューティングシステムの汎用ハードウェア(例えば、コンピュータ読み取り可能な媒体等)に記憶され得る且つ/又はコンピューティングシステムの汎用ハードウェア(例えば、処理デバイス等)により実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを指し得る。いくつかの実施形態において、本開示に記載の異なるコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステム上で実行されるオブジェクト又はプロセスとして(例えば、別個のスレッドとして)実装され得る。本開示に記載のシステム及び方法のうちの一部は、(汎用ハードウェアに記憶される且つ/又は汎用ハードウェアにより実行される)ソフトウェアにより実装されるとして一般に説明されるが、特定のハードウェア実装又はソフトウェアと特定のハードウェア実装との組合せも可能であり企図されている。本説明において、「コンピューティングエンティティ」は、本開示において前に定義された任意のコンピューティングシステム、又は、コンピューティングシステム上で動作する任意のモジュール又はモジュールの組合せであり得る。   As used in this disclosure, the term “module” or “component” refers to a particular hardware implementation and / or general purpose hardware of a computing system configured to perform the actions of a module or component ( For example, it may refer to a software object or software routine that may be stored on a computer readable medium and / or executed by general purpose hardware (eg, a processing device, etc.) of a computing system. In some embodiments, the different components, modules, engines, and services described in this disclosure may be implemented as objects or processes that execute on the computing system (eg, as separate threads). Although some of the systems and methods described in this disclosure are generally described as being implemented by software (stored in and / or executed by general-purpose hardware), specific hardware Implementations or combinations of software and specific hardware implementations are possible and contemplated. In this description, a “computing entity” may be any computing system as defined earlier in this disclosure, or any module or combination of modules operating on a computing system.

本開示及び特に請求項(例えば、請求項の本体部分)において使用される用語は、一般に、「オープンな」用語であるとして意図される(例えば、「〜を備える」という用語は、「〜を備えるが、〜に限定されるものではない」として解釈されるべきであり、「〜を有する」という用語は、「少なくとも〜を有する」として解釈されるべきであり、「〜を含む」という用語は、「〜を含むが、〜に限定されるものではない」として解釈されるべきである、等)。   Terms used in this disclosure and specifically in the claims (eg, the body portion of a claim) are generally intended to be “open” terms (eg, the term “comprising” includes “ Comprising, but not limited to, the term “having to” should be interpreted as “having at least” and the term “including” Should be interpreted as “including but not limited to”, etc.).

さらに、導入される請求項記載事項の特定の数が意図される場合、そのような意図は、当該請求項中に明示的に記載され、そのような記載がない場合、そのような意図は存在しない。例えば、理解の助けとして、請求項中に、請求項記載事項を導入するための「少なくとも1つの」及び「1つ以上の」といった導入句の使用が含まれることがある。しかしながら、このような導入句の使用は、「a」又は「an」といった不定冠詞による請求項記載事項の導入が、同一の請求項中に「1つ以上の」又は「少なくとも1つの」といった導入句と「a」又は「an」といった不定冠詞とが含まれるとしても、当該導入された請求項記載事項を含む特定の請求項が、当該請求項記載事項を1つしか含まない実施形態に限定されることを意味するとして解釈されるべきではない(例えば、「a」及び/又は「an」は、「少なくとも1つの」又は「1つ以上の」を意味するとして解釈されるべきである)。請求項記載事項を導入するために使用される定冠詞の使用についても同じことが当てはまる。   Further, where a particular number of claim statements to be introduced is intended, such intent is explicitly stated in the claim, and if not, such intent exists. do not do. For example, as an aid to understanding, the claims may include the use of introductory phrases such as “at least one” and “one or more” to introduce claim recitations. However, the use of such an introductory phrase means that the introduction of an indefinite article such as “a” or “an” is an introduction of “one or more” or “at least one” in the same claim. Even if a phrase and an indefinite article such as “a” or “an” are included, a particular claim including the introduced claim statement is limited to an embodiment that includes only one such claim statement. (Eg, “a” and / or “an” should be interpreted as meaning “at least one” or “one or more”) . The same is true for the use of definite articles used to introduce claims.

さらに、導入される請求項記載事項の特定の数が明示的に記載されている場合であっても、そのような記載は、少なくとも記載されている数を意味するとして解釈されるべきである(例えば、他の修飾語のない「2つの記載事項」という単なる記載は、少なくとも2つの記載事項又は2つ以上の記載事項を意味する)ことが、当業者であれば認識されよう。さらに、「A、B、及びC等のうちの少なくとも1つ」又は「A、B、及びC等のうちの1つ以上」に類する表記が使用される場合、一般に、そのような構造は、Aのみ、Bのみ、Cのみ、A及びBの両方、A及びCの両方、B及びCの両方、又は、A、B、及びCの全て、等を含むことが意図される。   Further, even if a specific number of claim statements to be introduced is explicitly set forth, such description should be interpreted as meaning at least the number set forth ( For example, those skilled in the art will recognize that a mere description of “two items” without other modifiers means at least two items or two or more items). Further, when a notation similar to “at least one of A, B, and C, etc.” or “one or more of A, B, and C, etc.” is used, generally such a structure is It is intended to include A only, B only, C only, both A and B, both A and C, both B and C, or all of A, B, and C, etc.

さらに、2つ以上の選択可能な用語を表すいかなる離接語又は離接句も、明細書、特許請求の範囲、又は図面のいずれであろうと、それら用語のうちの1つ、それらの用語の組合せ、又は、それらの用語の全てを含む可能性を意図するとして理解されるべきである。例えば、「A又はB」という句は、「A」若しくは「B」又は「A及びB」の可能性を含むとして理解されるべきである。   In addition, any disjunction or disjunctive phrase representing two or more selectable terms, whether in the description, the claims, or the drawings, is one of those terms, It should be understood as a combination or the possibility of including all of these terms. For example, the phrase “A or B” should be understood to include the possibilities of “A” or “B” or “A and B”.

本開示において記載された全ての例及び条件付き文言は、当該技術を促進させるために本発明者によって寄与されるコンセプト及び本発明を読者が理解するのを助ける教育上の目的のために意図され、そのような具体的に記載された例及び条件に限定されるものではないとして解釈されるべきである。本開示の実施形態が詳細に説明されたが、それら実施形態に対する様々な変形、置換、及び変更が、本開示の主旨及び範囲から逸脱することなく可能である。   All examples and conditional language set forth in this disclosure are intended for educational purposes to help the reader understand the concepts contributed by the inventor and to facilitate the art. It should be construed as not limited to such specifically described examples and conditions. Although embodiments of the present disclosure have been described in detail, various modifications, substitutions, and alterations to the embodiments are possible without departing from the spirit and scope of the disclosure.

以上の実施形態に関し、さらに以下の付記を開示する。   Regarding the above embodiment, the following additional notes are disclosed.

(付記1)
アプリケーションプログラムインタフェース(API)マッシュアップを生成する方法であって、
少なくとも1つのプロセッサにより、複数のAPIを、前記複数のAPIの各APIについての少なくとも1つのキーワードに基づいて、複数のサブクラスタにグループ化するステップと、
前記少なくとも1つのプロセッサにより、前記複数のサブクラスタについての2つ以上のキーワードと実世界データとに基づいて、前記複数のサブクラスタについての複数のキーワード組合せを特定するステップと、
前記少なくとも1つのプロセッサにより、前記複数のキーワード組合せについて、前記複数のAPIのうちの2つ以上のAPIを含む複数の可能なAPIマッシュアップを決定するステップと、
前記少なくとも1つのプロセッサにより、前記複数の可能なAPIマッシュアップを処理して、前記複数の可能なAPIマッシュアップのうち、前記複数のキーワード組合せのうちの少なくとも1つのキーワード組合せに関連付けられた少なくとも1つの優先度付けされたAPIマッシュアップを生成するステップと、
を含む、方法。
(Appendix 1)
A method of generating an application program interface (API) mashup,
Grouping, by at least one processor, a plurality of APIs into a plurality of sub-clusters based on at least one keyword for each API of the plurality of APIs;
Identifying, by the at least one processor, a plurality of keyword combinations for the plurality of subclusters based on two or more keywords for the plurality of subclusters and real world data;
Determining, by the at least one processor, a plurality of possible API mashups including two or more APIs of the plurality of APIs for the plurality of keyword combinations;
Processing the plurality of possible API mashups by the at least one processor to at least one of the plurality of possible API mashups associated with at least one keyword combination of the plurality of keyword combinations. Generating two prioritized API mashups;
Including a method.

(付記2)
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せの第1のAPIの入力を、該APIマッシュアップの該API組合せの第2のAPIの出力と比較することと、
該API組合せの該第1のAPIの入力と該API組合せの該第2のAPIの出力との間の類似度スコアを算出することと、
前記類似度スコアが閾値を超える場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、付記1に記載の方法。
(Appendix 2)
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Comparing the input of the first API of the API combination of the API mashup with the output of the second API of the API combination of the API mashup;
Calculating a similarity score between the input of the first API of the API combination and the output of the second API of the API combination;
If the similarity score exceeds a threshold, designating the API mashup as a high priority API mashup;
The method according to appendix 1, comprising:

(付記3)
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せについての入力を生成することと、
前記の生成された入力に基づいて、該APIマッシュアップが妥当な出力を生成するかどうかを判定することと、
前記の生成された出力が妥当である場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、付記1に記載の方法。
(Appendix 3)
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Generating input for API combinations for API mashups;
Determining whether the API mashup produces valid output based on the generated input;
If the generated output is valid, designating the API mashup as a high priority API mashup;
The method according to appendix 1, comprising:

(付記4)
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せの第1のAPIの出力が、該APIマッシュアップの該API組合せの第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有するかどうかを判定することと、
知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在するかどうかを判定することと、
前記第1のAPIの出力が、前記第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有する場合、又は、前記知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在する場合、のいずれかにおいて、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、付記1に記載の方法。
(Appendix 4)
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Determining whether the output of the first API of the API combination of the API mashup has a data format that matches the data format of the input of the second API of the API combination of the API mashup;
In the knowledge graph, determining whether there is at least one link between the output parameter of the first API and the input parameter of the second API;
When the output of the first API has a data format that matches the data format of the input of the second API, or in the knowledge graph, the output parameters of the first API and the second API Designating the API mashup as a high-priority API mashup in any of the cases where there is at least one link between the input parameters;
The method according to appendix 1, comprising:

(付記5)
第三者からのAPIマッシュアップ要求を受信するステップと、
前記少なくとも1つのプロセッサにより、前記APIマッシュアップ要求を処理して、前記APIマッシュアップ要求についての1つ以上のキーワード組合せを特定するステップと、
前記少なくとも1つのプロセッサにより、前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せを、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと比較するステップと、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致することに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供するステップと、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致しないことに応じて、
前記少なくとも1つの優先度付けされたAPIマッシュアップを少なくとも1つの学習モデルに伝達するステップと、
前記少なくとも1つの学習モデルを介して、前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであるかどうかを判定するステップと、
前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであると判定したことに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供するステップと、
をさらに含む、付記1に記載の方法。
(Appendix 5)
Receiving an API mashup request from a third party;
Processing the API mashup request by the at least one processor to identify one or more keyword combinations for the API mashup request;
Comparing, by the at least one processor, the one or more keyword combinations for the API mashup request with the at least one keyword combination for the at least one prioritized API mashup;
The at least one priority in response to the one or more keyword combinations for the API mashup request matching the at least one keyword combination for the at least one prioritized API mashup. Providing the attached API mashup to the third party;
Responsive to the one or more keyword combinations for the API mashup request not matching the at least one keyword combination for the at least one prioritized API mashup;
Communicating the at least one prioritized API mashup to at least one learning model;
Determining whether the at least one prioritized API mashup is a valid API mashup via the at least one learning model;
Providing the at least one prioritized API mashup to the third party in response to determining that the at least one prioritized API mashup is a valid API mashup; When,
The method according to appendix 1, further comprising:

(付記6)
前記少なくとも1つの優先度付けされたAPIマッシュアップに関する、前記第三者からのフィードバックを受信するステップと、
前記第三者からの前記フィードバックに基づいて、前記少なくとも1つの学習モデルを更新するステップと、
をさらに含む、付記5に記載の方法。
(Appendix 6)
Receiving feedback from the third party regarding the at least one prioritized API mashup;
Updating the at least one learning model based on the feedback from the third party;
The method according to appendix 5, further comprising:

(付記7)
前記少なくとも1つの優先度付けされたAPIマッシュアップを第三者に提供するステップ
をさらに含む、付記1に記載の方法。
(Appendix 7)
The method of claim 1, further comprising: providing the at least one prioritized API mashup to a third party.

(付記8)
命令を含む1つ以上の非一時的なコンピュータ読み取り可能な媒体であって、前記命令は、1つ以上の処理システムにより実行されたときに、前記1つ以上の処理システムに複数の動作を実行させるよう構成されており、前記複数の動作は、
複数のAPIを、前記複数のAPIの各APIについての少なくとも1つのキーワードに基づいて、複数のサブクラスタにグループ化する動作と、
前記複数のサブクラスタについての2つ以上のキーワードと実世界データとに基づいて、前記複数のサブクラスタについての複数のキーワード組合せを特定する動作と、
前記複数のキーワード組合せについて、前記複数のAPIのうちの2つ以上のAPIを含む複数の可能なAPIマッシュアップを決定する動作と、
前記複数の可能なAPIマッシュアップを処理して、前記複数の可能なAPIマッシュアップのうち、前記複数のキーワード組合せのうちの少なくとも1つのキーワード組合せに関連付けられた少なくとも1つの優先度付けされたAPIマッシュアップを生成する動作と、
を含む、コンピュータ読み取り可能な媒体。
(Appendix 8)
One or more non-transitory computer readable media containing instructions, the instructions performing a plurality of operations on the one or more processing systems when executed by the one or more processing systems And the plurality of operations are configured as follows:
Grouping a plurality of APIs into a plurality of sub-clusters based on at least one keyword for each API of the plurality of APIs;
Identifying a plurality of keyword combinations for the plurality of sub-clusters based on two or more keywords for the plurality of sub-clusters and real world data;
Determining a plurality of possible API mashups including two or more of the plurality of APIs for the plurality of keyword combinations;
Processing the plurality of possible API mashups and, out of the plurality of possible API mashups, at least one prioritized API associated with at least one keyword combination of the plurality of keyword combinations. Generating mashups,
A computer-readable medium including:

(付記9)
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せの第1のAPIの入力を、該APIマッシュアップの該API組合せの第2のAPIの出力と比較することと、
該API組合せの該第1のAPIの入力と該API組合せの該第2のAPIの出力との間の類似度スコアを算出することと、
前記類似度スコアが閾値を超える場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、付記8に記載のコンピュータ読み取り可能な媒体。
(Appendix 9)
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Comparing the input of the first API of the API combination of the API mashup with the output of the second API of the API combination of the API mashup;
Calculating a similarity score between the input of the first API of the API combination and the output of the second API of the API combination;
If the similarity score exceeds a threshold, designating the API mashup as a high priority API mashup;
The computer-readable medium according to appendix 8, comprising:

(付記10)
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せについての入力を生成することと、
前記の生成された入力に基づいて、該APIマッシュアップが妥当な出力を生成するかどうかを判定することと、
前記の生成された出力が妥当である場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、付記8に記載のコンピュータ読み取り可能な媒体。
(Appendix 10)
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Generating input for API combinations for API mashups;
Determining whether the API mashup produces valid output based on the generated input;
If the generated output is valid, designating the API mashup as a high priority API mashup;
The computer-readable medium according to appendix 8, comprising:

(付記11)
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せの第1のAPIの出力が、該APIマッシュアップの該API組合せの第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有するかどうかを判定することと、
知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在するかどうかを判定することと、
前記第1のAPIの出力が、前記第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有する場合、又は、前記知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在する場合、のいずれかにおいて、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、付記8に記載のコンピュータ読み取り可能な媒体。
(Appendix 11)
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Determining whether the output of the first API of the API combination of the API mashup has a data format that matches the data format of the input of the second API of the API combination of the API mashup;
In the knowledge graph, determining whether there is at least one link between the output parameter of the first API and the input parameter of the second API;
When the output of the first API has a data format that matches the data format of the input of the second API, or in the knowledge graph, the output parameters of the first API and the second API Designating the API mashup as a high-priority API mashup in any of the cases where there is at least one link between the input parameters;
The computer-readable medium according to appendix 8, comprising:

(付記12)
前記複数の動作は、
第三者からのAPIマッシュアップ要求を受信する動作と、
前記APIマッシュアップ要求を処理して、前記APIマッシュアップ要求についての1つ以上のキーワード組合せを特定する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せを、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと比較する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致することに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致しないことに応じて、
前記少なくとも1つの優先度付けされたAPIマッシュアップを少なくとも1つの学習モデルに伝達する動作と、
前記少なくとも1つの学習モデルを介して、前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであるかどうかを判定する動作と、
前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであると判定したことに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供する動作と、
をさらに含む、付記8に記載のコンピュータ読み取り可能な媒体。
(Appendix 12)
The plurality of operations are:
Receiving an API mashup request from a third party;
Processing the API mashup request to identify one or more keyword combinations for the API mashup request;
Comparing the one or more keyword combinations for the API mashup request with the at least one keyword combination for the at least one prioritized API mashup;
The at least one priority in response to the one or more keyword combinations for the API mashup request matching the at least one keyword combination for the at least one prioritized API mashup. Providing the attached API mashup to the third party;
Responsive to the one or more keyword combinations for the API mashup request not matching the at least one keyword combination for the at least one prioritized API mashup;
Communicating the at least one prioritized API mashup to at least one learning model;
Determining whether the at least one prioritized API mashup is a valid API mashup via the at least one learning model;
Providing the third party with the at least one prioritized API mashup in response to determining that the at least one prioritized API mashup is a valid API mashup; When,
The computer-readable medium according to claim 8, further comprising:

(付記13)
前記複数の動作は、
前記少なくとも1つの優先度付けされたAPIマッシュアップに関する、前記第三者からのフィードバックを受信する動作と、
前記第三者からの前記フィードバックに基づいて、前記少なくとも1つの学習モデルを更新する動作と、
をさらに含む、付記12に記載のコンピュータ読み取り可能な媒体。
(Appendix 13)
The plurality of operations are:
Receiving the feedback from the third party regarding the at least one prioritized API mashup;
Updating the at least one learning model based on the feedback from the third party;
The computer-readable medium according to claim 12, further comprising:

(付記14)
前記複数の動作は、
前記少なくとも1つの優先度付けされたAPIマッシュアップを第三者に提供する動作
をさらに含む、付記8に記載のコンピュータ読み取り可能な媒体。
(Appendix 14)
The plurality of operations are:
The computer-readable medium of clause 8, further comprising: providing the third party with the at least one prioritized API mashup.

(付記15)
複数のAPIを、前記複数のAPIの各APIについての少なくとも1つのキーワードに基づいて、複数のサブクラスタにグループ化する動作と、
前記複数のサブクラスタについての2つ以上のキーワードと実世界データとに基づいて、前記複数のサブクラスタについての複数のキーワード組合せを特定する動作と、
前記複数のキーワード組合せについて、前記複数のAPIのうちの2つ以上のAPIを含む複数の可能なAPIマッシュアップを決定する動作と、
前記複数の可能なAPIマッシュアップを処理して、前記複数の可能なAPIマッシュアップのうち、前記複数のキーワード組合せのうちの少なくとも1つのキーワード組合せに関連付けられた少なくとも1つの優先度付けされたAPIマッシュアップを生成する動作と、
を実行するよう構成されている1つ以上のプロセッサ
を有するシステム。
(Appendix 15)
Grouping a plurality of APIs into a plurality of sub-clusters based on at least one keyword for each API of the plurality of APIs;
Identifying a plurality of keyword combinations for the plurality of sub-clusters based on two or more keywords for the plurality of sub-clusters and real world data;
Determining a plurality of possible API mashups including two or more of the plurality of APIs for the plurality of keyword combinations;
Processing the plurality of possible API mashups and, out of the plurality of possible API mashups, at least one prioritized API associated with at least one keyword combination of the plurality of keyword combinations. Generating mashups,
A system having one or more processors configured to execute.

(付記16)
前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、前記1つ以上のプロセッサは、
APIマッシュアップのAPI組合せの第1のAPIの入力を、該APIマッシュアップの該API組合せの第2のAPIの出力と比較する動作と、
該API組合せの該第1のAPIの入力と該API組合せの該第2のAPIの出力との間の類似度スコアを算出する動作と、
前記類似度スコアが閾値を超える場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定する動作と、
をさらに実行するよう構成されている、付記15に記載のシステム。
(Appendix 16)
For each API combination of each of the plurality of possible API mashups, the one or more processors are:
Comparing the input of the first API of the API combination of the API mashup with the output of the second API of the API combination of the API mashup;
Calculating a similarity score between the input of the first API of the API combination and the output of the second API of the API combination;
When the similarity score exceeds a threshold, the API mashup is designated as a high priority API mashup;
The system of claim 15, wherein the system is further configured to perform.

(付記17)
前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、前記1つ以上のプロセッサは、
APIマッシュアップのAPI組合せについての入力を生成する動作と、
前記の生成された入力に基づいて、該APIマッシュアップが妥当な出力を生成するかどうかを判定する動作と、
前記の生成された出力が妥当である場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定する動作と、
をさらに実行するよう構成されている、付記15に記載のシステム。
(Appendix 17)
For each API combination of each of the plurality of possible API mashups, the one or more processors are:
An action to generate input for API combinations in API mashups;
Determining whether the API mashup generates valid output based on the generated input;
If the generated output is valid, the API mashup is designated as a high priority API mashup;
The system of claim 15, wherein the system is further configured to perform.

(付記18)
前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、前記1つ以上のプロセッサは、
APIマッシュアップのAPI組合せの第1のAPIの出力が、該APIマッシュアップの該API組合せの第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有するかどうかを判定する動作と、
知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在するかどうかを判定する動作と、
前記第1のAPIの出力が、前記第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有する場合、又は、前記知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在する場合、のいずれかにおいて、該APIマッシュアップを高優先度のAPIマッシュアップとして指定する動作と、
をさらに実行するよう構成されている、付記15に記載のシステム。
(Appendix 18)
For each API combination of each of the plurality of possible API mashups, the one or more processors are:
Determining whether the output of the first API of the API combination of the API mashup has a data format that matches the data format of the input of the second API of the API combination of the API mashup;
In the knowledge graph, an operation of determining whether at least one link exists between the output parameter of the first API and the input parameter of the second API;
When the output of the first API has a data format that matches the data format of the input of the second API, or in the knowledge graph, the output parameters of the first API and the second API Designating the API mashup as a high priority API mashup in any of the cases where there is at least one link between the input parameters;
The system of claim 15, wherein the system is further configured to perform.

(付記19)
前記1つ以上のプロセッサは、
第三者からのAPIマッシュアップ要求を受信する動作と、
前記APIマッシュアップ要求を処理して、前記APIマッシュアップ要求についての1つ以上のキーワード組合せを特定する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せを、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと比較する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致することに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致しないことに応じて、
前記少なくとも1つの優先度付けされたAPIマッシュアップを少なくとも1つの学習モデルに伝達する動作と、
前記少なくとも1つの学習モデルを介して、前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであるかどうかを判定する動作と、
前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであると判定したことに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供する動作と、
をさらに実行するよう構成されている、付記15に記載のシステム。
(Appendix 19)
The one or more processors are:
Receiving an API mashup request from a third party;
Processing the API mashup request to identify one or more keyword combinations for the API mashup request;
Comparing the one or more keyword combinations for the API mashup request with the at least one keyword combination for the at least one prioritized API mashup;
The at least one priority in response to the one or more keyword combinations for the API mashup request matching the at least one keyword combination for the at least one prioritized API mashup. Providing the attached API mashup to the third party;
Responsive to the one or more keyword combinations for the API mashup request not matching the at least one keyword combination for the at least one prioritized API mashup;
Communicating the at least one prioritized API mashup to at least one learning model;
Determining whether the at least one prioritized API mashup is a valid API mashup via the at least one learning model;
Providing the third party with the at least one prioritized API mashup in response to determining that the at least one prioritized API mashup is a valid API mashup; When,
The system of claim 15, wherein the system is further configured to perform.

(付記20)
前記1つ以上のプロセッサは、
前記少なくとも1つの優先度付けされたAPIマッシュアップに関する、前記第三者からのフィードバックを受信する動作と、
前記第三者からの前記フィードバックに基づいて、前記少なくとも1つの学習モデルを更新する動作と、
をさらに実行するよう構成されている、付記19に記載のシステム。
(Appendix 20)
The one or more processors are:
Receiving the feedback from the third party regarding the at least one prioritized API mashup;
Updating the at least one learning model based on the feedback from the third party;
The system of claim 19, wherein the system is further configured to perform.

100 APIマッシュアップ生成システム
102 APIデータベース
104 APIマッシュアップ生成器
502 固有表現抽出ツール
504 データ
506 キーワード
508 出力
1202 要求処理ツール
1204 要求
1206 サブクラスタキーワード
1208 出力
1300 コンピューティングシステム
1310 プロセッサ
1320 記憶デバイス
1330 メモリ
1340 通信デバイス
100 API mashup generation system 102 API database 104 API mashup generator 502 Specific expression extraction tool 504 Data 506 Keyword 508 Output 1202 Request processing tool 1204 Request 1206 Subcluster keyword 1208 Output 1300 Computing system 1310 Processor 1320 Storage device 1330 Memory 1340 Communication device

Claims (20)

アプリケーションプログラムインタフェース(API)マッシュアップを生成する方法であって、
少なくとも1つのプロセッサにより、複数のAPIを、前記複数のAPIの各APIについての少なくとも1つのキーワードに基づいて、複数のサブクラスタにグループ化するステップと、
前記少なくとも1つのプロセッサにより、前記複数のサブクラスタについての2つ以上のキーワードと実世界データとに基づいて、前記複数のサブクラスタについての複数のキーワード組合せを特定するステップと、
前記少なくとも1つのプロセッサにより、前記複数のキーワード組合せについて、前記複数のAPIのうちの2つ以上のAPIを含む複数の可能なAPIマッシュアップを決定するステップと、
前記少なくとも1つのプロセッサにより、前記複数の可能なAPIマッシュアップを処理して、前記複数の可能なAPIマッシュアップのうち、前記複数のキーワード組合せのうちの少なくとも1つのキーワード組合せに関連付けられた少なくとも1つの優先度付けされたAPIマッシュアップを生成するステップと、
を含む、方法。
A method of generating an application program interface (API) mashup,
Grouping, by at least one processor, a plurality of APIs into a plurality of sub-clusters based on at least one keyword for each API of the plurality of APIs;
Identifying, by the at least one processor, a plurality of keyword combinations for the plurality of subclusters based on two or more keywords for the plurality of subclusters and real world data;
Determining, by the at least one processor, a plurality of possible API mashups including two or more APIs of the plurality of APIs for the plurality of keyword combinations;
Processing the plurality of possible API mashups by the at least one processor to at least one of the plurality of possible API mashups associated with at least one keyword combination of the plurality of keyword combinations. Generating two prioritized API mashups;
Including a method.
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せの第1のAPIの入力を、該APIマッシュアップの該API組合せの第2のAPIの出力と比較することと、
該API組合せの該第1のAPIの入力と該API組合せの該第2のAPIの出力との間の類似度スコアを算出することと、
前記類似度スコアが閾値を超える場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、請求項1に記載の方法。
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Comparing the input of the first API of the API combination of the API mashup with the output of the second API of the API combination of the API mashup;
Calculating a similarity score between the input of the first API of the API combination and the output of the second API of the API combination;
If the similarity score exceeds a threshold, designating the API mashup as a high priority API mashup;
The method of claim 1 comprising:
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せについての入力を生成することと、
前記の生成された入力に基づいて、該APIマッシュアップが妥当な出力を生成するかどうかを判定することと、
前記の生成された出力が妥当である場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、請求項1に記載の方法。
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Generating input for API combinations for API mashups;
Determining whether the API mashup produces valid output based on the generated input;
If the generated output is valid, designating the API mashup as a high priority API mashup;
The method of claim 1 comprising:
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せの第1のAPIの出力が、該APIマッシュアップの該API組合せの第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有するかどうかを判定することと、
知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在するかどうかを判定することと、
前記第1のAPIの出力が、前記第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有する場合、又は、前記知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在する場合、のいずれかにおいて、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、請求項1に記載の方法。
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Determining whether the output of the first API of the API combination of the API mashup has a data format that matches the data format of the input of the second API of the API combination of the API mashup;
In the knowledge graph, determining whether there is at least one link between the output parameter of the first API and the input parameter of the second API;
When the output of the first API has a data format that matches the data format of the input of the second API, or in the knowledge graph, the output parameters of the first API and the second API Designating the API mashup as a high-priority API mashup in any of the cases where there is at least one link between the input parameters;
The method of claim 1 comprising:
第三者からのAPIマッシュアップ要求を受信するステップと、
前記少なくとも1つのプロセッサにより、前記APIマッシュアップ要求を処理して、前記APIマッシュアップ要求についての1つ以上のキーワード組合せを特定するステップと、
前記少なくとも1つのプロセッサにより、前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せを、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと比較するステップと、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致することに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供するステップと、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致しないことに応じて、
前記少なくとも1つの優先度付けされたAPIマッシュアップを少なくとも1つの学習モデルに伝達するステップと、
前記少なくとも1つの学習モデルを介して、前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであるかどうかを判定するステップと、
前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであると判定したことに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供するステップと、
をさらに含む、請求項1に記載の方法。
Receiving an API mashup request from a third party;
Processing the API mashup request by the at least one processor to identify one or more keyword combinations for the API mashup request;
Comparing, by the at least one processor, the one or more keyword combinations for the API mashup request with the at least one keyword combination for the at least one prioritized API mashup;
The at least one priority in response to the one or more keyword combinations for the API mashup request matching the at least one keyword combination for the at least one prioritized API mashup. Providing the attached API mashup to the third party;
Responsive to the one or more keyword combinations for the API mashup request not matching the at least one keyword combination for the at least one prioritized API mashup;
Communicating the at least one prioritized API mashup to at least one learning model;
Determining whether the at least one prioritized API mashup is a valid API mashup via the at least one learning model;
Providing the at least one prioritized API mashup to the third party in response to determining that the at least one prioritized API mashup is a valid API mashup; When,
The method of claim 1, further comprising:
前記少なくとも1つの優先度付けされたAPIマッシュアップに関する、前記第三者からのフィードバックを受信するステップと、
前記第三者からの前記フィードバックに基づいて、前記少なくとも1つの学習モデルを更新するステップと、
をさらに含む、請求項5に記載の方法。
Receiving feedback from the third party regarding the at least one prioritized API mashup;
Updating the at least one learning model based on the feedback from the third party;
The method of claim 5, further comprising:
前記少なくとも1つの優先度付けされたAPIマッシュアップを第三者に提供するステップ
をさらに含む、請求項1に記載の方法。
The method of claim 1, further comprising: providing the at least one prioritized API mashup to a third party.
命令を含む1つ以上の非一時的なコンピュータ読み取り可能な媒体であって、前記命令は、1つ以上の処理システムにより実行されたときに、前記1つ以上の処理システムに複数の動作を実行させるよう構成されており、前記複数の動作は、
複数のAPIを、前記複数のAPIの各APIについての少なくとも1つのキーワードに基づいて、複数のサブクラスタにグループ化する動作と、
前記複数のサブクラスタについての2つ以上のキーワードと実世界データとに基づいて、前記複数のサブクラスタについての複数のキーワード組合せを特定する動作と、
前記複数のキーワード組合せについて、前記複数のAPIのうちの2つ以上のAPIを含む複数の可能なAPIマッシュアップを決定する動作と、
前記複数の可能なAPIマッシュアップを処理して、前記複数の可能なAPIマッシュアップのうち、前記複数のキーワード組合せのうちの少なくとも1つのキーワード組合せに関連付けられた少なくとも1つの優先度付けされたAPIマッシュアップを生成する動作と、
を含む、コンピュータ読み取り可能な媒体。
One or more non-transitory computer readable media containing instructions, the instructions performing a plurality of operations on the one or more processing systems when executed by the one or more processing systems And the plurality of operations are configured as follows:
Grouping a plurality of APIs into a plurality of sub-clusters based on at least one keyword for each API of the plurality of APIs;
Identifying a plurality of keyword combinations for the plurality of sub-clusters based on two or more keywords for the plurality of sub-clusters and real world data;
Determining a plurality of possible API mashups including two or more of the plurality of APIs for the plurality of keyword combinations;
Processing the plurality of possible API mashups and, out of the plurality of possible API mashups, at least one prioritized API associated with at least one keyword combination of the plurality of keyword combinations. Generating mashups,
A computer-readable medium including:
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せの第1のAPIの入力を、該APIマッシュアップの該API組合せの第2のAPIの出力と比較することと、
該API組合せの該第1のAPIの入力と該API組合せの該第2のAPIの出力との間の類似度スコアを算出することと、
前記類似度スコアが閾値を超える場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、請求項8に記載のコンピュータ読み取り可能な媒体。
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Comparing the input of the first API of the API combination of the API mashup with the output of the second API of the API combination of the API mashup;
Calculating a similarity score between the input of the first API of the API combination and the output of the second API of the API combination;
If the similarity score exceeds a threshold, designating the API mashup as a high priority API mashup;
The computer-readable medium of claim 8, comprising:
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せについての入力を生成することと、
前記の生成された入力に基づいて、該APIマッシュアップが妥当な出力を生成するかどうかを判定することと、
前記の生成された出力が妥当である場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、請求項8に記載のコンピュータ読み取り可能な媒体。
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Generating input for API combinations for API mashups;
Determining whether the API mashup produces valid output based on the generated input;
If the generated output is valid, designating the API mashup as a high priority API mashup;
The computer-readable medium of claim 8, comprising:
前記複数の可能なAPIマッシュアップを処理することは、前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、
APIマッシュアップのAPI組合せの第1のAPIの出力が、該APIマッシュアップの該API組合せの第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有するかどうかを判定することと、
知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在するかどうかを判定することと、
前記第1のAPIの出力が、前記第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有する場合、又は、前記知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在する場合、のいずれかにおいて、該APIマッシュアップを高優先度のAPIマッシュアップとして指定することと、
を含む、請求項8に記載のコンピュータ読み取り可能な媒体。
Processing the plurality of possible API mashups for each API combination of each API mashup of the plurality of possible API mashups,
Determining whether the output of the first API of the API combination of the API mashup has a data format that matches the data format of the input of the second API of the API combination of the API mashup;
In the knowledge graph, determining whether there is at least one link between the output parameter of the first API and the input parameter of the second API;
When the output of the first API has a data format that matches the data format of the input of the second API, or in the knowledge graph, the output parameters of the first API and the second API Designating the API mashup as a high-priority API mashup in any of the cases where there is at least one link between the input parameters;
The computer-readable medium of claim 8, comprising:
前記複数の動作は、
第三者からのAPIマッシュアップ要求を受信する動作と、
前記APIマッシュアップ要求を処理して、前記APIマッシュアップ要求についての1つ以上のキーワード組合せを特定する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せを、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと比較する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致することに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致しないことに応じて、
前記少なくとも1つの優先度付けされたAPIマッシュアップを少なくとも1つの学習モデルに伝達する動作と、
前記少なくとも1つの学習モデルを介して、前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであるかどうかを判定する動作と、
前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであると判定したことに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供する動作と、
をさらに含む、請求項8に記載のコンピュータ読み取り可能な媒体。
The plurality of operations are:
Receiving an API mashup request from a third party;
Processing the API mashup request to identify one or more keyword combinations for the API mashup request;
Comparing the one or more keyword combinations for the API mashup request with the at least one keyword combination for the at least one prioritized API mashup;
The at least one priority in response to the one or more keyword combinations for the API mashup request matching the at least one keyword combination for the at least one prioritized API mashup. Providing the attached API mashup to the third party;
Responsive to the one or more keyword combinations for the API mashup request not matching the at least one keyword combination for the at least one prioritized API mashup;
Communicating the at least one prioritized API mashup to at least one learning model;
Determining whether the at least one prioritized API mashup is a valid API mashup via the at least one learning model;
Providing the third party with the at least one prioritized API mashup in response to determining that the at least one prioritized API mashup is a valid API mashup; When,
The computer-readable medium of claim 8, further comprising:
前記複数の動作は、
前記少なくとも1つの優先度付けされたAPIマッシュアップに関する、前記第三者からのフィードバックを受信する動作と、
前記第三者からの前記フィードバックに基づいて、前記少なくとも1つの学習モデルを更新する動作と、
をさらに含む、請求項12に記載のコンピュータ読み取り可能な媒体。
The plurality of operations are:
Receiving the feedback from the third party regarding the at least one prioritized API mashup;
Updating the at least one learning model based on the feedback from the third party;
The computer-readable medium of claim 12, further comprising:
前記複数の動作は、
前記少なくとも1つの優先度付けされたAPIマッシュアップを第三者に提供する動作
をさらに含む、請求項8に記載のコンピュータ読み取り可能な媒体。
The plurality of operations are:
The computer-readable medium of claim 8, further comprising: providing the third party with the at least one prioritized API mashup.
複数のAPIを、前記複数のAPIの各APIについての少なくとも1つのキーワードに基づいて、複数のサブクラスタにグループ化する動作と、
前記複数のサブクラスタについての2つ以上のキーワードと実世界データとに基づいて、前記複数のサブクラスタについての複数のキーワード組合せを特定する動作と、
前記複数のキーワード組合せについて、前記複数のAPIのうちの2つ以上のAPIを含む複数の可能なAPIマッシュアップを決定する動作と、
前記複数の可能なAPIマッシュアップを処理して、前記複数の可能なAPIマッシュアップのうち、前記複数のキーワード組合せのうちの少なくとも1つのキーワード組合せに関連付けられた少なくとも1つの優先度付けされたAPIマッシュアップを生成する動作と、
を実行するよう構成されている1つ以上のプロセッサ
を有するシステム。
Grouping a plurality of APIs into a plurality of sub-clusters based on at least one keyword for each API of the plurality of APIs;
Identifying a plurality of keyword combinations for the plurality of sub-clusters based on two or more keywords for the plurality of sub-clusters and real world data;
Determining a plurality of possible API mashups including two or more of the plurality of APIs for the plurality of keyword combinations;
Processing the plurality of possible API mashups and, out of the plurality of possible API mashups, at least one prioritized API associated with at least one keyword combination of the plurality of keyword combinations. Generating mashups,
A system having one or more processors configured to execute.
前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、前記1つ以上のプロセッサは、
APIマッシュアップのAPI組合せの第1のAPIの入力を、該APIマッシュアップの該API組合せの第2のAPIの出力と比較する動作と、
該API組合せの該第1のAPIの入力と該API組合せの該第2のAPIの出力との間の類似度スコアを算出する動作と、
前記類似度スコアが閾値を超える場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定する動作と、
をさらに実行するよう構成されている、請求項15に記載のシステム。
For each API combination of each of the plurality of possible API mashups, the one or more processors are:
Comparing the input of the first API of the API combination of the API mashup with the output of the second API of the API combination of the API mashup;
Calculating a similarity score between the input of the first API of the API combination and the output of the second API of the API combination;
When the similarity score exceeds a threshold, the API mashup is designated as a high priority API mashup;
The system of claim 15, further configured to perform:
前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、前記1つ以上のプロセッサは、
APIマッシュアップのAPI組合せについての入力を生成する動作と、
前記の生成された入力に基づいて、該APIマッシュアップが妥当な出力を生成するかどうかを判定する動作と、
前記の生成された出力が妥当である場合、該APIマッシュアップを高優先度のAPIマッシュアップとして指定する動作と、
をさらに実行するよう構成されている、請求項15に記載のシステム。
For each API combination of each of the plurality of possible API mashups, the one or more processors are:
An action to generate input for API combinations in API mashups;
Determining whether the API mashup generates valid output based on the generated input;
If the generated output is valid, the API mashup is designated as a high priority API mashup;
The system of claim 15, further configured to perform:
前記複数の可能なAPIマッシュアップの各APIマッシュアップの各API組合せについて、前記1つ以上のプロセッサは、
APIマッシュアップのAPI組合せの第1のAPIの出力が、該APIマッシュアップの該API組合せの第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有するかどうかを判定する動作と、
知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在するかどうかを判定する動作と、
前記第1のAPIの出力が、前記第2のAPIの入力のデータフォーマットと合致するデータフォーマットを有する場合、又は、前記知識グラフにおいて、前記第1のAPIの出力パラメータと前記第2のAPIの入力パラメータとの間に少なくとも1つのリンクが存在する場合、のいずれかにおいて、該APIマッシュアップを高優先度のAPIマッシュアップとして指定する動作と、
をさらに実行するよう構成されている、請求項15に記載のシステム。
For each API combination of each of the plurality of possible API mashups, the one or more processors are:
Determining whether the output of the first API of the API combination of the API mashup has a data format that matches the data format of the input of the second API of the API combination of the API mashup;
In the knowledge graph, an operation of determining whether at least one link exists between the output parameter of the first API and the input parameter of the second API;
When the output of the first API has a data format that matches the data format of the input of the second API, or in the knowledge graph, the output parameters of the first API and the second API Designating the API mashup as a high priority API mashup in any of the cases where there is at least one link between the input parameters;
The system of claim 15, further configured to perform:
前記1つ以上のプロセッサは、
第三者からのAPIマッシュアップ要求を受信する動作と、
前記APIマッシュアップ要求を処理して、前記APIマッシュアップ要求についての1つ以上のキーワード組合せを特定する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せを、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと比較する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致することに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供する動作と、
前記APIマッシュアップ要求についての前記1つ以上のキーワード組合せが、前記少なくとも1つの優先度付けされたAPIマッシュアップについての前記少なくとも1つのキーワード組合せと合致しないことに応じて、
前記少なくとも1つの優先度付けされたAPIマッシュアップを少なくとも1つの学習モデルに伝達する動作と、
前記少なくとも1つの学習モデルを介して、前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであるかどうかを判定する動作と、
前記少なくとも1つの優先度付けされたAPIマッシュアップが、妥当なAPIマッシュアップであると判定したことに応じて、前記少なくとも1つの優先度付けされたAPIマッシュアップを前記第三者に提供する動作と、
をさらに実行するよう構成されている、請求項15に記載のシステム。
The one or more processors are:
Receiving an API mashup request from a third party;
Processing the API mashup request to identify one or more keyword combinations for the API mashup request;
Comparing the one or more keyword combinations for the API mashup request with the at least one keyword combination for the at least one prioritized API mashup;
The at least one priority in response to the one or more keyword combinations for the API mashup request matching the at least one keyword combination for the at least one prioritized API mashup. Providing the attached API mashup to the third party;
Responsive to the one or more keyword combinations for the API mashup request not matching the at least one keyword combination for the at least one prioritized API mashup;
Communicating the at least one prioritized API mashup to at least one learning model;
Determining whether the at least one prioritized API mashup is a valid API mashup via the at least one learning model;
Providing the third party with the at least one prioritized API mashup in response to determining that the at least one prioritized API mashup is a valid API mashup; When,
The system of claim 15, further configured to perform:
前記1つ以上のプロセッサは、
前記少なくとも1つの優先度付けされたAPIマッシュアップに関する、前記第三者からのフィードバックを受信する動作と、
前記第三者からの前記フィードバックに基づいて、前記少なくとも1つの学習モデルを更新する動作と、
をさらに実行するよう構成されている、請求項19に記載のシステム。
The one or more processors are:
Receiving the feedback from the third party regarding the at least one prioritized API mashup;
Updating the at least one learning model based on the feedback from the third party;
The system of claim 19, further configured to perform:
JP2018120664A 2017-07-03 2018-06-26 Application program interface mash-up generation Pending JP2019016352A (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US15/641,196 US10191786B2 (en) 2017-07-03 2017-07-03 Application program interface mashup generation
US15/641196 2017-07-03
US201762529458P 2017-07-06 2017-07-06
US62/529458 2017-07-06
US15/727540 2017-10-06
US15/727,540 US10430255B2 (en) 2017-07-03 2017-10-06 Application program interface mashup generation

Publications (1)

Publication Number Publication Date
JP2019016352A true JP2019016352A (en) 2019-01-31

Family

ID=65359351

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018120664A Pending JP2019016352A (en) 2017-07-03 2018-06-26 Application program interface mash-up generation

Country Status (1)

Country Link
JP (1) JP2019016352A (en)

Similar Documents

Publication Publication Date Title
US10430255B2 (en) Application program interface mashup generation
US11599714B2 (en) Methods and systems for modeling complex taxonomies with natural language understanding
US11361243B2 (en) Recommending machine learning techniques, features, and feature relevance scores
US10699080B2 (en) Capturing rich response relationships with small-data neural networks
RU2678716C1 (en) Use of autoencoders for learning text classifiers in natural language
US10726025B2 (en) Standardized entity representation learning for smart suggestions
US10855784B2 (en) Entity based search retrieval and ranking
US10956414B2 (en) Entity based query filtering
US11017002B2 (en) Description matching for application program interface mashup generation
US20230139783A1 (en) Schema-adaptable data enrichment and retrieval
WO2019236360A1 (en) Taxonomy enrichment using ensemble classifiers
US9251270B2 (en) Grouping search results into a profile page
CN111539197A (en) Text matching method and device, computer system and readable storage medium
KR20200096133A (en) Method, apparatus and device for constructing data model, and medium
WO2015077942A1 (en) Relationship extraction
US10198497B2 (en) Search term clustering
US10191786B2 (en) Application program interface mashup generation
JP2022088540A (en) Method for generating user interest image, device, electronic apparatus and storage medium
CN113609847B (en) Information extraction method, device, electronic equipment and storage medium
WO2023142417A1 (en) Webpage identification method and apparatus, electronic device, and medium
US9195940B2 (en) Jabba-type override for correcting or improving output of a model
US20210311985A1 (en) Method and apparatus for image processing, electronic device, and computer readable storage medium
US20220318230A1 (en) Text to question-answer model system
JP2019016352A (en) Application program interface mash-up generation
CN113868424A (en) Text theme determining method and device, computer equipment and storage medium