An interactive, fully static web app over OFCO (Ontology for Functional
Consequences in Orphanet), ORDO (Orphanet Rare Diseases Ontology) and
HOOM (HPO–ORDO Ontological Module) — built on top of
ERDERA/OFCO_thesaurus and the
Orphadata products en_product4 (HPO
phenotypes) and ORDO 4.8.
It runs entirely in the browser — no backend, no triplestore. Suitable for GitHub Pages.
- Disease profile — for each of 1,039 rare diseases (ORDO), the OFCO functional-consequence profile (disabilities + frequency / severity / temporality, with ICF 2025 codes) alongside the HPO clinical phenotype.
- Disease network — an interactive radial graph centred on a disease, with the most similar diseases around it. Click any neighbour to re-centre. Toggle the basis between functional consequences (OFCO) and clinical phenotype (HOOM/HPO), and ranking between similarity and shared count.
- OFCO thesaurus — browse the 151 OFCO concepts grouped by ICF domain, with ICF code mappings and the diseases that reference each concept.
- SPARQL — a real SPARQL 1.1 query engine (Comunica) running in your browser over an in-memory N3.js store. A curated combined graph of OFCO + HOOM + ORDO disease subset (350k triples) loads in a few seconds; an optional Load full ORDO (51 MB) button streams the entire ORDO ontology in.
python3 -m http.server 8765 --directory app
open http://localhost:8765The committed app/data/ files are derived from upstream source data. To
regenerate them from scratch:
./fetch_data.sh # download OFCO + HPO + ORDO sources
python3 build.py # emit JSON for the profile/network/thesaurus views
python3 build_rdf.py # emit ofco-graph.ttl for the SPARQL view
cp data/ORDO_en_4.8.owl app/data/ORDO_en_4.8.rdf # so the Pages "Load full ORDO" button worksIf you edit the architecture diagram (app/data/architecture.mmd), regenerate
the static SVG with mermaid-cli:
npx -y -p @mermaid-js/mermaid-cli mmdc \
-i app/data/architecture.mmd -o app/data/architecture.svg -b transparentPush to main. The workflow at .github/workflows/deploy-pages.yml uploads
./app as the Pages artifact on every push and on manual dispatch.
First-time setup in your fork/repo: Settings → Pages → Source → GitHub Actions.
- The browser holds the entire RDF graph in memory. With the curated graph (~350k triples) you'll see ~1 GB tab RAM; after loading full ORDO it climbs to ~3 GB+. Works on a modern desktop browser; not recommended on phones.
- Queries that do open property paths or
FILTER(STRSTARTS(STR(?x), ...))scans across the full ORDO-augmented store can take minutes. Prefer triple-pattern joins. - ORDO is served same-origin as
ORDO_en_4.8.rdfso the static server sendsapplication/rdf+xmland Comunica auto-detects it.
This demonstrator — together with the OFCO ontology and the HOOM module it draws on — is work carried out within ERDERA (the European Rare Diseases Research Alliance).
Maintained by:
- Andra Waagmeester — Amsterdam UMC
- Pauline Lubet — Amsterdam UMC
- Marc Hanauer — Orphanet
- David Lagorce — Orphanet
With thanks to the wider OFCO curation team at Orphanet (Dr Ana Rath, Dr Rami Nadji, Valérie Lanneau) and to the upstream providers of ORDO, ICF 2025 and HPO.
- OFCO thesaurus & ICF mappings — ERDERA/OFCO_thesaurus (WP16.5; CC-BY-4.0).
- ORDO 4.8, HPO–ORDO associations — Orphadata (CC-BY-4.0).
- HPO terms — Human Phenotype Ontology.
- ICF 2025 — WHO.
- Comunica, N3.js — MIT.