Closed tschaffter closed 4 years ago
bio.tools has a fairly well defined schema* that includes a list of tool types.
Doesn't seem to be obviously connected to any sort of standards or ontologies (which could be OK), but probably a useful starting point:
*bonus points if you can figure out how to convert it to something other than "XSD" 🤕
<uiTip>Type of application software. A tool may have more than one type.</uiTip>
<biotoolsUsage>Basic details</biotoolsUsage>
<enum>
<enumItem>
<term>Command-line tool</term>
<uiTip>A tool with a text-based (command-line) interface.</uiTip>
</enumItem>
<enumItem>
<term>Database portal</term>
<uiTip>A Web application, suite or workbench providing a portal to a biological database.</uiTip>
</enumItem>
<enumItem>
<term>Desktop application</term>
<uiTip>A tool with a graphical user interface that runs on your desktop environment, e.g. on a PC or mobile device.</uiTip>
</enumItem>
<enumItem>
<term>Library</term>
<uiTip>A collection of components that are used to construct other tools. bio.tools scope includes component libraries performing high-level bioinformatics functions but excludes lower-level programming libraries.</uiTip>
</enumItem>
<enumItem>
<term>Ontology</term>
<uiTip>A collection of information about concepts, including terms, synonyms, descriptions etc.</uiTip>
</enumItem>
<enumItem>
<term>Plug-in</term>
<uiTip>A software component encapsulating a set of related functions, which are not standalone but depend upon (and typically extend the function of) other software for its use, e.g. a JavaScript widget, plug-in, extension or add-on.</uiTip>
</enumItem>
<enumItem>
<term>Script</term>
<uiTip>A tool written for some run-time environment (e.g. other applications or an OS shell) that automates the execution of tasks. Often a small program written in a general-purpose languages (e.g. Perl, Python) or some domain-specific languages (e.g. sed).</uiTip>
</enumItem>
<enumItem>
<term>SPARQL endpoint</term>
<uiTip>A service that provides queries over an RDF knowledge base via the SPARQL query language and protocol, and returns results via HTTP.</uiTip>
</enumItem>
<enumItem>
<term>Suite</term>
<uiTip>A collection of tools which are bundled together into a convenient toolkit. Such tools typically share related functionality, a common user interface and can exchange data conveniently. This includes collections of stand-alone command-line tools, or Web applications within a common portal.</uiTip>
</enumItem>
<enumItem>
<term>Web application</term>
<uiTip>A tool with a graphical user interface that runs in your Web browser.</uiTip>
</enumItem>
<enumItem>
<term>Web API</term>
<uiTip>An application programming interface (API) consisting of endpoints to a request-response message system accessible via HTTP. Includes everything from simple data-access URLs to RESTful APIs.</uiTip>
</enumItem>
<enumItem>
<term>Web service</term>
<uiTip>An API described in a machine readable form (typically WSDL) providing programmatic access via SOAP over HTTP.</uiTip>
</enumItem>
<enumItem>
<term>Workbench</term>
<uiTip>An application or suite with a graphical user interface, providing an integrated environment for data analysis which includes or may be extended with any number of functions or tools. Includes workflow systems, platforms, frameworks etc.</uiTip>
</enumItem>
<enumItem>
<term>Workflow</term>
<uiTip>A set of tools which have been composed together into a pipeline of some sort. Such tools are (typically) standalone, but are composed for convenience, for instance for batch execution via some workflow engine or script.</uiTip>
</enumItem>
</enum>
The Software Ontology (SWO) also includes types useful to characterize tools.
Special cases are: a) An operation that consumes no input (has no input arguments). Such an operation is either a constant function, or an operation depending only on the underlying state. b) An operation that may modify the underlying state but has no output. c) The singular-case operation with no input or output, that still may modify the underlying state.
Annotations of interest (most of them having sub-annotations):
These entities are capture here: https://docs.google.com/document/d/1mt69WTSPWKVNkvZz__YMCCfB6awNozr6u7pmIz6Z7mI/edit#bookmark=id.dl3bwxdq8bg2
@jaeddy I think that bio-tools/biotoolsSchema
is a practical and modern/up-to-date starting point. biotoolsSchema
does include references to ontologies, one of them being the EDAM ontology.
I'll try to put in a spreadsheet relevant content from https://github.com/bio-tools/biotoolsSchema/blob/master/stable/biotools.xsd.
The next step is to study carefully the schemas defined by bio.tools (#8 ).
Make a list of the types of tools that the registry could support. Examples include Rython script, R script, Docker image, web service, API, etc.
Tasks
gitForager
grouped by organizations (http://labs.cd2h.org/gitforager/search/search_list.jsp)