OWSCIS: Ontology and Web Service based Cooperation of Information Sources
-
Upload
raji-ghawi -
Category
Technology
-
view
1.861 -
download
0
description
Transcript of OWSCIS: Ontology and Web Service based Cooperation of Information Sources
OWSCIS
Ontology and Web Service based Cooperation of Information Sources
SITIS'2007, Shanghai, China, December 2007
Raji Ghawi, Thibault Poulain, Guillermo Gomez and Nadine CullotLaboratoire Electronique, Informatique et Image
UMR CNRS 5158 Université de Bourgogne, Dijon, FRANCE
2
Outlines
Introduction Related works OWSCIS Architecture Mapping Process Querying Process
Decomposition Resolution Recomposition
Future Works
3
Introduction
Interoperability Problem Distrubtion Hetereogeniety Instability
Solutions Ontologies Web Services
4
Related Works (existing systems)
BUSTER SIMS KRAFT COIN Carnot InfoSleuth OBSERVER …
5
Related Works (features)
Information Sources DB, XML, files, ... Dynamic .vs. Static
Architecture Agent-based Mediator-based
Use of Ontology Single, Multiple, Hybrid
Ontology Specification Language Query Process
6
1. OWSCIS Ontology and Web Service - based Cooperation of Information Sources
Hybrid Ontology Approach Local Ontologies and Reference Ontology
Web Service - Oriented Architecture GAV (Global As View).
7
OWSCIS Architecture
Knowledge Base
VisualisationWeb Service
Data Provider Data Provider
End User
Data Provider
QueryingWeb Service
MappingWeb Service
LocalOntology
Reference Ontology
LocalOntology
LocalOntology
8
Knowledge Base
MappingDirectory
Reference Ontology
Tool Box
Reference ontology specific knowledge domaine OWL-DL
Mapping directory correspondances between terms of
reference and local ontologies Toolbox
tools and methods used by the mapping web service
Knowledge BaseVisualisationWeb Service
Data Provider Data Provider
End User
Data Provider
QueryingWeb Service
MappingWeb Service
LocalOntology
Reference Ontology
LocalOntology
LocalOntology
9
Data Provider
Knowledge BaseVisualisationWeb Service
Data Provider Data Provider
End User
Data Provider
QueryingWeb Service
MappingWeb Service
LocalOntology
Reference Ontology
LocalOntology
LocalOntology
Information sources are wrapped to a local ontology
using DB2OWL for databases Two types of mappings Local ontology has no instances
DB2OWL
Database
Mappings
Local Onto Ref. Onto
DB Local Onto
Local Ontology
10
Mapping Web Service
Knowledge BaseVisualisationWeb Service
Data Provider Data Provider
End User
Data Provider
QueryingWeb Service
MappingWeb Service
LocalOntology
Reference Ontology
LocalOntology
LocalOntology
Concepts Similarity
Roles Similarity
Refining
Mappings Estimation
Mapping Web Service
MappingsDirectory
Reference Ontology
Tool Box
Local Ontology
Mapping local ontologies to the reference domain ontology
Comparing ontologies using the methods defined in the toolbox
Storing produced mappings into the appropriate data provider
Updating the mappings directory
11
Querying Web Service
QueryDecomposition
QueryRecomposition
Querying Web Service
End User
Knowledge BaseVisualisationWeb Service
Data Provider Data Provider
End User
Data Provider
QueryingWeb Service
MappingWeb Service
LocalOntology
Reference Ontology
LocalOntology
LocalOntology
MappingsDirectory
Reference Ontology
VisualisationWeb Service
Mapping users submit queries in terms of the reference ontology
A query is decomposed into a set of modular queries using the mapping directory
Each sub-query is resolved in a data provider
Partial results are recomposed giving the final query result
12
Visualisation Web Service
Knowledge BaseVisualisationWeb Service
Data Provider Data Provider
End User
Data Provider
QueryingWeb Service
MappingWeb Service
LocalOntology
Reference Ontology
LocalOntology
LocalOntology
VisualisationWeb Service
End User
QueryingWeb Service
Visualization of the reference ontology
Visualization of the queries and their results.
Enriching the results of the query using the semantic information described in the reference ontology.
13
Mapping Process
1. Preprocessing: cleaning up the data
2. Similarity estimation: giving a numerical similarity estimation value to all pairs of concepts
Semantic : extract known words from the concepts names and perform a semantic similarity estimation over them.
Structural : estimate structural similarity by comparing concept names as a string.
3. Refining: solving cases where the similarity value between two concepts is neither high
enough nor low enough to determine whether there is an equivalence or not.4. Exploitation:
Translating similarities from their numerical values into mappings. Automatically: producing the overall mapping between the two ontologies Iteratively: the program suggests what appears to be the best mapping, and let the
expert validate or not the choice.
14
Query Process: Overview
Query Web Service
recomposedecompose
Visualization Web Service
MappingDirectory
…
SPARQLUser query
SPARQLsubquery1
SPARQLresult1
SQLquery1
SQLResult1
Database
Local OntologyDB ↔
Local Onto
rewrite
translatereformulate
Ref. Onto ↔ Local Onto
SQL statementsDB2OWL
Mapping Web Service
Data Provider
15
Query Decomposition (Example)
PersonfirstNamelastName
StudentAuthor
Session
Referencetitleyear
BookISBN
Modulemodule_name
Hallhall_namebuilding
Publisherpub_name
pub_address
Article
Lecturer
book_author
session_modulesession_hallbook_publisher
session_lecturer PersonfirstNamelastName
Student
Session
Modulemodule.name
Hallhall.namebuilding
Lecturer
session.lecturer
session.modulesession.hall
Authorauthor.lastNameauthor.firstName
Referencetitleyear
BookISBN
Article book.author
Global Ontology
Local Ontology 1
Local Ontology 2
16
SELECT ?tWHERE { ?b ro:book_author ?a . ?b ro:title ?t . ?a ro:lastName ?ln . ?a ro:firstName ?fn . ?s ro:session_lecturer ?l . ?l ro:lastName ?ln . ?l ro:firstName ?fn . ?s ro:session_module ?m . ?m ro:module_name "Database" .}
(d) Rewritten sub-query2 (c) Rewritten sub-query1
SELECT ?ln ?fnWHERE { ?s lo2:session.lecturer ?l . ?s lo2:session.module ?m . ?m lo2:module.name "Database". ?l lo2:lastName ?ln . ?l lo2:firstName ?fn .}
SELECT ?ln ?fn ?tWHERE { ?b lo1:title ?t . ?b lo1:book.auther ?a . ?a lo1:author.lastName ?ln . ?a lo1:author.firstName ?fn .}
(b) Sub-query2(a) Sub-query1
SELECT ?ln ?fnWHERE { ?s ro:session_lecturer ?l . ?s ro:session_module ?m . ?m ro:module_name "Database" . ?l ro:lastName ?ln . ?l ro:firstName ?fn .}
SELECT ?ln ?fn ?tWHERE { ?b ro:title ?t . ?b ro:book_author ?a . ?a ro:lastName ?ln . ?a ro:firstName ?fn .}
17
SPARQL-to-SQL translation BGP Construction
lo2:firstName SELECT person.personId AS C0, person.firstName AS C1 FROM person
lo2:lastName SELECT person.personId AS C0, person.lastName AS C1 FROM person
lo2:session.lecturer SELECT session.sessionId AS c0, lecturer.lecturerId AS c1 FROM session, lecturer WHERE session.lecturerId = lecturer.lecturerId
lo2:session.module SELECT session.sessionId AS c0, module.moduleId AS c1 FROM session, module WHERE session.moduleId = module.moduleId
lo2:module.name SELECT module.moduleId AS c0, module.moduleName AS c1 FROM module
?s
?l ?m
?ln «Database»
:session.lecturer
:lastName :module.name
:session.module
?fn
:firstName
SELECT ?ln ?fnWHERE { ?s lo2:session.lecturer ?l . ?s lo2:session.module ?m . ?m lo2:module.name "Database". ?l lo2:lastName ?ln . ?l lo2:firstName ?fn .}
V0
V1
V2
V3
V4
18
SPARQL-to-SQL translation Joining Statements
SELECT V0.C1 AS ln, V1.C1 AS fnFROM (SELECT person.personId AS C0, person.firstName AS C1 FROM person) AS V0, (SELECT person.personId AS C0, person.lastName AS C1 FROM person) AS V1, (SELECT session.sessionId AS C0, lecturer.lecturerId AS C1 FROM session, lecturer WHERE (session.lecturerId = lecturer.lecturerId)) AS V2, (SELECT session.sessionId AS C0, module.moduleId AS C1 FROM session, module WHERE (session.moduleId = module.moduleId)) AS V3, (SELECT module.moduleId AS C0, module.moduleName AS C1 FROM module) AS V4WHERE (V0.C0 = V1.C0) AND (V2.C1 = V0.C0)AND (V2.C0 = V3.C0) AND (V3.C1 = V4.C0)AND (V4.C1 = 'Database')
?s
?l ?m
?ln «Database»
:session.lecturer
:lastName :module.name
:session.module
?fn
:firstNameV0 V1
V2 V3
V4
C0
C1
C0
C1
C0
C1
C0
C1
C0
C1
19
Query Recomposition
Each sub-query result forms a new relation. These relations are joined using shared variables.
?t (<R1> <R2>)
?ln, ?fn
R1(?ln,?fn,?t) R2(?ln,?fn)
SELECT ?ln ?fnWHERE { ?s ro:session_lecturer ?l . ?s ro:session_module ?m . ?m ro:module_name "Database" . ?l ro:lastName ?ln . ?l ro:firstName ?fn .}
SELECT ?ln ?fn ?tWHERE { ?b ro:title ?t . ?b ro:book_author ?a . ?a ro:lastName ?ln . ?a ro:firstName ?fn .}
20
Implementation
JAVA Jena API JDBC WordNet API
Implemented parts: DB2OWL SPARQL-to-SQL translator. inter-ontology mapping module.
21
Future works
Map other data models to ontologies Object-Oriented Databases XML documents
Ontology enrichment Adding complex formulas to the local ontology Translating queries over them into SQL
22
Thank you for your attention