OpenChemistry / 42

The answer
0 stars 0 forks source link

Search API and interfaces to it #11

Open cryos opened 5 years ago

cryos commented 5 years ago

The current state is that endpoints such as molecules, calculations will return all elements in the database which will not scale, or they can search on name, inchi etc. Our search capabilities are also quite limited at present. I would say on the backend we want to support search with some common features across our different collections/endpoints:

The returned data should follow a similar pattern too, with a JSON object containing high level summary of the results, and a results array containing result objects:

{
  "matches": 42,
  "limit": 2,
  "offset": 0,
  "results": [ { ... }, { ... } ]
}

I think we need to work on extending our concept of users to include some useful data such as ORCID, Twitter username, etc that can be set publicly so that you might search on a name, ORCID, etc to see results for that person in molecules, calculations, ... There are a few things we should try and get working in search too, including queries like USER AND heavy atom count = 10, > 10, etc. Same for molecular weight, formula, InChI, InChI key, SMILES.

I think starting with molecules search is good as it is simpler, then calculations doing things like calculations run by Marcus using NWChem or Psi4 sorted by most recent would be good to think about. These should come after the card stuff, and it likely needs further discussion but writing down some ideas.

cjh1 commented 5 years ago

@psavery