Ubergraph: integrating OBO ontologies into a unified semantic graph James P. Balhoff1, Ugur Bayindir2, Anita R. Caron2, Nicolas Matentzoglu3, David Osumi- Sutherland2 and Christopher J. Mungall 4 1 Renaissance Computing Institute, University of North Carolina, Chapel Hill, NC USA 2 European Bioinformatics Institute (EMBL-EBI), Wellcome Trust Genome Campus, Cambridge, UK 3 Semanticly, Athens, Greece 4 Environmental Genomics and Systems Biology Division, Lawrence Berkeley National Laboratory, Berkeley CA, 94720 Abstract OBO library ontologies include a wealth of inter-ontology semantic links, which require OWL reasoning to utilize fully. Merging and reasoning over a large suite of ontologies is resource intensive, and challenging for many users. Here we present Ubergraph, an RDF triplestore and public SPARQL query endpoint, which includes a novel approach to precomputing OWL inferences, stored in a readily traversable knowledge graph. Ubergraph’s “relation graphs” allow users to perform SPARQL queries which make use of the semantics of the included ontologies. Ubergraph currently includes 39 OBO library ontologies. We describe several use cases enabled by Ubergraph such as ontology browsing and entailment validation. Keywords 1 ontology, knowledge graph, reasoning, OWL, RDF, SPARQL, semantic web 1. Introduction axioms, allowing automatic classification of terms that makes use of the semantics of those ontologies. The mission of the Open Biological and As one example, the Gene Ontology (GO) [4] Biomedical Ontology (OBO) Foundry is to contains many concepts describing cellular “develop a family of interoperable ontologies that processes acting on particular chemicals, such as are both logically well-formed and scientifically various types of metabolism, catabolism, accurate” [1–3]. Ideally, each ontology in the biosynthesis, and transport. As one would expect, Foundry covers a specific scope (e.g., animal GO:0006006 'glucose metabolic process' is a anatomy, chemistry, cellular processes) and subclass of GO:0005975 'carbohydrate metabolic serves as the reference classification for that process'. Rather than manually classifying these domain. This allows developers of each ontology GO terms based on their chemical specification, to focus on the domain of their expertise, while which would need to be done for each kind of GO reusing the work of other experts within their process, the GO logically defines these concepts respective domains. Beyond simply dividing up using terms from the ChEBI chemical ontology responsibilities for ontology development and [5], which provides the fact that CHEBI:17234 reducing overlapping effort, OBO ontologies are ‘glucose’ is a type of CHEBI:16646 encouraged to directly reference concepts from ‘carbohydrate’. A standard OWL reasoner can other OBO ontologies within their own logical ICBO 2020, September 25–28, 2022, Ann Arbor, MI, USA EMAIL: balhoff@renci.org (A. 1); ugur@ebi.ac.uk (A. 2); anitac@ebi.ac.uk (A. 3); nico@semanticly.ai (A. 4); dosumis@ebi.ac.uk (A. 5); cjmungall@lbl.gov (A. 6) ORCID: 0000-0002-8688-6599 (A. 1); 0000-0002-6012-3729 (A. 2); 0000-0002-6523-4866 (A. 3); 0000-0002-7356-1779 (A. 4); 0000-0002-7073-9172 (A. 5); 0000-0002-6601-2165 (A. 6) © 2022 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). CEUR Wor Pr ks hop oceedi ngs ht I tp: // ceur - SSN1613- ws .or 0073 g CEUR Workshop Proceedings (CEUR-WS.org) CEUR ceur-ws.org Workshop ISSN 1613-0073 Proceedings automatically compute the consequent 2. Features relationships between the GO concepts [6]. OWL axioms making use of external terms The Ubergraph triplestore is a Blazegraph typically take the form of complex equivalence RDF database which is generated weekly from its definitions bringing together concepts from source ontologies via an open-source workflow. A multiple ontologies. For example, the logical public SPARQL endpoint (for programmatic definition of HP:0002446 ‘Astrocytosis’ from the access) is available at Human Phenotype Ontology [7] refers to terms https://ubergraph.apps.renci.org/sparql. from four other independently developed OBO Currently, Ubergraph incorporates 39 OBO ontologies: library ontologies (Fig. 1). The triplestore is organized into a number of different graphs, HP:'Astrocytosis' EquivalentTo (RO:'has part' some (PATO:'increased which enable querying specific ontologies, or rate' and (RO:'characteristic of part including or excluding particular inferences. Each of' some (GO:'cell growth' and included ontology is stored within a graph named (RO:'occurs in' some by its ontology IRI. Additional graphs provide CL:'astrocyte'))) and (RO:'has precomputed triples which enable a range of modifier' some PATO:'abnormal'))) functionality making Ubergraph more than simply the sum of the loaded ontologies. The meaning of this axiom (“a phenotype including an abnormally increased rate of cell 2.1. Relation graphs growth in astrocytes”) depends on the contents of all five ontologies. As such, for many applications it can be advantageous to treat a collection of Two “relation graphs” stored in their own named graphs are at the heart of Ubergraph’s OBO library ontologies as one large, unified utility. Here, a relation graph is an RDF dataset ontology. One way to accomplish this would be to representing certain OWL axioms as convenient import all the needed ontologies into a Protégé ontology editing workspace, and run an OWL graph edges. Many ontology users think of reasoner. Protégé provides a query interface ontologies as directed graphs, containing edges like “index_finger is_a finger” and “finger part_of allowing the user to submit Description Logic hand”. However, the OWL representation of these (DL) queries to the reasoner; for example, one could find all the cell types (from CL) that are part statements is somewhat more complex, and of the liver (from UBERON): subclasses of particularly complex when stored as an RDF (CL:'cell' and (RO:'part of' some graph. While the first statement is represented by UBERON:'liver')). By using OWL reasoning, a single straightforward triple: such cell types may match the query indirectly via rdfs:subClassOf various kinds of inferences, such as the transitive characteristic of ‘part of’. the second statement is stored as four triples For a large aggregation of ontologies, that representing the OWL axiom approach inconveniently requires downloading SubClassOf ( some ), using multiple gigabytes of ontologies, providing tens a generated blank node, here, _:node1: of gigabytes of computer memory, and at least 10–20 minutes of loading and reasoning time rdfs:subClassOf _:node1 using the ELK reasoner. A graph database with a _:node1 rdf:type owl:Restriction web-based query interface allows users to more _:node1 owl:onProperty efficiently access an integrated semantic _:node1 owl:someValuesFrom knowledge graph. Here we introduce Ubergraph, an RDF triplestore which provides a SPARQL A user writing a SPARQL query for the parts query endpoint to an integrated suite of OBO of the hand will need to be aware of the OWL ontologies, and includes precomputed inferred serialization in order to match this complex triple edges allowing logically complete queries over pattern. There are further challenges: a user would those ontologies for a subset of OWL. expect that when querying for parts of the hand they would receive not only ‘finger’ but any concepts stated to be parts (e.g., fingernails) or subclasses of ‘finger’. SPARQL property paths Figure. 1: Mutually referential ontologies currently included in Ubergraph. Widths of lines are proportional to the number of OWL classes from each ontology on the right used within axioms in each ontology on the left. Large ontologies on the left side reuse many external terms. Large ontologies on the right side are frequently referenced by other ontologies. Additional OBO ontologies included in Ubergraph but which lack incoming or outgoing references are: APO, EMAPA, MA, MI, MMO, MmusDv. cannot be employed to retrieve nodes linked by a single triple in the standard way, and axioms of chain of properties over such OWL expressions. the form SubClassOf ( some ) An edge of interest may be embedded deeply (existential relations) are converted to simple within an even more complex OWL equivalence triples: axiom (e.g. ‘Astrocyte’, above). A user would also expect to find terms such as ‘hand_skeleton’, rdfs:subClassOf related to ‘hand’ via a different relation such as ‘skeleton_of’ (an UBERON relation defined as a subproperty of ‘part_of’). Beyond this syntactic simplification, the Relation graphs simplify access to this Ubergraph build pipeline uses an OWL reasoner knowledge by storing the most commonly to compute and store every existential relation required OWL patterns as single RDF triples: implied by the input ontology. Given the property every SubClassOf relation is represented by a hierarchy subPropertyOf subPropertyOf , all These kinds of queries are useful for checking these triples between ‘hand_skeleton’ and ‘hand’ and exploring the inferences entailed by the input would be stored: ontologies. The precomputed subclass and existential relations are stored in two named graphs. The redundant graph contains the complete set of entailed relations between terms. The majority of these are not directly asserted in the ontology, but The relation graph precomputation allows instead implied by equivalence axioms, straightforward SPARQL queries to provide fast subproperty axioms, property chains, and other results consistent with the full semantics of the OWL axioms. The nonredundant graph contains input ontologies (according to the OWL EL a subset of the redundant graph. This graph profile). For example, here is a SPARQL query contains only “direct” edges, removing edges for cell types (CL:0000000) specific to organs such as the following: (UBERON:0000062) of the abdomen • rdfs:subClassOf , where (UBERON:0000916): both rdfs:subClassOf and rdfs:subClassOf exist PREFIX rdfs: • , where PREFIX cell: and rdfs:subClassOf exist , where 000> and rdfs:subClassOf exist PREFIX organ: • , where exist, and the 0000062> ontology declares to be a PREFIX abdomen: transitive property , where 0000916> PREFIX part_of: exists, and the ontology declares 0050> The nonredundant relation graph is SELECT DISTINCT ?cell ?organ particularly useful for SPARQL CONSTRUCT WHERE { queries which output the graph neighborhood ?cell rdfs:subClassOf cell: . around a term, such as when powering an ?cell part_of: ?organ . ontology browsing interface (Fig. 2). ?organ rdfs:subClassOf organ: . ?organ part_of: abdomen: . } 2.2. Ontology graph The SPARQL query language enables An additional named graph stores the result of additional kinds of queries unsupported by DL classifying the merged axioms of the input query interfaces, as they require the use of ontologies using the ELK reasoner [8]. This graph features such as variables or negation as failure, includes all the term annotation axioms (such as such as: labels and definitions) provided by the source “Of what is the adrenal gland a part?” ontologies. It also includes a generated triple for each term, connecting it to its source ontology adrenal_gland: part_of: ?x based on its OBO ID space, e.g., obo:UBERON_4100121 rdfs:isDefinedBy “Which bone elements are not entailed to be obo:uberon.owl. These triples allow much more part of the skeletal system?” (none, in Uberon) efficient filtering of results by ID space as compared with string-based SPARQL filters. The ?bone rdfs:subClassOf bone_element: ontology graph also includes triples linking each FILTER NOT EXISTS { term to a computed information content score ?bone part_of: skeletal_system: . (terms with a greater number of subclasses have } lower information content). These scores can be helpful in ranking Ubergraph query result values, A. B. Figure. 2: (A) Nodes directly connected to UBERON:0000970 ‘eye’, and edges between them, in the Ubergraph nonredundant graph. (B) Edges in the redundant graph between those same nodes. A depiction of edges between all nodes reachable by one hop from ‘eye’ in the redundant graph would be even more tangled, including 10,262 edges. based on their relative graph placement, within relation graphs and other enrichments using a downstream applications. variety of tools included within a Docker image defined in the Ubergraph repository. The endpoint 2.3. Biolink Model graph of the workflow is a Blazegraph [11] database file used to drive the SPARQL endpoint. The public SPARQL service is a Blazegraph server running The Biolink Model is a high level data model of within an on-premises Kubernetes cluster, biological entities [9]. Ubergraph includes a graph provided with 32 GB memory and 8 CPUs. containing an RDF serialization of the Biolink Model, as well as biolink:category links from each ontology term to mapped Biolink Model 3.1. Merging and reasoning over an classes, propagated across the subclass hierarchy integrated set of ontologies of both the Biolink Model and the included ontologies. This graph is provided for use by Ontology manipulation is conducted using applications built on the Biolink Model, to easily ROBOT [12] and the Apache Jena [13] ‘arq’ and traverse from OBO ontology concepts to ‘riot’ tools. When available, the Ubergraph build corresponding Biolink Model terms. downloads the “base” release of each ontology (e.g., for Uberon, 3. Implementation http://purl.obolibrary.org/obo/uberon/u beron-base.owl). Base files are a recently Ubergraph is constructed using a workflow adopted convention within the OBO Foundry implemented as a GNU Makefile [10]. The source which facilitate merging and reasoning over sets code is available on GitHub at of ontologies which refer to one another within https://github.com/INCATools/ubergraph. The their axioms. The standard releases of each workflow downloads the source ontologies and ontology typically contain imported content from computes additional RDF triples constituting the the ontologies they depend on. Merging these files can result in mixtures of axioms and annotations from slightly different releases of each ontology, performing semantic similarity; and (3) possibly resulting in conflicting logical assertions. accessing and visualization of subgraphs, making Base files, on the other hand, contain the axioms use of the obographviz package. For example, native to a given ontology but exclude any the OAK viz command, e.g., runoak -i imported content. When a base file is not available ubergraph: viz GO:0001750 -p for an ontology, the Ubergraph build uses the rdfs:subClassOf,BFO:0000050, will show all ROBOT tool to approximate a base file for that terms traversable via the relation graph from a ontology by removing axioms defining terms starting set of terms such as ‘photoreceptor outer from external ID spaces. segment’ in GO (Fig. 3). One additional way to access Ubergraph is 3.2. Computing relation graphs through its OpenAPI REST endpoint description [19], autogenerated (using grlc [20]) from a suite of example SPARQL queries stored in the The redundant relation graph is computed via Ubergraph source repository. a purpose-built tool, ‘relation-graph’ [14], which uses an efficient, parallel algorithm to perform millions of DL queries using the Whelk OWL reasoner [15]. This process takes approximately 4 hours, using 20 CPUs and 140 GB RAM. The nonredundant relation graph is computed from the redundant graph using a Soufflé Datalog [16] pruning script which implements the redundancy rules described above, taking approximately 70 minutes to complete. The current Ubergraph release contains 530,834,705 triples, with 48,684,904 triples comprising the included ontologies, and the rest derived by the build process. The majority of these, 318,231,131, constitute the redundant relation graph. The pruning step reduces that number to 4,532,758 triples in the nonredundant relation graph. 4. Applications 4.1. Programmatic Access Figure 3: OAK visualization of relation graph As a standard SPARQL endpoint, Ubergraph can ancestors of a GO term, traversing inter-ontology be accessed using any of the typical links. CL terms are gray, GO terms are pink. Is_a programmatic means of reaching a REST (SubClassOf between named classes) edges in endpoint, as well as dedicated SPARQL query black, part_of (BFO:0000050) in blue. interfaces such as Yasgui [17]. In addition to generic REST libraries, languages like Python 4.2. Projects using Ubergraph include clients for SPARQL endpoints such as SPARQLWrapper. 4.2.1. Mondo quality control checks For higher level access, it is possible to write software libraries that act as clients to Ubergraph The Mondo disease ontology [21] is a complex and provide convenient reusable operations. One development effort that seeks to integrate such library is the new OAK (Ontology Access disparate disease ontologies and terminologies. Kit) library in Python, which provides An automated process creates a skeleton for a programmatic access to a variety of endpoints, large ontology that integrates axioms and including Ubergraph [18]. OAK provides both a annotations from these sources, which is further Python layer and a command line interface (CLI) augmented by complex logical axioms using that allows for various operations over design patterns [22]. Such an ontology requires Ubergraph including (1) searching for terms; (2) extensive quality control checking and reporting capabilities that need to be reviewed, refined, and capable of integrating existing biomedical data shared. Moreover, these reports often span sets, and which will allow users to derive “insights multiple ontologies such as Uberon, GO, and CL. that can accelerate translational research, support All Mondo reports and quality control checks [23] clinical care, and leverage clinical expertise to are implemented using SPARQL. To develop and drive research innovations” [25]. Many of the share these reports, the Mondo team uses Yasgui Data Translator knowledge sources express their in combination with the Ubergraph SPARQL data with reference to standard identifiers for endpoint: queries are prototyped, shared between terms from OBO library ontologies, such as cell developers, and refined until fit for purpose. The types, anatomical locations, and diseases. The Mondo team makes extensive use of inferred ontologies themselves provide the background relationships in Ubergraph, which not only knowledge giving meaning to the use of those reduces query time, but also improves recall for terms. Ubergraph provides the basis for the cases where subclasses are only inferable through Ontology Knowledge Provider, a Translator an entailment regime such as OWL EL. knowledge source which implements the Data Translator knowledge graph API via queries to the 4.2.2. HuBMAP validation Ubergraph SPARQL endpoint [26]. As described above, nodes within Ubergraph are pre- categorized using groupings from the Biolink The HuBMAP project is building a human standard, which is used as a top-level data model reference atlas leveraging expert input [24]. The by Translator. atlas covers adult human anatomy. Uberon has many terms that are not useful for this purpose as they refer to other species or developmental 5. Challenges stages. It also has many more relationship types than needed. Experts working on this project Reasoning over a merged collection of provide their view of human anatomy using mutually referential, but independently spreadsheets to relate Uberon and Cell Ontology developed, ontologies can uncover hidden logical terms. HuBMAP developers use Ubergraph to incompatibilities. Some of these incompatibilities programmatically test the validity of expert- are simply the result of stale imported content; specified relationships between term pairs against while these ontologies are all developed as part of subclass and existential relations from a small set the OBO collaborative community, they move at of high level object properties. Reports of non- varying paces and release schedules. In our validating pairs are used to inform corrections to experience, the use of “base files” (discussed the expert-curated tables, or to improve Uberon above) helps to avoid many such issues that were and Cell Ontology as applicable. As an example, frequently encountered in previous attempts to HuBMAP biologists have mapped ‘OFF-bipolar reason across combinations of OBO ontologies, cell’ (CL:0000750) to ‘inner nuclear layer of e.g., [27]. Further, combining ontologies together retina’ (UBERON:0001791), a relation that is in applications like Ubergraph highlights the need currently not present in the Cell Ontology. The to ensure that quality control checks in ontology validation tool searches for relationships among release pipelines consider a comprehensive set of the terms in the HuBMAP domain and finds that external axioms; otherwise they may miss ‘OFF-bipolar cell’ currently does have a ‘part_of’ undesired entailments from the use of particular relationship with ‘retina’ (UBERON:0000966). terms. The Ubergraph build pipeline applies Having these suggestions and relationships additional preprocessing, such as removing visualized via the validation tool allows editors to disjointness axioms, to minimize the effect of any consider remodeling the Cell Ontology to have remaining logical incoherency. more specific mappings. In this case, an editor Another issue encountered in a reasoning may choose to add the following axiom to ‘OFF- application like Ubergraph is that the inferences bipolar cell’: 'part of' some 'inner nuclear computed from the merged set of ontologies may layer of retina'. result in additional intra-ontology subsumptions that individual ontology providers have not 4.2.3. Biomedical Data Translator vetted. In a real-life example, a new release of ChEBI classified some chemicals as lipids which were not previously so. Combining this release of The NCATS Biomedical Data Translator ChEBI with the logical definitions for metabolic program is creating a federated knowledge system processes provided by the Gene Ontology resulted [2] Smith B, Ashburner M, Rosse C, Bard J, Bug in certain GO processes being classified under W, Ceusters W, et al. The OBO Foundry: ‘lipid metabolism’ which were not grouped as coordinated evolution of ontologies to such in the official GO release. To better avoid support biomedical data integration. Nat such discrepancies, but still provide all the Biotechnol. 2007;25: 1251–1255. inferred relations which make Ubergraph so doi:10.1038/nbt1346 useful, we are developing protocols for axiom [3] Jackson R, Matentzoglu N, Overton JA, Vita inclusion in the Ubergraph reasoning process, R, Balhoff JP, Buttigieg PL, et al. OBO such as transformations of equivalent class Foundry in 2021: operationalizing open data axioms into less powerful subclass axioms, and principles to evaluate ontologies. Database . ensuring that the class hierarchy published by 2021;2021. doi:10.1093/database/baab069 each provider is precomputed in the ontology file [4] Gene Ontology Consortium. The Gene incorporated into Ubergraph. Ontology resource: enriching a GOld mine. Nucleic Acids Res. 2021;49: D325–D334. 6. Related work doi:10.1093/nar/gkaa1113 [5] Hastings J, Owen G, Dekker A, Ennis M, Kale N, Muthukrishnan V, et al. ChEBI in Online ontology repositories such as Ontobee 2016: Improved services and an expanding [28], the EBI Ontology Lookup Service [29], and collection of metabolites. Nucleic Acids Res. BioPortal [30] all provide SPARQL endpoints 2016;44: D1214–9. which allow querying over the OBO ontologies doi:10.1093/nar/gkv1031 they include. However, within these services, [6] Hill DP, Adams N, Bada M, Batchelor C, users have access to only the complicated RDF Berardini TZ, Dietze H, et al. Dovetailing serialization of the OWL axioms. Ubergraph’s biology and chemistry: integrating the Gene precomputed relation graphs both greatly Ontology with the ChEBI chemical simplify, and also significantly increase the ontology. BMC Genomics. 2013;14: 513. semantic power of, SPARQL queries over the doi:10.1186/1471-2164-14-513 combined suite of ontologies. [7] Köhler S, Gargano M, Matentzoglu N, Carmody LC, Lewis-Smith D, Vasilevsky 7. Conclusions NA, et al. The Human Phenotype Ontology in 2021. Nucleic Acids Res. 2021;49: OBO library ontologies contain a wealth of D1207–D1217. doi:10.1093/nar/gkaa1043 cross-domain knowledge within their logical [8] Kazakov Y, Krötzsch M, Simančík F. The axioms. Ubergraph provides a powerful means to Incredible ELK. J Automat Reason. 2013;53: access and make use of these connections in a way 1–61. doi:10.1007/s10817-013-9296-3 that preserves and utilizes the full semantics of its [9] Unni DR, Moxon SAT, Bada M, Brush M, constituent ontologies, without requiring users to Bruskiewich R, Clemons P, et al. Biolink download multiple gigabytes of ontologies and Model: A Universal Schema for Knowledge load these into an OWL reasoner. Graphs in Clinical, Biomedical, and Translational Science. arXiv [cs.DB]. 2022. doi:10.48550/arXiv.2203.13906 8. Acknowledgments [10] Make - GNU Project - Free Software Foundation. [cited 27 May 2022]. Available: This work was supported in part by the U.S. https://www.gnu.org/software/make/ NIH project numbers 5U01HG009453-03 and [11] Blazegraph. In: Blazegraph [Internet]. 2015 3OT2TR003449-01S1. [cited 29 May 2016]. Available: https://github.com/blazegraph/database 9. References [12] Jackson RC, Balhoff JP, Douglass E, Harris NL, Mungall CJ, Overton JA. ROBOT: A [1] The Open Biological and Biomedical Tool for Automating Ontology Workflows. Ontology (OBO) Foundry. In: The Open BMC Bioinformatics. 2019;20: 407. Biological and Biomedical Ontology (OBO) doi:10.1186/s12859-019-3002-3 Foundry [Internet]. [cited 25 May 2022]. [13] Apache Jena. [cited 27 May 2022]. Available: https://obofoundry.org/ Available: https://jena.apache.org/ [14] Balhoff JP. relation-graph. Github; terms. ICBO. 2011. Available: http://ceur- Available: ws.org/Vol-833/paper48.pdf https://github.com/balhoff/relation-graph [29] Jupp, Burdett, Leroy, Parkinson. A new [15] Balhoff JP. Whelk. Github; Available: Ontology Lookup Service at EMBL-EBI. https://github.com/balhoff/whelk SWAT4LS. 2015. Available: http://ceur- [16] Soufflé. [cited 27 May 2022]. Available: ws.org/Vol-1546/paper_29.pdf https://souffle-lang.github.io/index.html [30] Salvadores M, Alexander PR, Musen MA, [17] Yasgui. In: Triply [Internet]. 25 Jun 2019 Noy NF. BioPortal as a Dataset of Linked [cited 27 May 2022]. Available: Biomedical Ontologies and Terminologies in https://triply.cc/docs/yasgui RDF. Semantic Web. 2013;4: 277–284. [18] Mungall C, Harshad, Kalita P, Patil S, Available: Joachimiak M p., Caufield H. https://www.ncbi.nlm.nih.gov/pubmed/2521 INCATools/ontology-access-kit: v0.1.18. 4827 2022. doi:10.5281/zenodo.6574927 [19] OpenAPI Specification v3.1.0. [cited 29 May 2022]. Available: https://spec.openapis.org/oas/latest.html [20] Peñuela AM. grlc. [cited 29 May 2022]. Available: https://grlc.io/ [21] Vasilevsky NA, Matentzoglu NA, Toro S, Flack JE IV, Hegde H, Unni DR, et al. Mondo: Unifying diseases for the world, by the world. medRxiv. 2022. doi:10.1101/2022.04.13.22273750 [22] Osumi-Sutherland D, Courtot M, Balhoff JP, Mungall C. Dead simple OWL design patterns. J Biomed Semantics. 2017;8: 18. doi:10.1186/s13326-017-0126-0 [23] Quality control tests - Mondo Documentation. [cited 26 May 2022]. Available: https://mondo.readthedocs.io/en/latest/editor s-guide/quality-control-tests/ [24] Börner K, Teichmann SA, Quardokus EM, Gee JC, Browne K, Osumi-Sutherland D, et al. Anatomical structures, cell types and biomarkers of the Human Reference Atlas. Nat Cell Biol. 2021;23: 1117–1128. doi:10.1038/s41556-021-00788-6 [25] Biomedical Data Translator Consortium. Toward A Universal Biomedical Data Translator. Clin Transl Sci. 2019;12: 86–90. doi:10.1111/cts.12591 [26] ontology-kp. [cited 27 May 2022]. Available: https://github.com/TranslatorSRI/ontology- kp [27] Slater LT, Gkoutos GV, Hoehndorf R. Towards semantic interoperability: finding and repairing hidden contradictions in biomedical ontologies. BMC Med Inform Decis Mak. 2020;20: 311. doi:10.1186/s12911-020-01336-2 [28] Xiang, Mungall, Ruttenberg, He. Ontobee: A linked data server and browser for ontology