The data model · the TWB ontology
A house is surfaces,edges and zones.
Under the tool lies an open data model: TWB, an OWL ontology on top of the Building Topology Ontology (BOT). It describes the house before it is detailed — thin surfaces on the structure’s reference planes — and attaches construction knowledge where it belongs: a recipe on the surface, a joint on the edge, a requirement on the side that faces the room.
- 97
- classes
- 115
- object properties
- 80
- datatype properties
- CC BY 4.0
- licence of the ontology
Download the whole ontology twb.ttlThe SHACL shapes twb-shapes.ttlThe JSON-LD context 2.jsonld
01 · The concepts
Knowledge where it belongs
A wall in TWB is not an object with a thickness. It is a surface with none, and everything known about the wall sits on the surface, its sides, its edges or its openings. Five places carry the model.
- 01
The surface carries a recipe
A planar polygon on the reference plane of a wall, floor or roof — in a timber frame, the centreline of the studs. The recipe (twb:Recipe) is the layers in order, one of them the core. The surface is a bot:Element in its thin form; the derived members are its sub-elements.
- 02
The side carries the requirements
Every surface has two sides (twb:SurfaceSide), and each side faces zones. Where a zone meets a side there is a zone boundary — and that is where requirements land: a wet-room lining towards the bath, paint towards the bedroom. Only the part of the wall the bath faces.
- 03
The edge carries the joint
Where two surfaces meet there is an edge (a bot:Interface) with a type: corner, eave, verge, T-junction. The joint (twb:JointDetail) says how every layer of every surface ends. The most specific wins: the edge’s own, then the template, then the project standard, else a mitre.
- 04
The opening carries its finish
Windows and doors are openings the surface hosts (bot:hostsElement). Each has four perimeter edges with their thermal bridge (ψ) and an opening detail: sill flashing, frame boards, head and sill boards. A door between two rooms makes a passage — a way one can walk.
- 05
The blueprint carries the standards and the rules
The project’s standards per edge type, templates, the architectural expression, the building’s use and its rules. Rules are data (twb:AdjacencyRule): "towards a wet room, a wet-room lining", "an exterior wall of a dwelling at most 0.30 W/m²K". And the decisions behind the values, with their source.
- →
The rest is derived
Everything at element level — members, sheets, boards, machining — is derived from the blueprint by a deterministic compilation (twb:Derivation, a prov:Activity that follows the blueprint as its plan). That is what makes the blueprint a template of the building rather than a model of it.
02 · The wall line
Where the thin wall lies
A surface with no thickness has to lie somewhere definite in the wall, or nobody knows where the layers go. TWB always puts it through the middle of what carries: the part of the wall the roof and the floors rest on. That is where the house is set out on its module — and the build-up is laid out to both sides from there.
Timber frame: through the studs
The line runs through the middle of the studs, the carcass that carries, before insulation, cladding and boards. The house is set out on the sheet module, 1200 and 600, line to line — so a plan 7200 wide is 7200 between the studs’ centres. Over the cladding the house is larger and inside the room is smaller; the program works both out from the build-up.
Masonry: through the inner leaf
In a cavity wall the inner leaf carries the roof and its wall plate; the facing brick is a skin outside it. So the line runs through the middle of the inner leaf, and that is what is set out in brick measure: whole half bricks, 120, line to line. The cavity is made as wide as puts the facing brick on the module too — so the length over the brick is n × 120 − 12, whole bricks with standard joints. With a 100 mm inner leaf and 108 mm brick the cavity is 196 mm, and the line lies 354 mm in from the face.
One rule for both: the line is the structure’s, the module applies to the line, and everything else is a distance from it that the build-up gives. The cavity’s width is a default the program works out; choose another and it is saved in the house file and wins.
03 · The modules
One ontology, taken in parts
TWB is built as the SEAS ontologies (Smart Energy Aware Systems) are: one namespace, twb:, shared by every module; each module an ontology of its own that imports only the modules it builds on; and every term stating the module that defines it (rdfs:isDefinedBy). https://w3id.org/twb imports them all. To take only the house as surfaces, edges and zones, import the core alone.
twb.ttlCore
https://w3id.org/twb/coreThe skeleton: the blueprint, storeys, zones (rooms, the environment, attics, passages through doors) and fittings, the thin surfaces with their sides and zone boundaries, the openings they host, the edges and nodes where they meet, line elements and foundations. Nothing of what anything is built of.
imports no other module
42 classes · 32 object properties · 26 datatype properties
Downloadtwb-core.ttlConstruction
https://w3id.org/twb/constructionWhat a surface is built of: recipes and their layers, materials, patterns of members, cladding, taper, masonry and wall ties, coverings on zone boundaries, U- and ψ-values.
imports Core
12 classes · 14 object properties · 12 datatype properties
Downloadtwb-construction.ttlDetailing
https://w3id.org/twb/detailingHow recipes meet: joints on edges with the layers’ terminations and trims, templates and project standards, opening details, boards across a seam, how trims meet at nodes, and the framing rules with their BTLx processings.
imports Construction
22 classes · 35 object properties · 5 datatype properties
Downloadtwb-detailing.ttlRequirements
https://w3id.org/twb/requirementsWhat the construction must do where a zone meets a surface: capabilities, adjacency rules as data, the requirements they infer, and U-value limits.
imports Construction
3 classes · 11 object properties · 5 datatype properties
Downloadtwb-requirements.ttlProject profile
https://w3id.org/twb/profileThe project’s choices: the architectural expression and the trims it derives, the building’s use that selects the rules, the construction system and the structural parameters.
imports Requirements, Detailing
3 classes · 6 object properties · 11 datatype properties
Downloadtwb-profile.ttlDecisions
https://w3id.org/twb/decisionWhere the values came from: decisions in three tiers (profile, standard, override), their value and source — a drawing or an assumption.
imports Core
2 classes · 3 object properties · 4 datatype properties
Downloadtwb-decision.ttlDerivation
https://w3id.org/twb/derivationThe building at element level, derived from the blueprint: the derivation, the members with their roles, sections and processings, the layer pieces, and what governed each.
imports Detailing
4 classes · 4 object properties · 4 datatype properties
Downloadtwb-derivation.ttlHouse file
https://w3id.org/twb/housefileWhat the house file (twb/1) needs beyond the rest: geometry as drawn, in millimetres as JSON, and references by name.
imports Detailing
3 object properties · 8 datatype properties
Downloadtwb-housefile.ttlDocumentation
https://w3id.org/twb/docThe documentation: the sections the user placed or left out, and the drawing set derived from the blueprint — sheets, drawings and scale.
imports Core
9 classes · 7 object properties · 5 datatype properties
Downloadtwb-doc.ttl
Alongside
- https://w3id.org/twb/shapes
The SHACL shapes: what a well-formed blueprint is, and whether its construction meets its requirements.
Downloadtwb-shapes.ttl - https://w3id.org/twb/align
Alignments with BPO, DiCon, SML, BEO, ifcOWL and OPM — kept apart, so TWB never forces them on anyone.
Downloadtwb-align.ttl - https://w3id.org/twb/catalogue/arch
arch’s catalogues as SKOS: zone kinds, member roles, processings, materials, building uses.
Downloadtwb-catalogue.ttl
Using a module
@prefix twb: <https://w3id.org/twb#> .
<https://example.org/my-ontology>
a owl:Ontology ;
owl:imports <https://w3id.org/twb/construction> .The addresses answer an RDF client with Turtle and a browser with this page. A term has the same IRI whichever module one imports.
04 · The schema
The whole ontology, to pull at
The classes and relations of every TWB module, drawn in the VOWL notation of WebVOWL. Drag a class, zoom and pan, click to see what it is, what it connects to, and how many of it the case house has.
05 · Modelling
Parts of a house, as the file and as a graph
The examples are cut out of the paper’s case house and shown in <arch-paper-model>, the part of the tool we are opening (Apache-2.0). Click a face: on the right is what the file says about it, read from JSON-LD into RDF in your browser.
06 · Rule checks
Rules you can read and run
The rules are data and SPARQL, not code. Here they run on the case house with Oxigraph in your browser: first the rules derive the requirements from what each surface separates, then the SHACL shapes check whether the construction meets them. Change something and it all runs again.
07 · Open
What is open, what is closed
The rule is simple: open is what defines a blueprint and lets anyone draw, read and exchange it. Closed is what turns a blueprint into a building.
Open
- The TWB ontology, the SHACL shapes, the SPARQL rules and the case house — CC BY 4.0
- The twb/1 house file in JSON-LD: context, schema, parser — Apache-2.0
- The drawing engine @surfacekit: surfaces, module grid, push/pull, 3D — Apache-2.0
- <arch-paper-model>, the viewer in the examples above — Apache-2.0
The tool
- The recipes, the framing rules and the EC5 sizing
- The envelope: layer placement, joints and trims
- Bill of materials, cutting plans, sheet layout and IFC
Modelling choices worth discussing
Why is a surface a bot:Element and not a bot:Interface?
The thin surface is the building element before it is detailed: it hosts its openings and has its members as sub-elements. The interfaces are where it meets zones, other surfaces, its openings and points. That keeps BOT’s distinction between elements and interfaces meaningful.
Why does a surface have sides as nodes of their own?
Without twb:SurfaceSide one can say neither which side the recipe starts from nor "tiles towards the bath, paint towards the bedroom". IFC’s DirectionSense and gbXML’s ordered spaces each solve a part of it.
Why do requirements land on zone boundaries, not on surfaces?
A partition with a bathroom on one side needs a wet-room lining on that side only, and only where the bath is. So the repair puts a covering on the boundary rather than changing the wall’s recipe.
Why SPARQL and not code?
A rule is a twb:AdjacencyRule — data — and one generic query applies them all. The building’s use selects which rules apply. SPARQL CONSTRUCT runs anywhere: in Python in the paper, in Rust, and here in your browser.
The ontology is a working draft for discussion and follows the paper Thin-walled blueprints (submitted to Automation in Construction).