hdmf-dev / hdmf-common-schema

Specifications for pre-defined data structures provided by HDMF.
Other
3 stars 7 forks source link

Add URIs for external resources / ontologies #45

Closed rly closed 2 years ago

rly commented 3 years ago

Currently, with the new ExternalResources data type, each term is associated with an external resource (e.g., ontology), a unique identifier at the resource, and the URI for the resource entity.

Users would also like to associate a URI for the external resource. For example, the external resource "NCBITaxon" would have the URI "https://www.ncbi.nlm.nih.gov/taxonomy" associated with it. To normalize these data in the "resources" table, we should add a new table with fields (name, uri) and change the "resource_name" field in the "resources" table to be an index (foreign key) into the new table.

This change requires further feedback and coordination with ontology users.

rly commented 3 years ago

@ajtritt @oruebel Should we include this change and release hdmf-common-schema 1.3.0 or hold this off until a later release?

ajtritt commented 3 years ago

We'll need to include it. The hdmf code will need these types defined in the schema, otherwise TypeMap.register_class will choke.

rly commented 3 years ago

To be clear, I mean, should we include the addition of an additional URI for the resource, on top of everything that has already been implemented in HDMF and set in hdmf-common-schema. AFAIK, the proposed change has not yet been implemented in either the schema or HDMF.

ajtritt commented 3 years ago

To be clear, I mean, should we include the addition of an additional URI for the resource,

oops... didn't read the issue in detail. This might take some time to add. If we need to make a release, then I suggest not letting this hold it up

oruebel commented 3 years ago

Since this is still in development, I don't think it will be an issue to add this later in another release.

rly commented 3 years ago

Great, thanks for the input.

oruebel commented 3 years ago
  1. Change the name of theResourceTable to EntityTable
  2. Add ResourceTable with columns id, name, and uri to describe the resources
  3. Change recource_name column in the ResourceTable to resource_id to point to the new ResourceTable
  4. Update tests for EntityTable and add tests for ResourceTable. See https://github.com/hdmf-dev/hdmf/blob/dev/tests/unit/common/test_resources.py
  5. Write documentation describing the structure for managing ExternalResources See https://github.com/hdmf-dev/hdmf/tree/dev/docs/source
  6. Write documentation describing the use of ExternalResources See https://github.com/hdmf-dev/hdmf/tree/dev/docs/source
rly commented 3 years ago

The schema parts of this issue have been resolved by #49.

oruebel commented 2 years ago

@rly @mavaylon1 has this issue been completed?

rly commented 2 years ago

This is done.