EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

34
Coping with IFC lists in the ifcOWL ontology Pieter Pauwels, Ghent University Walter Terkaj, ITIA-CNR Thomas Krijnen, Eindhoven University of Technology Jakob Beetz, Eindhoven University of Technology

Transcript of EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

Page 1: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

Coping with IFC lists in the ifcOWL ontologyPieter Pauwels, Ghent University

Walter Terkaj, ITIA-CNRThomas Krijnen, Eindhoven University of Technology

Jakob Beetz, Eindhoven University of Technology

Page 2: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

2

outline

background, context and purposes

possible conversion procedures

conclusion

thank you

example

Page 3: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

3

Page 4: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

4

BACKGROUND, CONTEXT AND PURPOSES

Page 5: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

5http://www.bimforum.lv/communities/6/004/012/741/086//images/4611848847.jpg

openBIM

Page 6: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

6

Data exchange standard

buildingSMART specifications

Page 7: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

7

Ifc2x_all_lf.expIFC2X2_ADD1.expIFC2X2_FINAL.exp

IFC2X2_PLATFORM.expIFC2X3_Final.expIFC2X3_TC1.exp

IFC4.expIFC4_ADD1.exp

not supportednot supportednot supportednot supportedIFC2X3_Final.owl / .ttlIFC2X3_TC1.owl / .ttlIFC4.owl / .ttlIFC4_ADD1.owl / .ttl

http://www.linkedbuildingdata.net/resources/IFC2X3_Final.ttlhttp://www.linkedbuildingdata.net/resources/IFC2X3_TC1.ttlhttp://www.linkedbuildingdata.net/resources/IFC4.ttlhttp://www.linkedbuildingdata.net/resources/IFC4_ADD1.ttl

EXPRESS to OWL conversionIFC to RDF conversion

Page 8: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

converting EXPRESS schema to OWLIFC

Schema

Simple data type

Defined data type

Aggregation data typeSET data type --------

LIST & ARRAY data type --------

Constructed data typeSELECT data type --------

ENUMERATION data type --------

Entity data typeAttributes --------

Derive attrWHERE rules

FunctionsRules

ifcOWLOntology

owl:class + owl:DatatypeProperty restriction

owl:class

owl:class-------- owl:ObjectProperty restriction on ifc:hasSet-------- indirect subclass of ifc:List

owl:class-------- owl:unionOf ( owl:classes )-------- one of ( owl:NamedIndividuals )

owl:class-------- object properties

----

Page 9: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

P. Pauwels, D. Van Deursen, R. Verstraeten, J. De Roo, R. De Meyer, R. Van de Walle, J. Van Campenhout. A semantic rule checking environment for building performance checking. Automation in Construction 20: 506-518, 2011.

IFC as a graph (both Tbox and Abox)

Page 10: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

10

SCOPE FOR THIS PRESENTATION

Page 11: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

11

conversions donefirst IFC graphs are there

Page 12: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

12

Size multiplies with 10!!!!!!

file size is hugetriple count is too high

Page 13: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

13

• 417.033 entity instances• 45.085 are instances of IfcCartesianPoint (10,6%)

• Geometry typically occupies 70 to 80 percent of an IFC model• The majority of geometric entities and properties is represented using LISTs

statistics for Book Tower sample model

Page 14: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

14

1 ENTITY IfcCartesianPoint 2 SUBTYPE OF (IfcPoint); 3 Coordinates : LIST [1:3] OF IfcLengthMeasure; 4 DERIVE 5 Dim : IfcDimensionCount := HIINDEX(Coordinates); 6 WHERE 7 CP2Dor3D : HIINDEX(Coordinates) >= 2; 8 END_ENTITY;

IfcCartesianPoint defined in EXPRESS

Page 15: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

15

1 #37=IFCCARTESIANPOINT((0.,0.,-350.));

IfcCartesianPoint in an IFC SPF

=> Near to impossible to be more efficient than this, in terms of file size

=> Impossible to be more efficient than this using RDF, in terms of file size=> Let us please be as efficient as possible when aiming at benefits associated with RDF graphs

Page 16: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

16

:UMultiplicities.:ColourIndex.:ListPositions.:KnotMultiplicities.:VMultiplicities.:RefLongitude.:RefLatitude.:WeightsData.:DirectionRatios.:MaterialLayers.:Roles_of_IfcOrganization.:Roles_of_IfcPersonAndOrganization.:Roles_of_IfcPerson.:Segments.:Pixel.:Vertices.:DefinedValues.:RowCells.:EnumerationValues.:ListValues_of_IfcIrregularTimeSeriesValue.:EnumerationValues.:DefiningValues.:ListValues_of_IfcTimeSeriesValue.:ListValues_of_IfcPropertyListValue.:Polygon.:Points.:ControlPointsList_of_IfcBSplineCurve.:UKnots.:Knots.:Coordinates_of_IfcTextureVertex.:VKnots.:ElectronicMailAddresses.:AddressLines.:SuffixTitles.

:FacsimileNumbers.:PrefixTitles.:MiddleNames.:TelephoneNumbers.:TexCoordsList.:Normals.:LuminousIntensity.:BendingParameters_of_IfcReinforcingBarType.:BendingParameters_of_IfcReinforcingMeshType.:CostValues.:Addresses_of_IfcOrganization.:Addresses_of_IfcPerson.:SecondaryPlaneAngle.:OffsetDistances.:Coordinates_of_IfcCartesianPoint.:OffsetValues_of_IfcMaterialLayerWithOffsets.:SurfaceReinforcement1.:SurfaceReinforcement2.:OffsetValues_of_IfcMaterialProfileWithOffsets.:RelatedObjects_of_IfcRelNests.:Representations.:BaseCosts_of_IfcConstructionResource.:Components.:BaseCosts_of_IfcConstructionResourceType.:Textures.:Maps.:DistributionData.:CrossSections.:RelatedPriorities.:RelatingPriorities.:EdgeList_of_IfcEdgeLoop.:EdgeList_of_IfcPath.:CrossSectionPositions.:Rows.

:ControlPointsList_of_IfcBSplineSurface.:WAxes.:IntersectingAxes.:UAxes.:VAxes.:TilingPattern.:Values_of_IfcStructuralLoadConfiguration.:ColourList.:RepresentationMaps.:Values_of_IfcRegularTimeSeries.:Parameter_of_IfcTextureCoordinateGenerator.:WeightsData.:MessagingIDs.:BenchmarkValues.:ReinforcementSectionDefinitions.:CoordList.:Locations.:MaterialProfiles.:Columns.:NormalIndex.:TexCoordIndex.:CoordIndex.:SelfWeightCoefficients.:PatternList.:Values_of_IfcIrregularTimeSeries.:ShapeRepresentations.:FontFamily.:ReferenceTokens.:Parameter_of_IfcSurfaceTexture.:CostQuantities.:TimePeriods.:Materials.

LINK OUTSIDE

Page 17: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

17

DIVERSE CONVERSION PROCEDURES

Page 18: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

18

1. Conversion to the regular rdf:List concept natively available in RDF

2. Conversion to general purpose list concepts 3. Conversion to customised concepts 4. Conversion to customised concepts referring to portions of

Well-Known Text (WKT)

conversion procedures

Page 19: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

19

1 @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .2 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .3 @prefix owl: <http://www.w3.org/2002/07/owl#> .4 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .5 @prefix ifcowl1: <http://www.buildingsmart-tech.org/ifcOWL1#> .6 @prefix ifcowl2: <http://www.buildingsmart-tech.org/ifcOWL2#> .7 @prefix ifcowl3: <http://www.buildingsmart-tech.org/ifcOWL3#> .8 @prefix ifcowl4: <http://www.buildingsmart-tech.org/ifcOWL4#> .9 @prefix ifcowl5: <http://www.buildingsmart-tech.org/ifcOWL5#> .10 @prefix ifcinst: <http://www.lbd.net/20150504_ListInstances#> .

namespaces & prefixes used

Page 20: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

20

1 ifcinst:IfcCartesianPoint_372 rdf:type ifcowl1:IfcCartesianPoint ;3 ifcowl1:Coordinates_of_IfcCartesianPoint ifcinst:IfcLengthMeasure_List_371 .4 ifcinst:IfcLengthMeasure_List_3715 rdf:type rdf:List ;6 rdf:first ifcinst:IfcLengthMeasure_371inst ;7 rdf:rest ifcinst:IfcLengthMeasure_List_372 .8 ifcinst:IfcLengthMeasure_371inst9 rdf:type ifcowl1:IfcLengthMeasure ;10 ifcowl1:has_double “0.0”^^xsd:double .11 ifcinst:IfcLengthMeasure_List_37212 rdf:type rdf:List ;13 rdf:first ifcinst:IfcLengthMeasure_372inst ;14 rdf:rest ifcinst:IfcLengthMeasure_List_373 .15 ifcinst:IfcLengthMeasure_372inst16 rdf:type ifcowl1:IfcLengthMeasure ;17 ifcowl1:has_double “0.0”^^xsd:double .18 ifcinst:IfcLengthMeasure_List_37319 rdf:type rdf:List ;20 rdf:first ifcinst:IfcLengthMeasure_373inst;21 rdf:rest rdf:nil .22 ifcinst:IfcLengthMeasure_373inst23 rdf:type ifcowl1:IfcLengthMeasure ;24 ifcowl1:has_double “-350.0”^^xsd:double .

procedure 1: usage of regular rdf:List concept

Page 21: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

21

+ rdf:List is standard.

- Not intuitive when using SPARQL or inference engines

- Verbose in RDF/XML

procedure 1: pros and cons

Page 22: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

22

1 ifcinst:IfcCartesianPoint_372 rdf:type ifcowl1:IfcCartesianPoint ;3 ifcowl1:Coordinates_of_IfcCartesianPoint

(ifcinst:IfcLengthMeasure_371inst ifcinst:IfcLengthMeasure_372inst ifcinst:IfcLengthMeasure_373inst).

4 ifcinst:IfcLengthMeasure_371inst5 rdf:type ifcowl1:IfcLengthMeasure ;6 ifcowl1:has_double “0.0”^^xsd:double .7 ifcinst:IfcLengthMeasure_372inst8 rdf:type ifcowl1:IfcLengthMeasure ;9 ifcowl1:has_double “0.0”^^xsd:double .10 ifcinst:IfcLengthMeasure_373inst11 rdf:type ifcowl1:IfcLengthMeasure ;12 ifcowl1:has_double “-350.0”^^xsd:double .

side-remark: not so verbose in N3

Page 23: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

23

1 ifcinst:IfcCartesianPoint_372 rdf:type ifcowl2:IfcCartesianPoint ;3 ifcowl2:Coordinates_of_IfcCartesianPoint ifcinst:IfcLengthMeasure_List_371 .4 ifcinst:IfcLengthMeasure_List_3715 rdf:type ifcowl2:List ;6 ifcowl2:hasListContent inst:IfcLengthMeasure_371inst ;7 ifcowl2:hasNext inst:IfcLengthMeasure_List_372 .8 ifcinst:IfcLengthMeasure_371inst9 rdf:type ifcowl2:IfcLengthMeasure ;10 ifcowl2:has_double “0.0”^^xsd:double.11 ifcinst:IfcLengthMeasure_List_37212 rdf:type ifcowl2:List ;13 ifcowl2:hasListContent ifcinst:IfcLengthMeasure_372inst ;14 ifcowl2:hasNext ifcinst:IfcLengthMeasure_List_373 .15 ifcinst:IfcLengthMeasure_372inst16 rdf:type ifcowl2:IfcLengthMeasure ;17 ifcowl2:has_double “0.0”^^xsd:double .18 ifcinst:IfcLengthMeasure_List_37319 rdf:type ifcowl2:List ;20 ifcowl2:hasListContent ifcinst:IfcLengthMeasure_373inst;21 ifcinst:IfcLengthMeasure_373inst22 rdf:type ifcowl2:IfcLengthMeasure ;23 ifcowl2:has_double “-350.0”^^xsd:double .

procedure 2: general purpose list concepts

Page 24: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

24

• the OWLList by Drummond et al. (2006) • the Ordered List Ontology (OLO) by Abdallah and

Ferris (2010) • the approach followed in OntoSTEP by Krima et

al. (2009) and Barbau et al. (2012) • the approach proposed in the ifcOWL ontology

by Pauwels and Terkaj (2015a, 2015b)• the approach proposed in the ifcOWL ontology

by Seppo Törmä and Nam Vu Hoang (Aalto Univ.)

example implementations of procedure 2

Page 25: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

25

+ regular RDF

- Not standard- Not intuitive when using SPARQL or inference

engines- Verbose in RDF/XML

procedure 2: pros and cons

Page 26: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

26

1 ifcinst:IfcCartesianPoint_372 rdf:type ifcowl3:IfcCartesianPoint ;3 ifcowl3:xCoordinate_of_IfcCartesianPoint

ifcinst:IfcLengthMeasure_371inst ;4 ifcowl3:yCoordinate_of_IfcCartesianPoint

ifcinst:IfcLengthMeasure_372inst ;5 ifcowl3:zCoordinate_of_IfcCartesianPoint

ifcinst:IfcLengthMeasure_373inst .6 ifcinst:IfcLengthMeasure_371inst7 rdf:type ifcowl3:IfcLengthMeasure ;8 ifcowl3:has_double “0.0”^^xsd:double .9 ifcinst:IfcLengthMeasure_372inst10 rdf:type ifcowl3:IfcLengthMeasure ;11 ifcowl3:has_double “0.0”^^xsd:double .12 ifcinst:IfcLengthMeasure_373inst13 rdf:type ifcowl3:IfcLengthMeasure ;14 ifcowl3:has_double “-350.0”^^xsd:double .

procedure 3a: custom concepts

Page 27: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

27

1 ifcinst:IfcCartesianPoint_372 rdf:type ifcowl:IfcCartesianPoint ;3 ifcowl4:xCoordinate_of_IfcCartesianPoint

“0.0”^^ifcowl4:IfcLengthMeasure ;4 ifcowl4:yCoordinate_of_IfcCartesianPoint

“0.0”^^ifcowl4:IfcLengthMeasure ;5 ifcowl4:zCoordinate_of_IfcCartesianPoint

“-350.0”^^ifcowl4:IfcLengthMeasure.

procedure 3b: custom concepts

Page 28: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

28

+ intuitive when using SPARQL or inference engines+ semantically more explicit (better formal model)+ significantly less verbose

- Not within the current IFC standard -> need to rewrite and convert

procedure 3: pros and cons

Page 29: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

29

1 ifcinst:IfcCartesianPoint_372 rdf:type ifcowl5:IfcCartesianPoint ;3 ifcowl5:Coordinates_of_IfcCartesianPoint

“POINTZ(0.0 0.0 -350.0)”^^ifcowl5:wktLiteral

procedure 4: custom concepts referring to portions of Well-Known Text (WKT)

Page 30: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

30

+ intuitive when using SPARQL or inference engines+ significantly less verbose

- Semantically less explicit than current IFC and ifcOWL

- Need to stick to agreements (WKT needs to remain WK and agreed)

procedure 4: pros and cons

Page 31: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

31

CONCLUSION

Page 32: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

32

Number of triples and individuals needed to represent a 3-item list like in the case of Cartesian coordinates.

comparison of procedures

Procedure #triples #individuals #triples per list item

#individuals per list item

RDFlist 1 17 (21) 4 5 (6) 1

ifcOWL_1 2 16 (23) 7 6 (7) 2

XYZ_1 3a 10 (14) 4 3 (4) 1

XYZ_2 3b 4 (5) 1 1 0

WKT 4 2 (3) 1 1/3 0

In (brackets) the number of triples if each individual is explicitly typed as owl:NamedIndividual

Page 33: EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology

33

• trade-off needs to be made between semantic precision and computational efficiency.

• The procedures that result in the semantically most precise representations (Procedure 1 and 2) also result in lengthy and overly complex representations, yet they are the closest equivalents to the original EXPRESS schema.

• The procedures that result in computationally more efficient representations (Procedure 3a, 3b, and 4), on the other hand, could result in sloppier data representations, which could in turn result in errors, flaws and mistakes in the applications relying on that data.

• Yet, as many have concluded in the geospatial domain, this might be the only option to make the use of RDF graphs and OWL ontologies feasible for the architectural design and construction industry.

conclusion