Comments (2)
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:
- format
- product (e.g. go-plus vs go vs go-basic)
- version (current or a specific version)
- 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.
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)
- Misleading copyright statement at the bottom of OAK documentation pages HOT 5
- ValueSetExpander is too eager in using sqlite:obo as a default resolver
- Error during information-content execution HOT 5
- pronto_implementation returns a pronto Definition object which interacts oddly with KGCL
- simple obo diffs creates duplicate `Classes added` HOT 3
- Problem using llm adapter HOT 2
- runoak diff erroneously names "relationships" --> "mappings" in markdown summary HOT 3
- Add option to `relationships` for walking up subclass hierarchy
- `validate-mappings`: `NotImplementedError: ... NoneType`
- Missing `defusedxml` dependency HOT 3
- Run subset of tests in environment with no extras installed
- Jaccard similarity differences when using information content HOT 2
- Breaking change in Synonymizer? HOT 3
- Document instructions for running the obographs-compliance suite HOT 4
- Update SemSimianImplementation and CLI to allow using custom IC maps and frequencies
- Pin ruff checks and codespell checks HOT 1
- Integrate notebooks into sphinx documentation (will break URLs) HOT 2
- Define behavior when conflicting idspaces are specified
- Calculating ICs with an annotation corpus as background is slow
- Making retrieval of axiom annotations for synonyms faster
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ontology-access-kit.