Building Topology Ontology
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 2 commits ahead, 86 commits behind w3c-lbd-cg:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

BOT: Building Topology Ontology

Version control

The latest version is available from This points to the master branch of this repository. Developments are stored in the Development branch and feature branches are created for features that are not yet implemented in the development branch.

Adding content to BOT

  1. Fork this repository.
  2. Add contribution to bot or separate alignment file.
  3. Commit your changes and submit a pull request.
  4. w3c-lbd administrators will review your pull request and merge it if everything looks correct. Once the pull request is merged, the changes go live immediately.

BOT in the literature

Mads Holten Rasmussen, Pieter Pauwels, Christian Anker Hviid and Jan Karlshøj (2017) Proposing a Central AEC Ontology That Allows for Domain Specific Extensions, Lean and Computing in Construction Congress (LC3): Volume I – Proceedings of the Joint Conference on Computing in Construction (JC3), July 4-7, 2017, Heraklion, Greece, pp. 237-244

Aligning to BOT

As BOT is proposed as a central ontology in the domain of AEC/FM industry alignments with existing domains need to be provided. Ontologies defining the alignment are given in this repository and file naming is given by Alignment.ttl.

So far an alignment for the following ontologied has been provided:

SAREF4Bldg Ontology Alignment

Intended alignments include (non-exhaustively)

ThinkHome Ontology Alignment

DogOnt Ontology Alignment

ifcOWL Ontology Alignment

Example of using BOT

Example of using BOT in Turtle syntax.

@prefix bot:  <> .
@prefix inst: <> .
@prefix rdf: <> .

inst:buildingA a bot:Building ;
               bot:hasStorey inst:storey00 ,
                             inst:storey01 .
inst:storey00 a bot:Storey ;
              bot:hasSpace inst:space00aa ,
                           inst:space00cg .
inst:storey01 a bot:Storey .

inst:space00aa a bot:Space ;
               bot:containsElement inst:heater235 .
               bot:adjacentElement inst:wall443 ,
                                   inst:floor23 .
inst:space00cg a bot:Space .
inst:heater235 a bot:Element .
inst:wall443 a bot:Element .
inst:floor23 a bot:Element .

specifying classes is not necessary as these are inferred by the domain and range specified in the ontology.

Extending BOT

By specifying subclasses

The following will automatically infer that an instance is a bot:Element given that the instance is specified as a h:SpaceHeater:

@prefix bot:  <> .
@prefix h:  <> .
@prefix rdf:  <> .
@prefix rdfs:  <> .
@prefix owl:  <> .

h:SpaceHeater a owl:Class ;
              rdfs:subClassOf bot:Element .

By specifying subproperties

The following will automatically infer bot:containsElement between a space and an element when the h:heatedBy property is present between the two. Furthermore it will be inferred that the element is both a h:SpaceHeater and a bot:Element.

@prefix bot:  <> .
@prefix h:  <> .
@prefix rdf:  <> .
@prefix rdfs:  <> .
@prefix owl:  <> .

h:SpaceHeater a owl:Class .
h:heatedBy a owl:ObjectProperty ;
             rdfs:subPropertyOf bot:containsElement ;
             rdfs:range h:SpaceHeater .