Book Home

Contents
Preface

Overview
Installation Guide
Quick Start & Tours
Sample ODBC & JDBC Applications
Conceptual Overview
Administration
Virtuoso Cluster Operation
Data Access Interfaces
Virtual Database Engine
SQL Reference
Virtuoso Cluster Programming
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
RDF Graphs Security
Automated Generation of RDF Views over Relational Data Sources
RDF Insert Methods in Virtuoso
Integration Middleware
Linked Data
Inference Rules & Reasoning
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 mappping existing relational data into RDF for SPARQL access. Numerous SPARQL language extensions and standard compliance are coverd.

Table of Contents

17.1. Data Representation
17.1.1. IRI_ID Type
17.1.2. RDF_BOX Type
17.1.3. RDF_QUAD and other tables
17.1.4. Short, Long and SQL Values
17.1.5. Special Cases and XML Schema Compatibility
17.1.6. SQL Compiler Support - QUIETCAST option
17.1.7. Dynamic Renaming of Local IRI's
17.2. SPARQL
17.2.1. SPARQL Implementation Details
17.2.2. Query Constructs
17.2.3. SPARQL Web Services & APIs
17.2.4. Troubleshooting SPARQL queries
17.2.5. Extensions
17.2.6. SPARQL Inline in SQL
17.2.7. API Functions
17.2.8. Useful Internal Functions
17.2.9. Default and Named Graphs
17.2.10. Calling SQL from SPARQL
17.2.11. SPARQL DESCRIBE
17.3. RDF Graphs Security
17.3.1. RDF Graph Groups
17.3.2. NOT FROM and NOT FROM NAMED Clauses
17.3.3. Graph-Level Security
17.3.4. Understanding Default Permissions
17.3.5. Initial Configuration of SPARQL Security
17.3.6. Application Callbacks for Graph Level Security
17.4. Automated Generation of RDF Views over Relational Data Sources
17.4.1. Introduction
17.4.2. One Click Linked Data Generation & Deployment
17.4.3. Manual Linked Data Generation & Deployment using the Conductor's HTML-based wizard
17.5. RDF Insert Methods in Virtuoso
17.5.1. HTTP Post using Content-Type: application/sparql-query
17.5.2. HTTP PUT using Content-Type: application/rdf+xml
17.5.3. SPARQL Insert using LOAD
17.5.4. SPARQL Insert via /sparql endpoint
17.5.5. SPARQL Insert via HTTP Post using Content-Type: application/sparql-query and ODS wiki
17.5.6. Using WebDAV
17.5.7. Using Virtuoso Crawler
17.5.8. Using SPARQL Query and Sponger (i.e. we Sponge the Resources in the FROM Clause or values for the graph-uri parameter in SPARQL protocol URLs)
17.5.9. Using Virtuoso PL APIs
17.5.10. Using SIMILE RDF Bank API
17.5.11. Using RDF NET
17.5.12. Using the RDF Proxy (Sponger) Service
17.6. Integration Middleware
17.6.1. RDFizer Middleware (Sponger)
17.6.2. Enterprise Data Access & Integration
17.6.3. RDF Views over RDBMS Data Source
17.7. Linked Data
17.7.1. IRI Dereferencing For FROM Clauses, "define get:..." Pragmas
17.7.2. IRI Dereferencing For Variables, "define input:grab-..." Pragmas
17.7.3. Examples of other Protocol Resolvers
17.8. Inference Rules & Reasoning
17.8.1. Introduction
17.8.2. Making Rule Sets
17.8.3. Changing Rule Sets
17.8.4. Subclasses and Subproperties
17.8.5. OWL sameAs Support
17.8.6. Implementation
17.8.7. Enabling Inferencing
17.8.8. Examples
17.9. Performance Tuning
17.9.1. General
17.9.2. Index Scheme Selection
17.9.3. Erroneous Cost Estimates and Explicit Join Order
17.9.4. Loading
17.9.5. Using SPARUL
17.9.6. DBpedia Benchmark
17.9.7. RDF Store Benchmarks
17.10. RDF Data Access Providers (Drivers)
17.10.1. Virtuoso Jena Provider
17.10.2. Virtuoso Sesame Provider
17.10.3. Virtuoso Redland Provider