building ontologies from multiple information sources
DESCRIPTION
This is the powerpoint presentation of my paper: "Building Ontologies from Multiple Information Sources", presented at IT2009 conference in Kaunas, Lithuania, 23/04/2009.TRANSCRIPT
Building Ontologies from Multiple Information Sources
Raji Ghawi and Nadine Cullot
Laboratoire Électronique, Informatique et Image
University of Burgundy, Dijon, France
Information Technologies (IT2009), Kaunas, Lithuania23 – 24 April 2009
Building Ontologies from Multiple Information Sources 2IT2009
Introduction
Information Integration Semantic Heterogeneity Ontologies
Content Explanation Query Formulation
Building Ontologies ?
Building Ontologies from Multiple Information Sources 3IT2009
Building Ontologies
Building Ontologies
from Scratch from Existing Sources
Costly anddifficult
Building Ontologies from Multiple Information Sources 4IT2009
Building Ontologies
Building Ontologies
from Scratch from Existing Sources
Costly anddifficult from Single
Information Sourcefrom Multiple
Information Sources
Building Ontologies from Multiple Information Sources 5IT2009
Building Ontologies from Multiple Information Sources
Possible Solutions
creatinglocal ontologies
merginglocal ontologies
mergingsource schemas
building ontologyfrom unified schema
Ontology-Merging-based Approach Schema-Merging-based Approach
Building Ontologies from Multiple Information Sources 6IT2009
Our Proposition
Ontology-Evolution-based Approach
creatinginitial ontology
involvinglocal sources
Ontology Evolution
Building Ontologies from Multiple Information Sources 7IT2009
Evolution Step
New Information Source
Ontology
Initial correspondences
MappingBridges
Expert
Automatic Treatement
Rules
OntologyChange
Operations
MappingDocument
Ontology Modification
MappingDoc 2
MappingDoc 1
MappingDoc n
Updating Previous Mappings
Building Ontologies from Multiple Information Sources 8IT2009
dp1dp2
dp1
Ontology Change Operations (Atomic)
A
B C
A
B
Add_Concept
A A
Add_DatatypeProperty
B
C
B
Add_ObjectProperty
C
opB
Set_SubConceptOf
C
B
C
is_a
Set_SubPropertyOf
op1
Set_InverseOf
op2
op1
op2
op1
op2
B C
op1
op2
B C
dp1dp2dp1
A A
Remove_Property
Building Ontologies from Multiple Information Sources 9IT2009
dpdp1dp2
dp
Ontology Change Operations (Complex)
A
B
Convert_Property
A A
Split_Property
A
B
op
dp1dp2
dpA
dp1dp2
A
Add_DatatypeProperty
Remove_Property
dp
A
B
op
A
B
op
Remove_Property
Add_ObjectProperty
Building Ontologies from Multiple Information Sources 10IT2009
Ontology Evolution by Involving a Database
Evolving Ontology Concepts Using Database Tables
Evolving Ontology Properties Using Columns
Building Ontologies from Multiple Information Sources 11IT2009
C
nothing happens
case 1 A concept C has no corresponding table
Evolving Ontology Concepts Using Database Tables
Building Ontologies from Multiple Information Sources 12IT2009
T
C
T
conceptBridge(C, T)
C
Evolving Ontology Concepts Using Database Tables
case 2 one concept C corresponds to exactly one table T
Building Ontologies from Multiple Information Sources 13IT2009
T
Evolving Ontology Concepts Using Database Tables
case 3 A table T has no corresponding concept
Case 3.1.
Case 3.2.
Case 3.3.
T1
PK1
…
T
PFK1
PFK2
T2
PK2
…
T1
PK1
…
T
PFK1
…
T
…
…
Building Ontologies from Multiple Information Sources 14IT2009
T
C
T
conceptBridge(C, T)
Add_Concept(C)
case 3 A table T has no corresponding concept
case 3.3 default case
Evolving Ontology Concepts Using Database Tables
Building Ontologies from Multiple Information Sources 15IT2009
case 3 A table T has no corresponding concept
case 3.2 T is related to T1 using a FK which is a PK
Evolving Ontology Concepts Using Database Tables
T
pfk1
D
conceptBridge(D, T1) Add_Concept(C)
Set_SubConceptOf(C, D)
T1
pk1
T
pfk1
D
T1
pk1
C
conceptBridge(C, T)
Building Ontologies from Multiple Information Sources 16IT2009
case 3 A table T has no corresponding concept
case 3.1T is used to relate T1 and T2 in many-to-many relationship
Evolving Ontology Concepts Using Database Tables
T
pfk1
pfk2
T2
pk2
T1
pk1
D1 D2
T
pfk1
pfk2
T2
pk2
T1
pk1
D1 D2op1
op2
cb1 = conceptBridge(D1, T1)
cb2 = conceptBridge(D2, T2)
Add_ObjectProperty(op1, D1, D2)
Add_ObjectProperty(op2, D2, D1)
Set_InverseOf(op1, op2)
OPB(op1, cb1, cb2, join:T.pfk1=T1.pk1 AND T.pfk2=T2.pk2)
OPB(op2, cb2, cb1, join:T.pfk1=T1.pk1 AND T.pfk2=T2.pk2)
Building Ontologies from Multiple Information Sources 17IT2009
Evolving Ontology Concepts Using Database Tables
case 4one concept C corresponds to several tables T1, T2, …, Tm
C
T1 T2
…
Tm
C1 C2 Cm
cb1 = conceptBridge(C1, T1)
cb2 = conceptBridge(C2, T2)
...
cbm = conceptBridge(Cm, Tm)
…
Building Ontologies from Multiple Information Sources 18IT2009
case 4one concept C corresponds to several tables T1, T2, …, Tm
case 4.1one concept C corresponds to the union of T1, T2, …, Tm
Evolving Ontology Concepts Using Database Tables
C
T1 T2
…
Tm
C1 C2 Cm
C
T1 T2
…
Tm
C1 C2 Cm
cb1 = conceptBridge(C1, T1)
cb2 = conceptBridge(C2, T2)
...
cbm = conceptBridge(Cm, Tm)
Set_SubConceptOf(C1, C)Set_SubConceptOf(C2, C)...Set_SubConceptOf(Cm, C)
move common properties to the super-concept C
… …
Building Ontologies from Multiple Information Sources 19IT2009
case 4one concept C corresponds to several tables T1, T2, …, Tm
case 4.2one concept C corresponds to the join of T1, T2, …, Tm
Evolving Ontology Concepts Using Database Tables
C
T1 T2
…
Tm
C1 C2 Cm C
T1 T2
…
Tm
C1 C2 Cm
cb1 = conceptBridge(C1, T1)
cb2 = conceptBridge(C2, T2)
...
cbm = conceptBridge(Cm, Tm)
Set_SubConceptOf(C, C1)
Set_SubConceptOf(C, C2)
...
Set_SubConceptOf(C, Cm)
…
…
Building Ontologies from Multiple Information Sources 20IT2009
Evolving Ontology Concepts Using Database Tables
case 5one table T corresponds to several concepts C1, C2, …, Cn
C2
T
C1 CnC2
T
C1 Cn
C
conceptBridge(C, T)
Add_Concept(C)Set_SubConceptOf(C1, C)Set_SubConceptOf(C2, C)Set_SubConceptOf(Cn, C)
… …
Building Ontologies from Multiple Information Sources 21IT2009
Evolving Ontology Concepts Using Database Tables
case 6 several concepts C1, C2, …, Cn correspond to several tables T1, T2, …, Tm
C2C1 Cn…
T1 T2
…
Tm
Building Ontologies from Multiple Information Sources 22IT2009
Evolving Ontology Properties Using Columns
Category 1. Correspondences between C properties and T columns.
Category 2. Correspondences between C properties and columns in other tables.
Category 3. Correspondences between T columns and properties of other concepts.
C
T
D
U
1 23
conceptBridge(C, T)
Building Ontologies from Multiple Information Sources 23IT2009
Evolving Ontology Properties Using Columns
case 1A (datatype or object) property has no
corresponding column
nothing happens
T
cb = conceptBridge(C, T)
dpC
op
Building Ontologies from Multiple Information Sources 24IT2009
Evolving Ontology Properties Using Columns
case 2 A column col has no corresponding property
cb = conceptBridge(C, T)
C
T
col
Building Ontologies from Multiple Information Sources 25IT2009
Evolving Ontology Properties Using Columns
case 2 A column col has no corresponding property
cb = conceptBridge(C, T)
C
T
col
case 2.1 col is not a foreign key
dp
DPB(dp, cb, col)
C
T
col
Add_DatatypeProperty(dp, C -> type)
Building Ontologies from Multiple Information Sources 26IT2009
Evolving Ontology Properties Using Columns
case 2 A column col has no corresponding property
cb = conceptBridge(C, T)
cb1 = conceptBridge(D, RT)
C
T
fk
case 2.2col is a foreign key fk referring to a column rc in
another table RT
D
RT
rc
C
T
fk
D
RT
rc
op
OPB(op, cb, cb1, join: T.fk = RT.rc)
Add_ObjectProperty(op, C -> D)
Building Ontologies from Multiple Information Sources 27IT2009
dp
Evolving Ontology Properties Using Columns
case 3A datatype property dp corresponds directly to one
column col
cb = conceptBridge(C, T)
C
T
col
dp
DPB(dp, cb, col)
C
T
col
Building Ontologies from Multiple Information Sources 28IT2009
Evolving Ontology Properties Using Columns
case 4An object property op corresponds directly to a
foreign key fk
cb = conceptBridge(C, T)
C
T
fk
D
RT
rc
op
Building Ontologies from Multiple Information Sources 29IT2009
Evolving Ontology Properties Using Columns
case 4An object property op corresponds directly to a
foreign key fk
C
T
fk
D
RT
rc
op
RT is mapped to the concept Dcase 4.1
C
T
fk
D
RT
rc
op
cb = conceptBridge(C, T)
cb1 = conceptBridge(D, RT)OPB(op, cb, cb1, join: T.fk = RT.rc)
Building Ontologies from Multiple Information Sources 30IT2009
Evolving Ontology Properties Using Columns
case 4An object property op corresponds directly to a
foreign key fk
C
T
fk
D
RT
rc
op
RT is mapped to a concept F different from Dcase 4.2
C
T
fk
D
RT
rc
op
cb = conceptBridge(C, T)
cb1 = conceptBridge(F, RT)
F D
Set_SubConceptOf(F, D)Add_ObjectProperty(op’, C -> F)Set_SubPropertyOf(op’, op)
F Fop'
OPB(op’, cb, cb1, join: T.fk = RT.rc)
Building Ontologies from Multiple Information Sources 31IT2009
dp
Evolving Ontology Properties Using Columns
case 5 A datatype property dp corresponds to a transformation of one column col
cb = conceptBridge(C, T)
C
T
col
dp
DPB(dp, cb, Trans(col))
C
T
col
Trans Trans
Building Ontologies from Multiple Information Sources 32IT2009
dp
Evolving Ontology Properties Using Columns
case 6
cb = conceptBridge(C, T)
C
T
col1
col2
Trans
A datatype property dp corresponds to a transformation/combinationof multiple columns col1, col2, …, colm
Building Ontologies from Multiple Information Sources 33IT2009
dp
Evolving Ontology Properties Using Columns
case 6
cb = conceptBridge(C, T)
C
T
col1
col2
dp
DPB(dp, cb, Trans(col1, col2))
C
T
col1
col2
Trans Trans
A datatype property dp corresponds to a transformation/combinationof multiple columns col1, col2, …, colm
First solution
Building Ontologies from Multiple Information Sources 34IT2009
dp
Evolving Ontology Properties Using Columns
case 6
cb = conceptBridge(C, T)
C
T
col1
col2
T
col1
col2
Trans
A datatype property dp corresponds to a transformation/combinationof multiple columns col1, col2, …, colm
Second solution
DPB(dp1, cb, col1)DPB(dp2, cb, col2)
Split_Property(dp AS dp1 = Trans1(dp), dp2 = Trans2(dp))
dp1Cdp2
Building Ontologies from Multiple Information Sources 35IT2009
dp1
Evolving Ontology Properties Using Columns
case 7
cb = conceptBridge(C, T)
C
T
col
T
col
A column col corresponds to a combination/transformation of multiple datatype properties dp1, dp2, …, dpn
DPB(dp1, cb, Trans1(col))DPB(dp2, cb, Trans2(col))
dp2
Trans
dp1Cdp2
Trans1
Trans2
Building Ontologies from Multiple Information Sources 36IT2009
Conclusions & Future Works
Ontology-Evolution based Approach Semi-Automatic Process Non-exhaustive list of correspondence
cases
Conditional Mappings Implementation
Thank You.
Questions ?