Coder Social home page Coder Social logo

Comments (2)

cmungall avatar cmungall commented on June 2, 2024

Cool, so if I understand things could be consumed at different levels

There is the actual obtaining of files themselves

bioregistry.get_json_download(prefix)
bioregistry.get_obo_download(prefix)
bioregistry.get_owl_download(prefix)

I think it would be useful for there to be a small lightweight library for accessing/downloading ontologies along different axes:

  1. format
  2. product (e.g. go-plus vs go vs go-basic)
  3. version (current or a specific version)
  4. provider (e.g. OLS for EFO, EDAM, etc; bioportal for some vocabularies not appropriate for OBO)

In theory if we follow semantic web practice we get all this for free but in practice it's annoying we don't have a standard way to e.g. list all versions of an ontology from a simple python call.

Happy for this to be in bioregistry but it seems that getting into registering versions of resources is out of scope - are you thinking this sort of thing could go in bioontologies? That could work. I think there is also an argument for a minimal obolibrary ontology that has some of these simple registry functions we use a lot e.g in the dashboard.

I see bioontologies also takes care of conversion using robot - I hope soon we can do this without a JVM dependency or invoking subprocess.

There is also the bioontologies pydantic layer which is nice but would take some thinking how best to integrate this - it could simply go in as it's own implementation but it would be good to avoid repetition of logic (e.g. the shortcuts that map to IAO and OIO predicates).

from ontology-access-kit.

cthoyt avatar cthoyt commented on June 2, 2024

Since Bioregistry secretly was supporting PyOBO back in the beginning, I was also using it to catalog the locations of many ontologies, especially ones that are non-OBO Foundry and are hard to find and I often ran into OBO Foundry links being dead/out of date/unable to parse. However, solving the issues of versioning is indeed getting a bit out of scope. Unfortunately, doing this well will probably require having a huge set of manually curated rules for fixing inconsistencies in OBO Foundry and other ontology sources, so it's not clear to me if it would have a place in bioontologies (which is pretty lightweight at the moment).

Happy for this to be in bioregistry but it seems that getting into registering versions of resources is out of scope - are you thinking this sort of thing could go in bioontologies? That could work. I think there is also an argument for a minimal obolibrary ontology that has some of these simple registry functions we use a lot e.g in the dashboard.

Maybe we can finally go about packaging the OBO Foundry data and building a small set of tooling around accessing it as a pilot as a precursor for doing this in a more generally for ontologies. The Bioregistry actually already does this in a few ways, but it would be better to have it attached to the OBO Foundry itself

I see bioontologies also takes care of conversion using robot - I hope soon we can do this without a JVM dependency or invoking subprocess.

Agreed, would love to see this done natively in Python

There is also the bioontologies pydantic layer which is nice but would take some thinking how best to integrate this - it could simply go in as it's own implementation but it would be good to avoid repetition of logic (e.g. the shortcuts that map to IAO and OIO predicates).

There's a standardize() function that adds some opinionated parsing of URIs into bioregistry-compliant CURIEs and oher rules for practical downstream usage, but adding this kind of stuff is usually a slippery slope... Anyway would be happy to incorporate extra domain rules there if they're useful

from ontology-access-kit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.