gyorilab / indra_db

A Database-based knowledge back-end built on and for INDRA. The INDRA Database is a service that can be set up by any user with their own content and knowledge access. Our implementation of the database is the back-end to many of our projects, providing a vast and detailed knowledge base derived from many resources.
GNU General Public License v3.0
16 stars 10 forks source link

Update the server-client relationship between INDRA and INDRA DB #161

Closed pagreene closed 3 years ago

pagreene commented 3 years ago

This PR goes along with a PR in INDRA to update INDRA's client to the database REST service. In particular, this ensures that INDRA remains strictly upstream of the INDRA Database in code, although the database API is downstream of INDRA via the service.

This PR adds a simple_json paradigm for building queries that is simpler to construct, allowing the complex query resolution to be solely developed within the indra_db code. In particular, rather than having Intersections and Unions, the simple JSON simply uses "AND" and "OR" strings to represent the logical over-loaded operations between the query JSONs.

In addition, the Response objects are moved into INDRA, and it has become the job of INDRA_DB to meet whatever standard INDRA imposes with regard to the metadata returned by the database queries.

Lastly, in connection with the above, the responses from database queries were further standardized to ensure that a source_counts attribute is present for all response data types.

pagreene commented 3 years ago

This is the corresponding PR in INDRA: https://github.com/sorgerlab/indra/pull/1228

pagreene commented 3 years ago

This PR has been replaced with a more comprehensive one: https://github.com/indralab/indra_db/pull/167