Open krishanudb opened 2 years ago
I think it's expected behavior that some axioms that do not conform to the OBO Profile of OWL are not translated
For example, this axiom:
transmitted by some (vehicle-borne ingestion transmission or congenital transmission)
involves a union on the RHS. This just doesn't fit into the datamodel. While you can imagine pronto translating this to two relationships, this would actually be dangerous and wrong. Not all listerioses have a congenital origin.
What is your use case? What would you hope to do with the axioms once translated into a python datamodel?
Also, when thinking about these kinds of things it helps to think in terms of "Axioms" when talking about OWL, and "relationships" in an OBO/graph-like object model. Sometimes there is a mapping between these concepts, sometimes not.
Hi. Thanks a lot for your reply. Your explanation makes perfect sense. Actually I want to create a knowledge graph from these axioms/relations, plus other sources, and use it for further downstream tasks. However, in my data model, there is no scope for reification. So I wanted to flatten these relations in some way into (simple) triples..
just to be clear, the example here doesn't involve reification at all.
I think when translating to a KG it makes sense to drop edges with unions. You count turn the blank node into a node in your graph, and then use a reasoner to make is-a links. e.g
but tbh I think the value is a little minimal
I have been attempting to gather interest from the broader community about a standard way of mapping from OWL to KGs, see https://github.com/cmungall/owlstar -- this is pretty much a format-independent generalization of what pronto already does with OWL
You may also be interested in https://github.com/biolink/kgx
We have made kgx files for all of the OBO ontologies, see https://github.com/Knowledge-Graph-Hub/kg-obo
Hi. I have used pronto for the last few months. First of all, kudos to the coders, it's great work.
Coming to the issue I am facing, I initially thought that pronto is able to extract all the relationships mentioned in an owl file, no matter how convoluted (read reified) the relations are. But then, I recently understood that there are some limitations.
For example, while parsing Disease Ontology OWL file, I saw that some relations were extracted while others were not: For the following class:
pronto was not able to extract these relations among others: IDO_0000664 NCBITaxon_1637 IDO_0000664 NCBITaxon_1639
but pronto was able to extract these relations: RO_0002452 SYMP_0000458 RO_0002452 SYMP_0000570 RO_0002452 SYMP_0019145
Can anyone point me to method/strategies using which I can extract all of these relations? Thanks, Krishanu