SlideShare a Scribd company logo
1 of 77
Ontology-based Cooperation of Information Systems Contributions to Database-to-Ontology Mapping and XML-to-Ontology Mapping Raji GHAWI 15/03/2010
Outline ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introduction ,[object Object],source source source query answer Share, combine and exchange information from distributed and  heterogeneous   sources in a transparent way to the end-users
Introduction Heterogeneity structural syntactic system semantic scaling & units naming language model schema representation hardware operating  system synonymy homonymy
State of the Art - Approaches ,[object Object],Federation Mediation Source 1  Source 2  Source 1  Source 2  Mediator Wrapper
State of the Art –  Ontologies ,[object Object],[object Object],[object Object],[object Object],[object Object]
Ontology-based Cooperation of Information Systems ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Objectives of the Work ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Our Proposal: OWSCIS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],O ntology &  W eb  S ervice based  C ooperation of  I nformation  S ystems Global Ontology Local Ontologies Information Sources
OWSCIS Architecture Global Ontology Mapping Directory Knowledge Base Module End  User Querying Web Service Results Recomposition Query  Decomposition Visualization Web Service sub-queries partial results Relational database XML  data source Data  Providers DB2OWL X2OWL Local ontology Data Source to Local Ontology Mappings Local Ontology to Global Ontology Mappings Mapping  Web Service
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
Database-to-Ontology Mapping Ontology Database Mappings Tables Columns Primary Keys ... Concepts Datatype Properties Object Properties ... ,[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
Associations with SQL Statements ,[object Object],[object Object],[object Object],SELECT  Paper.paperId  AS  DOM  FROM  Paper Paper Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation Paper C
Associations with SQL Statements ,[object Object],[object Object],[object Object],[object Object],SELECT  Paper.paperId  AS  DOM,  Publisher.publisherId  AS  RNG FROM  Paper, Publisher WHERE  Paper.publisher = Publisher.publisherId Paper Publisher Paper.publisher Publisher.publisherId SELECT  Paper.paperId  AS  DOM, Paper.title  AS  RNG FROM  Paper Paper Paper.title Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation publishedBy OP title DP
Associations with SQL Statements ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
DOML Language ,[object Object],[object Object],[object Object],[object Object],D atabase to  O ntology  M apping  L anguage Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
DOML Language ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],student-cb ont:Student person person.status="student" concept table condition works-for-opb ont:works-for employee-cb department-cb object property join domain concept bridge range concept bridge Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation emp.deptId = dept.deptId
DOML Language ,[object Object],[object Object],[object Object],[object Object],person-age-dpb ont:age person.age person-cb person-name-dpb ont:name CONCAT(person.firstName,person.LastName) person-cb datatype property column transformation domain concept bridge Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
DOML Language ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
Mapping Process Ontology Database Mapping  Document Metadata Rules Tables Columns Primary Keys ... Concepts Datatype Properties Object Properties ... Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
Particular  Table Cases ,[object Object],[object Object],Case 3 Case 1 Case 2 Primary key Foreign key Integrity Constraint  m-m relationship 1-1 relationship other tables PK1 ... T1 PFK1 PFK2 T PK2 ... T2 PK1 ... T1 PFK1 ... T ... ... T Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
Example DB Schema Case 1  (m-m relationship) Case 2  (1-1 relationship) Case 3  (others) studentId diplomaId studentNumber Student diplomaId diplomaName Diploma moduleId diplomaId moduleName Module studentId sessionId Presence sessionId moduleId lecturerId Session time hallId lecturerId room Lecturer hallId building hallName Hall personId lastName firstName Person Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation Primary key Foreign key Integrity Constraint
Rules for Ontology Generation Primary key Foreign key Integrity Constraint Database component Ontology component ... ... T C case 3 PFK1 ... T PK1 ... T1 C C1 case 2 PK1 ... T1 PFK1 PFK2 T PK2 ... T2 op2 op1 C1 C2 ... NK T dp C ... FK T PK1 ... T1 op C C1 Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation Object property subClassOf Class Datatype property
presence-session presence-student module-diploma session-lecturer Person Hall Student Lecturer Diploma Module Session firstName lastName room hallName moduleName diplomaName studentNumber time student-diploma session-module session-hall building Primary key Foreign key Integrity Constraint Database Schema Generated Ontology Object property subClassOf Class Datatype property Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation personId lastName firstName Person sessionId moduleId lecturerId Session time hallId hallId building hallName Hall diplomaId studentNumber Student studentId lecturerId room Lecturer moduleId diplomaId moduleName Module diplomaId diplomaName Diploma studentId sessionId Presence
Generated Mappings using Associations with SQL Statements Concept Associations Datatype Property Associations Object Property Associations SELECT  person.personId  AS  DOM  FROM  person Person SELECT  lecturer.lecturerId  AS  DOM  FROM  lecturer, person WHERE  lecturer.lecturerId = person.personId Student SELECT  student.studentId  AS  DOM  FROM  student, person WHERE   student.studentId = person.personId Lecturer SELECT  person.personId  AS  DOM, person.FirstName  AS  RNG  FROM  person firstName SELECT  student.studentId  AS  DOM, student.studentNumber  AS  RNG  FROM  student studentNumber student.diploma session.lecturer SELECT  student.studentId  AS  DOM, diploma.diplomaId  AS  RNG  FROM  student, diploma  WHERE  student.diplomaID = diploma.diplomaId SELECT  session.sessionId  AS  DOM, lecturer.lecturerId  AS  RNG  FROM  session, lecturer  WHERE  session.lecturerId = lecturer.lecturerId Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
student-diploma-opb session-lecturer-opb person-cb ont:Person person student-cb ont:Student student lecturer-cb ont:Lecturer lecturer person-firstName-dpb ont:firstName person.firstName person-cb student-studentNumber-dpb ont:studentNumber student.studentNumber student-cb ont:student.diploma session.lecturerId = lecturer.lecturerId student-cb diploma-cb ont:session.lecturer student.diplomaID = diploma.diplomaId session-cb lecturer-cb Generated Mappings using DOML language Concept Bridges Datatype Property Bridges Object Property Bridges datatype property column domain concept bridge concept table object property join domain concept bridge range concept bridge Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
Query Processing sub-query local query Local Ontology Data Provider rewrite translate SQL  results SPARQL results reformulate solve SQL query Data Source to Local Ontology Mappings Local Ontology to Global Ontology Mappings Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation Querying Web Service
SPARQL-to-SQL Query Translation SPARQL query SQL query Ontology Database Mapping  Document Translation Associations with  SQL Statements DOML Language Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-SQL Translation using Associations with SQL Statements Mapping  document  SELECT variables SPARQL query SELECT FROM WHERE SQL statements SQL query SQL  results SPARQL query results  XML format Basic Graph Pattern FILTERs simplified  SQL query 1 2 3 Concept Associations Property Associations Build Simplification Formulation Mapping Parsing Query Parsing Translation Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-SQL Translation using Associations with SQL Statements presence-session presence-student module-diploma session-lecturer Person Hall Student Lecturer Diploma Module Session firstName lastName room hallName moduleName diplomaName studentNumber time student-diploma session-module session-hall building SELECT  ?modName WHERE  { ?mod  ont:moduleName  ?modName. ont:module-diploma  ?dip. ?dip  ont:diplomaName  ?dipName. FILTER (?dipName = "BDIA") } SPARQL query Example Ontology Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-SQL Translation using Associations with SQL Statements SELECT  S1.RNG  AS  modName FROM  ( SELECT  Module.moduleId  AS  DOM, Module.moduleName  AS  RNG FROM  Module )  AS  S1, ( SELECT  Module.moduleId  AS  DOM, Diploma.diplomaId  AS  RNG FROM  Module, Diploma WHERE  Module.diplomaId = Diploma.diplomaId )  AS  S2, ( SELECT  Diploma.diplomaId  AS  DOM, Diploma.diplomaName  AS  RNG FROM  Diploma )  AS  S3 WHERE  S1.DOM = S2.DOM AND  S2.RNG = S3.DOM AND  S3.RNG = "BDIA" S1.RNG  AS  modName S3.RNG = "BDIA" S1.DOM = S2.DOM S2.RNG = S3.DOM SQL AS  S1 AS  S2 AS  S3 SELECT  Module.moduleId  AS  DOM,  Module.moduleName  AS  RNG FROM  Module SELECT  Module.moduleId  AS  DOM,  Diploma.diplomaId  AS  RNG FROM  Module, Diploma WHERE  Module.diplomaId = Diploma.diplomaId SELECT  Diploma.diplomaId  AS  DOM,  Diploma.diplomaName  AS  RNG FROM  Diploma Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation SELECT FROM WHERE
SPARQL-to-SQL Translation using Associations with SQL Statements Generated SQL query Simplified SQL query SELECT  S1.RNG  AS  modName FROM  ( SELECT  Module.moduleId  AS  DOM, Module.moduleName  AS  RNG FROM  Module )  AS  S1, ( SELECT  Module.moduleId  AS  DOM, Diploma.diplomaId  AS  RNG FROM  Module, Diploma WHERE  Module.diplomaId = Diploma.diplomaId )  AS  S2, ( SELECT  Diploma.diplomaId  AS  DOM, Diploma.diplomaName  AS  RNG FROM  Diploma )  AS  S3 WHERE  S1.DOM = S2.DOM AND  S2.RNG = S3.DOM AND  S3.RNG = "BDIA" SELECT  Module.moduleName  AS  modName FROM  Module, Diploma WHERE  Module.diplomaId = Diploma.diplomaId AND  Diploma.diplomaName = "BDIA" Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-SQL Translation using DOML Language DOML  mapping  document  SQL  results FILTERs SELECT variables Concept Bridges Datatype Property Bridges Object Property Bridges Transformations Conditions variable-to-  Concept mapping 1 2 3 4 Basic Graph Pattern SPARQL query SPARQL query results  XML format SQL query Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation Formulation Mapping Parsing Query Parsing Translation Preprocessing
SPARQL-to-SQL Translation using DOML Language SELECT  ?name WHERE  { ?stud  a  ont:Student; ont:name  ?name; ont:studies-in  ?dept. ?dept  ont:dept-name  ?deptName. FILTER  (?deptName = "IEM"). } SPARQL query Example name email year dept-name works-for studies-in salary Person Ontology Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation Department Employee Student
SPARQL-to-SQL Translation using DOML Language ,[object Object],1. Mapping Document Parsing DOML Mapping Document Concept Bridges Datatype Property Bridges Object Property Bridges Transformations Conditions Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation Mapping Document Parsing
SPARQL-to-SQL Translation using DOML Language 2. Query Parsing SELECT variables = {  ?name  } FILTERs = {  (?deptName = "IEM")   } SELECT  ?name WHERE  { ?stud  a  ont:Student; ont:name  ?name; ont:studies-in  ?dept. ?dept  ont:dept-name  ?deptName. FILTER  (?deptName = "IEM"). } SPARQL query ont:name ?stud ont:Student ?dept ?deptName ont:deptName ont:studies-in rdf:type ?name BGP ,[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-SQL Translation using DOML Language ,[object Object],[object Object],3. Preprocessing SELECT  ?name WHERE  { ?stud  a  ont:Student; ont:name  ?name; ont:studies-in  ?dept. ?dept  ont:dept-name  ?deptName. FILTER  (?deptName = "IEM"). } ?stud ont:Student ?dept ont:Department concept variable SPARQL query Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-SQL Translation using DOML Language 4. Query Translation – Analysis of Mapping Bridges SELECT  ?name WHERE  { ?stud  a  ont:Student; ont:name  ?name; ont:studies-in  ?dept. ?dept  ont:dept-name  ?deptName. FILTER  (?deptName = "IEM"). } Mapping Bridges conditions tables join ?name CONCAT(firstName,lastName) variable to column auxiliary mapping ?deptname dept.deptName Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation WHERE FROM
SPARQL-to-SQL Translation using DOML Language 4. Query Translation – SELECT Construction SELECT  ?name WHERE  { ?stud  a  ont:Student; ont:name  ?name; ont:studies-in  ?dept. ?dept  ont:dept-name  ?deptName. FILTER  (?deptName = "IEM"). } ?name CONCAT(firstName,lastName) variable-to-column auxiliary mapping SELECT  CONCAT( firstName,lastName )  AS  name Replace variables by their corresponding columns or transformations … … Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation SELECT
SPARQL-to-SQL Translation using DOML Language 4. Query Translation – FILTER Translation  SELECT  ?name WHERE  { ?stud  a  ont:Student; ont:name  ?name; ont:studies-in  ?dept. ?dept  ont:dept-name  ?deptName. FILTER  (?deptName = "IEM"). } dept.deptName = "IEM" Replace variables by their corresponding columns or transformations ?deptName dept.deptName variable-to-column auxiliary mapping … … Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation WHERE
SPARQL-to-SQL Translation using DOML Language 4. Query Translation person.status="student" person dept.deptName = "IEM" SELECT  CONCAT( firstName,lastName )  AS  name dept person.deptId = dept.deptId SELECT  CONCAT(person.firstName, person.lastName)  AS  name FROM  person, dept WHERE  (person.status = 'Student') AND  (person.deptId = department.deptId) AND  (dept.deptName = 'IEM') SQL query Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation WHERE SELECT FROM
Result Reformulation <sparql> <head> <variable name=&quot;fn&quot;/> <variable name=&quot;ln&quot;/> <variable name=&quot;dipName&quot;/> </head> <results> <result> <binding name=&quot;fn&quot;><literal>Raji</literal></binding> <binding name=&quot;ln&quot;><literal>Ghawi</literal></binding> <binding name=&quot;dipName&quot;><literal>Master 2 3I</literal></binding> </result> <result> <binding name=&quot;fn&quot;><literal>Thibault</literal></binding> <binding name=&quot;ln&quot;><literal>Poulain</literal></binding> <binding name=&quot;dipName&quot;><literal>Master 2 3I</literal></binding> </result> <result> <binding name=&quot;fn&quot;><literal>Guillermo</literal></binding> <binding name=&quot;ln&quot;><literal>Gomez</literal></binding> <binding name=&quot;dipName&quot;><literal>Master 2 BDIA</literal></binding> </result> </results> </sparql> SQL Results SPARQL Results (XML format)  Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation Master 2 BDIA Gomez Guillermo Master 2 3I Poulain Thibault Master 2 3I Ghawi Raji dipName ln fn
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
[object Object],[object Object],XOML Language X ML to  O ntology  M apping  L anguage Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],XOML Language student-cb Student /univ/student concept XML node student-name-dpb name student-cb /univ/student/name/text() datatype property XML node domain concept bridge Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
[object Object],[object Object],[object Object],[object Object],[object Object],XOML Language studies-in-opb studies-in student-cb university-cb object property domain concept bridge range concept bridge Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification  Mapping Process   Query Translation
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
XML-to-Ontology Mapping Process Ontology XML Schema Mapping  Document XSG Rules Types Elements Attributes ... Concepts Datatype Properties Object Properties ... XML Schema Graph Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
XML Schema Graph (XSG) PurchaseOrderType @ orderDate (anonymous) Address USAddress @ country @weightKg @shipBy purchaseOrder item billTo shipTo state zip street city name price productName shipAndBill ItemDelivery Nodes Edges Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation Attribute Group Element Group Attribute Complex Type Element Type Derivation Containment
Rules for Ontology Generation object property MIXED restriction extention complex type element group attribute group containment relationship simple element attribute text of mixed complex type subClassOf Class datatype property XML schema component result ontology component Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
hasItem hasItemDelivery hasShipTo hasBillTo Item PurchaseOrderType ItemDelivery USAddress ShipAndBill orderDate name street city country productName price weightKg shipBy zip USstate object property subClassOf OWL class datatype property PurchaseOrderType @ orderDate (anonymous) Address USAddress @ country @weightKg @shipBy purchaseOrder item billTo shipTo state zip street city name price productName shipAndBill ItemDelivery Example hasShipAndBill XML Schema Graph Ontology Address Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
Refinement ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
Refinement – Use of Different Representations (anonymous) @orderid orderperson (anonymous) (anonymous) (anonymous) (anonymous) @title shipmentorder items shipments shipment date price title quantity item Example XSG XML Document Ontology Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation <shipmentorder orderid=&quot;889923&quot;> <orderperson>John Smith</orderperson> <items> <item> <title>Empire Burlesque</title> <quantity>1</quantity> <price>10.90</price> </item> <item> <title>Hide your heart</title> <quantity>1</quantity> <price>9.90</price> </item> <item> <title>Hearts of Fire</title> <quantity>1</quantity> <price>10.50</price> </item> </items> <shipments> <shipment> <date>12-01-2009</date> <item title=&quot;Empire Burlesque&quot; /> <item title=&quot;Hide your heart&quot; /> </shipment> </shipments> </shipmentorder> hasItem Shipments Item Items orderId orderPerson date title quantity price hasShipments hasItems hasShipment Shipment ShipmentOrder
Refinement – Removing of Invalid Mappings ,[object Object],<shipmentorder ...> <items> <item> <title>Empire Burlesque</title> ... </item> ... </items> <shipments> <shipment> <item title=&quot;Empire Burlesque&quot; /> ... </shipment> </shipments> </shipmentorder> dpb2 title cb3 /shipmentorder/items/item/@title dpb4 title cb3 /shipmentorder/items/item/title/text() dpb7 title cb6 /shipmentorder/shipments/shipment/item/@title dpb9 title cb6 /shipmentorder/shipments/shipment/item/title/text() XML Document Mapping Bridges of « title » property Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-XQuery Translation  SPARQL query XQuery query Ontology XML  Data Source Mapping  Document (XOML) Translation Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-XQuery Translation  XOML  mapping  document  SPARQL query XQuery  query SPARQL query results  XML format FILTERs SELECT variables Concept Bridges Datatype Property Bridges Object Property Bridges 1 2 3 4 Basic Graph Pattern XML Data Source Suitable  Mapping  Graph Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation Mapping Parsing Query Parsing Building XQuery Preprocessing
SPARQL-to-XQuery Translation SELECT   ?date ?title WHERE  { ?ship  ont:date  ?date; ont:hasItem  ?item. ?item  ont:title  ?title. } SPARQL query Example hasItem Shipments Item Items orderId orderPerson date title quantity price hasShipments hasItems hasShipment Ontology Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation Shipment ShipmentOrder
SPARQL-to-XQuery Translation ,[object Object],1. Mapping Document Parsing Concept Bridges Datatype Property Bridges Object Property Bridges XOML  mapping  document  Mapping Document Parsing Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-XQuery Translation 2. Query Parsing SELECT variables = {  ?date, ?title  } FILTERs = { } ,[object Object],[object Object],[object Object],[object Object],SELECT   ?date ?title WHERE  { ?ship  ont:date  ?date; ont:hasItem  ?item. ?item  ont:title  ?title. } SPARQL query ?ship ?date ?item ?title ont:title ont:date ont:hasItem BGP Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-XQuery Translation 3. Preprocessing ?ship ~  /shipmentorder/shipments/shipment ?date ~ /shipmentorder/shipments/shipment/date/text() ?item ~  /shipmentorder/shipments/shipment/item ?title ~ /shipmentorder/shipments/shipment/item/@title Suitable Mapping Graph Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-XQuery Translation <sparql> <head> <variable name=&quot;...&quot; /> ... </head> <results> { for   ... let   ... where  ... return <result> <binding name=&quot;...&quot;>{ ... }</binding> ... </result> } </results> </sparql> 4.  Building Target XQuery XQuery Template Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-XQuery Translation 4.  Building Target XQuery ?ship ~  /shipmentorder/shipments/shipment ?date ~ /shipmentorder/shipments/shipment/date/text() ?item ~  /shipmentorder/shipments/shipment/item ?title ~ /shipmentorder/shipments/shipment/item/@title for  $ship  in   /shipmentorder/shipments/shipment let  $date := /shipmentorder/shipments/shipment/date/text() for  $item  in   /shipmentorder/shipments/shipment/item let  $title := /shipmentorder/shipments/shipment/item/@title Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation non-leaf vertex     for  statement leaf vertex     let  statement
SPARQL-to-XQuery Translation 4.  Building Target XQuery Abbreviation of absolute XPath expressions into relative expressions Replace common parts of XPaths by corresponding variables for  $ship  in   /shipmentorder/shipments/shipment let  $date := /shipmentorder/shipments/shipment/date/text() for  $item  in   /shipmentorder/shipments/shipment/item let  $title := /shipmentorder/shipments/shipment/item/@title for  $ship  in   /shipmentorder/shipments/shipment let  $date := $ship/date/text() for  $item  in   $ship/item let  $title := $item/@title Absolute XPaths Relative XPaths Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-XQuery Translation 4.  Building Target XQuery <sparql> <head> <variable name=&quot;date&quot; /> <variable name=&quot;title&quot; /> </head> <results> { for  $ship  in  /shiporder/ships/ship let  $date := $ship/date/text() for  $item  in  $ship/item let  $title := $item/@title return <result> <binding name=&quot;date&quot;>{$date}</binding> <binding name=&quot;title&quot;>{fn:data($title)}</binding> </result> } </results> </sparql> XQuery Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
SPARQL-to-XQuery Translation 4.  Building Target XQuery <sparql> <head> <variable name=&quot;date&quot;/> <variable name=&quot;title&quot;/> </head> <results> <result> <binding name=&quot;date&quot;>12-01-2009</binding> <binding name=&quot;title&quot;>Empire Burlesque</binding> </result> <result> <binding name=&quot;date&quot;>12-01-2009</binding> <binding name=&quot;title&quot;>Hide your heart</binding> </result> </results> </sparql> SPARQL Results (XML format)  Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification   Mapping Process   Query Translation
Implementation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jena JDBC Zql JDOM XSOM JUNG NUX Java programming language
Conclusion and Contributions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Publications ,[object Object],[object Object],[object Object],[object Object],[object Object]
Future Works ,[object Object],[object Object],[object Object],[object Object],[object Object]
Thank you Merci

More Related Content

What's hot

Xml processing-by-asfak
Xml processing-by-asfakXml processing-by-asfak
Xml processing-by-asfakAsfak Mahamud
 
Automated Syntactic Mediation for Web Service Integration
Automated Syntactic Mediation for Web Service IntegrationAutomated Syntactic Mediation for Web Service Integration
Automated Syntactic Mediation for Web Service IntegrationMartin Szomszor
 
Object database standards, languages and design
Object database standards, languages and designObject database standards, languages and design
Object database standards, languages and designDabbal Singh Mahara
 
NLIDB(Natural Language Interface to DataBases)
NLIDB(Natural Language Interface to DataBases)NLIDB(Natural Language Interface to DataBases)
NLIDB(Natural Language Interface to DataBases)Swetha Pallati
 
Introduction to XML
Introduction to XMLIntroduction to XML
Introduction to XMLKumar
 
XML and Databases
XML and DatabasesXML and Databases
XML and DatabasesCittrex
 
Semantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sourcesSemantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sourcesDeniz Kılınç
 
Building XML Based Applications
Building XML Based ApplicationsBuilding XML Based Applications
Building XML Based ApplicationsPrabu U
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsTonny Madsen
 

What's hot (15)

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Xml processing-by-asfak
Xml processing-by-asfakXml processing-by-asfak
Xml processing-by-asfak
 
Automated Syntactic Mediation for Web Service Integration
Automated Syntactic Mediation for Web Service IntegrationAutomated Syntactic Mediation for Web Service Integration
Automated Syntactic Mediation for Web Service Integration
 
Object database standards, languages and design
Object database standards, languages and designObject database standards, languages and design
Object database standards, languages and design
 
Object oriented databases
Object oriented databasesObject oriented databases
Object oriented databases
 
Session 5
Session 5Session 5
Session 5
 
NLIDB(Natural Language Interface to DataBases)
NLIDB(Natural Language Interface to DataBases)NLIDB(Natural Language Interface to DataBases)
NLIDB(Natural Language Interface to DataBases)
 
2 rel-algebra
2 rel-algebra2 rel-algebra
2 rel-algebra
 
Ozr2013
Ozr2013Ozr2013
Ozr2013
 
NHibernate
NHibernateNHibernate
NHibernate
 
Introduction to XML
Introduction to XMLIntroduction to XML
Introduction to XML
 
XML and Databases
XML and DatabasesXML and Databases
XML and Databases
 
Semantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sourcesSemantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sources
 
Building XML Based Applications
Building XML Based ApplicationsBuilding XML Based Applications
Building XML Based Applications
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model Transformations
 

Similar to Ontology-based Cooperation of Information Systems

Syntactic Mediation in Grid and Web Service Architectures
Syntactic Mediation in Grid and Web Service ArchitecturesSyntactic Mediation in Grid and Web Service Architectures
Syntactic Mediation in Grid and Web Service ArchitecturesMartin Szomszor
 
Semantic Web for Enterprise Architecture
Semantic Web for Enterprise ArchitectureSemantic Web for Enterprise Architecture
Semantic Web for Enterprise ArchitectureJames Lapalme
 
Ontology mapping for the semantic web
Ontology mapping for the semantic webOntology mapping for the semantic web
Ontology mapping for the semantic webWorawith Sangkatip
 
DODDLE-OWL: A Domain Ontology Construction Tool with OWL
DODDLE-OWL: A Domain Ontology Construction Tool with OWLDODDLE-OWL: A Domain Ontology Construction Tool with OWL
DODDLE-OWL: A Domain Ontology Construction Tool with OWLTakeshi Morita
 
Report on Work of Joint DCMI/IEEE LTSC Task Force
Report on Work of Joint DCMI/IEEE LTSC Task ForceReport on Work of Joint DCMI/IEEE LTSC Task Force
Report on Work of Joint DCMI/IEEE LTSC Task ForceEduserv Foundation
 
ASP.NET 3.5 SP1
ASP.NET 3.5 SP1ASP.NET 3.5 SP1
ASP.NET 3.5 SP1Dave Allen
 
Adcom2006 Full 6
Adcom2006 Full 6Adcom2006 Full 6
Adcom2006 Full 6umavanth
 
Multi-Model Data Query Languages and Processing Paradigms
Multi-Model Data Query Languages and Processing ParadigmsMulti-Model Data Query Languages and Processing Paradigms
Multi-Model Data Query Languages and Processing ParadigmsJiaheng Lu
 
Part2- The Atomic Information Resource
Part2- The Atomic Information ResourcePart2- The Atomic Information Resource
Part2- The Atomic Information ResourceJEAN-MICHEL LETENNIER
 
Facilitating Busines Interoperability from the Semantic Web
Facilitating Busines Interoperability from the Semantic WebFacilitating Busines Interoperability from the Semantic Web
Facilitating Busines Interoperability from the Semantic WebRoberto García
 
Querying the Web of Data
Querying the Web of DataQuerying the Web of Data
Querying the Web of DataRinke Hoekstra
 
DC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open sessionDC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open sessionMikael Nilsson
 
Vital AI: Big Data Modeling
Vital AI: Big Data ModelingVital AI: Big Data Modeling
Vital AI: Big Data ModelingVital.AI
 
Structured Dynamics' Semantic Technologies Product Stack
Structured Dynamics' Semantic Technologies Product StackStructured Dynamics' Semantic Technologies Product Stack
Structured Dynamics' Semantic Technologies Product StackMike Bergman
 
Building social and RESTful frameworks
Building social and RESTful frameworksBuilding social and RESTful frameworks
Building social and RESTful frameworksbrendonschwartz
 

Similar to Ontology-based Cooperation of Information Systems (20)

Syntactic Mediation in Grid and Web Service Architectures
Syntactic Mediation in Grid and Web Service ArchitecturesSyntactic Mediation in Grid and Web Service Architectures
Syntactic Mediation in Grid and Web Service Architectures
 
Semantic Web for Enterprise Architecture
Semantic Web for Enterprise ArchitectureSemantic Web for Enterprise Architecture
Semantic Web for Enterprise Architecture
 
Ontology mapping for the semantic web
Ontology mapping for the semantic webOntology mapping for the semantic web
Ontology mapping for the semantic web
 
DODDLE-OWL: A Domain Ontology Construction Tool with OWL
DODDLE-OWL: A Domain Ontology Construction Tool with OWLDODDLE-OWL: A Domain Ontology Construction Tool with OWL
DODDLE-OWL: A Domain Ontology Construction Tool with OWL
 
Report on Work of Joint DCMI/IEEE LTSC Task Force
Report on Work of Joint DCMI/IEEE LTSC Task ForceReport on Work of Joint DCMI/IEEE LTSC Task Force
Report on Work of Joint DCMI/IEEE LTSC Task Force
 
ASP.NET 3.5 SP1
ASP.NET 3.5 SP1ASP.NET 3.5 SP1
ASP.NET 3.5 SP1
 
Adcom2006 Full 6
Adcom2006 Full 6Adcom2006 Full 6
Adcom2006 Full 6
 
Multi-Model Data Query Languages and Processing Paradigms
Multi-Model Data Query Languages and Processing ParadigmsMulti-Model Data Query Languages and Processing Paradigms
Multi-Model Data Query Languages and Processing Paradigms
 
Part2- The Atomic Information Resource
Part2- The Atomic Information ResourcePart2- The Atomic Information Resource
Part2- The Atomic Information Resource
 
Facilitating Busines Interoperability from the Semantic Web
Facilitating Busines Interoperability from the Semantic WebFacilitating Busines Interoperability from the Semantic Web
Facilitating Busines Interoperability from the Semantic Web
 
Intro
IntroIntro
Intro
 
Introducing Oslo
Introducing OsloIntroducing Oslo
Introducing Oslo
 
Introduction to Oracle
Introduction to OracleIntroduction to Oracle
Introduction to Oracle
 
Introduction to Oracle
Introduction to OracleIntroduction to Oracle
Introduction to Oracle
 
Chado introduction
Chado introductionChado introduction
Chado introduction
 
Querying the Web of Data
Querying the Web of DataQuerying the Web of Data
Querying the Web of Data
 
DC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open sessionDC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open session
 
Vital AI: Big Data Modeling
Vital AI: Big Data ModelingVital AI: Big Data Modeling
Vital AI: Big Data Modeling
 
Structured Dynamics' Semantic Technologies Product Stack
Structured Dynamics' Semantic Technologies Product StackStructured Dynamics' Semantic Technologies Product Stack
Structured Dynamics' Semantic Technologies Product Stack
 
Building social and RESTful frameworks
Building social and RESTful frameworksBuilding social and RESTful frameworks
Building social and RESTful frameworks
 

More from Raji Ghawi

Java and XML Schema
Java and XML SchemaJava and XML Schema
Java and XML SchemaRaji Ghawi
 
Java and SPARQL
Java and SPARQLJava and SPARQL
Java and SPARQLRaji Ghawi
 
Coopération des Systèmes d'Informations basée sur les Ontologies
Coopération des Systèmes d'Informations basée sur les OntologiesCoopération des Systèmes d'Informations basée sur les Ontologies
Coopération des Systèmes d'Informations basée sur les OntologiesRaji Ghawi
 
Building Ontologies from Multiple Information Sources
Building Ontologies from Multiple Information SourcesBuilding Ontologies from Multiple Information Sources
Building Ontologies from Multiple Information SourcesRaji Ghawi
 

More from Raji Ghawi (9)

Java and XML Schema
Java and XML SchemaJava and XML Schema
Java and XML Schema
 
Java and XML
Java and XMLJava and XML
Java and XML
 
Java and SPARQL
Java and SPARQLJava and SPARQL
Java and SPARQL
 
Java and OWL
Java and OWLJava and OWL
Java and OWL
 
SPARQL
SPARQLSPARQL
SPARQL
 
XQuery
XQueryXQuery
XQuery
 
XPath
XPathXPath
XPath
 
Coopération des Systèmes d'Informations basée sur les Ontologies
Coopération des Systèmes d'Informations basée sur les OntologiesCoopération des Systèmes d'Informations basée sur les Ontologies
Coopération des Systèmes d'Informations basée sur les Ontologies
 
Building Ontologies from Multiple Information Sources
Building Ontologies from Multiple Information SourcesBuilding Ontologies from Multiple Information Sources
Building Ontologies from Multiple Information Sources
 

Ontology-based Cooperation of Information Systems

  • 1. Ontology-based Cooperation of Information Systems Contributions to Database-to-Ontology Mapping and XML-to-Ontology Mapping Raji GHAWI 15/03/2010
  • 2.
  • 3.
  • 4. Introduction Heterogeneity structural syntactic system semantic scaling & units naming language model schema representation hardware operating system synonymy homonymy
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. OWSCIS Architecture Global Ontology Mapping Directory Knowledge Base Module End User Querying Web Service Results Recomposition Query Decomposition Visualization Web Service sub-queries partial results Relational database XML data source Data Providers DB2OWL X2OWL Local ontology Data Source to Local Ontology Mappings Local Ontology to Global Ontology Mappings Mapping Web Service
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. Mapping Process Ontology Database Mapping Document Metadata Rules Tables Columns Primary Keys ... Concepts Datatype Properties Object Properties ... Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 23.
  • 24. Example DB Schema Case 1 (m-m relationship) Case 2 (1-1 relationship) Case 3 (others) studentId diplomaId studentNumber Student diplomaId diplomaName Diploma moduleId diplomaId moduleName Module studentId sessionId Presence sessionId moduleId lecturerId Session time hallId lecturerId room Lecturer hallId building hallName Hall personId lastName firstName Person Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation Primary key Foreign key Integrity Constraint
  • 25. Rules for Ontology Generation Primary key Foreign key Integrity Constraint Database component Ontology component ... ... T C case 3 PFK1 ... T PK1 ... T1 C C1 case 2 PK1 ... T1 PFK1 PFK2 T PK2 ... T2 op2 op1 C1 C2 ... NK T dp C ... FK T PK1 ... T1 op C C1 Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation Object property subClassOf Class Datatype property
  • 26. presence-session presence-student module-diploma session-lecturer Person Hall Student Lecturer Diploma Module Session firstName lastName room hallName moduleName diplomaName studentNumber time student-diploma session-module session-hall building Primary key Foreign key Integrity Constraint Database Schema Generated Ontology Object property subClassOf Class Datatype property Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation personId lastName firstName Person sessionId moduleId lecturerId Session time hallId hallId building hallName Hall diplomaId studentNumber Student studentId lecturerId room Lecturer moduleId diplomaId moduleName Module diplomaId diplomaName Diploma studentId sessionId Presence
  • 27. Generated Mappings using Associations with SQL Statements Concept Associations Datatype Property Associations Object Property Associations SELECT person.personId AS DOM FROM person Person SELECT lecturer.lecturerId AS DOM FROM lecturer, person WHERE lecturer.lecturerId = person.personId Student SELECT student.studentId AS DOM FROM student, person WHERE student.studentId = person.personId Lecturer SELECT person.personId AS DOM, person.FirstName AS RNG FROM person firstName SELECT student.studentId AS DOM, student.studentNumber AS RNG FROM student studentNumber student.diploma session.lecturer SELECT student.studentId AS DOM, diploma.diplomaId AS RNG FROM student, diploma WHERE student.diplomaID = diploma.diplomaId SELECT session.sessionId AS DOM, lecturer.lecturerId AS RNG FROM session, lecturer WHERE session.lecturerId = lecturer.lecturerId Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 28. student-diploma-opb session-lecturer-opb person-cb ont:Person person student-cb ont:Student student lecturer-cb ont:Lecturer lecturer person-firstName-dpb ont:firstName person.firstName person-cb student-studentNumber-dpb ont:studentNumber student.studentNumber student-cb ont:student.diploma session.lecturerId = lecturer.lecturerId student-cb diploma-cb ont:session.lecturer student.diplomaID = diploma.diplomaId session-cb lecturer-cb Generated Mappings using DOML language Concept Bridges Datatype Property Bridges Object Property Bridges datatype property column domain concept bridge concept table object property join domain concept bridge range concept bridge Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 29.
  • 30. Query Processing sub-query local query Local Ontology Data Provider rewrite translate SQL results SPARQL results reformulate solve SQL query Data Source to Local Ontology Mappings Local Ontology to Global Ontology Mappings Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation Querying Web Service
  • 31. SPARQL-to-SQL Query Translation SPARQL query SQL query Ontology Database Mapping Document Translation Associations with SQL Statements DOML Language Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 32.
  • 33. SPARQL-to-SQL Translation using Associations with SQL Statements Mapping document SELECT variables SPARQL query SELECT FROM WHERE SQL statements SQL query SQL results SPARQL query results XML format Basic Graph Pattern FILTERs simplified SQL query 1 2 3 Concept Associations Property Associations Build Simplification Formulation Mapping Parsing Query Parsing Translation Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 34. SPARQL-to-SQL Translation using Associations with SQL Statements presence-session presence-student module-diploma session-lecturer Person Hall Student Lecturer Diploma Module Session firstName lastName room hallName moduleName diplomaName studentNumber time student-diploma session-module session-hall building SELECT ?modName WHERE { ?mod ont:moduleName ?modName. ont:module-diploma ?dip. ?dip ont:diplomaName ?dipName. FILTER (?dipName = &quot;BDIA&quot;) } SPARQL query Example Ontology Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 35. SPARQL-to-SQL Translation using Associations with SQL Statements SELECT S1.RNG AS modName FROM ( SELECT Module.moduleId AS DOM, Module.moduleName AS RNG FROM Module ) AS S1, ( SELECT Module.moduleId AS DOM, Diploma.diplomaId AS RNG FROM Module, Diploma WHERE Module.diplomaId = Diploma.diplomaId ) AS S2, ( SELECT Diploma.diplomaId AS DOM, Diploma.diplomaName AS RNG FROM Diploma ) AS S3 WHERE S1.DOM = S2.DOM AND S2.RNG = S3.DOM AND S3.RNG = &quot;BDIA&quot; S1.RNG AS modName S3.RNG = &quot;BDIA&quot; S1.DOM = S2.DOM S2.RNG = S3.DOM SQL AS S1 AS S2 AS S3 SELECT Module.moduleId AS DOM, Module.moduleName AS RNG FROM Module SELECT Module.moduleId AS DOM, Diploma.diplomaId AS RNG FROM Module, Diploma WHERE Module.diplomaId = Diploma.diplomaId SELECT Diploma.diplomaId AS DOM, Diploma.diplomaName AS RNG FROM Diploma Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation SELECT FROM WHERE
  • 36. SPARQL-to-SQL Translation using Associations with SQL Statements Generated SQL query Simplified SQL query SELECT S1.RNG AS modName FROM ( SELECT Module.moduleId AS DOM, Module.moduleName AS RNG FROM Module ) AS S1, ( SELECT Module.moduleId AS DOM, Diploma.diplomaId AS RNG FROM Module, Diploma WHERE Module.diplomaId = Diploma.diplomaId ) AS S2, ( SELECT Diploma.diplomaId AS DOM, Diploma.diplomaName AS RNG FROM Diploma ) AS S3 WHERE S1.DOM = S2.DOM AND S2.RNG = S3.DOM AND S3.RNG = &quot;BDIA&quot; SELECT Module.moduleName AS modName FROM Module, Diploma WHERE Module.diplomaId = Diploma.diplomaId AND Diploma.diplomaName = &quot;BDIA&quot; Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 37.
  • 38. SPARQL-to-SQL Translation using DOML Language DOML mapping document SQL results FILTERs SELECT variables Concept Bridges Datatype Property Bridges Object Property Bridges Transformations Conditions variable-to- Concept mapping 1 2 3 4 Basic Graph Pattern SPARQL query SPARQL query results XML format SQL query Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation Formulation Mapping Parsing Query Parsing Translation Preprocessing
  • 39. SPARQL-to-SQL Translation using DOML Language SELECT ?name WHERE { ?stud a ont:Student; ont:name ?name; ont:studies-in ?dept. ?dept ont:dept-name ?deptName. FILTER (?deptName = &quot;IEM&quot;). } SPARQL query Example name email year dept-name works-for studies-in salary Person Ontology Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation Department Employee Student
  • 40.
  • 41.
  • 42.
  • 43. SPARQL-to-SQL Translation using DOML Language 4. Query Translation – Analysis of Mapping Bridges SELECT ?name WHERE { ?stud a ont:Student; ont:name ?name; ont:studies-in ?dept. ?dept ont:dept-name ?deptName. FILTER (?deptName = &quot;IEM&quot;). } Mapping Bridges conditions tables join ?name CONCAT(firstName,lastName) variable to column auxiliary mapping ?deptname dept.deptName Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation WHERE FROM
  • 44. SPARQL-to-SQL Translation using DOML Language 4. Query Translation – SELECT Construction SELECT ?name WHERE { ?stud a ont:Student; ont:name ?name; ont:studies-in ?dept. ?dept ont:dept-name ?deptName. FILTER (?deptName = &quot;IEM&quot;). } ?name CONCAT(firstName,lastName) variable-to-column auxiliary mapping SELECT CONCAT( firstName,lastName ) AS name Replace variables by their corresponding columns or transformations … … Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation SELECT
  • 45. SPARQL-to-SQL Translation using DOML Language 4. Query Translation – FILTER Translation SELECT ?name WHERE { ?stud a ont:Student; ont:name ?name; ont:studies-in ?dept. ?dept ont:dept-name ?deptName. FILTER (?deptName = &quot;IEM&quot;). } dept.deptName = &quot;IEM&quot; Replace variables by their corresponding columns or transformations ?deptName dept.deptName variable-to-column auxiliary mapping … … Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation WHERE
  • 46. SPARQL-to-SQL Translation using DOML Language 4. Query Translation person.status=&quot;student&quot; person dept.deptName = &quot;IEM&quot; SELECT CONCAT( firstName,lastName ) AS name dept person.deptId = dept.deptId SELECT CONCAT(person.firstName, person.lastName) AS name FROM person, dept WHERE (person.status = 'Student') AND (person.deptId = department.deptId) AND (dept.deptName = 'IEM') SQL query Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation WHERE SELECT FROM
  • 47. Result Reformulation <sparql> <head> <variable name=&quot;fn&quot;/> <variable name=&quot;ln&quot;/> <variable name=&quot;dipName&quot;/> </head> <results> <result> <binding name=&quot;fn&quot;><literal>Raji</literal></binding> <binding name=&quot;ln&quot;><literal>Ghawi</literal></binding> <binding name=&quot;dipName&quot;><literal>Master 2 3I</literal></binding> </result> <result> <binding name=&quot;fn&quot;><literal>Thibault</literal></binding> <binding name=&quot;ln&quot;><literal>Poulain</literal></binding> <binding name=&quot;dipName&quot;><literal>Master 2 3I</literal></binding> </result> <result> <binding name=&quot;fn&quot;><literal>Guillermo</literal></binding> <binding name=&quot;ln&quot;><literal>Gomez</literal></binding> <binding name=&quot;dipName&quot;><literal>Master 2 BDIA</literal></binding> </result> </results> </sparql> SQL Results SPARQL Results (XML format) Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation Master 2 BDIA Gomez Guillermo Master 2 3I Poulain Thibault Master 2 3I Ghawi Raji dipName ln fn
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54. XML-to-Ontology Mapping Process Ontology XML Schema Mapping Document XSG Rules Types Elements Attributes ... Concepts Datatype Properties Object Properties ... XML Schema Graph Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 55. XML Schema Graph (XSG) PurchaseOrderType @ orderDate (anonymous) Address USAddress @ country @weightKg @shipBy purchaseOrder item billTo shipTo state zip street city name price productName shipAndBill ItemDelivery Nodes Edges Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation Attribute Group Element Group Attribute Complex Type Element Type Derivation Containment
  • 56. Rules for Ontology Generation object property MIXED restriction extention complex type element group attribute group containment relationship simple element attribute text of mixed complex type subClassOf Class datatype property XML schema component result ontology component Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 57. hasItem hasItemDelivery hasShipTo hasBillTo Item PurchaseOrderType ItemDelivery USAddress ShipAndBill orderDate name street city country productName price weightKg shipBy zip USstate object property subClassOf OWL class datatype property PurchaseOrderType @ orderDate (anonymous) Address USAddress @ country @weightKg @shipBy purchaseOrder item billTo shipTo state zip street city name price productName shipAndBill ItemDelivery Example hasShipAndBill XML Schema Graph Ontology Address Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 58.
  • 59. Refinement – Use of Different Representations (anonymous) @orderid orderperson (anonymous) (anonymous) (anonymous) (anonymous) @title shipmentorder items shipments shipment date price title quantity item Example XSG XML Document Ontology Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation <shipmentorder orderid=&quot;889923&quot;> <orderperson>John Smith</orderperson> <items> <item> <title>Empire Burlesque</title> <quantity>1</quantity> <price>10.90</price> </item> <item> <title>Hide your heart</title> <quantity>1</quantity> <price>9.90</price> </item> <item> <title>Hearts of Fire</title> <quantity>1</quantity> <price>10.50</price> </item> </items> <shipments> <shipment> <date>12-01-2009</date> <item title=&quot;Empire Burlesque&quot; /> <item title=&quot;Hide your heart&quot; /> </shipment> </shipments> </shipmentorder> hasItem Shipments Item Items orderId orderPerson date title quantity price hasShipments hasItems hasShipment Shipment ShipmentOrder
  • 60.
  • 61.
  • 62. SPARQL-to-XQuery Translation SPARQL query XQuery query Ontology XML Data Source Mapping Document (XOML) Translation Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 63. SPARQL-to-XQuery Translation XOML mapping document SPARQL query XQuery query SPARQL query results XML format FILTERs SELECT variables Concept Bridges Datatype Property Bridges Object Property Bridges 1 2 3 4 Basic Graph Pattern XML Data Source Suitable Mapping Graph Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation Mapping Parsing Query Parsing Building XQuery Preprocessing
  • 64. SPARQL-to-XQuery Translation SELECT ?date ?title WHERE { ?ship ont:date ?date; ont:hasItem ?item. ?item ont:title ?title. } SPARQL query Example hasItem Shipments Item Items orderId orderPerson date title quantity price hasShipments hasItems hasShipment Ontology Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation Shipment ShipmentOrder
  • 65.
  • 66.
  • 67. SPARQL-to-XQuery Translation 3. Preprocessing ?ship ~ /shipmentorder/shipments/shipment ?date ~ /shipmentorder/shipments/shipment/date/text() ?item ~ /shipmentorder/shipments/shipment/item ?title ~ /shipmentorder/shipments/shipment/item/@title Suitable Mapping Graph Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 68. SPARQL-to-XQuery Translation <sparql> <head> <variable name=&quot;...&quot; /> ... </head> <results> { for ... let ... where ... return <result> <binding name=&quot;...&quot;>{ ... }</binding> ... </result> } </results> </sparql> 4. Building Target XQuery XQuery Template Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 69. SPARQL-to-XQuery Translation 4. Building Target XQuery ?ship ~ /shipmentorder/shipments/shipment ?date ~ /shipmentorder/shipments/shipment/date/text() ?item ~ /shipmentorder/shipments/shipment/item ?title ~ /shipmentorder/shipments/shipment/item/@title for $ship in /shipmentorder/shipments/shipment let $date := /shipmentorder/shipments/shipment/date/text() for $item in /shipmentorder/shipments/shipment/item let $title := /shipmentorder/shipments/shipment/item/@title Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation non-leaf vertex  for statement leaf vertex  let statement
  • 70. SPARQL-to-XQuery Translation 4. Building Target XQuery Abbreviation of absolute XPath expressions into relative expressions Replace common parts of XPaths by corresponding variables for $ship in /shipmentorder/shipments/shipment let $date := /shipmentorder/shipments/shipment/date/text() for $item in /shipmentorder/shipments/shipment/item let $title := /shipmentorder/shipments/shipment/item/@title for $ship in /shipmentorder/shipments/shipment let $date := $ship/date/text() for $item in $ship/item let $title := $item/@title Absolute XPaths Relative XPaths Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 71. SPARQL-to-XQuery Translation 4. Building Target XQuery <sparql> <head> <variable name=&quot;date&quot; /> <variable name=&quot;title&quot; /> </head> <results> { for $ship in /shiporder/ships/ship let $date := $ship/date/text() for $item in $ship/item let $title := $item/@title return <result> <binding name=&quot;date&quot;>{$date}</binding> <binding name=&quot;title&quot;>{fn:data($title)}</binding> </result> } </results> </sparql> XQuery Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 72. SPARQL-to-XQuery Translation 4. Building Target XQuery <sparql> <head> <variable name=&quot;date&quot;/> <variable name=&quot;title&quot;/> </head> <results> <result> <binding name=&quot;date&quot;>12-01-2009</binding> <binding name=&quot;title&quot;>Empire Burlesque</binding> </result> <result> <binding name=&quot;date&quot;>12-01-2009</binding> <binding name=&quot;title&quot;>Hide your heart</binding> </result> </results> </sparql> SPARQL Results (XML format) Database-to-Ontology Mapping XML-to-Ontology Mapping Mapping Specification Mapping Process Query Translation
  • 73.
  • 74.
  • 75.
  • 76.