Repository navigation
Report 12: resolve absolute IRIs in the research-gaps builder - #158
Merged
Merged
Conversation
Since the canonical ROBOT layout (#154) every rdf:about / rdf:resource in ari_t1d.owl is absolute, but build_research_gaps.py keyed nodes by about.lstrip("#") and matched "#AutoimmuneDisease", so report 12 found 0 diseases. It now resolves IRIs against the file's xml:base and compares full IRIs, finding 228 diseases again. Report 12 is regenerated; its only changes against 2026-10-16 are curation made since. import_columns.py and import_gaps.py edit the OWL line by line around relative # IRIs, so they are marked historical and refuse to run, like import_prevalence.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Since the canonical ROBOT layout (#154) every
rdf:about/rdf:resourceinontologies/ari_t1d.owlis absolute (http://www.aurint.org/ontologies/ari-disease#…, diseases underhttps://diseases.autoimmuneregistry.org/disease/…).notebook/research-gaps/build_research_gaps.pykeyed nodes byabout.lstrip("#")and matched#AutoimmuneDisease, so report 12 reported 0 diseases.What
build_research_gaps.pyresolves every IRI against the file'sxml:base(the sameurljoinapproach asbuild_uberon_import.py'sresolve()) and compares full IRIs (ARI + "AutoimmuneDisease",ARI + "Tissue_Systemic", typed links). It reads the ontology as XML, and nothing else changed. It now finds 228 diseases.data/4-reports/12_Research_Gaps.xlsxis regenerated. Compared cell by cell with the committed 2026-10-16 report, every difference comes from curation made since then:import_columns.py,import_gaps.pyare marked HISTORICAL in their docstrings andraise SystemExit, following the patternimport_prevalence.pyalready uses. They don't only look up nodes: they also spliceari_t1d.owlline by line, anchoring onrdf:about="#…"declarations and writingrdf:resource="#{cls}". Fixing only their lookups would still leave a writer that breaks the canonical layout. Their imports already landed in Import master-list data that report 12 marked 'In repo - import' #141.import_prevalence.pyalready refuses to run, so it is untouched.## fix/research-gaps-absolute-iris.Note on #157
#157 (ontology modules split, still open) renames
ari_t1d.owltoari_disease.owl.build_research_gaps.pymerges cleanly with Split the ontology into core, disease, symptoms, anatomy and biomarkers modules #157. I ran this branch's builder against Split the ontology into core, disease, symptoms, anatomy and biomarkers modules #157'sari_disease.owland got the same Summary, Gap Matrix and To Do sheets as the committed report (228 diseases).import_columns.py,import_gaps.pyandchangelog.mdconflict, but only textually: Split the ontology into core, disease, symptoms, anatomy and biomarkers modules #157 renamesari_t1d.owltoari_disease.owlin the docstring paragraph this PR rewrites. Resolve by keeping this PR's paragraph and Split the ontology into core, disease, symptoms, anatomy and biomarkers modules #157's filename.🤖 Generated with Claude Code