SlideShare una empresa de Scribd logo
1 de 32
Selection of IFC subsets
using ifcOWL and rewrite rules
Matthias Weise, AEC3
Pieter Pauwels, Ghent University
AIMS
What is available
IFC SPF IFC EXPRESS
IFC RDF graph ifcOWL
double conversion /
translation
What do we want to do with this
IFC SPF IFC EXPRESS
IFC RDF graph ifcOWL
double conversion /
translation
SUBSET IFC SPF
(MVD)
SUBSET IFC EXPRESS
(MVD SPEC in EXP)
SUBSET IFC RDF graph
(MVD)
SUBSET MVD ontology
(MVD SPEC in OWL)
selection file (MVDXML)
rewrite rules (or queries)
Our scope
IFC SPF IFC EXPRESS
IFC RDF graph ifcOWL
double conversion /
translation
SUBSET IFC SPF
(MVD)
SUBSET IFC EXPRESS
(MVD SPEC in EXP)
SUBSET IFC RDF graph
(MVD)
SUBSET MVD ontology
(MVD SPEC in OWL)
selection file (MVDXML)
rewrite rules (or queries)
1
2
MVDXML
MVDXML structure
<?xml version="1.0"?>
<mvdXML>
<Templates>
<ConceptTemplate >
<Definitions />
<Rules />
<Subtemplates />
</ConceptTemplate >
</Templates>
< Views >
<ModelView />
<Roots>
<ConceptRoot>
<Concept>
<Template />
<Requirements />
<Rules />
</Concept>
</ConceptRoot>
</Roots>
</Views>
</mvdXML>
MVDXML structure
<?xml version="1.0"?>
<mvdXML>
<Templates>
<ConceptTemplate >
<Definitions />
<Rules />
<Subtemplates />
</ConceptTemplate >
</Templates>
< Views >
<ModelView />
<Roots>
<ConceptRoot>
<Concept>
<Template />
<Requirements />
<Rules />
</Concept>
</ConceptRoot>
</Roots>
</Views>
</mvdXML>
CONCEPT
This lists WHAT content should be
included in the subset
CONCEPTTEMPLATE
This lists HOW content should be
included in the subset
LINK
EACH concept linked to ONE
ConceptTemplate
The CONCEPT in an MVDXML
<ConceptRoot uuid="83c2915f-08f1-4027-a32c-23fd3ee588b6" name="" applicableRootEntity="IfcBuildingStorey">
<Concepts>
<Concept uuid="64802040-8b87-4ed2-87bc-b9cc16a587df" name="Identity" override="false">
<Template ref="f7cb0a08-fee7-4cc0-85fe-43f6a6a0bce1" />
<Requirements />
<Rules />
</Concept>
<Concept uuid="9e903641-5cb8-4e64-a479-4d4619c2ddc1" name="with Property names" override="false">
<Template ref="d5449a96-e8a9-48f0-bc9a-c3829f5fc668" />
<Requirements />
<Rules>
<TemplateRule Parameters="Name=Pset_BuildingStoreyCommon;PropertyName=Reference;" />
<TemplateRule Parameters="Name=Pset_BuildingStoreyCommon;PropertyName=EntranceLevel;" />
<TemplateRule Parameters="Name=Pset_BuildingStoreyCommon;PropertyName=AboveGround;" />
</Rules>
</Concept>
</Concepts>
</ConceptRoot>
The template in an MVDXML
<ConceptTemplate>
<Definitions />
<SubTemplates>
<ConceptTemplate uuid="f7cb0a08-fee7-4cc0-85fe-43f6a6a0bce1" name="Identity" status="" applicableSchema="IFC4"
applicableEntity="IfcRoot">
<Definitions />
<Rules>
<AttributeRule AttributeName="GlobalId" Cardinality="_asSchema">
<EntityRules>
<EntityRule EntityName="IfcGloballyUniqueId" Cardinality="_asSchema" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Name" Cardinality="_asSchema">
<EntityRules>
<EntityRule EntityName="IfcLabel" Cardinality="_asSchema" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Description" Cardinality="_asSchema">
<EntityRules>
<EntityRule EntityName="IfcText" Cardinality="_asSchema" />
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
</SubTemplates>
</ConceptTemplate>
ROUTE 1 - GENERATING AN
MVDXML USING IFCDOC
Our scope
IFC SPF IFC EXPRESS
IFC RDF graph ifcOWL
double conversion /
translation
SUBSET IFC SPF
(MVD)
SUBSET IFC EXPRESS
(MVD SPEC in EXP)
SUBSET IFC RDF graph
(MVD)
SUBSET MVD ontology
(MVD SPEC in OWL)
selection file (MVDXML)
rewrite rules (or queries)
1
ROUTE 2 - AN MVDXML IN REWRITE
RULES AND/OR SPARQL (CONSTRUCT)
QUERIES
Our scope
IFC SPF IFC EXPRESS
IFC RDF graph ifcOWL
double conversion /
translation
SUBSET IFC SPF
(MVD)
SUBSET IFC EXPRESS
(MVD SPEC in EXP)
SUBSET IFC RDF graph
(MVD)
SUBSET MVD ontology
(MVD SPEC in OWL)
selection file (MVDXML)
rewrite rules (or queries)
2
The template in an MVDXML …
<ConceptTemplate>
<Definitions />
<SubTemplates>
<ConceptTemplate uuid="f7cb0a08-fee7-4cc0-85fe-43f6a6a0bce1" name="Identity" status="" applicableSchema="IFC4"
applicableEntity="IfcRoot">
<Definitions />
<Rules>
<AttributeRule AttributeName="GlobalId" Cardinality="_asSchema">
<EntityRules>
<EntityRule EntityName="IfcGloballyUniqueId" Cardinality="_asSchema" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Name" Cardinality="_asSchema">
<EntityRules>
<EntityRule EntityName="IfcLabel" Cardinality="_asSchema" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Description" Cardinality="_asSchema">
<EntityRules>
<EntityRule EntityName="IfcText" Cardinality="_asSchema" />
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
</SubTemplates>
</ConceptTemplate>
… in graph format
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ifcowl: <http://www.buildingsmart-tech.org/ifcOWL#> .
@prefix log: <http://www.w3.org/2000/10/swap/log#> .
@prefix mvd: <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> .
@prefix : <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> .
{
?a rdf:type ifcowl:IfcRoot .
?a ifcowl:GlobalId ?b .
?b rdf:type ifcowl:IfcGloballyUniqueId .
?b ifcowl:has_string ?c .
?a ifcowl:Name_of_IfcRoot ?d .
?d rdf:type ifcowl:IfcLabel .
?d ifcowl:has_string ?e .
?a ifcowl:Description_of_IfcRoot ?f .
?f rdf:type ifcowl:IfcText .
?f ifcowl:has_string ?g .
}
It needs to be applied to specific concept(Root)
<?xml version="1.0"?>
<mvdXML>
<Templates>
<ConceptTemplate >
<Definitions />
<Rules />
<Subtemplates />
</ConceptTemplate >
</Templates>
< Views >
<ModelView />
<Roots>
<ConceptRoot>
<Concept>
<Template />
<Requirements />
<Rules />
</Concept>
</ConceptRoot>
</Roots>
</Views>
</mvdXML>
CONCEPT
This lists WHAT content should be
included in the subset
CONCEPTTEMPLATE
This lists HOW content should be
included in the subset
LINK
EACH concept linked to ONE
ConceptTemplate
concept added
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ifcowl: <http://www.buildingsmart-tech.org/ifcOWL#> .
@prefix log: <http://www.w3.org/2000/10/swap/log#> .
@prefix mvd: <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> .
@prefix : <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> .
{
?a rdf:type ifcowl:IfcSpace .
?a rdf:type ifcowl:IfcRoot .
?a ifcowl:GlobalId ?b .
?b rdf:type ifcowl:IfcGloballyUniqueId .
?b ifcowl:has_string ?c .
?a ifcowl:Name_of_IfcRoot ?d .
?d rdf:type ifcowl:IfcLabel .
?d ifcowl:has_string ?e .
?a ifcowl:Description_of_IfcRoot ?f .
?f rdf:type ifcowl:IfcText .
?f ifcowl:has_string ?g .
}
Our scope
IFC SPF IFC EXPRESS
IFC RDF graph ifcOWL
double conversion /
translation
SUBSET IFC SPF
(MVD)
SUBSET IFC EXPRESS
(MVD SPEC in EXP)
SUBSET IFC RDF graph
(MVD)
SUBSET MVD ontology
(MVD SPEC in OWL)
selection file (MVDXML)
rewrite rules (or queries)
2
ROUTE 2 - APPLYING THE MVD
GRAPHS TO AN IFC MODEL
Option 1 – SPARQL queries
[prefixes]
CONSTRUCT
{
[OUTPUT GRAPH AS DESIRED]
}
WHERE
{
?a rdf:type ifcowl:IfcSpace .
?a rdf:type ifcowl:IfcRoot .
?a ifcowl:GlobalId ?b .
?b rdf:type ifcowl:IfcGloballyUniqueId .
?b ifcowl:has_string ?c .
?a ifcowl:Name_of_IfcRoot ?d .
?d rdf:type ifcowl:IfcLabel .
?d ifcowl:has_string ?e .
?a ifcowl:Description_of_IfcRoot ?f .
?f rdf:type ifcowl:IfcText .
?f ifcowl:has_string ?g .
}
SPARQL Schematic overview
SPARQL Endpoint
OWL ontologies
SPARQL queries
User
RDF Repository
SPARQL generator
Remarks
• SPARQL queries are fired one by one
• They need to be processed by the receiver
(application or end user), so there is no real
‘single output subset graph’ available
• Not easy to write SPARQL queries
• Need to maintain SPARQL endpoint
• Compliance with a stable ontology needed
Option 2 – IF-THEN graph rules
[prefixes]
{
?a rdf:type ifcowl:IfcSpace .
?a rdf:type ifcowl:IfcRoot .
?a ifcowl:GlobalId ?b .
?b rdf:type ifcowl:IfcGloballyUniqueId .
?b ifcowl:has_string ?c .
?a ifcowl:Name_of_IfcRoot ?d .
?d rdf:type ifcowl:IfcLabel .
?d ifcowl:has_string ?e .
?a ifcowl:Description_of_IfcRoot ?f .
?f rdf:type ifcowl:IfcText .
?f ifcowl:has_string ?g .
}
=>
{
[OUTPUT GRAPH AS DESIRED]
}
Rules schematic overview
inference engine
OWL ontologies
query
User
RDF Repository
interface
IF-THEN rule repository
response in
RDF graph
Remarks
• One can combine as many rules as one wishes in one
‘inference run’
• The receiver (application or end user) receives the result as
a ‘single output subset graph’
• The individuals are still in the original namespace (so they
have the same URIs / are identical). The relations, class
attributions and potential additional statements can be
placed in a separate namespace. But the link to the original
is always maintained through the URIs of the individuals.
• Performance can change a lot, depending on the amount
of resources and rules that is loaded by the reasoning
engine.
• Not easy to write rules
• Compliance with a stable ontology needed
ROUTE 2 - THE RESULT IN IFCRDF
(DIRECTLY)
@prefix : <http://www.buildingsmart-tech.org/ifcOWL#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix mvd: <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> .
@prefix dce: <http://purl.org/dc/elements/1.1/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix inst: <http://linkedbuildingdata.net/ifc/instances20150609_015154#> .
@prefix log: <http://www.w3.org/2000/10/swap/log#> .
inst:IfcLabel_273230
a mvd:IfcLabel ;
mvd:has_string "Ghent" .
inst:IfcLabel_273233
a mvd:IfcLabel ;
mvd:has_string "Belgium" .
inst:IfcBuilding_36
a mvd:IfcBuilding ;
mvd:BuildingAddress inst:IfcPostalAddress_35 .
inst:IfcPostalAddress_35
a mvd:IfcPostalAddress ;
mvd:Country inst:IfcLabel_273233 ;
mvd:Region inst:IfcLabel_273231 ;
mvd:Town inst:IfcLabel_273230 .
inst:IfcLabel_273231
a mvd:IfcLabel ;
mvd:has_string "Flanders" .
MVD building location - IfcBuilding
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix mvd: <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> .
@prefix ifcowl: <http://www.buildingsmart-tech.org/ifcOWL#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix inst: <http://linkedbuildingdata.net/ifc/instances20150703_192529#> .
inst:IfcBuilding_36
a mvd:IfcObjectDefinition , mvd:IfcBuilding ;
mvd:IsDecomposedBy inst:IfcRelAggregates_266702 .
inst:IfcRelAggregates_266702
a mvd:IfcRelAggregates ;
mvd:RelatedObjects_of_IfcRelAggregates inst:IfcBuildingStorey_40 ,
inst:IfcBuildingStorey_43 , inst:IfcBuildingStorey_47 , inst:IfcBuildingStorey_51 .
inst:IfcBuildingStorey_43 a mvd:IfcSpatialElement .
inst:IfcBuildingStorey_47 a mvd:IfcSpatialElement .
inst:IfcBuildingStorey_51 a mvd:IfcSpatialElement .
inst:IfcBuildingStorey_40 a mvd:IfcSpatialElement .
Other subsets tested
• IfcBuilding location
• IfcElement type selection + Identity
• Spatial composition / decomposition
• SI units used for IfcProject
• Selection of specific property values
• IfcBuildingStorey elevation
• IfcSite location
• IfcProject context
• Object typing
• Spatial containment
• IfcSpace classification
• Placement
• Mapped geometry / Body geometry / Body BREP geometry / Body
SweptSolid geometry
• Space boundaries and connection geometry
Our scope
IFC SPF IFC EXPRESS
IFC RDF graph ifcOWL
double conversion /
translation
SUBSET IFC SPF
(MVD)
SUBSET IFC EXPRESS
(MVD SPEC in EXP)
SUBSET IFC RDF graph
(MVD)
SUBSET MVD ontology
(MVD SPEC in OWL)
selection file (MVDXML)
rewrite rules (or queries)
1
2
Thank you
Matthias Weise – mw@aec3.de
Pieter Pauwels – pipauwel.pauwels@ugent.be

Más contenido relacionado

La actualidad más candente

SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked DataSPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
Franck Michel
 
Modeling and Evaluation of Performance and Reliability of Component-based So...
Modeling and Evaluation of Performance and Reliability  of Component-based So...Modeling and Evaluation of Performance and Reliability  of Component-based So...
Modeling and Evaluation of Performance and Reliability of Component-based So...
Editor IJCATR
 

La actualidad más candente (11)

OntoMaven Repositories and OMG API4KP
OntoMaven Repositories and OMG API4KPOntoMaven Repositories and OMG API4KP
OntoMaven Repositories and OMG API4KP
 
MGU SYLLABUS MANUAL-Advance diploma in computer applications
MGU SYLLABUS MANUAL-Advance diploma in computer applicationsMGU SYLLABUS MANUAL-Advance diploma in computer applications
MGU SYLLABUS MANUAL-Advance diploma in computer applications
 
Cerif tutorial from CRIS2016
Cerif tutorial from CRIS2016Cerif tutorial from CRIS2016
Cerif tutorial from CRIS2016
 
Advance diploma in it
Advance diploma in itAdvance diploma in it
Advance diploma in it
 
Delving Source Code with Formal Concept Analysis
Delving Source Code with Formal Concept Analysis Delving Source Code with Formal Concept Analysis
Delving Source Code with Formal Concept Analysis
 
Aaai2012
Aaai2012Aaai2012
Aaai2012
 
Model Driven Requirements Engineering: Mapping the Field and Beyond
Model Driven Requirements Engineering: Mapping the Field and BeyondModel Driven Requirements Engineering: Mapping the Field and Beyond
Model Driven Requirements Engineering: Mapping the Field and Beyond
 
SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked DataSPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
SPARQL Micro-Services: Lightweight Integration of Web APIs and Linked Data
 
Generation of Random EMF Models for Benchmarks
Generation of Random EMF Models for BenchmarksGeneration of Random EMF Models for Benchmarks
Generation of Random EMF Models for Benchmarks
 
Information Flow based Ontology Mapping - 2002
Information Flow based Ontology Mapping - 2002Information Flow based Ontology Mapping - 2002
Information Flow based Ontology Mapping - 2002
 
Modeling and Evaluation of Performance and Reliability of Component-based So...
Modeling and Evaluation of Performance and Reliability  of Component-based So...Modeling and Evaluation of Performance and Reliability  of Component-based So...
Modeling and Evaluation of Performance and Reliability of Component-based So...
 

Destacado

Destacado (20)

BIMMeeting 2016 - BIM-Infra-GIS: building bridges from single buildings to di...
BIMMeeting 2016 - BIM-Infra-GIS: building bridges from single buildings to di...BIMMeeting 2016 - BIM-Infra-GIS: building bridges from single buildings to di...
BIMMeeting 2016 - BIM-Infra-GIS: building bridges from single buildings to di...
 
Veryfing the completeness of Building Information Models
Veryfing the completeness of Building Information ModelsVeryfing the completeness of Building Information Models
Veryfing the completeness of Building Information Models
 
Ecppm2014 presentation
Ecppm2014 presentationEcppm2014 presentation
Ecppm2014 presentation
 
Presentation - Veryfing the completeness of Building Information Models
Presentation - Veryfing the completeness of Building Information ModelsPresentation - Veryfing the completeness of Building Information Models
Presentation - Veryfing the completeness of Building Information Models
 
CIB W78 2015 - Semantic Rule-checking for Regulation Compliance Checking
CIB W78 2015 - Semantic Rule-checking for Regulation Compliance CheckingCIB W78 2015 - Semantic Rule-checking for Regulation Compliance Checking
CIB W78 2015 - Semantic Rule-checking for Regulation Compliance Checking
 
LDAC Workshop 2016 - Linked Building Data Community Efforts
LDAC Workshop 2016 - Linked Building Data Community EffortsLDAC Workshop 2016 - Linked Building Data Community Efforts
LDAC Workshop 2016 - Linked Building Data Community Efforts
 
SWIMing VoCamp 2016 - ifcOWL overview and current state
SWIMing VoCamp 2016 - ifcOWL overview and current stateSWIMing VoCamp 2016 - ifcOWL overview and current state
SWIMing VoCamp 2016 - ifcOWL overview and current state
 
CIB W78 Accelerating BIM Workshop 2015 - IFC2RDF tools
CIB W78 Accelerating BIM Workshop 2015 - IFC2RDF toolsCIB W78 Accelerating BIM Workshop 2015 - IFC2RDF tools
CIB W78 Accelerating BIM Workshop 2015 - IFC2RDF tools
 
Bridges.basic
Bridges.basicBridges.basic
Bridges.basic
 
Context Based Adaptation of Semantic Rules in Smart Buildings
Context Based Adaptation of Semantic Rules in SmartBuildingsContext Based Adaptation of Semantic Rules in SmartBuildings
Context Based Adaptation of Semantic Rules in Smart Buildings
 
UGent Research Projects on Linked Data in Architecture and Construction
UGent Research Projects on Linked Data in Architecture and ConstructionUGent Research Projects on Linked Data in Architecture and Construction
UGent Research Projects on Linked Data in Architecture and Construction
 
Publish and use your data
Publish and use your dataPublish and use your data
Publish and use your data
 
CIB W78 2015 - Keynote "The Web of Construction Data:Pathways and Opportunities"
CIB W78 2015 - Keynote "The Web of Construction Data:Pathways and Opportunities"CIB W78 2015 - Keynote "The Web of Construction Data:Pathways and Opportunities"
CIB W78 2015 - Keynote "The Web of Construction Data:Pathways and Opportunities"
 
ECPPM2016 - ifcOWL for Managing Product Data
ECPPM2016 - ifcOWL for Managing Product DataECPPM2016 - ifcOWL for Managing Product Data
ECPPM2016 - ifcOWL for Managing Product Data
 
BabelNet Workshop 2016 - Making sense of building data and building product data
BabelNet Workshop 2016 - Making sense of building data and building product dataBabelNet Workshop 2016 - Making sense of building data and building product data
BabelNet Workshop 2016 - Making sense of building data and building product data
 
Data Interlinking
Data InterlinkingData Interlinking
Data Interlinking
 
BRIDGES 2 Unit5
BRIDGES 2 Unit5BRIDGES 2 Unit5
BRIDGES 2 Unit5
 
Semantics for Smarter Cities
Semantics for Smarter CitiesSemantics for Smarter Cities
Semantics for Smarter Cities
 
BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...
BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...
BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...
 
ECPPM2016 - SimpleBIM: from full ifcOWL graphs to simplified building graphs
ECPPM2016 - SimpleBIM: from full ifcOWL graphs to simplified building graphsECPPM2016 - SimpleBIM: from full ifcOWL graphs to simplified building graphs
ECPPM2016 - SimpleBIM: from full ifcOWL graphs to simplified building graphs
 

Similar a LDAC 2015 - Selection of IFC subsets using ifcOWL and rewrite rules

imperative programming language, java, android
imperative programming language, java, androidimperative programming language, java, android
imperative programming language, java, android
i i
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
 

Similar a LDAC 2015 - Selection of IFC subsets using ifcOWL and rewrite rules (20)

Bio2RDF@BH2010
Bio2RDF@BH2010Bio2RDF@BH2010
Bio2RDF@BH2010
 
XSLT+SPARQL: Scripting the Semantic Web with SPARQL embedded into XSLT styles...
XSLT+SPARQL: Scripting the Semantic Web with SPARQL embedded into XSLT styles...XSLT+SPARQL: Scripting the Semantic Web with SPARQL embedded into XSLT styles...
XSLT+SPARQL: Scripting the Semantic Web with SPARQL embedded into XSLT styles...
 
Sesam4 project presentation sparql - april 2011
Sesam4   project presentation sparql - april 2011Sesam4   project presentation sparql - april 2011
Sesam4 project presentation sparql - april 2011
 
Sesam4 project presentation sparql - april 2011
Sesam4   project presentation sparql - april 2011Sesam4   project presentation sparql - april 2011
Sesam4 project presentation sparql - april 2011
 
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
 
Oleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoCOleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoC
 
Data shapes-test-suite
Data shapes-test-suiteData shapes-test-suite
Data shapes-test-suite
 
Oracle High Availabiltity for application developers
Oracle High Availabiltity for application developersOracle High Availabiltity for application developers
Oracle High Availabiltity for application developers
 
SPARQLing Services
SPARQLing ServicesSPARQLing Services
SPARQLing Services
 
SenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay Platonov
SenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay PlatonovSenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay Platonov
SenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay Platonov
 
Jack Gudenkauf sparkug_20151207_7
Jack Gudenkauf sparkug_20151207_7Jack Gudenkauf sparkug_20151207_7
Jack Gudenkauf sparkug_20151207_7
 
A noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­tica
A noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­ticaA noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­tica
A noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­tica
 
Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013
 
Data access
Data accessData access
Data access
 
HOW TO SCALE FROM ZERO TO BILLIONS!
HOW TO SCALE FROM ZERO TO BILLIONS!HOW TO SCALE FROM ZERO TO BILLIONS!
HOW TO SCALE FROM ZERO TO BILLIONS!
 
Bring the Spark To Your Eyes
Bring the Spark To Your EyesBring the Spark To Your Eyes
Bring the Spark To Your Eyes
 
imperative programming language, java, android
imperative programming language, java, androidimperative programming language, java, android
imperative programming language, java, android
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Meetup cassandra sfo_jdbc
Meetup cassandra sfo_jdbcMeetup cassandra sfo_jdbc
Meetup cassandra sfo_jdbc
 
Compiler2016 by abcdabcd987
Compiler2016 by abcdabcd987Compiler2016 by abcdabcd987
Compiler2016 by abcdabcd987
 

Más de Pieter Pauwels

2_presFriday_ontologydevelopment
2_presFriday_ontologydevelopment2_presFriday_ontologydevelopment
2_presFriday_ontologydevelopment
Pieter Pauwels
 
EuropIA 2014 - Analysing the impact of constraints on decision-making by arch...
EuropIA 2014 - Analysing the impact of constraints on decision-making by arch...EuropIA 2014 - Analysing the impact of constraints on decision-making by arch...
EuropIA 2014 - Analysing the impact of constraints on decision-making by arch...
Pieter Pauwels
 

Más de Pieter Pauwels (12)

TPAC2016 - From Linked Building Data to Building Data on the Web
TPAC2016 - From Linked Building Data to Building Data on the WebTPAC2016 - From Linked Building Data to Building Data on the Web
TPAC2016 - From Linked Building Data to Building Data on the Web
 
ECPPM2016 - SemCat: Publishing and Accessing Building Product Information as ...
ECPPM2016 - SemCat: Publishing and Accessing Building Product Information as ...ECPPM2016 - SemCat: Publishing and Accessing Building Product Information as ...
ECPPM2016 - SemCat: Publishing and Accessing Building Product Information as ...
 
ACM SIGMOD SBD2016 - Querying and reasoning over large scale building dataset...
ACM SIGMOD SBD2016 - Querying and reasoning over large scale building dataset...ACM SIGMOD SBD2016 - Querying and reasoning over large scale building dataset...
ACM SIGMOD SBD2016 - Querying and reasoning over large scale building dataset...
 
CAA NLFL 2015 - Semantics in the documentation of architectural heritage: BIM...
CAA NLFL 2015 - Semantics in the documentation of architectural heritage: BIM...CAA NLFL 2015 - Semantics in the documentation of architectural heritage: BIM...
CAA NLFL 2015 - Semantics in the documentation of architectural heritage: BIM...
 
2_presFriday_ontologydevelopment
2_presFriday_ontologydevelopment2_presFriday_ontologydevelopment
2_presFriday_ontologydevelopment
 
CAADFutures 2015 - Shape grammars for architectural design: the need for refr...
CAADFutures 2015 - Shape grammars for architectural design: the need for refr...CAADFutures 2015 - Shape grammars for architectural design: the need for refr...
CAADFutures 2015 - Shape grammars for architectural design: the need for refr...
 
Summer School LD4SC 2015 - ifcOWL introduction
Summer School LD4SC 2015 - ifcOWL introductionSummer School LD4SC 2015 - ifcOWL introduction
Summer School LD4SC 2015 - ifcOWL introduction
 
Summer School LD4SC 2015 - RDF(S) and SPARQL
Summer School LD4SC 2015 - RDF(S) and SPARQLSummer School LD4SC 2015 - RDF(S) and SPARQL
Summer School LD4SC 2015 - RDF(S) and SPARQL
 
EuropIA 2014 - Analysing the impact of constraints on decision-making by arch...
EuropIA 2014 - Analysing the impact of constraints on decision-making by arch...EuropIA 2014 - Analysing the impact of constraints on decision-making by arch...
EuropIA 2014 - Analysing the impact of constraints on decision-making by arch...
 
ECPPM2014 - Making SimModel information available as RDF graphs
ECPPM2014 - Making SimModel information available as RDF graphsECPPM2014 - Making SimModel information available as RDF graphs
ECPPM2014 - Making SimModel information available as RDF graphs
 
iKNOW2014 - SimModel and IFC: a short introduction to the ontologies
iKNOW2014 - SimModel and IFC: a short introduction to the ontologiesiKNOW2014 - SimModel and IFC: a short introduction to the ontologies
iKNOW2014 - SimModel and IFC: a short introduction to the ontologies
 
NordDesign2014 - Reasoning processes involved in ICT-mediated design communic...
NordDesign2014 - Reasoning processes involved in ICT-mediated design communic...NordDesign2014 - Reasoning processes involved in ICT-mediated design communic...
NordDesign2014 - Reasoning processes involved in ICT-mediated design communic...
 

LDAC 2015 - Selection of IFC subsets using ifcOWL and rewrite rules

  • 1. Selection of IFC subsets using ifcOWL and rewrite rules Matthias Weise, AEC3 Pieter Pauwels, Ghent University
  • 3. What is available IFC SPF IFC EXPRESS IFC RDF graph ifcOWL double conversion / translation
  • 4. What do we want to do with this IFC SPF IFC EXPRESS IFC RDF graph ifcOWL double conversion / translation SUBSET IFC SPF (MVD) SUBSET IFC EXPRESS (MVD SPEC in EXP) SUBSET IFC RDF graph (MVD) SUBSET MVD ontology (MVD SPEC in OWL) selection file (MVDXML) rewrite rules (or queries)
  • 5. Our scope IFC SPF IFC EXPRESS IFC RDF graph ifcOWL double conversion / translation SUBSET IFC SPF (MVD) SUBSET IFC EXPRESS (MVD SPEC in EXP) SUBSET IFC RDF graph (MVD) SUBSET MVD ontology (MVD SPEC in OWL) selection file (MVDXML) rewrite rules (or queries) 1 2
  • 7. MVDXML structure <?xml version="1.0"?> <mvdXML> <Templates> <ConceptTemplate > <Definitions /> <Rules /> <Subtemplates /> </ConceptTemplate > </Templates> < Views > <ModelView /> <Roots> <ConceptRoot> <Concept> <Template /> <Requirements /> <Rules /> </Concept> </ConceptRoot> </Roots> </Views> </mvdXML>
  • 8. MVDXML structure <?xml version="1.0"?> <mvdXML> <Templates> <ConceptTemplate > <Definitions /> <Rules /> <Subtemplates /> </ConceptTemplate > </Templates> < Views > <ModelView /> <Roots> <ConceptRoot> <Concept> <Template /> <Requirements /> <Rules /> </Concept> </ConceptRoot> </Roots> </Views> </mvdXML> CONCEPT This lists WHAT content should be included in the subset CONCEPTTEMPLATE This lists HOW content should be included in the subset LINK EACH concept linked to ONE ConceptTemplate
  • 9. The CONCEPT in an MVDXML <ConceptRoot uuid="83c2915f-08f1-4027-a32c-23fd3ee588b6" name="" applicableRootEntity="IfcBuildingStorey"> <Concepts> <Concept uuid="64802040-8b87-4ed2-87bc-b9cc16a587df" name="Identity" override="false"> <Template ref="f7cb0a08-fee7-4cc0-85fe-43f6a6a0bce1" /> <Requirements /> <Rules /> </Concept> <Concept uuid="9e903641-5cb8-4e64-a479-4d4619c2ddc1" name="with Property names" override="false"> <Template ref="d5449a96-e8a9-48f0-bc9a-c3829f5fc668" /> <Requirements /> <Rules> <TemplateRule Parameters="Name=Pset_BuildingStoreyCommon;PropertyName=Reference;" /> <TemplateRule Parameters="Name=Pset_BuildingStoreyCommon;PropertyName=EntranceLevel;" /> <TemplateRule Parameters="Name=Pset_BuildingStoreyCommon;PropertyName=AboveGround;" /> </Rules> </Concept> </Concepts> </ConceptRoot>
  • 10. The template in an MVDXML <ConceptTemplate> <Definitions /> <SubTemplates> <ConceptTemplate uuid="f7cb0a08-fee7-4cc0-85fe-43f6a6a0bce1" name="Identity" status="" applicableSchema="IFC4" applicableEntity="IfcRoot"> <Definitions /> <Rules> <AttributeRule AttributeName="GlobalId" Cardinality="_asSchema"> <EntityRules> <EntityRule EntityName="IfcGloballyUniqueId" Cardinality="_asSchema" /> </EntityRules> </AttributeRule> <AttributeRule AttributeName="Name" Cardinality="_asSchema"> <EntityRules> <EntityRule EntityName="IfcLabel" Cardinality="_asSchema" /> </EntityRules> </AttributeRule> <AttributeRule AttributeName="Description" Cardinality="_asSchema"> <EntityRules> <EntityRule EntityName="IfcText" Cardinality="_asSchema" /> </EntityRules> </AttributeRule> </Rules> </ConceptTemplate> </SubTemplates> </ConceptTemplate>
  • 11. ROUTE 1 - GENERATING AN MVDXML USING IFCDOC
  • 12. Our scope IFC SPF IFC EXPRESS IFC RDF graph ifcOWL double conversion / translation SUBSET IFC SPF (MVD) SUBSET IFC EXPRESS (MVD SPEC in EXP) SUBSET IFC RDF graph (MVD) SUBSET MVD ontology (MVD SPEC in OWL) selection file (MVDXML) rewrite rules (or queries) 1
  • 13. ROUTE 2 - AN MVDXML IN REWRITE RULES AND/OR SPARQL (CONSTRUCT) QUERIES
  • 14. Our scope IFC SPF IFC EXPRESS IFC RDF graph ifcOWL double conversion / translation SUBSET IFC SPF (MVD) SUBSET IFC EXPRESS (MVD SPEC in EXP) SUBSET IFC RDF graph (MVD) SUBSET MVD ontology (MVD SPEC in OWL) selection file (MVDXML) rewrite rules (or queries) 2
  • 15. The template in an MVDXML … <ConceptTemplate> <Definitions /> <SubTemplates> <ConceptTemplate uuid="f7cb0a08-fee7-4cc0-85fe-43f6a6a0bce1" name="Identity" status="" applicableSchema="IFC4" applicableEntity="IfcRoot"> <Definitions /> <Rules> <AttributeRule AttributeName="GlobalId" Cardinality="_asSchema"> <EntityRules> <EntityRule EntityName="IfcGloballyUniqueId" Cardinality="_asSchema" /> </EntityRules> </AttributeRule> <AttributeRule AttributeName="Name" Cardinality="_asSchema"> <EntityRules> <EntityRule EntityName="IfcLabel" Cardinality="_asSchema" /> </EntityRules> </AttributeRule> <AttributeRule AttributeName="Description" Cardinality="_asSchema"> <EntityRules> <EntityRule EntityName="IfcText" Cardinality="_asSchema" /> </EntityRules> </AttributeRule> </Rules> </ConceptTemplate> </SubTemplates> </ConceptTemplate>
  • 16. … in graph format @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix ifcowl: <http://www.buildingsmart-tech.org/ifcOWL#> . @prefix log: <http://www.w3.org/2000/10/swap/log#> . @prefix mvd: <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> . @prefix : <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> . { ?a rdf:type ifcowl:IfcRoot . ?a ifcowl:GlobalId ?b . ?b rdf:type ifcowl:IfcGloballyUniqueId . ?b ifcowl:has_string ?c . ?a ifcowl:Name_of_IfcRoot ?d . ?d rdf:type ifcowl:IfcLabel . ?d ifcowl:has_string ?e . ?a ifcowl:Description_of_IfcRoot ?f . ?f rdf:type ifcowl:IfcText . ?f ifcowl:has_string ?g . }
  • 17. It needs to be applied to specific concept(Root) <?xml version="1.0"?> <mvdXML> <Templates> <ConceptTemplate > <Definitions /> <Rules /> <Subtemplates /> </ConceptTemplate > </Templates> < Views > <ModelView /> <Roots> <ConceptRoot> <Concept> <Template /> <Requirements /> <Rules /> </Concept> </ConceptRoot> </Roots> </Views> </mvdXML> CONCEPT This lists WHAT content should be included in the subset CONCEPTTEMPLATE This lists HOW content should be included in the subset LINK EACH concept linked to ONE ConceptTemplate
  • 18. concept added @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix ifcowl: <http://www.buildingsmart-tech.org/ifcOWL#> . @prefix log: <http://www.w3.org/2000/10/swap/log#> . @prefix mvd: <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> . @prefix : <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> . { ?a rdf:type ifcowl:IfcSpace . ?a rdf:type ifcowl:IfcRoot . ?a ifcowl:GlobalId ?b . ?b rdf:type ifcowl:IfcGloballyUniqueId . ?b ifcowl:has_string ?c . ?a ifcowl:Name_of_IfcRoot ?d . ?d rdf:type ifcowl:IfcLabel . ?d ifcowl:has_string ?e . ?a ifcowl:Description_of_IfcRoot ?f . ?f rdf:type ifcowl:IfcText . ?f ifcowl:has_string ?g . }
  • 19. Our scope IFC SPF IFC EXPRESS IFC RDF graph ifcOWL double conversion / translation SUBSET IFC SPF (MVD) SUBSET IFC EXPRESS (MVD SPEC in EXP) SUBSET IFC RDF graph (MVD) SUBSET MVD ontology (MVD SPEC in OWL) selection file (MVDXML) rewrite rules (or queries) 2
  • 20. ROUTE 2 - APPLYING THE MVD GRAPHS TO AN IFC MODEL
  • 21. Option 1 – SPARQL queries [prefixes] CONSTRUCT { [OUTPUT GRAPH AS DESIRED] } WHERE { ?a rdf:type ifcowl:IfcSpace . ?a rdf:type ifcowl:IfcRoot . ?a ifcowl:GlobalId ?b . ?b rdf:type ifcowl:IfcGloballyUniqueId . ?b ifcowl:has_string ?c . ?a ifcowl:Name_of_IfcRoot ?d . ?d rdf:type ifcowl:IfcLabel . ?d ifcowl:has_string ?e . ?a ifcowl:Description_of_IfcRoot ?f . ?f rdf:type ifcowl:IfcText . ?f ifcowl:has_string ?g . }
  • 22. SPARQL Schematic overview SPARQL Endpoint OWL ontologies SPARQL queries User RDF Repository SPARQL generator
  • 23. Remarks • SPARQL queries are fired one by one • They need to be processed by the receiver (application or end user), so there is no real ‘single output subset graph’ available • Not easy to write SPARQL queries • Need to maintain SPARQL endpoint • Compliance with a stable ontology needed
  • 24. Option 2 – IF-THEN graph rules [prefixes] { ?a rdf:type ifcowl:IfcSpace . ?a rdf:type ifcowl:IfcRoot . ?a ifcowl:GlobalId ?b . ?b rdf:type ifcowl:IfcGloballyUniqueId . ?b ifcowl:has_string ?c . ?a ifcowl:Name_of_IfcRoot ?d . ?d rdf:type ifcowl:IfcLabel . ?d ifcowl:has_string ?e . ?a ifcowl:Description_of_IfcRoot ?f . ?f rdf:type ifcowl:IfcText . ?f ifcowl:has_string ?g . } => { [OUTPUT GRAPH AS DESIRED] }
  • 25. Rules schematic overview inference engine OWL ontologies query User RDF Repository interface IF-THEN rule repository response in RDF graph
  • 26. Remarks • One can combine as many rules as one wishes in one ‘inference run’ • The receiver (application or end user) receives the result as a ‘single output subset graph’ • The individuals are still in the original namespace (so they have the same URIs / are identical). The relations, class attributions and potential additional statements can be placed in a separate namespace. But the link to the original is always maintained through the URIs of the individuals. • Performance can change a lot, depending on the amount of resources and rules that is loaded by the reasoning engine. • Not easy to write rules • Compliance with a stable ontology needed
  • 27. ROUTE 2 - THE RESULT IN IFCRDF (DIRECTLY)
  • 28. @prefix : <http://www.buildingsmart-tech.org/ifcOWL#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix mvd: <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> . @prefix dce: <http://purl.org/dc/elements/1.1/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix inst: <http://linkedbuildingdata.net/ifc/instances20150609_015154#> . @prefix log: <http://www.w3.org/2000/10/swap/log#> . inst:IfcLabel_273230 a mvd:IfcLabel ; mvd:has_string "Ghent" . inst:IfcLabel_273233 a mvd:IfcLabel ; mvd:has_string "Belgium" . inst:IfcBuilding_36 a mvd:IfcBuilding ; mvd:BuildingAddress inst:IfcPostalAddress_35 . inst:IfcPostalAddress_35 a mvd:IfcPostalAddress ; mvd:Country inst:IfcLabel_273233 ; mvd:Region inst:IfcLabel_273231 ; mvd:Town inst:IfcLabel_273230 . inst:IfcLabel_273231 a mvd:IfcLabel ; mvd:has_string "Flanders" . MVD building location - IfcBuilding
  • 29. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix mvd: <http://linkedbuildingdata.net/ifc/rules/20150630_144046/> . @prefix ifcowl: <http://www.buildingsmart-tech.org/ifcOWL#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix inst: <http://linkedbuildingdata.net/ifc/instances20150703_192529#> . inst:IfcBuilding_36 a mvd:IfcObjectDefinition , mvd:IfcBuilding ; mvd:IsDecomposedBy inst:IfcRelAggregates_266702 . inst:IfcRelAggregates_266702 a mvd:IfcRelAggregates ; mvd:RelatedObjects_of_IfcRelAggregates inst:IfcBuildingStorey_40 , inst:IfcBuildingStorey_43 , inst:IfcBuildingStorey_47 , inst:IfcBuildingStorey_51 . inst:IfcBuildingStorey_43 a mvd:IfcSpatialElement . inst:IfcBuildingStorey_47 a mvd:IfcSpatialElement . inst:IfcBuildingStorey_51 a mvd:IfcSpatialElement . inst:IfcBuildingStorey_40 a mvd:IfcSpatialElement .
  • 30. Other subsets tested • IfcBuilding location • IfcElement type selection + Identity • Spatial composition / decomposition • SI units used for IfcProject • Selection of specific property values • IfcBuildingStorey elevation • IfcSite location • IfcProject context • Object typing • Spatial containment • IfcSpace classification • Placement • Mapped geometry / Body geometry / Body BREP geometry / Body SweptSolid geometry • Space boundaries and connection geometry
  • 31. Our scope IFC SPF IFC EXPRESS IFC RDF graph ifcOWL double conversion / translation SUBSET IFC SPF (MVD) SUBSET IFC EXPRESS (MVD SPEC in EXP) SUBSET IFC RDF graph (MVD) SUBSET MVD ontology (MVD SPEC in OWL) selection file (MVDXML) rewrite rules (or queries) 1 2
  • 32. Thank you Matthias Weise – mw@aec3.de Pieter Pauwels – pipauwel.pauwels@ugent.be