mapping-commons / sssom-api

Apache License 2.0
7 stars 0 forks source link

Add `mapping_id` to JSON response #38

Closed anitacaron closed 1 year ago

anitacaron commented 1 year ago

Fixes #34

All endpoints returning Mapping included the mapping_id in the other attribute.

matentzn commented 1 year ago

Do you have tests for all these API methods? Can you share an example response?

anitacaron commented 1 year ago
{
  "data": [
    {
      "subject_id": "MP:0030222",
      "predicate_id": "http://www.w3.org/2002/07/owl#equivalentClass",
      "object_id": "http://purl.obolibrary.org/obo/DOID_205",
      "mapping_justification": "https://w3id.org/semapv/UnspecifiedMatching",
      "subject_label": null,
      "subject_category": null,
      "predicate_label": null,
      "predicate_modifier": null,
      "object_label": null,
      "object_category": null,
      "author_id": [],
      "author_label": [],
      "reviewer_id": [],
      "reviewer_label": [],
      "creator_id": [],
      "creator_label": [],
      "license": null,
      "subject_type": null,
      "subject_source": null,
      "subject_source_version": null,
      "object_type": null,
      "object_source": null,
      "object_source_version": null,
      "mapping_provider": null,
      "mapping_cardinality": null,
      "mapping_tool": null,
      "mapping_tool_version": null,
      "mapping_date": null,
      "confidence": 0.75,
      "subject_match_field": [],
      "object_match_field": [],
      "match_string": [],
      "subject_preprocessing": [],
      "object_preprocessing": [],
      "semantic_similarity_score": null,
      "semantic_similarity_measure": null,
      "see_also": [],
      "other": "{\"mapping_id\": \"https://w3id.org/sssom/48105c6584bc57269a728ccb308ab98c\"}",
      "comment": null
    },
    {
      "subject_id": "MP:0030222",
      "predicate_id": "http://www.w3.org/2002/07/owl#equivalentClass",
      "object_id": "http://purl.obolibrary.org/obo/HP_0100774",
      "mapping_justification": "https://w3id.org/semapv/UnspecifiedMatching",
      "subject_label": null,
      "subject_category": null,
      "predicate_label": null,
      "predicate_modifier": null,
      "object_label": null,
      "object_category": null,
      "author_id": [],
      "author_label": [],
      "reviewer_id": [],
      "reviewer_label": [],
      "creator_id": [],
      "creator_label": [],
      "license": null,
      "subject_type": null,
      "subject_source": null,
      "subject_source_version": null,
      "object_type": null,
      "object_source": null,
      "object_source_version": null,
      "mapping_provider": null,
      "mapping_cardinality": null,
      "mapping_tool": null,
      "mapping_tool_version": null,
      "mapping_date": null,
      "confidence": 0.75,
      "subject_match_field": [],
      "object_match_field": [],
      "match_string": [],
      "subject_preprocessing": [],
      "object_preprocessing": [],
      "semantic_similarity_score": null,
      "semantic_similarity_measure": null,
      "see_also": [],
      "other": "{\"mapping_id\": \"https://w3id.org/sssom/8f4cb926513359b087ad8db87c6937b1\"}",
      "comment": null
    }
  ],
  "pagination": {
    "previous": null,
    "next": null
  }
}
matentzn commented 1 year ago

Thank you! I think I would prefer if mapping_id would be sssomapi:mapping_id -> this caters to a bigger issue I will explain to you in another call.

anitacaron commented 1 year ago

I can change it to sssomapi_mapping_id.

matentzn commented 1 year ago

The reason why I wanted to say ":" instead of "_" is that is is supposed to be a curie in and all by itself. This is not yet codified in the SSSOM standard, but the advantage would be that it allows a flexible mechanism to extend sssom using qualified names, rather than unqualified strings (imagine two different mapping sets specifying mapping_id in the other field. Is there a technical problem with \"sssom_api:mapping_id\" in the JSON blop?

anitacaron commented 1 year ago

There's some misunderstanding here.

The mapping_id is to add the self mapping id. In the case of mapping_set_id would have the id for mapping_set. The list of mappings is in the mappings key inside the mapping_set.

It's not possible to have a colon in the JSON key.

anitacaron commented 1 year ago

Sorry, it's possible to have a colon in the key.

anitacaron commented 1 year ago

As discussed in a meeting, we'll create other API endpoints for the UI that are only partially compliant with LinkML data classes.