You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -143,7 +144,7 @@ <h3>Vision for API Interoperability</h3>
143
144
144
145
<p><i><u>Modular.</u></i> In order to facilitate the interaction between a client and different APIs, as well as the process to design and describe them, we propose to build Web APIs out of reusable features rather than as monolithic structures. A feature is an independent part of an interface that identifies, describes, and affords a certain kind of interaction across Web APIs. Through repositories of features, and by encouraging their reuse, APIs with similar functional blocks can provide the same features as others. For example, functionality to navigate and/or edit lists of things is present in many APIs, but currently exposed through many different interfaces. By reusing a generic feature for lists, a client designed for the list feature can use any of those APIs as opposed to only one. This means we can focus our descriptive efforts on features rather than APIs, and the description of features can be reused across APIs. In addition, features can be tested and evaluated for performance under varying circumstances, such that API designers can estimate the impact of incorporating a certain feature, whereas this currently only surfaces after implementation and usage.</p>
145
146
146
-
<p>The <ahref="https://openapis.org/">Open API Initiative</a> aims to create, develop, and promote an API description format based on the Swagger Specification. The BD2K API Interoperability working group has reviewed that standard by conducting a survey of metadata use in the real world (refer to Survey of API Metadata in the Wild section below), and has developed the smartAPI Specification as an extension of the Open API Initiative. The smartAPI Specification includes 19 metadata elements beyond those included in the Open API Initiative. Examples of the 19 elements are category to which the API belongs, metadata format and access mode at the API metadata level, the parameter type and parameter value type at the operation parameter level, and the conformance to a specified response profile at the operation response level.</p>
147
+
<p>The <ahref="https://openapis.org/"target="_blank">Open API Initiative</a> aims to create, develop, and promote an API description format based on the Swagger Specification. The BD2K API Interoperability working group has reviewed that standard by conducting a survey of metadata use in the real world (refer to Survey of API Metadata in the Wild section below), and has developed the smartAPI Specification as an extension of the Open API Initiative. The smartAPI Specification includes 19 metadata elements beyond those included in the Open API Initiative. Examples of the 19 elements are category to which the API belongs, metadata format and access mode at the API metadata level, the parameter type and parameter value type at the operation parameter level, and the conformance to a specified response profile at the operation response level.</p>
147
148
148
149
<p>Because every API currently requires unique hardcoded clients, the costs of development are consequently inflated and compatibility across APIs is hindered (Verborgh and Dumontier 2016). To address these shortcomings, the smartAPI Specification aims to establish a universal standard that can be employed by API developers.</p>
149
150
</p>
@@ -162,29 +163,28 @@ <h3>Survey of API Metadata in the Wild</h3>
162
163
<p>This Standard is the result of a survey by the Working Group of existing metadata repositories and specifications that describe APIs. The following eight resources were surveyed:</p>
163
164
164
165
<ul><i>Repositories:</i>
165
-
<li><ahref="http://biocatalogue.org">Biocatalogue</a>, a registry of biological web services with 1,184 services.</li>
166
-
<li><ahref="http://www.programmableweb.com/apis/directory">Programmable Web</a>, a directory of internet-based APIs with over 15,000 API descriptions.</li>
167
-
<li><ahref="https://bio.tools/">Tools & Data Services Registry</a>, a registry with information about analytical tools and data services for bioinformatics with 2,331 entries.</li>
166
+
<li><ahref="http://biocatalogue.org"target="_blank">Biocatalogue</a>, a registry of biological web services with 1,184 services.</li>
167
+
<li><ahref="http://www.programmableweb.com/apis/directory"target="_blank">Programmable Web</a>, a directory of internet-based APIs with over 15,000 API descriptions.</li>
168
+
<li><ahref="https://bio.tools/"target="_blank">Tools & Data Services Registry</a>, a registry with information about analytical tools and data services for bioinformatics with 2,331 entries.</li>
168
169
</ul>
169
170
<ul><i>Specifications:</i>
170
-
<li><ahref="http://www.softwarediscoveryindex.org/">Minimal Information About a Software</a>, a key set of minimal fields can that provide maximum value when describing a software.</li>
171
-
<li><ahref="http://smart-api.info/website/docs/specification/">smartAPI specification</a>, a specification that describes a semantically annotated web service that facilitates discovery and reuse of web-based API.</li>
172
-
<li><ahref="https://github.com/OAI/OpenAPI-Specification/blob/OpenAPI.next/versions/3.0.md">openAPI Initiative</a>, created by a consortium of forward-looking industry experts who recognize the immense value of standardizing on how REST APIs are described.</li>
173
-
<li><ahref="https://rawgit.com/wilkinsonlab/SADI-Specification/master/SADI-W3C-Member-Submission.html#service-metadata">Semantic Automated Discovery and Integration</a>, a set of design patterns defining the behavior of data retrieval and/or analysis resources that must interoperate on the Semantic Web.</li>
171
+
<li><ahref="http://www.softwarediscoveryindex.org/"target="_blank">Minimal Information About a Software</a>, a key set of minimal fields can that provide maximum value when describing a software.</li>
172
+
<li><ahref="http://smart-api.info/website/docs/specification/"target="_blank">smartAPI specification</a>, a specification that describes a semantically annotated web service that facilitates discovery and reuse of web-based API.</li>
173
+
<li><ahref="https://github.com/OAI/OpenAPI-Specification/blob/OpenAPI.next/versions/3.0.md"target="_blank">openAPI Initiative</a>, created by a consortium of forward-looking industry experts who recognize the immense value of standardizing on how REST APIs are described.</li>
174
+
<li><ahref="https://rawgit.com/wilkinsonlab/SADI-Specification/master/SADI-W3C-Member-Submission.html#service-metadata"target="_blank">Semantic Automated Discovery and Integration</a>, a set of design patterns defining the behavior of data retrieval and/or analysis resources that must interoperate on the Semantic Web.</li>
174
175
<li><ahref="https://schema.org/APIReference">schema.org API Reference</a>, a reference document for APIs as described by schema.org.
175
176
</ul>
176
177
177
178
<p>We subsequently aggregated all the metadata elements from all eight resources to produce a common list of 63 API metadata elements. We further divided these elements into five categories:
<p>Next, we discussed each of the metadata field amongst the working group members to re-evaluate its applicability and relevance and further classified them into whether it MUST, SHOULD, or MAY be included in the API description. The cardinality and datatype of metadata field were further specified along with a description and example. The results of the survey are available <ahref="https://goo.gl/wKR51W">here</a>. The key words "MUST", "SHOULD", and "MAY" in this document are to be interpreted as described in <ahref="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119</a>.</p>
187
+
<p>Next, we discussed each of the metadata field amongst the working group members to re-evaluate its applicability and relevance and further classified them into whether it MUST, SHOULD, or MAY be included in the API description. The cardinality and datatype of metadata field were further specified along with a description and example. The results of the survey are available <ahref="https://goo.gl/wKR51W"target="_blank">here</a>. The key words "MUST", "SHOULD", and "MAY" in this document are to be interpreted as described in <ahref="http://www.ietf.org/rfc/rfc2119.txt" target="_blank">RFC 2119</a>.</p>
188
188
</section>
189
189
190
190
<section>
@@ -198,38 +198,23 @@ <h2>Audience</h2>
198
198
<h2>Vision for the Implementation for the smartAPI specification</h2>
199
199
<p>The ultimate aim of the BD2K API Interoperability Working Group is to develop a strategy for maximizing interoperability and reuse of web-based biomedical APIs. The widespread adoption of the smartAPI Specification by the community promises to improve the efficiency and lower the costs of API development, promoting cross-API compatibility and resolving current challenges in API usage.</p>
200
200
201
-
<p>Information about the implementation of the smartAPI Specification and options for enhancing API interoperability is available <ahref="https://docs.google.com/document/d/1Jr8a2R9CaxgpZoSrC6JeHFBg4x8SRBrxxsFc4_Ozzc8/edit#">here</a>.</p>
<p>Information about the implementation of the smartAPI Specification and options for enhancing API interoperability is available <ahref="https://docs.google.com/document/d/1Jr8a2R9CaxgpZoSrC6JeHFBg4x8SRBrxxsFc4_Ozzc8/edit#" target="_blank">here</a>.</p>
<li>SADI framework for semantic web services (<ahref="https://rawgit.com/wilkinsonlab/SADI-Specification/master/SADI-W3C-Member-Submission.html">https://rawgit.com/wilkinsonlab/SADI-Specification/master/SADI-W3C-Member-Submission.html</a>)</li>
1339
+
<li>Open description format for APIs (<ahref="https://openapis.org/"target="_blank">https://openapis.org/</a>)</li>
1340
+
<li>W3C community group for hypermedia-driven APIs in RDF (<ahref="http://www.hydra-cg.com/"target="_blank">http://www.hydra-cg.com/</a>)</li>
<li>SADI framework for semantic web services (<ahref="https://rawgit.com/wilkinsonlab/SADI-Specification/master/SADI-W3C-Member-Submission.html"target="_blank">https://rawgit.com/wilkinsonlab/SADI-Specification/master/SADI-W3C-Member-Submission.html</a>)</li>
0 commit comments