---+ Automated Generation of Linked Data Views over Relational Data Sources with Virtuoso The proliferation of relational databases across enterprises and behind Web sites makes them a vital data source for the burgeoning Linked Data Web. The process of publishing Linked Data from these sources needs to be as unobtrusive as possible, and must preserve and enhance the traditional virtues of relational database management systems (RDBMS) such as: * Scalability * Security * Analytical Expressiveness of SQL * Separation of Data Storage from Data Access via ODBC, JDBC, ADO.NET, and other call level interfaces (CLIs) To this end, Virtuoso includes an HTML-based Wizard interface for dynamically generating & publishing RDF-based Linked Data -- essentially RDF-based VIEWs -- from relational data sources. Note: In the Open Source Edition, this can only be used over locally-stored, Virtuoso-based SQL data. With the Commercial Edition, local or remote ODBC- or JDBC-accessible data sources can also be exposed as RDF-based Linked Data. %TOC% ---++ How to Publish RDF-based Linked Data VIEWs of Relational Data 1 Check to ensure the [[https://virtuoso.openlinksw.com/download/][cartridges_dav.vad]] and [[https://virtuoso.openlinksw.com/download/][fct_dav.vad]] VAD packages are installed using the System Admin -> Packages tab of the Virtuoso Conductor. * If not yet present, use the Install button to the right of the package to install now. 1 If the data is hosted in the same Virtuoso instance, skip to the next step. 1 Identify the ODBC or JDBC data sources that host the data you seek to publish. 1 Attach/Link TABLEs and/or VIEWs from the external data sources into Virtuoso via their Data Source Names (DSNs). 1 In the Virtuoso schema, locate the local and/or linked TABLEs and/or VIEWs that hold the data you wish to publish. 1 Use the Linked Data publishing Wizard to produce a Data Source Ontology and associated Instance Data. 1 Configure Endpoints and Re-write Rules to disambiguate data object (resource) identity and description through HTTP-based content negotiation. 1 Expose the Data Source Ontology and associated Instance Data in Linked Data form through those Endpoints and Re-write Rules. These steps may be largely automated (the [[#OneClickLinkedDataGenerationAndDeployment][One-Click Deployment]] below), or performed manually ([[#ManualLinkedDataGenerationAndDeployment][Using the Conductor's HTML-based Wizard]] further down). #OneClickLinkedDataGenerationAndDeployment ---+++ One-Click Linked Data Generation & Deployment 1 Go to http://<cname>:port/conductor. Note, the appropriate cname (hostname) and port number for dereferencing URIs must be set for the [[http://docs.openlinksw.com/virtuoso/databaseadmsrv.html#ini_URIQA][URIQA DefaultHost]] Virtuoso configuration parameter before creating the Linked Data RDF views. 1 Log in as user dba (or another user with DBA privileges) 1 Follow menu path RDF -> Linked Data Views %BR%%BR%%BR%%BR% 1 In the form presented, perform the following steps: %BR%%BR%%BR%%BR% 1 Select the Database Name Qualifier (e.g., "Demo") that exposes the Tables / Views for this exercise 1 Enter the Base URL to which your URL rewrite rules will be bound (e.g., http://<cname>:8890/Demo) 1 Select the specific Tables containing the data to be published (e.g., Demo.demo.Shippers and Demo.demo.Suppliers) 1 Click the Generate & Publish button 1 Virtuoso will perform the entire process of ontology generation, instance data generation, and linked data deployment (re-write rules generation and application). 1 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. %BR%%BR%%BR%%BR% 1 Optionally, you can also perform one of the following tasks: * Save Data Mappings when clicked, offers to save the generated Definitions to local file system * Save Ontology Mappings when clicked, offers to save the generated Ontology to local file system * Click on the "Cancel" button to return to the initial Linked Data View Generation form. #ManualLinkedDataGenerationAndDeployment ---+++ Manual Linked Data Generation & Deployment using the Conductor's HTML-based wizard 1 Go to http://<cname>:port/conductor 1 Log in as user dba (or another user with DBA privileges) 1 Follow menu path Linked Data -> Views (in previous versions, this path was Database -> Linked Data Views) %BR%%BR%%BR%%BR% 1 In the form presented, perform the following steps: %BR%%BR%%BR%%BR% 1 Select the Database Name Qualifier (e.g., "Demo") that exposes the Tables / Views for this exercise 1 Enter the Base URL to which your URL rewrite rules will be bound (e.g., http://<cname>:8890/Demo) 1 Select the specific Tables containing the data to be published (e.g., Demo.demo.Shippers and Demo.demo.Suppliers) 1 Click the Generate via Wizard button 1 At this point, you are presented with the option to edit your column selection. Select the "Edit" link, for example, for table Demo.demo.Shippers. %BR%%BR%%BR%%BR% 1 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: * Leave the Binding/MIME Type literal; or * Set to skip, such that the column will not be used in RDF generation; or * Select the binary object value in order for the column to be referenced as binary. %BR%%BR%%BR%%BR% 1 After finishing with your changes click the Save button, or cancel the changes and go back by clicking the Cancel button. 1 Make sure you click the "Next" button. 1 At this point, the Linked Data View Definition form will let you Select Generation Targets options: %BR%%BR%%BR%%BR% * Data Source Ontology Mappings * Instance Data View Mappings * [[http://www.w3.org/TR/void/][VoID]] statistic 1 Make sure you click the "Next" button. 1 Based on your selections in the prior form, the Linked Data View Definition Deployment Options form will be offered: * Data Source Ontology Rules * Instance Data Rules %BR%%BR%%BR%%BR% 1 Select the desired option(s) and click the "Prepare to Execute" button which unveils a generated Instance Data and/or Ontology form. %BR%%BR%%BR%%BR% 1 Click the Execute button and Virtuoso will: 1 Apply the generated declarations (instance data and ontology) to your Virtuoso instance 1 Publish / Deploy declarations that expose the Wizard-generated Rewrite Rules and associated endpoints. %BR%%BR%%BR%%BR% 1 Optionally, you can also perform one of the following tasks: 1 Save Data Mappings: when clicked, offers to save the generated Definitions to local file system 1 Save Ontology Mappings: when clicked, offers to save the generated Ontology to local file system 1 Export as WebDAV resource: exports the selected objects/items as a WebDAV resource: 1 Click Browse 1 Enter a WebDAV resource and click the Select button. %BR%%BR%%BR%%BR% Note, the WebDAV resource path value will be shown in the WebDAV location field. 1 Then click the "Save Data Mappings" or "Save Ontology Mappings" button, to complete the option task of saving your generated (or edited) view declarations. %BR%%BR%%BR%%BR% 1 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. %BR%%BR%%BR%%BR% 1 Click on Cancel to return to the initial Linked Data View Generation form. ---++ Creating Linked Data Views over Remote Data Sources (Virtuoso Commercial Edition only!) * [[VirtDB2RDFViewUI][Creating Linked Data Views over DB2 Databases]] * [[VirtInfRDFViewUI][Creating Linked Data Views over Informix Databases]] * [[VirtIngRDFViewUI][Creating Linked Data Views over Ingres Databases]] * [[VirtJdbcRDFViewUI][Creating Linked Data Views over JDBC Data Sources]] * [[VirtMSSQLRDFViewUI][Creating Linked Data Views over Microsoft SQL Server Databases]] * [[VirtMysRDFViewUI][Creating Linked Data Views over MySQL Databases]] * [[VirtOdbcRDFViewUI][Creating Linked Data Views over ODBC Data Sources]] * [[VirtOraRDFViewUI][Creating Linked Data Views over Oracle Databases]] * [[VirtPgrRDFViewUI][Creating Linked Data Views over PostgreSQL Databases]] * [[VirtProgressRDFViewUI][Creating Linked Data Views over Progress Databases]] * [[VirtSybRDFViewUI][Creating Linked Data Views over Sybase Databases]] ---++ Related * [[VOSSQL2RDF][Mapping SQL Data to RDF]]