Follow-up from the review of PR #314.
scripts/audit_predicate_domains.py's _curie helper converts only
https://w3id.org/metpo/NNN IRIs to METPO:NNN CURIEs and passes any other IRI
through unchanged. Today every owl:ObjectProperty rdf:about in
data/raw/metpo.owl is a w3id METPO IRI, so this is correct.
But if METPO ever asserts a non-METPO-IRI property under the METPO:2000001
closure (e.g. an OBO RO_... term), the closure set would hold
http://purl.obolibrary.org/obo/RO_... and never match the corpus's RO:0002327
CURIE form — a silent under-report. That is precisely the "new subproperty is
covered automatically" future-proofing the script's docstring (lines ~38-41)
advertises, so the failure mode is invisible when it arrives.
Fix direction: normalise OBO/PURL IRIs to their CURIE form in _curie (or map
via a prefix table), and add a test with a mixed-namespace OWL fixture.
Follow-up from the review of PR #314.
scripts/audit_predicate_domains.py's_curiehelper converts onlyhttps://w3id.org/metpo/NNNIRIs toMETPO:NNNCURIEs and passes any other IRIthrough unchanged. Today every
owl:ObjectProperty rdf:aboutindata/raw/metpo.owlis a w3id METPO IRI, so this is correct.But if METPO ever asserts a non-METPO-IRI property under the METPO:2000001
closure (e.g. an OBO
RO_...term), the closure set would holdhttp://purl.obolibrary.org/obo/RO_...and never match the corpus'sRO:0002327CURIE form — a silent under-report. That is precisely the "new subproperty is
covered automatically" future-proofing the script's docstring (lines ~38-41)
advertises, so the failure mode is invisible when it arrives.
Fix direction: normalise OBO/PURL IRIs to their CURIE form in
_curie(or mapvia a prefix table), and add a test with a mixed-namespace OWL fixture.