Traceable parameters
Technology values stay connected to source references, assumptions, and harmonisation history.
MOTEL Platform
MOTEL provides a reproducible workflow for preparing, harmonising, documenting, and reusing technology data in energy system models, while creating a clean handoff into ontology, graph database, API, and web application layers.
Energy system models rely on many technology assumptions such as CAPEX, efficiency, lifetime, emissions factors, and carrier relations. Those assumptions are often buried in spreadsheets or model-specific files, which makes them hard to trace, compare, and reuse. MOTEL addresses that by introducing a structured workflow for turning raw technology information into harmonised, provenance-aware, and ontology-ready data.
Technology values stay connected to source references, assumptions, and harmonisation history.
Shared schemas, controlled vocabularies, and linked entities make the data easier to compare across studies and tools.
Structured MOTEL outputs are mapped in this repository into ontology-ready TTL that can feed downstream graph, API, and web interface layers.
The MOTEL workflow is easier to read as two connected stages: the current `motel-platform` ingestion and harmonisation pipeline, then the ontology mapping in this repository followed by the downstream knowledge-graph layer.
View Stage 1 source View Stage 2 source
Because the workflow is defined through explicit schemas and controlled vocabularies, it does not depend only on project-specific data transformation scripts. The same structure also makes the process suitable for LLM-assisted acceleration.
In this repository, Claude (run through Claude Code) is used
during harmonisation to help
standardise entity names, semantically match staged records to
existing registries when exact matches are missing, fill required
schema fields for new entries, and create or normalise attribute and
scope vocabulary entries. The Claude API or a local model served
by Ollama (for example qwen3:14b) can be used instead.
The current repository focuses on ingestion, harmonisation, ontology mapping, and documentation. A second repository, uesl-empa/motel-webapp, carries the downstream application stack, including backend, graph-serving, and frontend layers.
motel-platform/
|-- 1_ingest/ source-specific ingestion notebooks and helpers
|-- 2_harmonise/ harmonisation notebooks and helper functions
|-- 3_ontology_mapping/ ontology-ready TTL generation scripts and outputs
|-- 4_data_explore/ notebook-first exploration of published MOTEL data
|-- motel-db/ unmapped data, registries, mappings, and linked outputs
|-- schema/ machine-readable data schemas
|-- schema_human/ human-readable schema blueprints
`-- docs/ GitHub Pages documentation and workflow figures
The current public repository demonstrates how a selected set of technologies can be ingested, harmonised, linked to structured MOTEL entities, converted into ontology-ready TTL, and prepared for downstream graph workflows.
A harmonised MOTEL record can connect a technology, its parameters, units, source references, and ontology-ready identifiers in one inspectable structure.
technology:
id: heat_pump
label: Heat pump
type: EnergyConverter
parameters:
- id: heat_pump_capex
label: CAPEX
value: 1200
unit: CHF/kW
source_id: SRC_001
ontology_class: dici_onto:CAPEX
- id: heat_pump_lifetime
label: Lifetime
value: 25
unit: years
source_id: SRC_001
ontology_class: dici_onto:Lifetime
The downstream MOTEL repository
uesl-empa/motel-webapp
turns harmonised MOTEL data into ontology-based TTL files, loads
them into GraphDB, serves them through a backend API, and exposes
them in a web interface for exploration. The ontology classes and
properties (dici_onto:) that the TTL output is mapped
to are defined in the
DigiCities ontology
repository.
Heat pump
-> hasAttribute
-> CAPEX
-> hasValue
-> 1200 CHF/kW
-> wasDerivedFrom
-> Source record
In the separate downstream stack hosted at uesl-empa/motel-webapp, the MOTEL webapp is intended to let users browse technologies, inspect parameters and provenance, adapt selected values, and export model-ready configuration files.
This repository can be explored locally with the notebook-based ingestion and harmonisation workflow. The downstream ontology, KG, backend, and frontend stack runs from the separate repository uesl-empa/motel-webapp.
git clone https://github.com/uesl-empa/motel-platform
cd motel-platform
python -m venv .venv
# Windows PowerShell:
# .\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Then open the workflow notebooks locally in Jupyter or VS Code:
1_ingest/1_data_ingestion.ipynb2_harmonise/2_data_harmonisation.ipynb3_ontology_mapping/3_ontology_mapping.ipynb4_data_explore/4_data_exploration.ipynb
To add a new source to the populated database, stage its records in
motel-db/unmapped_entity/ and harmonise them from the
terminal. The command validates the staging records, backs up the
derived files, appends the new linked entities without renumbering
existing IDs, and checks every reference it created:
.\.venv\Scripts\python.exe 2_harmonise\harmonise.py motel-db\unmapped_entity\unmapped_entities_<source>.yaml --limit 1
LLM-assisted steps use Claude through Claude Code under a Claude
subscription by default, so no API key is needed. Use
--llm-provider anthropic for the Claude API,
--llm-provider ollama for a local model, or
--no-llm for exact-match resolution only.
Or run the ontology mapping step directly after harmonisation:
.\.venv\Scripts\python.exe 3_ontology_mapping\scripts\gen_ttl.py
This project was supported by the Open Research Data Program of the ETH Board.
Developed by Empa Urban Energy Systems Lab in collaboration with ETH Energy Science Center.
Contributors to the MOTEL platform include Barton Chen (method and platform development), Dennis Beermann (method and platform development), Tycho Noah Frei (web app development), James Allan (ontology integration), Francesco Albisetti (data integration and test), Adriana Marcucci Bustos (methodology/data review), and Robin Mutschler (concept, method and funding acquisition).
Special thanks to the reFuel.ch project for important input to the platform and workflow, especially Arash Ebneali Samani and Arijit Alip Upadhyay.