www.openlinksw.com
docs.openlinksw.com

Book Home

Contents
Preface

Overview
Installation Guide
Quick Start & Tours
Sample ODBC & JDBC Applications
Conceptual Overview
Administration
Data Access Interfaces
SQL Reference
SQL Procedure Language Guide
Database Event Hooks
Data Replication, Synchronization and Transformation Services
Web Application Development
XML Support
RDF Data Access and Data Management
Data Representation
SPARQL
Extensions
RDF Graphs Security
Linked Data Views over RDBMS Data Source
Automated Generation of Linked Data Views over Relational Data Sources
Virtuoso R2RML Support
Examples of Linked Data Views
RDF Insert Methods in Virtuoso
RDFizer Middleware (Sponger)
Virtuoso Faceted Browser Installation and configuration
Virtuoso Faceted Web Service
Linked Data
Inference Rules & Reasoning
RDF Performance Tuning
RDF Data Access Providers (Drivers)
Web Services
Runtime Hosting
Internet Services
Free Text Search
TPC C Benchmark Kit
Using Virtuoso with Tuxedo
Appendix
Virtuoso Functions Guide

Abstract

Starting with version 4.5, Virtuoso provides built-in support for SPARQL, the standard query language for RDF and the semantic web. Adoption of SPARQL with Virtuoso is effortless, as any existing SQL client applications and stored procedures can take advantage of SPARQL simply by using it in the place of or inside SQL queries. Additionally, Virtuoso offers the standard SPARQL protocol to HTTP clients. From version 5.0.7, Virtuoso can be used as the RDF store/query processor of the Jena and Sesame RDF frameworks.

This chapter discusses Virtuoso's RDF triple storage and query capabilities. This discusses storing RDF data as well as mapping existing relational data into RDF for SPARQL access. Numerous SPARQL language extensions and standard compliance are covered.

In this chapter SPARQL and SPASQL are used as siblings.

Table of Contents

14.1. Data Representation
14.1.1. IRI_ID Type
14.1.2. RDF_BOX Type
14.1.3. RDF_QUAD and other tables
14.1.4. Short, Long and SQL Values
14.1.5. Programatically resolving DB.DBA.RDF_QUAD.O to SQL
14.1.6. Special Cases and XML Schema Compatibility
14.1.7. SQL Compiler Support - QUIETCAST option
14.1.8. Dynamic Renaming of Local IRI's
14.2. SPARQL
14.2.1. SPARQL Implementation Details
14.2.2. Query Constructs
14.2.3. SPARQL Web Services & APIs
14.2.4. Troubleshooting SPARQL Queries
14.2.5. SPARQL Inline in SQL
14.2.6. API Functions
14.2.7. Useful Internal Functions
14.2.8. Default and Named Graphs
14.2.9. Calling SQL from SPARQL
14.2.10. SPARQL DESCRIBE
14.2.11. Transitivity in SPARQL
14.2.12. Supported SPARQL-BI "define" pragmas
14.2.13. Built-in bif functions
14.2.14. Sending SOAP Requests to Virtuoso SPARQL Endpoint
14.3. Extensions
14.3.1. Using Full Text Search in SPARQL
14.3.2. SPARUL -- an Update Language For RDF Graphs
14.3.3. Business Intelligence Extensions for SPARQL
14.4. RDF Graphs Security
14.4.1. RDF Graph Groups
14.4.2. NOT FROM and NOT FROM NAMED Clauses
14.4.3. Graph-Level Security
14.4.4. Understanding Default Permissions
14.4.5. Initial Configuration of SPARQL Security
14.4.6. Application Callbacks for Graph Level Security
14.5. Linked Data Views over RDBMS Data Source
14.5.1. Introduction
14.5.2. Rationale
14.5.3. Quad Map Patterns, Values and IRI Classes
14.5.4. Configuring RDF Storages
14.5.5. Translation Of SPARQL Triple Patterns To Quad Map Patterns
14.5.6. Describing Source Relational Tables
14.5.7. Function-Based IRI Classes
14.5.8. Connection Variables in IRI Classes
14.5.9. Lookup Optimization -- BIJECTION and RETURNS Options
14.5.10. Join Optimization -- Declaring IRI Subclasses
14.5.11. RDF Metadata Maintenance and Recovery
14.5.12. Split Linked Data View
14.5.13. Linked Data Views and recursive FK relationships
14.6. Automated Generation of Linked Data Views over Relational Data Sources
14.6.1. Introduction
14.6.2. One Click Linked Data Generation & Deployment
14.6.3. Manual Linked Data Generation & Deployment using the Conductor's HTML-based wizard
14.7. Virtuoso R2RML Support
14.7.1. What is R2RML?
14.7.2. Why use it?
14.7.3. How do I use it with Virtuoso?
14.7.4. Known Limitations
14.7.5. Generating an R2RML Linked Data View from ISQL
14.7.6. Virtuoso Conductor R2RML Import Wizard
14.7.7. Generate Transient and/or Persistent Linked Data Views atop Remote Relational Data Sources Using Conductor
14.8. Examples of Linked Data Views
14.8.1. Simple Mapping Example -- Northwind Linked Data View
14.8.2. BSBM to RDF
14.8.3. TPCH to RDF
14.8.4. TPCD to RDF
14.8.5. Thalia to RDF
14.8.6. Musicbrainz to RDF
14.8.7. Virtuoso ODS to RDF
14.8.8. Sybase using demonstration 'pubs2' database
14.8.9. Virtuoso's Northwind based Demo Database (Tutorials variant) to RDF
14.8.10. SQL Server's Northwind Demo Database
14.8.11. Oracle Demonstration 'HR' Database
14.8.12. Oracle using the demonstration 'Human Resources' database
14.8.13. DB2 using the demonstration 'Sample' database
14.8.14. Informix using demonstration 'Stores' database
14.8.15. Ingres using demonstration 'Tutorial' database
14.8.16. Progress (SQL-89) using demonstration 'iSports' database
14.8.17. Progress (SQL-92) using demonstration 'iSports' database
14.9. RDF Insert Methods in Virtuoso
14.9.1. Using API functions
14.9.2. SPARQL endpoint REST API
14.9.3. HTTP PUT using Content-Type: application/rdf+xml
14.9.4. SPARQL Insert using LOAD
14.9.5. SPARQL Insert via /sparql endpoint
14.9.6. SPARQL Insert via SPARQL endpoint REST API and ODS wiki
14.9.7. Using WebDAV
14.9.8. Using Virtuoso Crawler
14.9.9. Using SPARQL Query and Sponger (i.e. we Fetch the Network Resources in the FROM Clause or values for the graph-uri parameter in SPARQL protocol URLs)
14.9.10. Using Virtuoso PL APIs
14.9.11. Using SIMILE RDF Bank API
14.9.12. Using RDF NET
14.9.13. Using the RDF Proxy (Sponger) Service
14.10. RDFizer Middleware (Sponger)
14.10.1. What Is The Sponger?
14.10.2. Why is it Important?
14.10.3. How Does It Work?
14.10.4. Installation Steps
14.10.5. Using The Sponger
14.10.6. Consuming the Generated RDF Structured Data
14.10.7. RDF Cartridges Use Cases
14.10.8. Cartridge Architecture
14.10.9. Sponger Programmers Guide
14.10.10. Sponger Usage Examples
14.11. Virtuoso Faceted Browser Installation and configuration
14.11.1. Prerequisites
14.11.2. Pre Installation
14.11.3. VAD Package Installation
14.11.4. Post Installation
14.11.5. URI Labels
14.11.6. Usage Statistics
14.11.7. Examples
14.12. Virtuoso Faceted Web Service
14.12.1. Customizing
14.12.2. Examples
14.12.3. WebService Interface
14.13. Linked Data
14.13.1. IRI Dereferencing For FROM Clauses, "define get:..." Pragmas
14.13.2. IRI Dereferencing For Variables, "define input:grab-..." Pragmas
14.13.3. URL rewriting
14.13.4. Examples of other Protocol Resolvers
14.13.5. Faceted Views over Large-Scale Linked Data
14.14. Inference Rules & Reasoning
14.14.1. Introduction
14.14.2. Making Rule Sets
14.14.3. Changing Rule Sets
14.14.4. Subclasses and Subproperties
14.14.5. OWL sameAs Support
14.14.6. Implementation
14.14.7. Enabling Inferencing
14.14.8. Examples
14.14.9. Identity With Inverse Functional Properties
14.14.10. Inference Rules and SPARQL with Transitivity Option
14.14.11. Inference Rules, OWL Support and Relationship Ontology
14.15. RDF Performance Tuning
14.15.1. General
14.15.2. RDF Index Scheme
14.15.3. Index Scheme Selection
14.15.4. Erroneous Cost Estimates and Explicit Join Order
14.15.5. Get All Graphs
14.15.6. Rename RDF Graph and RDF Graph Groups
14.15.7. Dump and Reload Graphs
14.15.8. Dump Linked Data View Graph to n3
14.15.9. Loading RDF
14.15.10. Using SPARUL
14.15.11. DBpedia Benchmark
14.15.12. RDF Store Benchmarks
14.15.13. Fast Approximate RDF Graph Diff and Patch
14.15.14. RDB2RDF Triggers
14.16. RDF Data Access Providers (Drivers)
14.16.1. Virtuoso Jena Provider
14.16.2. Virtuoso Sesame Provider
14.16.3. Virtuoso Redland Provider