Presentation at the Technical Room of the BuildingSMART Standards Summit October 2015 in Singapore. The presentation was done together with Jakob Beetz, TUEindhoven, with strong support by Walter Terkaj, ITIA-CNR, and Kris McGlinn, TCDublin. It is part of the SWIMing H2020 project, run by Kris McGlinn (http://swiming-project.eu/).
1. Linked Data
for Construction Works
2015 buildingSMART Standards Summit Singapore
Technical Room
Pieter Pauwels, Ghent University
Jakob Beetz, TU Eindhoven
13 October 2015
9:00 – 13:00
2. 9:00-9:15: Introduction round
9:15-9:30: Topic introduction
9:30-10:00: ifcOWL proposal and toolset
10:00-10:15: Plan of actions
10:15-10:30: Questions and discussion
10:30-10:45: Coffee break
10:50-11:20: Outreach to Product Room
11:20-12:00: Outreach from Product Room
12:00-13:00: Open Joint Discussion
TECHNICAL ROOM
TECHNICAL ROOM +
PRODUCT ROOM
Agenda
2
3. ROUND OF INTRODUCTIONS
• All – short interest statement from the participants
• All – identify members of the Working Group
3
4. The home pages
[WWW1] http://www.buildingsmart-tech.org/future/linked-data/
[WWW2] http://www.buildingsmart.org/standards/standards-organization/groups/linked-
data-working-group/
[mailing list] lbd@lists.buildingsmart.org
[mailing list] REGISTER AT https://lists.buildingsmart.org/listinfo/lbd 4
5. Linked Data Working Group Participants
Thomas Liebich AEC3 Calin Boje Cardiff University
Matthias Weise AEC3 Haijiang Li Cardiff University
Jakob Beetz TUEindhoven Alex Bradley Cardiff University
Pieter Pauwels Ghent University David Lewis TCDublin
Seppo Törmä Aalto University Maria Poveda-Villalon UPMadrid
Walter Terkaj ITIA-CNR Willie Lawton Tyndall National Institute
Kris McGlinn TCDublin Joe Tah Oxford Brookes University
Reijo Hänninen BSI Excom Tamer El-Diraby University of Toronto
Odilo Schoch ETH Zürich John Dickinson Advanced BIM Solutions
Benedict Wallbank Viewpoint 4 projects Chaohai Ding University of Southampton
John Adams Viewpoint 4 projects Yongwook Jeong Sejong University
Goncal Costa La Salle University Michel Böhms TNO
Rasso Steinmann iabi & Nemetschek Léon van Berlo TNO
Karam Kim Kwangwoon University Pim van den Helm TNO
Bonsang Koo Seoultech University Ana Roxin University of Burgundy
Bob Wakelam AEC3 Christophe Nicolle University of Burgundy
Bernard Ferries French bS chapter Nam Vu Hoang Aalto University
Martin Simpson Arup Yong-Cheol Lee Georgia Institute of Technology
5
7. Joining the group
Join by …
1. notifying Pieter Pauwels (pipauwel.pauwels@ugent.be) or Jakob Beetz
(j.beetz@tue.nl), chairs of this group; AND
2. registering yourself at https://lists.buildingsmart.org/listinfo/lbd for the mailing list.
So that …
1. Your name is listed at http://www.buildingsmart.org/standards/standards-
organization/groups/linked-data-working-group/; AND
2. You can take part of the regular Skype meetings, which are announced via the mailing
list
7
13. • Toronto ITM October 2014:
initial presentation (T. Liebich)
• Watford ITM March 2015:
proposed as a possible future working group (P. Pauwels)
chairs Pieter Pauwels and Jakob Beetz
Track Record
13
14. Aims:
1. to develop and maintain a recommended ifcOWL ontology
2. to align semantic web activities with ongoing efforts in buildingSMART (Product
Room bsDD, MVD development and usage, Infra).
3. to provide support in the usage of an ifcOWL ontology
14
15. • Toronto ITM October 2014:
initial presentation (T. Liebich)
• Watford ITM March 2015:
proposed as a possible future working group (P. Pauwels)
chairs Pieter Pauwels and Jakob Beetz
• March 2015 – October 2015:
Skype meetings at regular intervals (often back-to-back with W3C LBD
community group at w3.org/community/lbd):
29 May
15 June
4 September
25 September
LDAC live meeting: 15-17 July, Eindhoven
(http://ldac-2015.bwk.tue.nl/)
CIB W78 live meeting: 27-29 October, Eindhoven
(http://cib-w78-2015.bwk.tue.nl/)
Track Record
15
18. Image courtesy: Nam Vu Hoang, Aalto University
targeted status
ifcOWL - e
Walter
ifcOWL - e
Pieter
= identic. =
= identic. =
ifcOWL - si
Walter
ifcOWL - si
Pieter
ifcOWL - st
Walter
ifcOWL - st
Pieter
= identic. =
= identic. =
= identic. =
= identic. =
importimport
Minimal aim for LDAC2015
19. Linked Data in Architecture and Construction
Discussion Technical Session ifcOWL:
20 precise open issues were to be discussed and decided upon.
For example:
Issue #1: Domains and ranges to be included or not?
1. No domains/ranges are specified in the ontology
2. OWL 2 restrictions + d/r on simple datatypes
3. putting domain/range & property restrictions whenever we can
Output LDAC2015:
Meeting report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
Meeting presentations at http://ldac-2015.bwk.tue.nl/
LDAC2016 organised by the Ontology Engineering Group (OEG) at Universidad Politécnica
de Madrid (UPM)
http://www.buildingsmart.org/standards/technical-vision/technical-roadmaps/19
20. Fit in BuildingSMART activities
Purpose:
Bring together experts in BIM and Web of Data technologies to define existing and future
use cases and requirements for linked data based applications across the building life cycle.
http://www.buildingsmart.org/standards/technical-vision/technical-roadmaps/20
21. Status in the standards process
http://www.buildingsmart.org/standards/standards-process/
21
22. Tuesday 13 Oct. 9AM – 10.30AM == TECHNICAL ROOM ==
• Officialisation of Linked Data Working Group (‘present’ instead of ‘future’)
• Presentation of ifcOWL ontology as a recommended standard (to be further
evaluated):
– ifcOWL ontology
– HTML documentation
– Proposed Recommendation
• Requirements for hosting the ifcOWL online
Tuesday 13 Oct. 10.45AM – 1PM == TECHNICAL ROOM +PRODUCT ROOM ==
• Handshakes and explorations with product room (bsDD)
• Use case development, including MVDs
• Building bridges to other BuildingSMART groups and rooms (Infra? Regulatory?)
Agenda for BuildingSMART ITM
24. 1. Officialisation of Linked Data Working Group (present instead of future)
2. Presentation of ifcOWL ontology as a recommended standard (to be further
evaluated):
– ifcOWL ontology
– HTML documentation
– Proposed Recommendation
3. Requirements for hosting the ifcOWL online
24
ifcOWL Proposal Outline
27. 27
Officialisation of Linked Data Working Group
Linked Data Working Group >
The Linked Data Working Group is responsible for building and maintaining a recommended version of an
ifcOWL ontology as an equivalent to the IFC EXPRESS schema. The ifcOWL ontology is to be used in linked
data and semantic web applications that consume IFC data.
28. 1. Officialisation of Linked Data Working Group (present instead of future)
2. Presentation of ifcOWL ontology as a recommended standard (to be further
evaluated):
– ifcOWL ontology
– HTML documentation
– Proposed Recommendation
3. Requirements for hosting the ifcOWL online
28
ifcOWL Proposal Outline
29. • Diverse suggestions in academic research to make IFC available as an OWL
ontology to allow the usage of semantic web technologies
Schevers and Drogemuller, 2005
Beetz et al., 2009
• General purpose initiative to convert EXPRESS schemas and STEP file to OWL
ontology, not focused on IFC
Krima et al., 2009 (OntoSTEP)
Barbau et al., 2012 (OntoSTEP)
• From 2012 onwards, increasing uptake in research and developments
=> many different ifcOWL structures floating around
• Need for formalisation and standardisation
=> combine efforts and proceed in a more formalised, standard fashion
=> role of standardisation bodies: W3C, BuildingSMART
• BuildingSMART Technical Summit March 2015 (London) and October 2015
(Singapore)
we owe our past and present - 2005-2015
31. Image courtesy: Nam Vu Hoang, Aalto University
targeted status
ifcOWL - e
Walter
ifcOWL - e
Pieter
= identic. =
= identic. =
ifcOWL - si
Walter
ifcOWL - si
Pieter
ifcOWL - st
Walter
ifcOWL - st
Pieter
= identic. =
= identic. =
= identic. =
= identic. =
importimport
Minimal aim for LDAC2015
32. 32
Decided issues in LDAC2015 report (1)
Issue #1: Domains and ranges to be included or not?
1. No domains/ranges are specified in the ontology
2. OWL 2 restrictions + d/r on simple datatypes
3. putting domain/range & property restrictions whenever we can
Decision: we vote for option 3. This was a tight vote. There is a great argument for easy
names.
Issue #2: PropertyName - Consistent use of long names or only use of long names when
required (inconsistent)?
Decision: consistent
Issue #3: PropertyName - Camelcase long names or Underscore long names?
Decision: underscore
Issue #4: PropertyName - First Class Name, then Property Name?
Decision: PropertyName_ClassName
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
33. 33
Decided issues in LDAC2015 report (2)
Issue #5: PropertyName - Exclude “Ifc” from all names (classes, properties)?
Decision: Keep “Ifc” included
Issue #6: PropertyName - name_of_IfcRoot | name_IfcRoot?
Decision: name_IfcRoot
Issue #7: Use of “Grouping” SubProperty relations (Property “Name”) or not?
Decision: no SubProperty relations
Issue #8: How to convert LISTs and ARRAYs?
1. OLO pattern (including index of LIST items)
2. Drummond pattern (excluding index of LIST items)
Decision: Drummond pattern (because it is also used by OntoSTEP)
Issue #9: How to convert SETs?
1. Follow the LIST pattern
2. Use non-functional object properties
=> Decision: Use non-functional object properties
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
34. 34
Decided issues in LDAC2015 report (3)
Issue #10: Inverse attributes?
1. included in conversion when possible
2. not included in conversion
Decision: included in conversion when possible
Note: what cannot be included in the conversion?
● An attribute has two or more INVERSE attributes. This is, for example, the case of attribute
RelatedDefinitions of entity IfcRelDeclares. This attribute has two inverse attributes:
HasContext of entity IfcObjectDefinition and HasContext of entity IfcPropertyDefinition. If all
these INVERSE attributes were converted to object properties in ifcOWL, then a reasoning
engine would infer that the two HasContext object properties are equivalent. Moreover,
other inferences would lead to say that some classes are equivalent to owl:Nothing.
● A regular attribute or its INVERSE attribute has a LIST or an ARRAY as its range. Given the
particular conversion pattern needed for ordered lists, if the INVERSE attributes were
converted to object properties, then there would be a mismatch between the range of an
object property and the domain of its inverse. Therefore, a reasoning engine would infer that
the range of the object property is equal to the intersection of two disjoint classes. An
example of this case is represented by attribute Addresses of entity IfcPerson and attribute
OfPerson of entity IfcAddress.
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
35. 35
Decided issues in LDAC2015 report (4)
Issue #11: NUMBER simple datatype is considered as an INTEGER or as a REAL?
Decision: REAL
Issue #12: REAL simple datatype is considered as an xsd:double, xsd:decimal or xsd:real?
Decision: xsd:double
Issue #13: LOGICAL simple datatype is considered as an xsd:boolean, or as an enumeration
of TRUE, FALSE, and UNKNOWN?
Decision: enumeration of TRUE, FALSE, and UNKNOWN
Issue #14: BOOLEAN simple datatype is considered as an xsd:boolean, or as an
enumeration of TRUE and FALSE?
Decision: enumeration of TRUE and FALSE (because we can then reuse the same concepts
that are available in the LOGICAL datatype.
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
36. 36
Decided issues in LDAC2015 report (5)
Issue #15: How to declare ENUM datatypes?
1. using owl:oneOf
2. using rdf:type only (when owl:oneOf is used, a reasoner infers the “rdf:type” relation)
Decision: using rdf:type only
Issue #16: How to declare SELECT datatypes?
1. using owl:unionOf
2. using rdfs:subClassOf only (when owl:unionOf is used, a reasoner infers the
“rdfs:subClassOf” relation)
Decision: using rdfs:subClassOf only
Issue #17: What namespace structure do we use?
1. http://www.buildingsmart-tech.org/ifcowl/IFC4
2. http://www.buildingsmart-tech.org/def/IFC4
3. Other
=> Decision: http://www.buildingsmart-tech.org/ifcowl/IFC4
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
37. 37
Decided issues in LDAC2015 report (6)
Issue #18: Naming individuals / instances?
Decision: following existing best practices.
Note, these are best practices:
- Data on the Web Best Practices: http://www.w3.org/TR/2015/WD-dwbp-20150625/
- Data Identification: http://www.w3.org/TR/2015/WD-dwbp-
20150625/#DataIdentification
- Content Negotiation - http://www.w3.org/Protocols/HTTP/Negotiation
- Use unique namespaces (eventually including line number)
- Identify key uses cases and for each use case define key recommendations (e.g. BIM,
versioning, etc.)
- http://www.w3.org/TR/cooluris/
- http://www.w3.org/2001/tag/doc/URNsAndRegistries-50.html
- http://www.w3.org/Provider/Style/URI
- http://www.w3.org/TR/2003/NOTE-chips-20030128/
- http://www.w3.org/2001/tag/doc/URNsAndRegistries-50.html
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
38. 38
Decided issues in LDAC2015 report (7)
Issue #19: EnumName - what naming to use?
1. follow the same approach as for object properties
2. adopt simple naming strategy
=> Decision: follow the same approach as for object properties
Issue #20: Which license to use?
=> Decision: CC-BY if possible, depending on the BuildingSMART license
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
39. conversion procedure EXPRESS schema to OWL
IFC
Schema
Simple data type
Defined data type
Aggregation data type
SET data type --------
LIST & ARRAY data type --------
Constructed data type
SELECT data type --------
ENUMERATION data type --------
Entity data type
Attributes --------
Derive attr
WHERE rules
Functions
Rules
ifcOWL
Ontology
owl:class + owl:DatatypeProperty restriction
owl:class
owl:class
-------- non-functional owl:ObjectProperty
-------- indirect subclass of express:List
owl:class
-------- rdfs:subClassOf for owl:classes
-------- rdf:type for owl:NamedIndividuals
owl:class
-------- object properties
-
-
-
-
40. ifcOWL ontologies available
Ifc2x_all_lf.exp
IFC2X2_ADD1.exp
IFC2X2_FINAL.exp
IFC2X2_PLATFORM.exp
IFC2X3_Final.exp
IFC2X3_TC1.exp
IFC4.exp
IFC4_ADD1.exp
not supported
not supported
not supported
not supported
IFC2X3_Final.owl / .ttl
IFC2X3_TC1.owl / .ttl
IFC4.owl / .ttl
IFC4_ADD1.owl / .ttl
http://www.buildingsmart-tech.org/future/linked-data/ifcowl/20150925_latest/IFC4_ADD1.owl
http://www.buildingsmart-tech.org/future/linked-data/ifcowl/20150925_latest/IFC4.owl
http://www.buildingsmart-tech.org/future/linked-data/ifcowl/20150925_latest/IFC2X3_Final.owl
http://www.buildingsmart-tech.org/future/linked-data/ifcowl/20150925_latest/IFC2X3_TC1.owl
48. 1. Officialisation of Linked Data Working Group (present instead of future)
2. Presentation of ifcOWL ontology as a recommended standard (to be further
evaluated):
– ifcOWL ontology
– HTML documentation
– Proposed Recommendation
3. Requirements for hosting the ifcOWL online
48
ifcOWL Proposal Outline
49. conversion procedure EXPRESS schema to OWL
IFC
Schema
Simple data type
Defined data type
Aggregation data type
SET data type --------
LIST & ARRAY data type --------
Constructed data type
SELECT data type --------
ENUMERATION data type --------
Entity data type
Attributes --------
Derive attr
WHERE rules
Functions
Rules
ifcOWL
Ontology
owl:class + owl:DatatypeProperty restriction
owl:class
owl:class
-------- non-functional owl:ObjectProperty
-------- indirect subclass of express:List
owl:class
-------- rdfs:subClassOf for owl:classes
-------- rdf:type for owl:NamedIndividuals
owl:class
-------- object properties
-
-
-
-
50. Step 1. Schema definition
IFC
Schema
ifcOWL
Ontology
SCHEMA IFC4;
...
END_SCHEMA;
EXPRESS
go directly to slide 87
52. 52
Relevant issues in LDAC2015 report
Issue #17: What namespace structure do we use?
1. http://www.buildingsmart-tech.org/ifcowl/IFC4
2. http://www.buildingsmart-tech.org/def/IFC4
3. Other
Decision: http://www.buildingsmart-tech.org/ifcowl/IFC4
For the other ontologies, this results in:
- http://www.buildingsmart-tech.org/ifcowl/IFC4
- http://www.buildingsmart-tech.org/ifcowl/IFC4_ADD1
- http://www.buildingsmart-tech.org/ifcowl/IFC2x3
- http://www.buildingsmart-tech.org/ifcowl/IFC2x3_TC1
Note: similar naming convention for other similar efforts:
e.g.http://www.buildingsmart-tech.org/ifcXML/IFC4
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
53. Step 1. Schema definition – ontology header
<http://www.buildingsmart-tech.org/ifcOWL/IFC4_ADD1>
rdf:type owl:Ontology ;
dce:creator "Pieter Pauwels (pipauwel.pauwels@ugent.be)" ,
"Walter Terkaj (walter.terkaj@itia.cnr.it)" ;
dce:contributor "Aleksandra Sojic (aleksandra.sojic@itia.cnr.it)" ,
"Jakob Beetz (j.beetz@tue.nl)" ,
"Maria Poveda Villalon (mpoveda@fi.upm.es)" ,
"Nam Vu Hoang (nam.vuhoang@gmail.com )";
rdfs:comment "Ontology automatically generated from the EXPRESS schema
'IFC4_ADD1' using the 'IFC-to-RDF' converter developed by Pieter Pauwels
(pipauwel.pauwels@ugent.be), based on the earlier versions from Jyrki Oraskari
(jyrki.oraskari@aalto.fi) and Davy Van Deursen (davy.vandeursen@ugent.be)" ;
dce:title "IFC4_ADD1" ;
dce:description "OWL ontology for the IFC conceptual data schema and exchange file
format for Building Information Model (BIM) data" ;
dce:date "2015/10/02" ;
dce:identifier "IFC4_ADD1" ;
dce:language "en" ;
vann:preferredNamespacePrefix "ifc" ;
vann:preferredNamespaceUri "http://www.buildingsmart-tech.org/ifcOWL/IFC4_ADD1" ;
owl:imports <http://purl.org/voc/express> ;
cc:license <http://creativecommons.org/licenses/by/3.0/> ;
ONTOLOGY DEFINTION
OWL
54. 54
Relevant issues in LDAC2015 report
Issue #20: Which license to use?
=> Decision: CC-BY if possible, depending on the BuildingSMART license
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
55. Step 2. Simple data types
IFC
Schema
Simple data type
ifcOWL
Ontology
owl:class + owl:DatatypeProperty restriction
NUMBER, REAL, INTEGER, LOGICAL, BOOLEAN, STRING, BINARY
EXPRESS
57. 57
Relevant issues in LDAC2015 report
Issue #11: NUMBER simple datatype is considered as an INTEGER or as a REAL?
Decision: REAL
Issue #12: REAL simple datatype is considered as an xsd:double, xsd:decimal or xsd:real?
Decision: xsd:double
Issue #13: LOGICAL simple datatype is considered as an xsd:boolean, or as an enumeration
of TRUE, FALSE, and UNKNOWN?
Decision: enumeration of TRUE, FALSE, and UNKNOWN
Issue #14: BOOLEAN simple datatype is considered as an xsd:boolean, or as an
enumeration of TRUE and FALSE?
=> Decision: enumeration of TRUE and FALSE (because we can then reuse the same concepts
that are available in the LOGICAL datatype).
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
58. LOGICAL data type
expr:hasLogical a owl:FunctionalProperty , owl:ObjectProperty ;
rdfs:domain expr:LOGICAL ;
rdfs:label "hasLogical" ;
rdfs:range expr:LogicalEnum .
expr:LOGICAL a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ;
owl:allValuesFrom expr:LogicalEnum ;
owl:onProperty expr:hasLogical
] .
expr:LogicalEnum a owl:Class ;
rdfs:subClassOf expr:ENUMERATION .
expr:TRUE a expr:LogicalEnum , owl:NamedIndividual ;
rdfs:label "TRUE" .
expr:FALSE a expr:LogicalEnum , owl:NamedIndividual ;
rdfs:label "FALSE" .
expr:UNKNOWN a expr:LogicalEnum , owl:NamedIndividual ;
rdfs:label "UNKNOWN" .
OWL
59. Step 3. Defined data types
IFC
Schema
Simple data type
Defined data type
ifcOWL
Ontology
owl:class + owl:DatatypeProperty restriction
owl:class
TYPE IfcAreaDensityMeasure = REAL;
END_TYPE;
ifc:IfcAreaDensityMeasure
rdf:type owl:Class ;
rdfs:subClassOf expr:REAL .
EXPRESS
OWL
60. Step 4. Aggregation data types
IFC
Schema
Simple data type
Defined data type
Aggregation data type
SET data type --------
LIST & ARRAY data type --------
ifcOWL
Ontology
owl:class + owl:DatatypeProperty restriction
owl:class
owl:class
-------- non-functional owl:ObjectProperty
-------- indirect subclass of express:List
62. 62
Relevant issues in LDAC2015 report
Issue #9: How to convert SETs?
1. Follow the LIST pattern
2. Use non-functional object properties
=> Decision: Use non-functional object properties
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
63. Step 4. Aggregation data types (LIST & ARRAY)
TYPE IfcCompoundPlaneAngleMeasure = LIST [3:4] OF INTEGER;
…
END_TYPE;
ifc:IfcCompoundPlaneAngleMeasure
rdf:type owl:Class ;
rdfs:subClassOf ifc:IfcDerivedMeasureValue , expr:INTEGER_List ;
EXPRESS
OWL
64. Handling the LIST and ARRAY restrictions – min
ifc:IfcCompoundPlaneAngleMeasure
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty list:hasNext ;
owl:someValuesFrom [
a owl:Restriction ;
owl:onProperty list:hasNext ;
owl:someValuesFrom [
a owl:Restriction ;
owl:onProperty list:hasNext ;
owl:someValuesFrom expr:INTEGER_List
]
]
] ;
OWL
TYPE IfcCompoundPlaneAngleMeasure = LIST [3:4] OF INTEGER;
…
END_TYPE;
EXPRESS
65. Handling the LIST and ARRAY restrictions – max
ifc:IfcCompoundPlaneAngleMeasure
rdfs:subClassOf [
a owl:Restriction ;
owl:allValuesFrom [
a owl:Restriction ;
owl:allValuesFrom [
a owl:Restriction ;
owl:allValuesFrom [
a owl:Restriction ;
owl:onClass expr:INTEGER_EmptyList ;
owl:onProperty list:hasNext ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
] ;
owl:onProperty list:hasNext
] ;
owl:onProperty list:hasNext
] ;
owl:onProperty list:hasNext
] .
OWL
TYPE IfcCompoundPlaneAngleMeasure = LIST [3:4] OF INTEGER;
…
END_TYPE;
EXPRESS
66. 66
Relevant issues in LDAC2015 report
Issue #8: How to convert LISTs and ARRAYs?
1. OLO pattern (including index of LIST items)
2. Drummond pattern (excluding index of LIST items)
=> Decision: Drummond pattern (because it is also used by OntoSTEP)
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
Note:
Reliance on LIST ontology and EXPRESS ontology
67. Step 5. Constructed data types
IFC
Schema
Simple data type
Defined data type
Aggregation data type
SET data type --------
LIST & ARRAY data type --------
Constructed data type
SELECT data type --------
ENUMERATION data type --------
ifcOWL
Ontology
owl:class + owl:DatatypeProperty restriction
owl:class
owl:class
-------- non-functional owl:ObjectProperty
-------- indirect subclass of express:List
owl:class
-------- rdfs:subClassOf for owl:classes
-------- rdf:type for owl:NamedIndividuals
68. Step 5. Constructed data types (SELECT)
TYPE IfcMetricValueSelect = SELECT
(IfcAppliedValue
,IfcMeasureWithUnit
,IfcReference
,IfcTable
,IfcTimeSeries
,IfcValue);
END_TYPE;
EXPRESS
ifc:IfcMetricValueSelect
a owl:Class ;
rdfs:subClassOf expr:SELECT .
ifc:IfcValue
a owl:Class ;
rdfs:subClassOf expr:SELECT , ifc:IfcAppliedValueSelect , ifc:IfcMetricValueSelect .
OWL
69. 69
Relevant issues in LDAC2015 report
Issue #16: How to declare SELECT datatypes?
1. using owl:unionOf
2. using rdfs:subClassOf only (when owl:unionOf is used, an inference engine infers the
“rdfs:subClassOf” relation)
=> Decision: using rdfs:subClassOf only
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
70. Step 5. Constructed data types (ENUMERATION)
TYPE IfcAddressTypeEnum = ENUMERATION OF
(OFFICE
,SITE
,HOME
,DISTRIBUTIONPOINT
,USERDEFINED);
END_TYPE;
EXPRESS
ifc:IfcAddressTypeEnum
a owl:Class ;
rdfs:subClassOf expr:ENUMERATION .
ifc:DISTRIBUTIONPOINT
a ifc:IfcAddressTypeEnum , owl:NamedIndividual ;
rdfs:label "DISTRIBUTIONPOINT" .
ifc:SITE
a ifc:IfcAddressTypeEnum , ifc:IfcCrewResourceTypeEnum ,
ifc:IfcAssemblyPlaceEnum , owl:NamedIndividual ;
rdfs:label "SITE" .
OWL
71. 71
Relevant issues in LDAC2015 report
Issue #15: How to declare ENUM datatypes?
1. using owl:oneOf
2. using rdf:type only (when owl:oneOf is used, a reasoner infers the “rdf:type” relation)
Decision: using rdf:type only
Issue #19: EnumName - what naming to use?
1. follow the same approach as for object properties
2. adopt simple naming strategy
=> Decision: follow the same approach as for object properties
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
72. Step 6. Entity data types
IFC
Schema
Simple data type
Defined data type
Aggregation data type
SET data type --------
LIST & ARRAY data type --------
Constructed data type
SELECT data type --------
ENUMERATION data type --------
Entity data type
ifcOWL
Ontology
owl:class + owl:DatatypeProperty restriction
owl:class
owl:class
-------- non-functional owl:ObjectProperty
-------- indirect subclass of express:List
owl:class
-------- rdfs:subClassOf for owl:classes
-------- rdf:type for owl:NamedIndividuals
owl:class
73. Step 6. Entity data types (IfcBSplineCurve)
ENTITY IfcBSplineCurve
ABSTRACT SUPERTYPE OF (ONEOF (IfcBSplineCurveWithKnots))
SUBTYPE OF (IfcBoundedCurve);
Degree : IfcInteger;
ControlPointsList : LIST [2:?] OF IfcCartesianPoint;
CurveForm : IfcBSplineCurveForm;
ClosedCurve : IfcLogical;
SelfIntersect : IfcLogical;
DERIVE
UpperIndexOnControlPoints : IfcInteger := (SIZEOF(ControlPointsList) - 1);
ControlPoints : ARRAY [0:UpperIndexOnControlPoints] OF IfcCartesianPoint :=
IfcListToArray(ControlPointsList,0,UpperIndexOnControlPoints);
WHERE
SameDim : SIZEOF(QUERY(Temp <* ControlPointsList |Temp.Dim <>
ControlPointsList[1].Dim)) = 0;
END_ENTITY;
EXPRESS
74. Step 6. Entity data types (IfcObject)
ENTITY IfcObject
ABSTRACT SUPERTYPE OF (ONEOF(IfcActor,IfcControl,IfcGroup,IfcProcess,IfcProduct,IfcResource))
SUBTYPE OF (IfcObjectDefinition);
ObjectType : OPTIONAL IfcLabel;
INVERSE
IsDeclaredBy : SET [0:1] OF IfcRelDefinesByObject FOR RelatedObjects;
Declares : SET [0:?] OF IfcRelDefinesByObject FOR RelatingObject;
IsTypedBy : SET [0:1] OF IfcRelDefinesByType FOR RelatedObjects;
IsDefinedBy : SET [0:?] OF IfcRelDefinesByProperties FOR RelatedObjects;
WHERE
UniquePropertySetNames : IfcUniqueDefinitionNames(IsDefinedBy);
END_ENTITY;
EXPRESS
76. Step 7. Entity Attributes
IFC
Schema
Simple data type
Defined data type
Aggregation data type
SET data type --------
LIST & ARRAY data type --------
Constructed data type
SELECT data type --------
ENUMERATION data type --------
Entity data type
Attributes --------
ifcOWL
Ontology
owl:class + owl:DatatypeProperty restriction
owl:class
owl:class
-------- non-functional owl:ObjectProperty
-------- indirect subclass of express:List
owl:class
-------- rdfs:subClassOf for owl:classes
-------- rdf:type for owl:NamedIndividuals
owl:class
-------- object properties
83. Step 7. Entity attributes (inverse attr)
ENTITY IfcObject
…
INVERSE
IsDeclaredBy : SET [0:1] OF IfcRelDefinesByObject FOR RelatedObjects;
…
END_ENTITY;
EXPRESS
ifc:isDeclaredBy_IfcObject
rdfs:domain ifc:IfcObject ;
rdfs:range ifc:IfcRelDefinesByObject ;
owl:inverseOf ifc:relatedObjects_IfcRelDefinesByObject ;
rdf:type owl:FunctionalProperty, owl:ObjectProperty .
OWL
no conversion when:
1. an attribute has two or more INVERSE attributes (those
inverse attributes would be considered equivalent by any
inference engine)
2. a regular attribute or its INVERSE has a LIST or ARRAY as its
range. (domain / range mismatch)
84. 84
Relevant issues in LDAC2015 report
Issue #2: PropertyName - Consistent use of long names or only use of long names when required
(inconsistent)?
Decision: consistent
Issue #3: PropertyName - Camelcase long names or Underscore long names?
Decision: underscore
Issue #4: PropertyName - First Class Name, then Property Name?
Decision: PropertyName_ClassName
Issue #5: PropertyName - Exclude “Ifc” from all names (classes, properties)?
Decision: Keep “Ifc” included
Issue #6: PropertyName - name_of_IfcRoot | name_IfcRoot?
Decision: name_IfcRoot
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
85. 85
Relevant issues in LDAC2015 report
Issue #1: Domains and ranges to be included or not?
1. No domains/ranges are specified in the ontology
2. OWL 2 restrictions + d/r on simple datatypes
3. putting domain/range & property restrictions whenever we can
Decision: we vote for option 3. This was a tight vote. There is a great argument for easy names.
Issue #7: Use of “Grouping” SubProperty relations (Property “Name”) or not?
=> Decision: no SubProperty relations
See LDAC2015 report at http://ldac-2015.bwk.tue.nl/LDAC_2015_workshopreport.pdf
86. Step 8. Derive attr, WHERE rules, functions, rules
IFC
Schema
Simple data type
Defined data type
Aggregation data type
SET data type --------
LIST & ARRAY data type --------
Constructed data type
SELECT data type --------
ENUMERATION data type --------
Entity data type
Attributes --------
Derive attr
WHERE rules
Functions
Rules
ifcOWL
Ontology
owl:class + owl:DatatypeProperty restriction
owl:class
owl:class
-------- non-functional owl:ObjectProperty
-------- indirect subclass of express:List
owl:class
-------- rdfs:subClassOf for owl:classes
-------- rdf:type for owl:NamedIndividuals
owl:class
-------- object properties
-
-
-
-
87. DERIVE and WHERE attributes
ENTITY IfcBSplineCurve
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBSplineCurveWithKnots))
SUBTYPE OF (IfcBoundedCurve);
…
DERIVE
UpperIndexOnControlPoints : IfcInteger := (SIZEOF(ControlPointsList) - 1);
ControlPoints : ARRAY [0:UpperIndexOnControlPoints] OF IfcCartesianPoint :=
IfcListToArray(ControlPointsList,0,UpperIndexOnControlPoints);
…
END_ENTITY;
EXPRESS
TYPE IfcBoxAlignment = IfcLabel;
…
WHERE
WR1 : SELF IN [‘top-left’, ‘top-middle’, ‘top-right’, ‘middle-left’, ‘center’, ‘middle-right’, ‘bottom-
left’, ‘bottom-middle’, ‘bottom-right’];
…
END_TYPE;
EXPRESS
88. FUNCTIONS and RULES
FUNCTION IfcUniqueQuantityNames (Properties : SET [1:?] OF IfcPhysicalQuantity) :LOGICAL;
LOCAL
Names : SET OF IfcLabel := [];
END_LOCAL;
REPEAT i:=1 TO HIINDEX(Properties);
Names := Names + Properties[i].Name;
END_REPEAT;
RETURN (SIZEOF(Names) = SIZEOF(Properties));
END_FUNCTION;
EXPRESS
RULE IfcSingleProjectInstance
FOR (IfcProject);
WHERE
WR1 : SIZEOF(IfcProject) <= 1;
END_RULE;
EXPRESS
89. 1. Officialisation of Linked Data Working Group (present instead of future)
2. Presentation of ifcOWL ontology as a recommended standard (to be further
evaluated):
– ifcOWL ontology
– HTML documentation
– Proposed Recommendation
3. Requirements for hosting the ifcOWL online
89
ifcOWL Proposal Outline
91. 91
Minimal configuration for hash vocabularies
(Serve the RDF description of the vocabulary, encoded as RDF/XML.)
Vocabulary URI: http://www.buildingsmart-tech.org/ifcOWL/IFC4_ADD1
Server location: http://www.buildingsmart-tech.org/ifcOWL/
See http://www.w3.org/TR/swbp-vocab-pub/
92. Step 1
Create a file called IFC4_ADD1.rdf that contains a complete RDF/XML serialization of the
vocabulary. I.e. all resources defined by the vocabulary are described in this file.
Step 2
Copy the IFC4_ADD1.rdf file to the /ifcOWL/ directory on the server.
Step 3
Add the following directives to the .htaccess file in the /ifcOWL/ directory on the server:
# Directive to ensure *.rdf files served as appropriate content type,
# if not present in main apache config
AddType application/rdf+xml .rdf
# Rewrite engine setup
RewriteEngine On
RewriteBase /ifcOWL
# Rewrite rule to serve RDF/XML content from the vocabulary URI
RewriteRule ^IFC4_ADD1$ IFC4_ADD1.rdf
92
Minimal configuration in steps
See http://www.w3.org/TR/swbp-vocab-pub/
93. 93
Maximal configuration for hash vocabularies (1)
(Redirect the client to current HTML documentation for the vocabulary.)
Vocabulary URI: http://www.buildingsmart-tech.org/ifcOWL/IFC4_ADD1
HTML content location: http://www.buildingsmart-
tech.org/ifcOWL/IFC4_ADD1/index.html
See http://www.w3.org/TR/swbp-vocab-pub/
94. 94
Maximal configuration for hash vocabularies (2)
(Redirect the client to current RDF description of the vocabulary.)
Vocabulary URI: http://www.buildingsmart-tech.org/ifcOWL/IFC4_ADD1
RDF content location: http://www.buildingsmart-tech.org/ifcOWL/IFC4_ADD1.rdf
See http://www.w3.org/TR/swbp-vocab-pub/
102. Status in the standards process
http://www.buildingsmart.org/standards/standards-process/
102
6 months evaluation period
103. 1. Put the Linked Data Working Group in Development phase
rather than the initiation phase
2. Make ifcOWL ontologies available online using proper content
negotiation setup
3. Make HTLM documentation available online using proper
content negotiation setup
4. Make the Proposed Recommendation document available for
consultation
5. Set up an Issue Tracking Database for “consensus building” in
coming 6 months
103
Actions in buildingSMART server
104. 1. Track ifcOWL issues and act upon them to further improve
ifcOWL
2. Connect with related working groups and build use cases
1. BuildingSMART openBIM – OGC OpenGeoSpatial
2. ifcOWL for Virtual Factory Data Modelling
3. ifcOWL – bSDD
4. ifcOWL – SAREF
5. SWIMing use cases
104
Actions by Linked Data Working Group
105. 105
Slide by Jérôme Euzenat for September 2015 VoCamp in Genoa
(http://www.ready4smartcities.eu//vocamp_2)
108. 108
• StatisticsOntology: basic concepts about probability distributions and descriptive statistics.
• fsm: basic concepts to model a finite state machine.
• FsmExtension: extensions to fsm and integration with StatisticsOntology
• IFC_ADD1: ifcOWL automatically converted from IFC_ADD1.exp
• ifcOWL_rules: add class expressions to ifcOWL derived from WHERE rules in IFC_ADD1.exp
• ifcOWL_extension: integration of modules and general purpose extensions of ifcOWL
• FactoryDomain: specialization of ifcOWL with definitions related to products, processes, and systems
• SuFSeFFactory: specialization of ifcOWL and Factory concepts related to industrial building
sustainability.
ifcOWL for Virtual Factory Data Model (VFDM)
112. Semantic Web for
Information Modelling in
Energy Efficient Buildings
Coordinator: Kris McGlinn
ADAPT Centre
Trinity College Dublin
E-mail: Kris.McGlinn@scss.tcd.ie