Replies: 0 comments 1 reply
|
Fully agree, thank you @jdreo! What you outline was part of the roadmap from the beginning, but seemed very complex, so has taken a backseat. Particularly the reasoning in the backend has been around since inception (https://github.com/biocypher/biocypher/milestone/5), inspired by the issues we have in integrating several related ontologies that are used side-by-side with no clear synchronisation (e.g., the multiple disease ontologies in play). Symmetric completion or propagation of properties are a recurring topic, but very hard to solve (not that that would stop me, but we need to find the time / priority). I would like to evaluate which of the suggestions are relatively quick to implement and which could take ages, and draw that up against the resulting benefits. I feel what you say about decoupling and IRI handling can indeed be done quite quickly; the reasoning probably less so. About intended use I am not sure, I have not used that feature of ontologies yet. |
Uh oh!
There was an error while loading. Please reload this page.
BioCypher relies on loading several RDF ontology files to build up a configurable taxonomy. That's kind of a killer feature, compared to its competitors.
Ontologies
Ontologies are complex beasts, with a lot of (layers of) standards and approaches. OWL (one of the most successful standards) alone provides several "flavors" with subtle differences. OWL is somehow compatible with RDFSchema, but not completely, and it depends on which flavor. Biolink claims to "inherit features" from OWL, but is not fully compatible with it, having a slightly different model for associations. And so on and so forth.
So far, BioCypher only really uses the taxonomy part of ontologies, does not consider the axioms that come with it and does not enforce one specific modeling approach (apart from having nodes, edges, and properties).
Why Ontologies?
The classical rationale behind the use of ontologies in biological applications is that they provide two interesting things:
As both features are difficult to come up with for a naive user, expert-made ontologies should be welcomed as ready-to-use jackknife for any applications in a given field.
Drawbacks
However, several people are starting to question this premise. Having played with knowledge graphs (KG) to solve a couple of real problems, it seems that some drawbacks are met:
These considerations have led some people to think that we'd be better of with building up simple taxonomies for KGs, without bothering with ontologies.
Advantages
However, ontologies also come with some advantages:
Ontologies in BioCypher
BioCypher imposes some constraints on the input ontology, which prevents it from being able to use any ontology in the wild (see this discussion). However, it is still possible to export in self-contained populated RDF files (see that discussion).
The emphasis that Biocypher puts on assembling taxonomy trees shows that the initial thoughts were related to leveraging deep type hierarchies. I guess to allow for versatile queries on the produced KG.
But I think that BioCypher could —with a bit of refactoring— allow for two additional features:
BioCypher already has a complete internal representation of the ontology it uses, thanks to rdflib, and thus already knows axioms. One just has to use them.
Additionally, I would advocate for decoupling all the ontology manipulation steps. So far, BioCypher only rearranges the input taxonomies in a single tree. But it would be possible to propose more fixes on existing ontologies, to allow for their use. By having a clearly identified (albeit optional) step, it would be possible to have more control on what an advanced user could do, hence allowing for better scaling on modeling issues (e.g. automatically allowing for an OWL input using object properties as edges).
All reactions