- Sunitha Ramanujam, Vaibhav Khadilkar, Latifur Khan,
- Sunitha Ramanujam, Vaibhav Khadilkar, Latifur Khan, Steven Seida, - - PowerPoint PPT Presentation
- Sunitha Ramanujam, Vaibhav Khadilkar, Latifur Khan, Steven Seida, - - PowerPoint PPT Presentation
- Sunitha Ramanujam, Vaibhav Khadilkar, Latifur Khan, Steven Seida, Murat Kantarcioglu, Bhavani Thuraisingham Agenda Research Motivation Current Work in the Arena Our Approach D2RQ Basics The D2RQ++ Approach Algorithms
Agenda
Research Motivation Current Work in the Arena Our Approach
D2RQ Basics The D2RQ++ Approach Algorithms comprising D2RQ++
Experimental Results
Conclusions & Future Work
Research Motivation & Objectives
Current Trend: Semantic Web initiative for automated storage,
exchange, and usage of machine-readable information.
Effects of current trend: Resource Description Framework and
RDF Graph data model to realize the Semantic Web Initiative.
Challenges due to current trend: Demand for RDF applications
to access content of huge, live, legacy databases
Addressing these challenges:
- Declarative languages proposed to express mappings between
legacy database schemata and RDF-S/OWL ontologies.
- Legacy database data presented as virtual RDF Stores
- We extend existing (read-only) work in the translation arena by
enabling inserts/updates/deletes to be propagated back to legacy databases thus making the translation process bidirectional.
3
Current Work - ONTOACCESS
Ontology-based write access to relational data via SPARQL/Update.
Consists Of....
R3M – Update-aware RDBMS to RDF mapping language
Algorithms – Translate SPARQL/Update to SQL DML
4
OntoAccess Mapping Language
TableMap Listing
5
AttributeMap Listing
LinkTableMap Listing
OntoAccess – Sparql/Update to SQL DML
6
INSERT Data
Our Approach – D2RQ++
Wrapper around D2RQ that enables inserts/updates/deletes
to be propagated back to the underlying database
Algorithms to translate RDF update triples into equivalent
relational attributes/tuples thereby enabling DML
- perations on the underlying relational database schema.
Extensions to support translation of blank node structures
to equivalent relational tuples.
Preservation of the Open-World Assumption by
maintaining a separate native RDF store to house triples that are mismatched with the underlying relational database schema.
D2RQ Basics
Semantic Web Technologies are maturing Growing need for RDF applications to access legacy
database content without replicating the entire database into RDF
What you can do with D2RQ…
Query a non-RDF database using SPARQL Access information in a non-RDF database using the Jena
API
Access the contents of a non-RDF database as Linked
Data over the Web
Why D2RQ…
What D2RQ is…
Tool for publishing content of relational databases on the
Semantic Web
Consists of
D2RQ Mapping Language D2RQ Engine D2RQ Server
D2RQ Mapping Language
Declarative language to express mappings between a
given relational schemata and a RDF schemata
D2RQ++ - Issues & Solutions
Issue 1 – Preservation of Open-World Assumption Solution – Maintenance of a separate native RDF Store which houses
Triples that do not have an equivalent entity/attribute
mapping within the underlying relational database schema
Duplicate triples that would otherwise result in
information loss due to overwriting of existing values
Subsequent querying of corresponding attribute returns a
union of both values from the two data stores.
D2RQ++ - Issues & Solutions
Issue 2 – Translation Process for RDF Blank Nodes Solution – Extend D2RQ’s mapping language by adding new constructs to map various types of blank nodes
d2rq:SimpleLiteralBlankNode Property Bridge(SLBNPB): Construct used to relate blank nodes that have only literal objects, each with a unique predicate
EmpURI/EmpA <Street> <City>
City Street Address State
<State>
d2rq:SLBNPB
D2RQ++ - Issues & Solutions
Issue 2 – Translation Process for RDF Blank Nodes Solution – Extend D2RQ’s mapping language by adding new constructs to map various types of blank nodes
d2rq:ComplexLiteralBlankNode PropertyBridge(CLBNPB): Construct used to relate blank nodes containing repeating predicates (with simple literal objects) to relational database columns
EmpURI/EmpA <WorkNo> <CellNo>
Phone Cell Cell Work
<CellNo>
d2rq:CLBNPB
D2RQ++ - Issues & Solutions
Issue 2 – Translation Process for RDF Blank Nodes Solution – Extend D2RQ’s mapping language by adding new constructs to map various types of blank nodes
d2rq:ResourceBlankNode (RBNPB): Construct used to map blank nodes that have multiple predicates (that may
- r may not be unique) leading to
resource objects
EmpURI/EmpA
Projects
Link to Project1 Link to Project2 Link to Project3
Works On Works On Works On
EmpURI/EmpA
Other Activities
Link to Training1 Link to Course1
Training Teaching
d2rq:RBNPB
D2RQ++ - Issues & Solutions
Issue 2 – Translation Process for RDF Blank Nodes Solution – Extend D2RQ’s mapping language by adding new constructs to map various types of blank nodes
d2rq:BelongsToBlankNode: Construct used to relate a relational attribute to the parent blank node
d2rq:SLBNPB
EmpURI/EmpA <Street> <City>
City Street Address State
<State>
d2rq:CLBNPB
EmpURI/EmpA <WorkNo> <CellNo>
Phone Cell Cell Work
<CellNo>
d2rq:BelongsToBlankNode
D2RQ++ - Issues & Solutions
Issue 2 – Translation Process for RDF Blank Nodes Solution – Extend D2RQ’s mapping language
map:employee_address a d2rqrw:SimpleLiteralBlankNodePropertyBridge; d2rq:belongsToClassMap map:employee; d2rq:property vocab:employee_address; d2rq:propertyDefinitionLabel "employee address"; d2rq:pattern "@@employee.address_street@@/ @@employee.address_city@@/ @@employee.address_state@@"; . map:employee_address_street a d2rq:PropertyBridge; d2rqrw:belongsToBlankNode map:employee_address; d2rq:belongsToClassMap map:employee; d2rq:property vocab:employee_address_street; d2rq:propertyDefinitionLabel "employee address_street"; d2rq:column "employee.address_street";
EmpURI/EmpA <Street> <City>
City Street Address State
<State>
Sample Map File Entry for an SLBNPB
D2RQ++ - Issues & Solutions
Issue 3 – Order of Updates to ensure preservation of referential integrity constraints Solution – Introduction of periodic flush algorithm
Triples violating referential integrity constraints initially
accommodated in native RDF Store
Native RDF Store triples periodically checked to verify
presence of parent key in underlying relational database
If yes, then triple transferred to relational database and
deleted from native RDF store
Insert/Update Triple Procedure
Insert/Update SLBNPB Procedure
EmpURI/EmpA <Street> <City>
City Street Address State
<State>
D2RQ++ Results
Initial Data in MySQL Relational Database Schema
D2RQ++ Results
D2R++Server Interface for adding a second name for an existing EmpID
model.add( model.createResource( "file:///home/vaibhav/employee.n3#empl
- yee/1" ),
model.createProperty( "http://localhost:2020/vocab/resource/em ployee_empName" ), model.asRDFNode( Node.createLiteral( “Doe" ) ) );
D2RQ++ Results
Data in MySQL Relational Database Schema and native RDF Store after adding a second name for an existing EmpID
model.add( model.createResource( "file:///home/vaibhav/emplo yee.n3#employee/1" ), model.createProperty( "http://localhost:2020/vocab /resource/employee_empNa me" ), model.asRDFNode( Node.createLiteral( “Doe" ) ) );
D2RQ++ Results
D2R++Server User Interface after adding a second name for an existing EmpID
D2RQ++ Results
Data in MySQL Relational Database Schema and native RDF Store after adding a new triple with a brand new EmpID
model.add( model.createResource( "file:///home/vaibhav/employ ee.n3#employee/2" ));
D2RQ++ Results
D2R++Server User Interface after removing the original and duplicate names for an existing EmpID
D2RQ++ Results
Data in MySQL Relational Database Schema and native RDF Store after removing the original and duplicate names for an existing EmpID
D2RQ++ Results
Data in MySQL Relational Database Schema and native RDF Store after removing an existing EmpID
model.remove( model.createResource( "file:///home/vaibhav/emplo yee.n3#employee/2" ), model.createProperty( "http://localhost:2020/vocab /resource/employee_empid" ), model.asRDFNode( Node.createLiteral( “2", null, XSDDatatype.XSDint ) ) );
Conclusions
A bi-directional RDBMS-to-RDF translation mechanism,
implemented as a wrapper around an existing unidirectional system called D2RQ, has been introduced.
Screenshots of underlying relational database schema data
resulting from RDF insert/delete
- perations
were presented as evidence of the feasibility of our research.
Future Work
Extending the flush algorithm to cover additional scenarios Adding support for the concept of RDF Reification
36
Thank You
37