INCATools / INCATools/ontology-access-kit

Add obo format conformance tests

Open
#422 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
198
Forks
35
Avg merge
3d 4h
Merged PRs (30d)
1

Description

Add conformance tests for obo format conversion to OWL. These tests should be written in a declarative way so the conformance suite can be shared e.g. with owlapi unit tests.

These tests will target a proposed 1.6 obo format, which will include some additional mechanisms for controlling the expanded URI of non-OBO IDs.

In particular [section 5.9.3 of the 1.4 spec, Special Rules for Relations](https://owlcollab.github.io/oboformat/doc/obo-syntax.html#5.9.3) includes the idspace expansion rule embedded under this subsection when it should have been its own subsection. The owlapi thus ignores this when expanding term IDs, which is formally correct but goes against intent.

Proposed structure of conformance suite:

- obo-format-compliance-test.obo : source to be converted
- obo-format-compliance-test-MUST-HAVE.ofn: owl axioms that MUST be present
- obo-format-compliance-test-SHOULD-HAVE.ofn: owl axioms that SHOULD be present (correct but not universally implemented)
- obo-format-compliance-test-MAY-HAVE.ofn: owl axioms that MAY be present (incorrect but tolerated)

The reason for the last two is that different implementers and different versions of the same implementation (e.g. owlapi) have differing interpretations of the spec, and we need a period of lenience.

- A formally correct implementation will convert the obo into a set of axioms that is identical to the union of MUST+SHOULD
- No implementations will generate axioms outside any of these sets

Note the suite may eventually move to https://github.com/oboformat/oboformat but for now it is easier to attach this to a live active repo

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the proposed conformance-suite structure in the issue and section 5.9.3 of the OBO 1.4 specification. Define obo-format-compliance-test.obo and the MUST-HAVE, SHOULD-HAVE, and MAY-HAVE .ofn outputs declaratively, then verify that conversions satisfy the stated union and exclusion rules.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
testing-qa
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.