INCATools / INCATools/ontology-access-kit

Add validation of textual definitions to OAK

Open
#305 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 following paper https://philpapers.org/archive/SEPGFW.pdf lays out guidelines for definitions in ontologies

I summarized these here: https://douroucouli.wordpress.com/2019/07/08/ontotip-write-simple-concise-clear-operational-textual-definitions/

Validation of a lot of these could be semi-automated;

e.g.

- S1: conform to conventions (do not include definiendum at the start)
- S3: Use the genus differentia form (basic matching of text patterns)
- S7: Avoid circularity (text match to see if definition includes the definiendum)
- S11: Match text and logical definitions (performed using the [text annotator](https://incatools.github.io/ontology-access-kit/interfaces/text-annotator.html) interface)

Any validation would likely be highly sensitive test with a lot of things people would consider false positives due to natural lexical variation and style preferences etc. We could think of this as being an extremely opinionated "black" for ontologies.

Where would such a library belong?

1. In OAK (in [validator interface](https://incatools.github.io/ontology-access-kit/interfaces/validator.html))?
2. As a separate ontology library that depends on OAK?

The argument for 1 is that we already have structural checks (validation against LinkML OMO schema), some minimal lexical checks, reasoner checks (using robot plugin) in here already, so it is convenient and coherent to have a one stop shop.

Contributor guide

Open the contributing guide

Research direction

Start by reading the validator interface and text-annotator interface linked in the issue, then review the cited definition guidelines and examples. The issue needs a decision on whether validation belongs in OAK or a separate library, followed by a defined initial set of checks and tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.