<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head profile="http://internetalchemy.org/2003/02/profile"> <link rel="foaf" type="application/rdf+xml" title="FOAF" href="http://www.openlinksw.com/dataspace/uda/about.rdf" /> <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" /> <meta name="dc.title" content="14. RDF Data Access and Data Management" /> <meta name="dc.subject" content="14. RDF Data Access and Data Management" /> <meta name="dc.creator" content="OpenLink Software Documentation Team ; " /> <meta name="dc.copyright" content="OpenLink Software, 1999 - 2009" /> <link rel="top" href="index.html" title="OpenLink Virtuoso Universal Server: Documentation" /> <link rel="search" href="/doc/adv_search.vspx" title="Search OpenLink Virtuoso Universal Server: Documentation" /> <link rel="parent" href="rdfandsparql.html" title="Chapter Contents" /> <link rel="prev" href="rdfviews.html" title="Linked Data Views over RDBMS Data Source" /> <link rel="next" href="rdfviewsenterpr.html" title="Examples of Linked Data Views" /> <link rel="shortcut icon" href="../images/misc/favicon.ico" type="image/x-icon" /> <link rel="stylesheet" type="text/css" href="doc.css" /> <link rel="stylesheet" type="text/css" href="/doc/translation.css" /> <title>14. RDF Data Access and Data Management</title> <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" /> <meta name="author" content="OpenLink Software Documentation Team ; " /> <meta name="copyright" content="OpenLink Software, 1999 - 2009" /> <meta name="keywords" content="" /> <meta name="GENERATOR" content="OpenLink XSLT Team" /> </head> <body> <div id="header"> <a name="rdfrdfviewgnr" /> <img src="../images/misc/logo.jpg" alt="" /> <h1>14. RDF Data Access and Data Management</h1> </div> <div id="navbartop"> <div> <a class="link" href="rdfandsparql.html">Chapter Contents</a> | <a class="link" href="rdfviews.html" title="Linked Data Views over RDBMS Data Source">Prev</a> | <a class="link" href="rdfviewsenterpr.html" title="Examples of Linked Data Views">Next</a> </div> </div> <div id="currenttoc"> <form method="post" action="/doc/adv_search.vspx"> <div class="search">Keyword Search: <br /> <input type="text" name="q" /> <input type="submit" name="go" value="Go" /> </div> </form> <div> <a href="http://www.openlinksw.com/">www.openlinksw.com</a> </div> <div> <a href="http://docs.openlinksw.com/">docs.openlinksw.com</a> </div> <br /> <div> <a href="index.html">Book Home</a> </div> <br /> <div> <a href="contents.html">Contents</a> </div> <div> <a href="preface.html">Preface</a> </div> <br /> <div class="selected"> <a href="rdfandsparql.html">RDF Data Access and Data Management</a> </div> <br /> <div> <a href="rdfdatarepresentation.html">Data Representation</a> </div> <div> <a href="rdfsparql.html">SPARQL</a> </div> <div> <a href="sparqlextensions.html">Extensions</a> </div> <div> <a href="rdfgraphsecurity.html">RDF Graphs Security</a> </div> <div> <a href="rdfviews.html">Linked Data Views over RDBMS Data Source</a> </div> <div class="selected"> <a href="rdfrdfviewgnr.html">Automated Generation of RDF Views over Relational Data Sources</a> <div> <a href="#rdfrdfviewgnrintro" title="Introduction">Introduction</a> <a href="#rdfrdfviewgnroneclick" title="One Click Linked Data Generation & Deployment">One Click Linked Data Generation & Deployment</a> <a href="#rdfrdfviewgnrwizzard" title="Manual Linked Data Generation & Deployment using the Conductor's HTML-based wizard">Manual Linked Data Generation & Deployment using the Conductor's HTML-based wizard</a> </div> </div> <div> <a href="rdfviewsenterpr.html">Examples of Linked Data Views</a> </div> <div> <a href="rdfinsertmethods.html">RDF Insert Methods in Virtuoso</a> </div> <div> <a href="virtuososponger.html">RDFizer Middleware (Sponger)</a> </div> <div> <a href="virtuosospongerfacetinstall.html">Virtuoso Faceted Browser Installation and configuration</a> </div> <div> <a href="virtuosospongerfacent.html">Virtuoso Faceted Web Service</a> </div> <div> <a href="rdfiridereferencing.html">Linked Data</a> </div> <div> <a href="rdfsparqlrule.html">Inference Rules & Reasoning</a> </div> <div> <a href="rdfsparqlgeospat.html">RDF and Geometry</a> </div> <div> <a href="rdfperformancetuning.html">RDF Performance Tuning</a> </div> <div> <a href="rdfnativestorageproviders.html">RDF Data Access Providers (Drivers)</a> </div> <div> <a href="rdfgraphreplication.html">RDF Graph Replication</a> </div> <br /> </div> <div id="text"> <a name="rdfrdfviewgnr" /> <h2>14.6. Automated Generation of RDF Views over Relational Data Sources</h2> <a name="rdfrdfviewgnrintro" /> <h3>14.6.1. Introduction</h3> <p>Virtuoso offers from Conductor UI an HTML based Wizard interface for dynamically generating & publishing RDF based Linked Data from ODBC or JDBC accessible relational data sources. Basically, a mechanism for building RDF based Linked Data views over relational data sources. </p> <p>The proliferation of relational databases across enterprises and behind Web sites, makes them a vital data source for the burgeoning Linked Data Web. Thus, the process of publishing Linked Data from these sources needs to be as unobtrusive as possible. Naturally, a balance has to be struck between unobtrusive generation of Linked Data and traditional relational database management system (RDBMS) virtues such as: </p> <ul> <li>Scalability</li> <li>Security</li> <li>Analytical Expressivity of SQL</li> <li>Separation of Data Access and Data Storage via ODBC, JDBC, ADO.NET CLIs.</li> </ul> <p>The following steps must be taken to publish RDF-based Linked Data: </p> <ol> <li>Identifying ODBC or JDBC data sources that host the data you seek to publish (assuming the data isn't Virtuoso RDBMS hosted -- in which case, skip ahead to step #3).</li> <li>Attach/Link TABLEs or VIEWs from the external data sources into Virtuoso via their Data Source Names (DSNs).</li> <li>Identify the internal or external TABLEs or VIEWs that hold the data you wish to publish.</li> <li>Configure Endpoints and Re-write Rules to disambiguate data object (resource) identity and description through HTTP-based content negotiation.</li> <li>Expose the Data Source Ontology and associated Instance Data in Linked Data form through those Endpoints and Re-write Rules.</li> </ol> <p> These steps may be largely automated (the "One-Click" Deployment below), or performed manually ("Using the Conductor's HTML-based Wizard" further down). </p> <br /> <a name="rdfrdfviewgnroneclick" /> <h3>14.6.2. One Click Linked Data Generation & Deployment</h3> <p>The following steps provide a one-click guide for publishing ODBC- or JDBC-accessible RDBMS data in RDF Linked Data form, using the "Generate & Publish" Conductor feature. </p> <ol> <li>Go to http://<cname>:port/conductor ;</li> <li>Log in as user dba (or another user with DBA privileges);</li> <li>Follow menu path Linked Data -> Views; <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="Linked Data Views" src="../images/ui/rd1.png" /> </td> </tr> <tr> <td>Figure: 14.6.2.1. Linked Data Views</td> </tr> </table> </li> <li>In the form presented, perform the following steps: <ol> <li>Select the Database Name Qualifier (e.g., "Demo") that exposes the Tables / Views for this exercise </li> <li>Enter the Base URL to which your URL rewrite rules will be bound (e.g. http://<cname>:8890/Demo)</li> <li>Select specific Tables containing the data to be published (e.g. Demo.demo.Orders and Demo.demo.Products)</li> <li>Click the "Generate & Publish" button</li> </ol> <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="Linked Data Views Generate and Publish" src="../images/ui/rd2.png" /> </td> </tr> <tr> <td>Figure: 14.6.2.1. Linked Data Views Generate and Publish</td> </tr> </table> </li> <li>Virtuoso will perform the entire process of ontology generation, instance data generation, and linked data deployment (re-write rules generation and application).</li> <li>Error messages will be presented if the Wizard encounters problems. If there are no error messages, your Linked Data View declarations and Linked Data publishing activities will have completed successfully. <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="Linked Data View declarations and Linked Data publishing activities" src="../images/ui/rd13.png" /> </td> </tr> <tr> <td>Figure: 14.6.2.1. Linked Data View declarations and Linked Data publishing activities</td> </tr> </table> </li> <li>Optionally, you could also perform one of the following tasks: <ol> <li>Save Data Mappings: when clicked, offers to save the generated Definitions to local file system</li> <li>Save Ontology Mappings: when clicked, offers to save the generated Ontology to local file system</li> <li>Click on the "Cancel" should you want to return to the initial Linked Data View Generation form.</li> </ol> </li> </ol> <br /> <a name="rdfrdfviewgnrwizzard" /> <h3>14.6.3. Manual Linked Data Generation & Deployment using the Conductor's HTML-based wizard</h3> <p>The following step-by guide will lead you through manually publishing ODBC- or JDBC-accessible RDBMS data in RDF Linked Data form, using the Conductor's HTML-based wizard: </p> <ol> <li>Go to http://<cname>:port/conductor</li> <li>Log in as user dba (or another user with DBA privileges)</li> <li>Follow menu path Linked Data -> Views <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="Linked Data Views" src="../images/ui/rd1.png" /> </td> </tr> <tr> <td>Figure: 14.6.3.1. Linked Data Views</td> </tr> </table> </li> <li>In the form presented, perform the following steps: <ol> <li>Select the Database Name Qualifier (e.g., "Demo") that exposes the Tables / Views for this exercise</li> <li>Enter the Base URL to which your URL rewrite rules will be bound (e.g. http://<cname>:8890/Demo)</li> <li>Select specific Tables containing the data to be published (e.g., Demo.demo.Orders and Demo.demo.Products)</li> <li>Click the "Generate via Wizard" button <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="Generate via Wizard" src="../images/ui/rd2.png" /> </td> </tr> <tr> <td>Figure: 14.6.3.1. Generate via Wizard</td> </tr> </table> </li> </ol> </li> <li>At this point, you are presented with the option to edit your column selection. Select the "Edit" link, for example, for table Demo.demo.Products. <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="Column Selection" src="../images/ui/rd3.png" /> </td> </tr> <tr> <td>Figure: 14.6.3.1. Column Selection</td> </tr> </table> </li> <li>For images or other binary data in MIME formats to be revealed as anything other than generic "binary objects", you must map large varbinary types to the appropriate MIME types like image/gif. To do so, select the Edit link for Binding/MIME Type of the relevant table columns. You can: <ul> <li>Leave the Binding/MIME Type literal; or</li> <li>Set to skip, such that the column will not be used in RDF generation; or </li> <li>Select the binary object value in order for the column to be referenced as binary.</li> </ul> <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="Binding/MIME Types" src="../images/ui/rd14.png" /> </td> </tr> <tr> <td>Figure: 14.6.3.1. Binding/MIME Types</td> </tr> </table> </li> <li>After finishing with your changes click the Save button, or cancel the changes and go back by clicking the Cancel button.</li> <li>Make sure you click the "Next" button.</li> <li>At this point, the Linked Data View Definition form will let you Select Generation Targets options: <ol> <li>Data Source Ontology Mappings</li> <li>Instance Data View Mappings</li> <li>VoID statistic</li> </ol> <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="Generation Targets options" src="../images/ui/rd15.png" /> </td> </tr> <tr> <td>Figure: 14.6.3.1. Generation Targets options</td> </tr> </table> </li> <li>Make sure you click the "Next" button.</li> <li>Based on your selections in the prior form, the Linked Data View Definition Deployment Options form will be offered: <ol> <li>Data Source Ontology Rules</li> <li>Instance Data Rules </li> </ol> <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="Generation Targets options" src="../images/ui/rd4.png" /> </td> </tr> <tr> <td>Figure: 14.6.3.1. Generation Targets options</td> </tr> </table> </li> <li>Select the desired option(s) and click the "Prepare to Execute" button which unveils a generated Instance Data and/or Ontology form. <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="Instance Data and/or Ontology" src="../images/ui/rd5.png" /> </td> </tr> <tr> <td>Figure: 14.6.3.1. Instance Data and/or Ontology</td> </tr> </table> </li> <li>Click the Execute button and Virtuoso will: <ol> <li>Apply the generated declarations (instance data and ontology) to your Virtuoso instance</li> <li>Publish / Deploy declarations that expose the Wizard-generated Rewrite Rules and associated endpoints. <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="Publishing / Deployment declarations" src="../images/ui/rd6.png" /> </td> </tr> <tr> <td>Figure: 14.6.3.1. Publishing / Deployment declarations</td> </tr> </table> </li> </ol> </li> <li>Optionally, you can also perform one of the following tasks: <ol> <li>Save Data Mappings: when clicked, offers to save the generated Definitions to local file system</li> <li>Save Ontology Mappings: when clicked, offers to save the generated Ontology to local file system</li> <li>Export as WebDAV resource: exports the selected objects/items as a WebDAV resource: <ul> <li>Click "Browse"</li> <li>Enter a WebDAV resource and click the "Select" button.</li> </ul> <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="WebDAV resource" src="../images/ui/rd7.png" /> </td> </tr> <tr> <td>Figure: 14.6.3.1. WebDAV resource</td> </tr> </table> </li> </ol> <p>Note, the WebDAV resource path value will be shown in the WebDAV location field.</p> </li> <li>Then click the "Save Data Mappings" or "Save Ontology Mappings" button, to complete the option task of saving your generated (or edited) view declarations. <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="WebDAV resource" src="../images/ui/rd8.png" /> </td> </tr> <tr> <td>Figure: 14.6.3.1. WebDAV resource</td> </tr> </table> </li> <li>Error messages will be presented if the Wizard encounters problems. If there are no error messages, your RDF view declarations and Linked Data publishing activities will have completed successfully. <table class="figure" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img alt="RDF view declarations and Linked Data publishing activities Finish" src="../images/ui/rd9.png" /> </td> </tr> <tr> <td>Figure: 14.6.3.1. RDF view declarations and Linked Data publishing activities Finish</td> </tr> </table> </li> <li>Click on Cancel to return to the initial Linked Data View Generation form.</li> </ol> <br /> <table border="0" width="90%" id="navbarbottom"> <tr> <td align="left" width="33%"> <a href="rdfviews.html" title="Linked Data Views over RDBMS Data Source">Previous</a> <br />Linked Data Views over RDBMS Data Source</td> <td align="center" width="34%"> <a href="rdfandsparql.html">Chapter Contents</a> </td> <td align="right" width="33%"> <a href="rdfviewsenterpr.html" title="Examples of Linked Data Views">Next</a> <br />Examples of Linked Data Views</td> </tr> </table> </div> <div id="footer"> <div>Copyright© 1999 - 2009 OpenLink Software All rights reserved.</div> <div id="validation"> <a href="http://validator.w3.org/check/referer"> <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /> </a> <a href="http://jigsaw.w3.org/css-validator/"> <img src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" height="31" width="88" /> </a> </div> </div> </body> </html>