Skip to main content
Glama
mondo.yaml13.4 kB
schema_info: title: MONDO (Monarch Disease Ontology) description: | Comprehensive disease ontology integrating multiple disease databases into unified classification. Provides cross-references to OMIM, Orphanet, DOID, MESH, ICD, and 35+ databases for clinical research and precision medicine. endpoint: https://rdfportal.org/primary/sparql base_uri: http://purl.obolibrary.org/obo/ graphs: - http://rdfportal.org/ontology/mondo version: mie_version: '1.0' mie_created: '2025-12-08' data_version: '2024' update_frequency: Monthly license: data_license: CC BY 4.0 license_url: https://creativecommons.org/licenses/by/4.0/ access: rate_limiting: No strict limits max_query_timeout: 60 seconds shape_expressions: | PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX oboInOwl: <http://www.geneontology.org/formats/oboInOwl#> PREFIX IAO: <http://purl.obolibrary.org/obo/IAO_> <DiseaseClass> { a [ owl:Class ] ; rdfs:label xsd:string ; oboInOwl:id xsd:string ; IAO:0000115 xsd:string ? ; rdfs:subClassOf @<DiseaseClass> * ; oboInOwl:hasExactSynonym xsd:string * ; oboInOwl:hasRelatedSynonym xsd:string * ; oboInOwl:hasDbXref xsd:string * ; owl:deprecated xsd:boolean ? } sample_rdf_entries: - title: Disease with Cross-References description: Skeletal dysplasia with OMIM and Orphanet links. rdf: | obo:MONDO_0000003 a owl:Class ; rdfs:label "achondroplasia" ; oboInOwl:id "MONDO:0000003" ; obo:IAO_0000115 "A skeletal dysplasia characterized by short-limb dwarfism." ; rdfs:subClassOf obo:MONDO_0019695 ; oboInOwl:hasExactSynonym "achondroplastic dwarfism" ; oboInOwl:hasDbXref "OMIM:100800" ; oboInOwl:hasDbXref "Orphanet:15" . - title: Root Disease Class description: Top-level disease entity in ontology hierarchy. rdf: | obo:MONDO_0000001 a owl:Class ; rdfs:label "disease or disorder" ; oboInOwl:id "MONDO:0000001" ; obo:IAO_0000115 "A disease is a disposition to undergo pathological processes." . - title: Disease with ICD Mapping description: Diabetes with clinical classification codes. rdf: | obo:MONDO_0005147 a owl:Class ; rdfs:label "type 1 diabetes mellitus" ; oboInOwl:id "MONDO:0005147" ; oboInOwl:hasDbXref "ICD10:E10" ; oboInOwl:hasDbXref "MESH:D003922" . - title: Rare Disease Entry description: Rare genetic disorder with orphan disease database references. rdf: | obo:MONDO_0007739 a owl:Class ; rdfs:label "Huntington disease" ; oboInOwl:id "MONDO:0007739" ; oboInOwl:hasDbXref "Orphanet:399" ; oboInOwl:hasDbXref "OMIM:143100" . - title: Cancer Classification description: Neoplasm with hierarchical parent relationship. rdf: | obo:MONDO_0004992 a owl:Class ; rdfs:label "cancer" ; oboInOwl:id "MONDO:0004992" ; rdfs:subClassOf obo:MONDO_0005070 . sparql_query_examples: - title: Search Diseases by Keyword with bif:contains description: Full-text search with relevance scoring question: Which diseases relate to diabetes? complexity: basic sparql: | PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX oboInOwl: <http://www.geneontology.org/formats/oboInOwl#> SELECT ?disease ?mondoId ?label FROM <http://rdfportal.org/ontology/mondo> WHERE { ?disease a owl:Class ; rdfs:label ?label ; oboInOwl:id ?mondoId . ?label bif:contains "'diabetes'" option (score ?sc) } ORDER BY DESC(?sc) LIMIT 20 - title: Get Disease Biological Annotations description: Retrieve definition, synonyms, and hierarchical classification question: What are the biological annotations for a disease? complexity: basic sparql: | PREFIX obo: <http://purl.obolibrary.org/obo/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX oboInOwl: <http://www.geneontology.org/formats/oboInOwl#> PREFIX IAO: <http://purl.obolibrary.org/obo/IAO_> SELECT ?label ?definition ?synonym ?parentLabel FROM <http://rdfportal.org/ontology/mondo> WHERE { obo:MONDO_0005147 rdfs:label ?label . OPTIONAL { obo:MONDO_0005147 IAO:0000115 ?definition } OPTIONAL { obo:MONDO_0005147 oboInOwl:hasExactSynonym ?synonym } OPTIONAL { obo:MONDO_0005147 rdfs:subClassOf ?parent . ?parent rdfs:label ?parentLabel . FILTER(isIRI(?parent)) } } - title: Get Disease Hierarchy Path description: Retrieve all ancestor classes in classification tree question: What are all parent classes of a disease? complexity: intermediate sparql: | PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX obo: <http://purl.obolibrary.org/obo/> PREFIX oboInOwl: <http://www.geneontology.org/formats/oboInOwl#> SELECT ?parent ?parentId ?parentLabel FROM <http://rdfportal.org/ontology/mondo> WHERE { obo:MONDO_0005147 rdfs:subClassOf+ ?parent . ?parent rdfs:label ?parentLabel ; oboInOwl:id ?parentId . FILTER(isIRI(?parent)) } - title: Count Diseases by Top-Level Category description: Aggregate disease counts by immediate parent classes question: How many diseases in each major category? complexity: intermediate sparql: | PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX owl: <http://www.w3.org/2002/07/owl#> SELECT ?parentLabel (COUNT(?disease) as ?count) FROM <http://rdfportal.org/ontology/mondo> WHERE { ?disease a owl:Class ; rdfs:subClassOf ?parent . ?parent rdfs:label ?parentLabel . FILTER(isIRI(?parent)) } GROUP BY ?parentLabel ORDER BY DESC(?count) LIMIT 20 - title: Find Diseases with External Database Links description: Retrieve diseases with specific cross-reference databases question: Which diseases have OMIM references? complexity: intermediate sparql: | PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX oboInOwl: <http://www.geneontology.org/formats/oboInOwl#> SELECT ?disease ?label ?xref FROM <http://rdfportal.org/ontology/mondo> WHERE { ?disease a owl:Class ; rdfs:label ?label ; oboInOwl:hasDbXref ?xref . FILTER(STRSTARTS(?xref, "OMIM:")) } LIMIT 50 - title: Find Genetic Diseases with Transitive Hierarchy description: Retrieve all diseases classified under genetic disorders question: Which diseases are genetic disorders or subtypes? complexity: advanced sparql: | PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX obo: <http://purl.obolibrary.org/obo/> PREFIX oboInOwl: <http://www.geneontology.org/formats/oboInOwl#> SELECT ?disease ?mondoId ?label FROM <http://rdfportal.org/ontology/mondo> WHERE { ?disease a owl:Class ; rdfs:label ?label ; oboInOwl:id ?mondoId ; rdfs:subClassOf* obo:MONDO_0003847 . } LIMIT 50 - title: Comprehensive Disease Profile with Aggregation description: Multi-faceted query combining hierarchy, synonyms, and cross-references question: Get complete annotation profile for cancer-related diseases complexity: advanced sparql: | PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX oboInOwl: <http://www.geneontology.org/formats/oboInOwl#> PREFIX IAO: <http://purl.obolibrary.org/obo/IAO_> SELECT ?disease ?mondoId ?label ?definition ?sc (GROUP_CONCAT(DISTINCT ?synonym; SEPARATOR="|") as ?synonyms) (GROUP_CONCAT(DISTINCT ?xref; SEPARATOR="|") as ?crossRefs) FROM <http://rdfportal.org/ontology/mondo> WHERE { ?disease a owl:Class ; rdfs:label ?label ; oboInOwl:id ?mondoId . OPTIONAL { ?disease IAO:0000115 ?definition } OPTIONAL { ?disease oboInOwl:hasExactSynonym ?synonym } OPTIONAL { ?disease oboInOwl:hasDbXref ?xref } ?label bif:contains "'cancer'" option (score ?sc) } GROUP BY ?disease ?mondoId ?label ?definition ?sc ORDER BY DESC(?sc) LIMIT 10 cross_references: - pattern: oboInOwl:hasDbXref description: | All external database cross-references via oboInOwl:hasDbXref. Coverage: ~90% of diseases. Avg: 6.5 references per disease. databases: medical: UMLS (70%), MEDGEN (70%), SCTID (31%), MESH (28%), NCIT (25%) genetic: GARD (35%), DOID (39%), OMIM (33%), Orphanet (34%) clinical: ICD9 (19%), ICD11 (14%), ICD10CM (9%) oncology: ICDO (3%), ONCOTREE (2%) phenotype: EFO (8%), HP (2%) japanese: NANDO (8%) sparql: | PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX oboInOwl: <http://www.geneontology.org/formats/oboInOwl#> SELECT ?disease ?label ?xref FROM <http://rdfportal.org/ontology/mondo> WHERE { ?disease a owl:Class ; rdfs:label ?label ; oboInOwl:hasDbXref ?xref . # FILTER(STRSTARTS(?xref, "OMIM:")) # OMIM # FILTER(STRSTARTS(?xref, "Orphanet:")) # Orphanet # FILTER(STRSTARTS(?xref, "ICD10CM:")) # ICD-10 } LIMIT 50 architectural_notes: schema_design: - OBO Foundry compliant with hierarchical rdfs:subClassOf - Single cross-reference property (oboInOwl:hasDbXref) for all external links - Exact and related synonyms for alternative disease names - Comprehensive mapping to 39+ external databases performance: - Use bif:contains for label searches (full-text index + relevance scoring) - Add FILTER(isIRI(?parent)) to exclude blank nodes in hierarchy - Prefix filtering with STRSTARTS() efficient for cross-references - Always use LIMIT for exploratory queries (30K+ classes) data_integration: - Genetic disorder databases (OMIM, Orphanet, GARD) - Clinical classifications (ICD-9, ICD-10, ICD-11) - Medical terminologies (UMLS, MEDGEN, SNOMED CT, MeSH) - Disease ontologies (DOID, EFO) - Oncology classifications (ICDO, OncoTree) data_quality: - Exact synonyms are semantically equivalent - Related synonyms may have broader/narrower meaning - Obsolete terms marked with owl:deprecated - Cross-reference coverage varies by database (3-70%) data_statistics: total_classes: 30304 active_diseases: 28500 diseases_with_xrefs: 27176 coverage: diseases_with_labels: '>99%' diseases_with_definitions: ~75% diseases_with_cross_references: ~90% diseases_with_synonyms: ~85% cardinality: avg_xrefs_per_disease: 6.5 max_xrefs_per_disease: 50+ avg_synonyms_per_disease: 2.8 avg_parents_per_disease: 1.2 performance_characteristics: - bif:contains efficient for label searches with relevance ranking - STRSTARTS() filtering fast for cross-reference prefix matching - Transitive hierarchy queries (rdfs:subClassOf*) require specific starting points - Recommend LIMIT 50 for exploratory queries anti_patterns: - title: Using FILTER Instead of bif:contains problem: No full-text index or relevance ranking wrong_sparql: | SELECT ?label WHERE { ?disease rdfs:label ?label . FILTER(CONTAINS(LCASE(?label), "diabetes")) } correct_sparql: | SELECT ?label WHERE { ?disease rdfs:label ?label . ?label bif:contains "'diabetes'" option (score ?sc) } ORDER BY DESC(?sc) explanation: bif:contains uses full-text index and provides relevance scoring - title: Not Filtering Blank Nodes in Hierarchy problem: Returns OWL restrictions instead of named disease classes wrong_sparql: | SELECT ?parent WHERE { ?disease rdfs:subClassOf ?parent } correct_sparql: | SELECT ?parent WHERE { ?disease rdfs:subClassOf ?parent . FILTER(isIRI(?parent)) } explanation: FILTER(isIRI(?parent)) excludes blank node restrictions - title: Unbounded Transitive Queries problem: rdfs:subClassOf* without constraints causes timeout wrong_sparql: | SELECT ?disease WHERE { ?disease rdfs:subClassOf* ?parent } correct_sparql: | SELECT ?disease FROM <http://rdfportal.org/ontology/mondo> WHERE { ?disease rdfs:subClassOf* obo:MONDO_0003847 . } LIMIT 50 explanation: Start from specific parent and add LIMIT for transitive queries common_errors: - error: Query timeout on hierarchy traversal causes: - Unbounded rdfs:subClassOf* without starting point - Missing LIMIT clause solutions: - Start from specific disease class (e.g., obo:MONDO_0003847) - Add LIMIT 50-100 for exploratory queries - Use rdfs:subClassOf+ for ancestor-only (not self) - error: Unexpected blank nodes in results causes: - Not filtering OWL restrictions in hierarchy queries - Missing FILTER(isIRI()) clause solutions: - Add FILTER(isIRI(?parent)) to exclude blank nodes - Check for owl:Class type when needed - error: Poor search results for disease names causes: - Using FILTER(CONTAINS()) instead of bif:contains - Case-sensitive searches solutions: - Use bif:contains for full-text search with relevance - 'Order by score: ORDER BY DESC(?sc)' - 'Use compound queries: bif:contains "''term1'' AND ''term2''"'

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/arkinjo/togo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server