2019-11-04
Tillmann E. Kuhn
Christian Leifgen
Anna Wagner
Johannes Eisenlohr
Laura Kristina Moeller
The Building Product Ontology defines concepts to describe (building) products in a schematic way. It provides methods to describe assembly structures and attach properties to any component without restricting their types, as is often the case in template-driven product descriptions. To allow the description of complex properties, it also contains terms for unordered, two-dimensional lists.
The BPO's bpo is on the schematic description of product only, not including geometry or material compositions. Therefore, it can be used to describe theoretical product components without geometric representations as well as those with geometric representations without restrictions. For classification purposes, it uses the buildingSMART Data Dictionary (bSDD) by referencing to the terms' bSDD GUID. If geometric descriptions are desired for components, the authors suggest to use the Ontology for Managing Geometry (OMG, https://w3id.org/omg) resp. the File Ontology for Geometry formats (FOG, https://w3id.org/omg).
The BPO is based on the SolConPro ontology, which was first presented in:
Wagner, A., Moeller, L.K., Leifgen, C., Rueppel, U., (2018). SolConPro: Describing multi-functional building products using semantic web technologies. In: European Conference on Product and Process Modelling, 12-14 September 2018, Copenhagen, Denmark. In: 12 . CRC Press
This work is part of the research project Semantic Construction Project Engineering (www.projekt-bpo.de), founded by the German Federal Ministry for Economic Affairs and Energy (BMWi).
Christian Eller
1.2
Building Product Ontology
Christoph Maurer
Marouane Boudhaim
bpo
2019-03-02
Gesa Benndorf
Wendelin Sprenger
Tim Rist
singular entity
A singular entity represents one instance of a specific component.
1
interval
An interval is an intermediate node between a property and its disordered list of possible values. This may be used when the property's value range cannot be described using mininum and maximum values (in combination with step sizes). The interval values should be connected via the schema:value property.
component
A component represents the description of an object that is part of a product assembly or the product itself. Whenever such an object is modelled, it should ideally be given one of the subclasses of scp:Component to further specialise the object's characteristics. This class is to be understood as an abstract superclass with the purpose of grouping all product assembly relevant classes.
All components may, but do not need to, hold additional information regarding their geometry and material composition.
dynamic entity
A dynamic entity represents a (given) number of instances of one component that can be placed dynamically. However, a differentiation between the instances that are summarised in a dynamic entity is not possible: in the perspective of geometry, they have to be transformed identically in form of repetitions; they must have the same component connections, properties and material derivations.
1
1
1
2D list
A 2D list is an disordered list containing value-value pairs. This can be used to describe properties that are dependent on each other and commonly presented in tables. Besides the 2d entries, the attributes that are described by the list must be known.
1
1
2D entry
A 2D entry is a value-value pair for property values. Besides the values, the resp. attributes that are described in the pair must be known to the entry.
product
A product is a description of any item that can be or is offered for sale by vendors or manufacturers. Products can be assembled or modelled as an element. In any case, the product's structure should be clarified by giving the individual the according type (scp:Assembly or scp:Element) as well.
component connection
A component connection defines a connection between two components in more detail. This connection can contain additional information like the type of the connection (electrical, physical, etc.) or resistances and allows the modelling of more complex connections where multiple entities are connected in the same node.
0
element
An element is the description of an object that cannot be or is not composed of other components. Elements do not necessarily have to be non decomposable, since in some cases, objects may be simplified. Since this class does not have any predefined connection towards the element's material, no restriction regarding its material composition is in effect.
An element can never be an assembly as well, however it can be a product.
1
entity
Entities represent instances of a specific component that are placed within one assembly. Such an entity can be used to differentiate specific instances of a type from the (more generic) type's description in aspects as geometry (e.g. transformations), component connections, properties, or material structure.
An entity can only refer to one component.
1
1
attribute
Attributes describe components' quantitative and qualitative properties with single point values. Every property holds exactly one value and may be linked to a measurement unit using the QUDT.
2
assembly
An assembly is the description of a structure that is composed of (at least two) other components, including other assemblies, elements and products.
An assembly can never be an element as well, however it can be a product.
1
classified object
The ClassifiedObject class groups all classes that should be classified and poses the restriction that every individual of these classes musts have at least one classification using the schema:additionalType property. The restriction is passed on the other classes via inheritance.
ranged attribute
Ranged attributes describe components' quantitative and qualitative properties that have value ranges or multiple values. Value ranges can be defines by their minimal or maximal value and step sizes (in case not every value between the min and max is valid). Additionally, a ranged attribute may be linked to one specific value, which could represent the default value for parametric descriptions. The ranged value can also be linked to a measurement unit by using the QUDT.
1
1
1
1
1
has attribute
Property to connect components to their (ranged) attributes. As both the attribute and the ranged attribute are subclasses of schema:PropertyValue, that class is given as range of this property, though this is theoretically already given by inheritance.
is connected from
Property between two entities where the first (subject) entity is downstream of the second (object) entity. This property can be inferred as the inverse property of the bpo:isConnectedTo property.
The connection between the two entities can be further defined (e.g. regarding their type, resistance, etc.) using component connections.
has 2D disordered list
Property between a ranged attribute and a 2D disordered list containing possible values of the attribute. This property is defined to be inverse to the bpo:describesAttribute property, which is the superproperty of bpo:describesAttributeInFirstColumn and bpo:describesAttributeInSecondColumn.
describes attribute
Property between a 2D unordered list and the attributes that are described by it.
is part of list
Property between a value-value pair and a list that contains it. This property is inverse of the bpo:hasEntry property.
describes attribute in second column
Property between a 2D unstructured list and the attribute that is represented by the second column/value of the list and its entries. An attribute cannot be described in both the first and second column of a 2D unstructured list.
has interval
Property between a ranged attribute and an interval containing possible values for the attribute.
has outgoing connection
Property between an entity and its component connection that is leading downstream. This connection would connect to the entity's output interface (if existing).
connects input of
Property between a component connection and its upstream connected entity. This connection would connect to the entity's input interface (if existing).
describes attribute at second value
Property between a value-value pair and the attribute that is described in its second value. This property can be inferred by its chain axiom that connects any attribute that is described in the value-value pair's list within the second column ([bpo:isPartOfList, bpo:describesAttributeInSecondColumn])
has entry
Property between a disordered 2D list and its entry (value-value pair).
describes attribute at first value
Property between a value-value pair and the attribute that is described in its first value. This property can be inferred by its chain axiom that connects any attribute that is described in the value-value pair's list within the first column ([bpo:isPartOfList, bpo:describesAttributeInFirstColumn])
is connected to
Property between two entities where the first (subject) entity is upstream of the second (object) entity. This property can be inferred by its chain axiom that uses every entity as object if the first entity's outgoing component connection connects to the second's input interface ([bpo:hasOutgoingConnection, bpo:connectsInputOf]).
The connection between the two entities can be further defined (e.g. regarding their type, resistance, etc.) using component connections.
realises object
Object property between an entity and a component to define the type (component) of the considered instance (entity).
is composed of entity
Object Property between an assembly and an entity that is part of the assembly.
described attribute in first column
Property between a 2D unstructured list and the attribute that is represented by the first column/value of the list and its entries. An attribute cannot be described in both the first and second column of a 2D unstructured list.
has quantity
Property to define the quantity of dynamically placed individuals within one dynamic entity. If the product description is linked with the product's geometry description, this property might become redundant and thus should be related to the geometric repetition quantity (e.g. via the omg:isExplicitlyDerivedFrom property).
has bSDD globally unique identifier
Property to add a classified object's globally unique identifier of the buildingSMART Data Dictionary as string. To translate and read the term, the GUID must be accessed in the bSDD itself (http://bsdd.buildingsmart.org/#concept/search).
has second value
A value-value pair's second value
has first value
A value-value pair's first value.
permitted step size
A ranged attribute's permitted step size to calculate allowed values between the minimum and maximum value by adding / subtracting the step size from the minimum / maximum value. This can be used in cases, where not every value in between min and max is admissible and permitted values are equidistant.
consits of
Object property to describe an assembly relation between components. Since an assembly can also contain of other assemblies, the range of this property is defined as component, the superclass of both assemblies and elements in this ontology. It can also be inferred by a chain axiom stating that an assembly consists of any component that is realised by an entity that is connected to the considered assembly ([scp:hasObjectWith,scp:realisesObject]).
Also, this property is transitive, allowing to easily identify every component that is part of a considered assembly.
is part of
Property between a component and an assembly, where the component is (directly or indirectly) part of the assembly. This property is inverse to the bpo:consistsOf property and transitive. Thus, it also connects components to an assembly that are not directly a part of the assembly, but part of one of its sub(sub,...)assemblies.
is connected with
Property between two entities that are connected disorderly. Since this property is symmetric, it cannot hold information about the direction of the connection.
The connection between the two entities can be further defined (e.g. regarding their type, resistance, etc.) using component connections.