INCATools / INCATools/ontology-access-kit
Add obo format conformance tests
- 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
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