INCATools / INCATools/ontology-access-kit

Edge operations should include ObjectPropertyAssociations between pairs of individuals

Open
#240 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.