EG-ICE 2015 - Coping with IFC lists in the ifcOWL ontology
-
Upload
pieter-pauwels -
Category
Documents
-
view
48 -
download
4
Transcript of 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
2
outline
background, context and purposes
possible conversion procedures
conclusion
thank you
example
3
4
BACKGROUND, CONTEXT AND PURPOSES
5http://www.bimforum.lv/communities/6/004/012/741/086//images/4611848847.jpg
openBIM
6
Data exchange standard
buildingSMART specifications
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
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
----
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)
10
SCOPE FOR THIS PRESENTATION
11
conversions donefirst IFC graphs are there
12
Size multiplies with 10!!!!!!
file size is hugetriple count is too high
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
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
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
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
17
DIVERSE CONVERSION PROCEDURES
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
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
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
21
+ rdf:List is standard.
- Not intuitive when using SPARQL or inference engines
- Verbose in RDF/XML
procedure 1: pros and cons
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
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
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
25
+ regular RDF
- Not standard- Not intuitive when using SPARQL or inference
engines- Verbose in RDF/XML
procedure 2: pros and cons
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
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
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
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)
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
31
CONCLUSION
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
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
34
Thank you
Pieter [email protected]
Walter [email protected]
Thomas [email protected]
Jakob [email protected]