Proposal:
The two main routes to be merge back to master biolink-api:
/ontology/ribbon : fetch a ribbon summary (see ribbon data model) . This query requires the handling of several parameters currently not accepted by the GOLrAssociationQuery (eg exclude IBA, PB, cross aspect mapping)
/ontology/subset : return an ordered and hierarchical list of groups and subgroups (for GO: aspect + list of terms) . The hierarchy and order are important as they are driving the ribbon display. This query is used by /ontology/ribbon to fill the "category" field. A former implementation was previously integrated in the master biolink-api (https://api.monarchinitiative.org/api). To work properly, this would require the addition of an Annotation Property to ontology terms to specify its order/rank within a subset. For the moment, the order is hard coded within the API.
Also have to update the other non critical routes of /ontology/ in the master biolink-api that were merged a year ago.
If implementation allows, /ontol/subgraph/{ontology}/{node} and /ontology/subgraph/{ontology}/{node} should be merged together and the old /ontol/ route should be marked as deprecated (but kept for backward compatibility for a time).
Decide also of the fate of /ontology/term/{id} : simplified version and payload of /bioentity/{id}
Also /bioentityset/slimmer/function is only (and still) used by the ribbon to fill the association table. Do we want to relocate this route in /ontology/ribbon ? Alternatively, we could also move the ribbon route in /bioentityset/ as it essentially handle a list of genes. In any case, the /slimmer/function query should accept the same parameters as /ontology/ribbon (eg include evidence code, exclude IBA, PB, cross mapping). In addition, the slimmer route should also handle a "inverse" mapping parameter to ease the creation of the "other category" in ribbons. This would be done by providing the full list of terms to map to and stating inverse = true; then any annotated terms not mapped to the provided terms/slim will be mapped to a "other" category. This is manually created by two separate queries in the /ontology/ribbon route (https://github.com/geneontology/biolink-api/blob/master/biolink/api/ontol/endpoints/ontology_endpoint.py#L469)
In addition, a number of GO related queries do not use the GOLrAssociationQuery and we may want to redesign those we can to follow that model.
Routes of the GO API are here: http://api.geneontology.org/api/
Proposal: The two main routes to be merge back to master biolink-api:
Also have to update the other non critical routes of /ontology/ in the master biolink-api that were merged a year ago.
If implementation allows, /ontol/subgraph/{ontology}/{node} and /ontology/subgraph/{ontology}/{node} should be merged together and the old /ontol/ route should be marked as deprecated (but kept for backward compatibility for a time).
Decide also of the fate of /ontology/term/{id} : simplified version and payload of /bioentity/{id}
Also /bioentityset/slimmer/function is only (and still) used by the ribbon to fill the association table. Do we want to relocate this route in /ontology/ribbon ? Alternatively, we could also move the ribbon route in /bioentityset/ as it essentially handle a list of genes. In any case, the /slimmer/function query should accept the same parameters as /ontology/ribbon (eg include evidence code, exclude IBA, PB, cross mapping). In addition, the slimmer route should also handle a "inverse" mapping parameter to ease the creation of the "other category" in ribbons. This would be done by providing the full list of terms to map to and stating inverse = true; then any annotated terms not mapped to the provided terms/slim will be mapped to a "other" category. This is manually created by two separate queries in the /ontology/ribbon route (https://github.com/geneontology/biolink-api/blob/master/biolink/api/ontol/endpoints/ontology_endpoint.py#L469)
In addition, a number of GO related queries do not use the GOLrAssociationQuery and we may want to redesign those we can to follow that model.