summaryrefslogtreecommitdiff
path: root/public/presentations/opentox-dublin/api.rst
blob: 2763b50f4bc2dd45e8c9bea040d02e9f2b77d283 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
.. |date| date::

=========================
OpenTox API Working Group
=========================

.. :Date:    30 September 2015

.. University College Dublin, Dublin, Ireland

.. https://docs.google.com/document/d/153ip9ll_pzqMphoJ4d608ujd5GuYysZcTDAODsrXsrc/edit

Workshop Objectives
===================

Capture 
  - service provider (developer) experiences
  - service consumer (client) experiences

Identify open issues

Resolve open issues

Unify and update API documentation

OpenTox
=======

http://opentox.org/dev/apis/api-1.2

Focus on predictive toxicology 

REST interfaces for: Compound, Feature, Dataset, Algorithm, Model, Validation, Report, Ontology, Task, Authentication and Authorisation

RDF representation

ToxBank
=======

http://api.toxbank.net

Extensions for capturing bioassay data 

Additional objects: Alert, Data, Index, Investigation, Organisation, Project, Protocol, Search, Session, Template, User.

RDF representation, ISA-Tab (http://isatab.sourceforge.net/format.html)

eNanoMapper
===========

IDEA: http://enanomapper.github.io/API

NTUA: http://app.jaqpot.org:8080/jaqpot/swagger

IST: https://enm.in-silico.ch/api/dist

Extensions for capturing nanomaterial data

Additional objects: Bundle, Myaccount, Property, Query, Substance, Substanceowner, Pmml, Bibtex

JSON representation


Developer experiences
=====================

(De)Serialisation of large datasets/investigations
==================================================

  - system/infrastructure limitations (time, memory, database/webserver size limits, ...)
  - impossible for RDF (performance of RDF parsers/serializers, markup size)
  - even JSON markup can cause problems
  - we propose CSV/TSV as data exchange format for datasets
    
Complexity of the one webservice/class model
============================================

  - code separation, maintenance
  - performance penalties caused by suboptimal data structures
  - performance penalties of webservices (data (de)serialisation)
  - complicated server infrastructure

Communication with external services
====================================

  - ad hoc requests for features that deviate from official API
  - reliablity/availability of external services
  - undocumented API details
  - undocumented/silent API/data format changes 
  - no common strategy for conflict resolution, API or data representation updates

Local service deployment (e.g. for in house services)
=====================================================

  - installation far from straightforward
  - management of additional server instances
  - duplication of functionality, bloat
  - update strategy

Documentation
=============

  - scattered/outdated documentation
  - maintenance
    - too many places to consider (error prone)
    - ideally autogenerated from code
  - ideally combined with tests (availability, API coverage, API compliance)

Client experiences
==================

Open issues
===========

Workflow for
  - API unification and updates
  - issue and conflict reporting/resolution

Documentation
  - location
  - format (Swagger, Wiki, ...)
  - maintenance
  - link to inventories, tests 

...

OpenTox APIs
============

http://opentox.org/dev/apis/api-1.2

http://api.toxbank.net

http://enanomapper.github.io/API

http://app.jaqpot.org:8080/jaqpot/swagger

https://enm.in-silico.ch/api/dist


Next steps
==========