{"id":1381,"date":"2017-11-15T17:19:29","date_gmt":"2017-11-15T22:19:29","guid":{"rendered":"http:\/\/inova8.com\/bg_inova8.com\/?p=1381"},"modified":"2019-04-23T02:29:38","modified_gmt":"2019-04-23T07:29:38","slug":"sql2rdf-pump-sql-dml-immediately-to-rdf-triplestore","status":"publish","type":"post","link":"https:\/\/inova8.com\/bg_inova8.com\/sql2rdf-pump-sql-dml-immediately-to-rdf-triplestore\/","title":{"rendered":"SQL2RDF: pump SQL DML immediately to RDF triplestore"},"content":{"rendered":"<div class=\"boldgrid-section\">\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-md-12 col-xs-12 col-sm-12\">\n<p><a href=\"http:\/\/inova8.com\/bg_inova8.com\/offerings\/sql2rdf\/\">SQL2RDF<\/a>incremental materialization&nbsp;uses a stream of source data changes (DML) and transforms them to the corresponding changes (inserts, deletes) in the triple store ensuring concurrency between RDBMS and triplestore.&nbsp;<a href=\"http:\/\/inova8.com\/bg_inova8.com\/offerings\/sql2rdf\/\">SQL2RDF<\/a>incremental materialization is based on the same <a href=\"https:\/\/www.w3.org\/TR\/r2rml\/\">R2RML<\/a>&nbsp;mapping used for virtualization (<a href=\"http:\/\/ontop.inf.unibz.it\/\">Ontop<\/a>), and (<a href=\"https:\/\/capsenta.com\/\">Capsenta<\/a>), and materialization (<a href=\"http:\/\/in4mium.com\/\">In4mium<\/a>, and <a href=\"https:\/\/github.com\/nkons\/r2rml-parser\">R2RML Parser<\/a>) thus does not incur an additional configuration maintenance problem.<\/p>\n<p><img loading=\"lazy\" class=\"size-full wp-image-1382 aligncenter\" src=\"http:\/\/inova8.com\/bg_inova8.com\/wp-content\/uploads\/2017\/11\/sql2rdf.png\" alt=\"\" width=\"765\" height=\"402\" srcset=\"https:\/\/inova8.com\/bg_inova8.com\/wp-content\/uploads\/2017\/11\/sql2rdf.png 765w, https:\/\/inova8.com\/bg_inova8.com\/wp-content\/uploads\/2017\/11\/sql2rdf-300x158.png 300w\" sizes=\"(max-width: 765px) 100vw, 765px\" \/>Mapping an existing RDBMS to RDF has become an increasingly popular way of accessing data when the system-of-record is not, or cannot be, in a RDF database. Despite its attractiveness, virtualization is not always possible for various reasons such as performance, the need for full <a href=\"https:\/\/www.w3.org\/TR\/sparql11-query\/\">SPARQL 1.1<\/a> support, the need to reason over the virtualized as well as other materialized data, etc. However materialization of an existing RDBMS to RDF is also not an ideal alternative. Reasons include the inevitable lack of concurrency between the system-of-record and the RDF.<\/p>\n<p>Thus incremental materialization provides an alternative between virtualization and materialization, offering:<\/p>\n<ul>\n<li>Easy ETL of source RDB as no additional configuration required other than the same<a href=\"https:\/\/www.w3.org\/TR\/r2rml\/\"> R2RML <\/a>required for virtualization or bulk materialization.<\/li>\n<li>Improved concurrency of data compared with materialization.<\/li>\n<li>Significantly less computational overhead than a full materialization of the source data.<\/li>\n<li>Improved query performance compared with virtualization especially when reasoning is required.<\/li>\n<li>Compatibility with R2RML thus reducing configuration maintenance.<\/li>\n<li>Supports insert, update, and delete changes on the source RDBMS.<\/li>\n<li>Source transactions can be batched, and the changes to the triplestore are part of a single transaction that can be rolled back in the event of a problem.<\/li>\n<li>Supports change logging so that committed changes can be rolled back.<\/li>\n<\/ul>\n<p>Contact&nbsp; inova8 if you would like to try <a href=\"http:\/\/inova8.com\/bg_inova8.com\/offerings\/sql2rdf\/\">SQL2RDF<\/a>.&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>SQL2RDFincremental materialization&nbsp;uses a stream of source data changes (DML) and transforms them to the corresponding changes (inserts, deletes) in the triple store ensuring concurrency between RDBMS and triplestore.&nbsp;SQL2RDFincremental materialization is based on the same R2RML&nbsp;mapping used for virtualization (Ontop), and (Capsenta), and materialization (In4mium, and R2RML Parser) thus does not incur an additional configuration maintenance [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bgseo_title":"SQL2RDF: pump SQL DML immediately to RDF triplestore","bgseo_description":"\u00a0SQL2RDF\u00a0incremental materialization\u00a0uses a stream of RDBMS changes and transforms them to the corresponding triple store changes (inserts, deletes) ensuring concurrency\r\n","bgseo_robots_index":"index","bgseo_robots_follow":"follow","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[16,11,8,18,31],"tags":[48,43,41,40,49,35,44,38,42,36,37,39,45,34,47,46],"_links":{"self":[{"href":"https:\/\/inova8.com\/bg_inova8.com\/wp-json\/wp\/v2\/posts\/1381"}],"collection":[{"href":"https:\/\/inova8.com\/bg_inova8.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inova8.com\/bg_inova8.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inova8.com\/bg_inova8.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inova8.com\/bg_inova8.com\/wp-json\/wp\/v2\/comments?post=1381"}],"version-history":[{"count":15,"href":"https:\/\/inova8.com\/bg_inova8.com\/wp-json\/wp\/v2\/posts\/1381\/revisions"}],"predecessor-version":[{"id":1413,"href":"https:\/\/inova8.com\/bg_inova8.com\/wp-json\/wp\/v2\/posts\/1381\/revisions\/1413"}],"wp:attachment":[{"href":"https:\/\/inova8.com\/bg_inova8.com\/wp-json\/wp\/v2\/media?parent=1381"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inova8.com\/bg_inova8.com\/wp-json\/wp\/v2\/categories?post=1381"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inova8.com\/bg_inova8.com\/wp-json\/wp\/v2\/tags?post=1381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}