MOTEL Platform

Methodology for Open Technology Data in Energy Models

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.

What is MOTEL for?

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.

Traceable parameters

Technology values stay connected to source references, assumptions, and harmonisation history.

Reusable structures

Shared schemas, controlled vocabularies, and linked entities make the data easier to compare across studies and tools.

Ontology-aware handoff

Structured MOTEL outputs are mapped in this repository into ontology-ready TTL that can feed downstream graph, API, and web interface layers.

Workflow

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.

  • Traceable technology parameters
  • Clear source documentation
  • Ontology-supported interoperability
  • Reusable data structures
  • Reproducible data preparation workflow
  • Model-ready export as a downstream goal
Stage 1

Ingestion and harmonisation

Diagram showing raw source data flowing through ingestion into unmapped entities, then harmonisation into registries, linked entities, and mappings
The implemented core of this repository turns heterogeneous source material into harmonised MOTEL datasets.
Stage 2

Ontology and knowledge graph

Diagram showing harmonised datasets entering ontology mapping, graph-ready data preparation, knowledge graph creation, and search or exploration tools
Those harmonised outputs are converted here into ontology-ready TTL, which can then feed downstream knowledge-graph creation and future search or export tools.

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.

Methodology

  1. Data ingestion: raw or semi-structured technology data is collected and stored as unmapped records.
  2. Harmonisation: staged records are transformed into a consistent MOTEL data structure.
  3. Entity linking: technologies, parameters, carriers, scopes, and sources are represented through linked records and registries.
  4. Ontology mapping: harmonised MOTEL outputs are converted in this repository into ontology-ready TTL linked to ontology classes and properties.
  5. Data exploration: published MOTEL datasets can be queried and inspected through a notebook-first exploration layer in this repository.
  6. Application and export: the graph database, backend API, and webapp support broader exploration and future model-ready export workflows.

Repository Structure

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

Demo Workflow

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.

Example Technology Record

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

Ontology and Graph Database Layer

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

Webapp and Model Builder

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.

  • Technology selection
  • Parameter table
  • Source and provenance display
  • Editable or customisable values
  • YAML export

How to Run

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.ipynb
  • 2_harmonise/2_data_harmonisation.ipynb
  • 3_ontology_mapping/3_ontology_mapping.ipynb
  • 4_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

Outputs and Deliverables

  • A documented methodology for technology data harmonisation
  • A structured technology data model
  • A demonstration technology database
  • Controlled vocabularies, secondary registries, and mapping tables
  • Linked-entity target structures
  • A workflow handoff into ontology, graph, API, and web-app layers
  • Documentation and training material

Status and Limitations

Current Status

  • Data ingestion and harmonisation workflow implemented
  • New sources can be added to the populated database from the command line, with reference validation
  • Unmapped and linked data structures defined
  • Controlled vocabularies and mapping tables generated
  • Ontology-mapping workflow and graph-layer handoff documented
  • Notebook-first exploration entrypoint added for published MOTEL data

Current Limitations

  • The public repo currently demonstrates a selected set of technologies
  • Ontology mapping, GraphDB, backend, and frontend are in the separate repository uesl-empa/motel-webapp
  • Model-ready YAML export is a downstream target, not a full feature of this repo alone
  • Some published linked entities still carry raw scope values instead of vocabulary tokens; a repair is planned
  • Additional validation and richer export formats remain future work

Acknowledgement

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.

Empa logo
ETH Zurich logo
ETH Energy Science Center logo