The Information Exchange Standard (IES) is a layered ontology framework used by the UK National Digital Twin Programme (NDTP). Open Ontologies supports the full IES stack through its marketplace.
IES is split into three tiers, each building on the last:
ies-top (ToLO) ~22 classes BORO foundations, 4D extensionalism
|
ies-core ~131 classes Persons, states, events, identifiers
|
ies-common ~513 classes Full ontology — everything above + domain patterns
# Load all three layers individually
onto_marketplace install ies-top
onto_stats
onto_clear
onto_marketplace install ies-core
onto_stats
onto_clear
# Or load the full IES Common (includes everything)
onto_marketplace install ies
onto_stats
onto_marketplace install ies
onto_stats
onto_lint
Expected output:
- 513 classes counted structurally (511 declared with
rdfs:Class), 162 object properties and 44 datatype properties for 206 in total, 4,039 triples - 19 lint issues, all info-level
missing_domainnotices, and no warnings or errors
onto_reason --profile rdfs
onto_stats
RDFS materialises +3,094 inferred triples (77% growth) — transitive subclass chains across 241 State subclasses, 117 ClassOfEntity subclasses, and 102 Event subclasses.
The repo includes a sample of 10 real UK Energy Performance Certificates from the Open Data Communities register (benchmark/epc/epc-sample.csv) with a pre-built mapping config (benchmark/epc/epc-ies-mapping.json).
# Load IES Building Extension as the target ontology
onto_validate benchmark/generated/ies-building-extension.ttl
onto_load benchmark/generated/ies-building-extension.ttl
# Generate or review the mapping (CSV columns → IES predicates)
onto_map benchmark/epc/epc-sample.csv
# Ingest the CSV data using the mapping
onto_ingest benchmark/epc/epc-sample.csv --mapping benchmark/epc/epc-ies-mapping.json
# Check what was created
onto_stats
# Reason to materialise inferred triples
onto_reason --profile rdfs
# Query: which dwellings have poor energy ratings?
onto_query "SELECT ?dwelling ?rating WHERE {
?dwelling a <http://example.org/ontology/ies-building#Dwelling> .
?dwelling <http://example.org/ontology/ies-building#energyRatingBand> ?rating .
FILTER(?rating IN (
<http://example.org/ontology/ies-building#BandE>,
<http://example.org/ontology/ies-building#BandF>,
<http://example.org/ontology/ies-building#BandG>
))
}"
The mapping config maps CSV columns to IES Building predicates:
| CSV Column | IES Predicate | Type |
|---|---|---|
postcode |
bldg:hasPostalCode |
string |
propertytype |
ies:similarEntity → ClassOfBuilding |
lookup (D→Detached, S→Semi, T→Terraced, F→Flat) |
CURRENT_ENERGY_RATING |
bldg:energyRatingBand |
lookup (A-G → BandA-BandG) |
CURRENT_ENERGY_EFFICIENCY |
bldg:energyScore |
integer |
MAIN_FUEL |
bldg:usesFuel → FuelType |
lookup (mains gas→MainsGas, etc.) |
MAINHEAT_DESCRIPTION |
bldg:heatingDescription |
string |
WALLS_DESCRIPTION |
bldg:wallsDescription |
string |
inspectiondate |
bldg:inspectionDate |
date |
CO2_EMISSIONS_CURRENT |
bldg:co2Emissions |
decimal |
This mirrors NDTP's actual pipeline: take tabular EPC data, map it to IES-shaped RDF, validate, reason, and query.
See ies-examples.md for 5 ready-to-use queries. Quick taste:
# Count State subclasses (the 4D temporal pattern)
onto_query "SELECT (COUNT(DISTINCT ?c) AS ?count) WHERE {
?c rdfs:subClassOf* <http://informationexchangestandard.org/ont/ies/common/State> .
FILTER(?c != <http://informationexchangestandard.org/ont/ies/common/State>)
}"
# Result: 241
IES has ~42 example Turtle files across its repos. Pull them directly:
# Event participation patterns
onto_pull https://raw.githubusercontent.com/IES-Org/ont-ies/main/docs/examples/sample-data/event-participation.ttl
# Hospital scenario
onto_pull https://raw.githubusercontent.com/IES-Org/ont-ies/main/docs/examples/sample-data/hospital.ttl
# Movement tracking
onto_pull https://raw.githubusercontent.com/IES-Org/ont-ies/main/docs/examples/sample-data/movement.ttl
# GeoSPARQL integration
onto_pull https://raw.githubusercontent.com/IES-Org/ont-ies/main/docs/examples/sample-data/geosparql.ttl
Additional examples from telicent-oss:
# Ship movement (4D spatiotemporal)
onto_pull https://raw.githubusercontent.com/telicent-oss/ies-examples/main/additional_examples/ship_movement.ttl
# Aircraft observation
onto_pull https://raw.githubusercontent.com/telicent-oss/ies-examples/main/additional_examples/observing_moving_aircraft.ttl
# Countries reference data
onto_pull https://raw.githubusercontent.com/telicent-oss/ies-examples/main/regions_of_the_world/countries.ttl
IES provides SHACL shapes for data validation:
# Validate against IES Common shapes
onto_pull https://raw.githubusercontent.com/IES-Org/ont-ies/main/docs/specification/ies-common.shacl
onto_shacl
Core-level shapes for specific patterns:
# Person state validation
onto_pull https://raw.githubusercontent.com/IES-Org/ies-core/main/spec/validation_artefacts/PersonState.shacl.ttl
# Birth/death state validation
onto_pull https://raw.githubusercontent.com/IES-Org/ies-core/main/spec/validation_artefacts/BirthStateShape.shacl.ttl
onto_pull https://raw.githubusercontent.com/IES-Org/ies-core/main/spec/validation_artefacts/DeathStateShape.shacl.ttl
Map IES to other domain ontologies:
# Save IES, load target, align
onto_save /tmp/ies.ttl
onto_clear
onto_marketplace install schema-org
onto_save /tmp/schema-org.ttl
onto_clear
onto_align --source /tmp/ies.ttl --target /tmp/schema-org.ttl
See ies-alignment.md for the full IES:Building alignment walkthrough.
| Resource | Repo | What's There |
|---|---|---|
| IES Top (ToLO) | IES-Org/ies-top |
Foundational ontology + 2 SHACL shapes |
| IES Core | IES-Org/ies-core |
Core patterns + 6 SHACL shapes + 7 test data files |
| IES Common | IES-Org/ont-ies |
Full ontology (4 formats) + SHACL shapes + 15 examples + user guides + 70 diagrams |
| IES Examples | telicent-oss/ies-examples |
28 Turtle example files + regions reference data |
| IES Tool | telicent-oss/ies-tool |
Python library + bundled v4.3 ontology + SHACL shapes |
| RDF Transform | telicent-oss/telicent-rdf-transform |
IES4 to IES-Next migration mappings |
| NDTP AI Extension | National-Digital-Twin/ndtp-ai-ontology-extension |
LLM-driven ontology extension tooling |
| IES4 (archived, last MIT release v4.3.1) | dstl/IES4 |
Legacy mirror; archived 4 Mar 2025 when custodianship moved from Dstl to DBT. Last public release 4.3.1 (3 Mar 2025) under MIT — pinnable as a reproducible compliance baseline. 4.3.2+ work continues in a private working group. Canonical successor is IES-Org/ont-ies (above), portal at informationexchangestandard.org. |
| Layer | Classes | Properties | Triples | + RDFS | Fetch | RDFS |
|---|---|---|---|---|---|---|
| IES Top (ToLO) | ~22 | TBD | TBD | TBD | TBD | TBD |
| IES Core | ~131 | TBD | TBD | TBD | TBD | TBD |
| IES Common | 513 | 206 | 4,039 | +3,094 | not measured | 63ms |
IES Common is the second-largest ontology in the marketplace by class count, after Schema.org, which the marketplace benchmark records at 1,032 classes. RDFS reasoning adds 77% more triples — the richest inference gain of any non-general ontology, driven by the deep 4D State/Event/ClassOfEntity hierarchies.