INCATools / INCATools/ontology-access-kit
Edge operations should include ObjectPropertyAssociations between pairs of individuals
- Dominant language
- Python
- Stars
- 198
- Forks
- 35
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 1
Description
The main use case for OAK is class exploration, where we use the relation-graph/owlstar mapping from OWL to Edges. But it would also be useful to allow for exploration of OPAs.
Use cases:
OBO:
- GAZ
- a small handful of individuals in ontologies like OBI, ENVO
- GO-CAMs
General semweb ontologies
- outside OBO/bio most ontologies are schema ontologies and the main use case for RDF is for individuals
- e.g. schema.org instance graphs
It's actually not straightforward to come up with a consensus RDF/OWL to Edge mapping that satisfies all use cases, but I suggest
1. ObjectPropertyAssociation(p i j) ==> i p j
2. ClassAssertion(c i) ==> i rdf:type c
We might also want to consider a 3rd
- ClassAssertion(SomeValuesFrom(p c) i) ==> i p c
Currently all 3 are defined in owlstar, but only 2+3 is present in RG
On top of this, the RDF-level operation is not straightforward if we want to assume we want to use RDF in the wild that hasn't been normalized by the OWLAPI (the OWLAPI will fill in missing triples like type assertions to NamedIndividual)
I would suggest:
1: any triple for which we have a direct asserted triple `p a owl:ObjectProperty`
2. any type triple for which there is an assertion `c a owl:Class`
Logic to be implemented in the following:
- pronto: no, does not support instances
- [x] RDF/SPARQL. #241
- [ ] FunOWL
- [ ] SQL
Contributor guide
Research direction
Start by reviewing the RDF/SPARQL work in issue #241 and the existing owlstar and relation-graph mappings. Then inspect the unchecked FunOWL and SQL targets; done means ObjectPropertyAssociation and relevant class assertions are handled consistently in those implementations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, sql
- Domain
- backend, data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100