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
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
Web Services
Runtime Hosting
Internet Services
Free Text Search
TPC C Benchmark Kit
Using Virtuoso with Tuxedo
Appendix
Virtuoso Functions Guide

OpenLink Virtuoso Universal Server: Documentation - Contents

1. Overview
1.1. What is Virtuoso?
1.2. Why Do I Need Virtuoso?
1.3. Key Features of Virtuoso
1.3.2. XML Document Storage & Creation
1.3.3. Web Page Hosting
1.3.4. Web Services Creation & Hosting
1.3.5. WebDAV Compliant Web Store
1.3.6. Content Replication & Synchronization
1.3.7. Transparent Access To Heterogeneous Data
1.3.8. Mail Delivery & Retrieval Services
1.3.9. NNTP Aggregation & Serving
1.4. Virtuoso 6 FAQ
1.4.1. What is the storage cost per triple?
1.4.2. What is the cost to insert a triple (for the insertion itself, as well as for updating any indices)?
1.4.3. What is the cost to delete a triple (for the deletion itself, as well as for updating any indices)?
1.4.4. What is the cost to search on a given property?
1.4.5. What data types are supported?
1.4.6. What inferencing is supported?
1.4.7. Is the inferencing dynamic, or is an extra step required before inferencing can be used?
1.4.8. Do you support full-text search?
1.4.9. What programming interfaces are supported? Do you support standard SPARQL protocol?
1.4.10. How can data be partitioned across multiple servers?
1.4.11. How many triples can a single server handle?
1.4.12. What is the performance impact of going from the billion to the trillion triples?
1.4.13. Do you support additional metadata for triples, such as time-stamps, security tags etc?
1.4.14. Should we use RDF for our large metadata store? What are the alternatives?
1.4.15. How multithreaded is Virtuoso?
1.4.16. Can multiple servers run off a single shared disk database?
1.4.17. Can Virtuoso run on a SAN?
1.4.18. How does Virtuoso join across partitions?
1.4.19. Does Virtuoso support federated triple stores? If there are multiple SPARQL end points, can Virtuoso be used to do queries joining between these?
1.4.20. How many servers can a cluster contain?
1.4.21. How do I reconfigure a cluster, adding and removing machines, etc?
1.4.22. How will Virtuoso handle regional clusters?
1.4.23. Is there a mechanism for terminating long running queries?
1.4.24. Can the user be asynchronously notified when a long running query terminates?
1.4.25. How many concurrent queries can Virtuoso handle?
1.4.26. What is the relative performance of SPARQL queries vs native relational queries?
1.4.27. Does Virtuoso Support Property Tables?
1.4.28. What performance metrics does Virtuoso offer?
1.4.29. What support do you provide for concurrent/multithreaded operation? Is your interface thread-safe?
1.4.30. What level of ACID properties is supported?
1.4.31. Do you provide the ability to atomically add a set of triples, where either all are added or none are added?
1.4.32. Do you provide the ability to add a set of triples, respecting the isolation property (so concurrent accessors either see none of the triple values, or all of them)?
1.4.33. What is the time to start a database, create/open a graph?
1.4.34. What sort of security features are built into Virtuoso?
1.5. Tips and Tricks
1.5.1. How Can I convert triples with geo properties to geometries to use spartial query?
1.5.2. How Can I execute SPARQL queries containing '$' character using ISQL?
1.5.3. How can I find on which table deadlocks occur?
1.5.4. How Can I configure parameters to avoid out of memory error?
1.5.5. What are "Generate RDB2RDF triggers" and "Enable Data Syncs with Physical Quad Store" Linked Data Views options?
1.5.6. How to Manage Date Range SPARQL queries?
1.5.7. How can I see which quad storages exist and in which quad storage a graph resides?
1.5.8. Can I drop and re-create the DefaultQuadStorage?
1.5.9. How to display only some information from RDF graph?
1.5.10. Is it possible to have the SPARQL endpoint on a different port than the Conductor?
1.5.11. How to enable the Virtuoso Entity Framework 3.5 ADO.Net Provider in Visual Studio 2010?
1.5.12. How Can I Control the normalization of UNICODE3 accented chars in free-text index?
1.5.13. How Can I define graph with virt:rdf_sponger option set to "on"?
1.5.14. How do I use SPARUL to change a selection of property values from URI References to Literals?
1.5.15. How is a Checkpoint performed against a Virtuoso Clustered Server?
1.5.16. How can I use CONSTRUCT with PreparedStatements?
1.5.17. How can perform SPARQL Updates without transactional log size getting exceed?
1.5.18. How can I write custom crawler using PL?
1.5.19. How Can I Get an exact mapping for a date?
1.5.20. How Can I Get certificate attributes using SPARQL?
1.5.21. How can I make Multi Thread Virtuoso connection using JDBC??
1.5.22. How Do I Perform Bulk Loading of RDF Source Files into one or more Graph IRIs?
1.5.23. How to exploit RDF Schema and OWL Inference Rules with minimal effort?
1.5.24. How can I dump arbitrary query result as N-Triples?
1.5.25. How do I bind named graph parameter in prepared statement?
1.5.26. How can I insert binary data to Virtuoso RDF storage in plain queries and with parameter binding via ADO.NET calls?
1.5.27. How can I insert RDF data from Visual Studio to Virtuoso?
1.5.28. How does default describe mode work?
1.5.29. What should I do if the Virtuoso Server is not responding to HTTP requests?
1.5.30. What CXML params are supported for the SPARQL URL pattern?
1.5.31. How can I replicate all graphs?
1.5.32. What is best method to get a random sample of all triples for a subset of all the resources of a SPARQL endpoint?
1.5.33. How can I replicate all graphs?
1.5.34. How can I use SPARQL to make Meshups?
1.5.35. How can I use the net_meter utility before starting the ingestion to a cluster?
1.5.36. How can I use the LOAD command to import RDF data?
1.5.37. How can I delete graphs using stored procedure?
1.5.38. How can I use SPARUL to add missing triples to a Named Graph?
1.5.39. How can I use the SPARQL IF operator for SPARQL-BI endpoint?
1.5.40. How can I handle checkpoint condition?
1.5.41. How can I incorporate Content Negotiation into RDF bulk loaders?
1.5.42. Virtuoso Linked Data Deployment In 3 Simple Steps?
1.5.43. What are the differences between create, drop, clear and delete Graph?
1.5.44. How can I perform search for predicate values?
1.5.45. How can I use INSERT via CONSTRUCT Statements?
1.5.46. How to clear graphs which are related to empty graphs?
1.5.47. How can I use sub-queries to enable literal values based joins?
1.5.48. How can I execute query with labels preference order?
1.5.49. How can I get object datatype?
1.5.50. How Can I Backup and Restore individual table(s) and individual index(s)?
1.5.51. What bif:contains free-text options can I use?
1.5.52. What SPARQL Endpoint Protection Methods can I use?
1.5.53. How do I assign SPARQL role to SQL user?
1.5.54. How Do I Gecode Data?
1.5.55. How Can I Delete a Specific Triple Across Graphs?
1.5.56. How Do I Use NOT EXISTS in SPARQL Query?
1.5.57. How Do I Use MINUS in SPARQL Query?
1.5.58. How Do I Use Transitive SPARQL Query Options and Exploit Inference Rules?
1.5.59. What is the difference between the functions SAMPLE, GROUP_CONCAT and GROUP_DIGEST?
1.5.60. How Do I use CONSTRUCT with objects which are value of aggregate function?
1.5.61. How Do I Clean Up Errant Data using SPARQL Update Language?
1.5.62. How to Use SPARQL to add missing isDefinedBy relations to an Ontology?
1.5.63. How Can I execute load of sql dump from jdbc?
1.5.64. How Can I Use MODIFY to update triples?
1.5.65. How Can I execute INSERT/DELETE (SPARUL) statements against a WebID? protected SPARQL endpoint?
1.5.66. How can I make HTTP Logging and Recording in Virtuoso?
1.5.67. Quad Store Data Loading via Virtuoso's In-built Content Crawler?
1.5.68. What is the ShortenLongURIs Virtuoso configuration parameter?
1.5.69. How Can I send SOAP requests to Virtuoso SPARQL Endpoint?
1.5.70. How Can I Delete Triples containing blank nodes?
1.5.71. How Can I Get a full explain plan for a simple SPARQL query?
1.5.72. How Can I Use Expressions inside CONSTRUCT, INSERT and DELETE {...} Templates?
1.5.73. How to optimize bif:dateadd in SPARQL query using selective index-friendly filter?
1.5.74. How can I Determine the data usage across a Virtuoso instance?
1.5.75. How to discover the capabilities of a SPARQL endpoint to enhancing SPARQL-FED usage from Virtuoso instances?
1.5.76. How to split a urlencoded ";-" separated list of urls in a SPARQL query?
1.5.77. How to Update Large SPARQL Data avoiding due to database checkpoint abortion?
2. Installation Guide
2.1. Virtuoso on All platforms Commmon Specifics
2.1.1. Installation Requirements
2.1.2. Operational Requirements
2.1.3. Operating System Support
2.1.4. Limits
2.2. Virtuoso for Windows
2.2.1. Before You Start
2.2.2. Getting To Know Your Virtuoso Components
2.2.3. Installation Steps
2.2.4. Post Installation
2.2.5. Starting Your Virtuoso Server
2.2.6. Creating and Deleting Virtuoso Services
2.2.7. Configuring Virtuoso Client Components
2.2.8. Default passwords
2.3. Virtuoso for Linux (Enterprise Edition)
2.3.1. Before You Install
2.3.2. Installation Process
2.3.3. Post Installation
2.3.4. Starting Virtuoso Automatically on Reboot
2.3.5. Default passwords
2.4. Virtuoso for Unix (Enterprise Edition)
2.4.1. Before You Install
2.4.2. Installation Process
2.4.3. Post Installation
2.4.4. Starting Virtuoso Automatically on Reboot
2.4.5. Default passwords
2.5. Virtuoso for Unix (Personal Edition)
2.5.1. Installation
2.5.2. Post Installation
2.5.3. Configuration
2.5.4. Demo Database
2.6. Virtuoso for Mac OS X
2.6.1. Before You Install
2.6.2. Virtuoso Drag and Drop Installer for Mac OS X
2.6.3. Installing Virtuoso 6 or earlier
2.6.4. Configuration
2.6.5. Post Installation
2.6.6. Configuring an ODBC Data Source
2.6.7. Testing an ODBC Data Source
2.6.8. Default passwords
2.6.9. Demo Database
2.7. OpenLink License Management
2.7.1. License Files
2.7.2. License Manager
2.7.3. Debugging License Problems
2.8. Virtuoso ADO.Net Data Grid Form Application
2.9. Using Visual Studio 2008 to Build an Entity Frameworks based Windows Form Application
2.9.1. Pre-requisites
2.9.2. Create the School database and schema
2.9.3. Generating the School Entity Data Mode
2.9.4. Querying Entities and Associations
2.9.5. Inserting and Updating Data
2.10. Using Visual Studio 2008 to Build an ADO.NET Data Services based Application
2.10.1. Introduction
2.10.2. Getting Started: Creating Data Services
2.10.3. Creating a Data Service using the ADO.NET Entity Framework
2.11. Windows Form Application for accessing Virtuoso RDF data via SPASQL using the Virtuoso ADO.Net Provider
2.11.1. Pre-requisites
2.11.2. Creating the Application
2.11.3. Extending RDFDemo to Allow Dereferencing of External IRIs
2.11.4. Extending RDFDemo to Display More Compact Labels
2.11.5. Modifying the Northwind Ontology to Add Labels
2.11.6. Extending RDFDemo to Display Images and Longer Text Fields.
2.11.7. Extending RDFDemo To Make The Property Labels Clickable
2.12. Creating a Web Browser Application to Access RDF Data Using The Virtuoso ADO.Net Provider
2.12.1. Pre-requisites
2.12.2. Creating the Web Service
2.12.3. Creating the Browser Application
2.12.4. Deploy With IIS
2.13. Creating a Silverlight Application to consume the service
2.13.1. Pre-requisites
2.13.2. Creating the Application for Silverlight.
2.14. Creating A Simple .NET RIA Services Application To Display Data From Virtuoso
2.14.1. Pre-requisites
2.14.2. Creating the Application
2.14.3. Displaying RDF Data
2.14.4. Next Steps
2.15. Creating a .Net RIA Services Application That Will Update Virtuoso Data
2.15.1. Pre-requisites
2.15.2. Creating the Application
2.15.3. Propagate Updates to Virtuoso
2.16. Cluster Installation and Config
2.16.1. Creating New Cluster Setup
2.16.2. Backup and Restore
2.16.3. Cluster Configuration
2.16.4. Troubleshooting Tips
3. Quick Start & Tours
3.1. Where to Start
3.1.1. Default Passwords
3.1.2. Post-Installation Sanity Check
3.1.3. Administering Your Virtuoso Installation
3.2. Client Connections
3.2.1. ODBC
3.2.2. JDBC
3.2.3. OLEDB
3.3. Virtual Database Server
3.3.1. Configuring Your ODBC Data Sources
3.3.2. Datasource Check
3.3.3. Demo Datasource Query
3.3.4. Linking Remote Tables Into Virtuoso
3.3.5. Listing or Unlinking Tables
3.3.6. Querying Linked Tables
3.4. Web Server
3.4.1. Virtual Directories
3.4.2. Multi Homing
3.5. WebDAV
3.5.1. Web Folders
3.6. Web Services
3.7. Exposing Persistent Stored Modules as Web Services
3.7.1. Publishing Stored Procedures as Web Services
3.7.2. XML Query Templates
3.7.3. Publishing VSE's as Web Services
3.8. VSMX - Virtuoso Service Module for XML
3.9. SQL to XML
3.9.4. FOR XML Execution Modes
3.9.5. Tables With XML Columns
3.10. NNTP
3.10.1. NNTP Server Setup
3.10.2. Local & Remote Groups
3.10.3. NNTP Client Setup
3.11. Dynamic Web Pages
3.12. VSP Examples
3.12.1. Simple HTML FORM usage
3.12.2. Manipulating Database Data in VSP
3.12.3. Simple Tutorial
3.13. Third-Party Runtime Typing, Hosting & User Defined Types
3.14. Troubleshooting Tips
3.14.1. General Tips
3.14.2. DBMS Server will not start
3.14.3. Case Mode
4. Sample ODBC & JDBC Applications
4.1. Binary & Source File Locations
4.1.1. ODBC Demonstration Applications
4.1.2. JDBC Demonstration Applications
4.2. Sample ODBC Applications
4.2.1. Mac OS X
4.2.2. Windows 95/98/NT/2000
4.2.3. Linux & UNIX
4.2.4. MS DTC ODBC Sample Application
4.2.5. MS DTC OLE DB Sample Application
4.3. Sample JDBC Applications & Applets
4.3.1. JDBCDemo Java Application
4.3.2. ScrollDemo2 Java Application
4.3.3. ScrollDemo2 Java Applet
4.3.4. JBench Application
4.3.5. JTA Demo Application
5. Conceptual Overview
5.1. Core Database Engine
5.1.1. Logical Data Model
5.1.2. Data Types
5.1.3. Virtuoso Column Store
5.1.4. Explicit Vectoring of Procedural Code
5.1.5. Locking
5.1.6. Internationalization & Unicode
5.1.7. Creating A Collation
5.2. Virtual Database (VDB) Engine
5.3. Web & Internet Protocol Support
5.4. Web Services Protocol Support
5.5. Architecture
6. Administration
6.1. Database Server Administration
6.1.1. Database
6.1.2. Virtual Database
6.1.3. Virtuoso User Model
6.1.4. VAD - Virtuoso Application Distribution
6.1.5. Data Backup & Recovery
6.1.6. Performance diagnostics
6.1.7. Performance Tuning
6.2. HTML based Administration Console (Conductor) Guide
6.2.1. Virtuoso Conductor Administration
6.2.2. Runtime Hosting
6.2.3. Web Services
6.2.4. WebDAV Administration
6.2.5. Internet Domains
6.2.6. XML Services
6.2.7. Query Tools
6.2.8. Replication & Synchronization
6.2.9. Database Administration
6.2.10. Conductor Linked Data Administration
6.2.11. Conductor News Server Administration
6.3. Virtuoso Cluster Operation
6.3.1. General
6.3.2. Setting up a Cluster
6.3.3. Using Clustering with an Existing Database
6.3.4. Partitioning
6.3.5. Transactions
6.3.6. Administration
6.3.7. Cluster Network Diagnostics and Metrics
6.3.8. Elastic Cluster Operations
6.4. Virtuoso Cluster Fault Tolerance
6.4.1. Introduction
6.4.2. Sample Configuration
6.4.3. Transactions
6.4.4. Dividing Virtuoso Hosts Over Physical Machines
6.4.5. Managing Availability
6.4.6. Optimizing Schema for Fault Tolerance
6.4.7. Interpreting Status Messages
6.4.8. Administration API
6.4.9. RDF Specifics
6.4.10. Fault Tolerance Programming
7. Data Access Interfaces
7.1. ADO.Net Data Provider
7.1.1. Introduction
7.1.2. Installation & Configuration
7.1.3. Programmers Guide
7.2. Interactive SQL Utility
7.2.1. Invoking ISQL
7.2.2. ISQL Commands
7.2.3. ISQL Macro Substitution
7.2.4. ISQL Variables
7.2.5. Using isql as a General Purpose Test Driver
7.3. Virtuoso Driver for ODBC
7.3.1. Windows ODBC Driver Configuration
7.3.2. Using X509 Certificates With ODBC Connection
7.3.3. Manually configuring a Virtuoso ODBC DSN on Unix
7.3.4. ODBC Compliance
7.3.5. Virtuoso Scrollable Cursor Engine
7.3.6. Effect of Connection & Statement Options
7.3.7. Efficient Use of API
7.3.8. Executing SQL from Python script
7.3.9. Extensions
7.4. Virtuoso Driver for JDBC
7.4.1. Virtuoso Drivers for JDBC Packaging
7.4.2. Virtuoso Driver For JDBC URL Format
7.4.3. Virtuoso Driver JDBC 3.0 features
7.4.4. Virtuoso Driver JDBC 4.0 features
7.4.5. Installation & Configuration Steps
7.4.6. Virtuoso JDBC Driver Hibernate Support
7.5. OLE DB Provider for Virtuoso
7.5.1. Using the OLE DB Provider for Virtuoso
7.5.2. Known Limitations
7.5.3. Data Types
7.5.4. Metadata
7.5.5. Supported Interfaces
7.5.6. Data Source Objects
7.5.7. Sessions
7.5.8. Rowsets
7.6. Virtuoso In-Process Client
7.7. Unix Domain Socket Connections
7.8. Virtuoso Data Access Clients Connection Fail over and Load Balancing Support
7.8.1. ODBC
7.8.2. ADO.Net
7.8.3. JDBC
7.8.4. OLE DB
7.8.5. Sesame
8. Virtual Database Engine
8.1. Virtual Database (VDB) Engine
8.1.1. The Need for VDB Engines
8.1.2. First Generation Virtual Database Products
8.1.3. VDB Implementation Issues
8.1.4. VDB Engine Components
8.2. Using Microsoft Entity Frameworks to Access Oracle Schema Objects with Virtuoso
8.2.1. Install and configure OpenLink ODBC Driver for Oracle
8.2.2. Install and configure OpenLink Virtuoso Universal Server
8.2.3. Linking Oracle tables into OpenLink Virtuoso
8.2.4. Creating EDM in Visual Studio 2008
8.2.5. Using EDM to create Entity Framework based applications
8.3. Using Microsoft Entity Frameworks to Access Progress Schema Objects with Virtuoso
8.3.1. Install and configure OpenLink ODBC Driver for Progress (SQL-92)
8.3.2. Install and configure OpenLink Virtuoso Universal Server
8.3.3. Linking Progress tables into Virtuoso
8.3.4. Creating EDM in Visual Studio 2008
8.3.5. Manually creating EDM Associations (FKs) for the Progress isports database
8.3.6. Using EDM to create Entity Framework based applications
8.4. Using Microsoft Entity Frameworks to Access Ingres Schema Objects with Virtuoso
8.4.1. Install and configure OpenLink ODBC Driver for Ingres
8.4.2. Install and configure OpenLink Virtuoso Universal Server
8.4.3. Linking Ingres tables into OpenLink Virtuoso
8.4.4. Creating EDM in Visual Studio 2008
8.4.5. Manually creating EDM Associations (FKs) for the Ingres Tutorial database
8.4.6. Using EDM to create Entity Framework based applications
8.5. Using Microsoft Entity Frameworks to Access Informix Schema Objects with Virtuoso
8.5.1. Install and configure OpenLink ODBC Driver for Informix
8.5.2. Install and configure OpenLink Virtuoso Universal Server
8.5.3. Linking Informix tables into OpenLink Virtuoso
8.5.4. Creating EDM in Visual Studio 2008
8.5.5. Using EDM to create Entity Framework based applications
8.6. Using Microsoft Entity Frameworks to Access DB2 Schema Objects with Virtuoso
8.6.1. Install and configure OpenLink ODBC Driver for DB2
8.6.2. Install and configure OpenLink Virtuoso Universal Server
8.6.3. Linking DB2 tables into OpenLink Virtuoso
8.6.4. Creating EDM in Visual Studio 2008
8.6.5. Using EDM to create Entity Framework based applications
8.7. Using Microsoft Entity Frameworks to Access Sybase Schema Objects with Virtuoso
8.7.1. Install and configure OpenLink ODBC Driver for Sybase
8.7.2. Install and configure OpenLink Virtuoso Universal Server
8.7.3. Linking Sybase tables into OpenLink Virtuoso
8.7.4. Creating EDM in Visual Studio 2008
8.7.5. Manually creating EDM Associations (FKs) for the Sybase pubs2 database
8.7.6. Using EDM to create Entity Framework based applications
8.8. Using Microsoft Entity Frameworks to Access MySQL Schema Objects with Virtuoso
8.8.1. Install and configure OpenLink ODBC Driver for MySQL
8.8.2. Install and configure OpenLink Virtuoso Universal Server
8.8.3. Linking MySQL tables into OpenLink Virtuoso
8.8.4. Creating EDM in Visual Studio 2008
8.8.5. Using EDM to create Entity Framework based applications
8.9. Using Microsoft Entity Frameworks to Access PostgreSQL Schema Objects with Virtuoso
8.9.1. Install and configure OpenLink ODBC Driver for PostgreSQL
8.9.2. Install and configure OpenLink Virtuoso Universal Server
8.9.3. Linking PostgreSQL tables into OpenLink Virtuoso
8.9.4. Creating EDM in Visual Studio 2008
8.9.5. Using EDM to create Entity Framework based applications
8.10. Using Microsoft Entity Frameworks to Access ODBC to JDBC Bridge Schema Objects with Virtuoso
8.10.1. Install and configure OpenLink ODBC Driver for ODBC to JDBC Bridge
8.10.2. Install and configure OpenLink Virtuoso Universal Server
8.10.3. Linking ODBC to JDBC Bridge tables into OpenLink Virtuoso
8.10.4. Creating EDM in Visual Studio 2008
8.10.5. Using EDM to create Entity Framework based applications
8.11. Using Microsoft Entity Frameworks to Access ODBC to ODBC Bridge Schema Objects with Virtuoso
8.11.1. Install and configure OpenLink ODBC Driver for ODBC to ODBC Bridge
8.11.2. Linking ODBC to ODBC Bridge tables into OpenLink Virtuoso
8.11.3. Creating EDM in Visual Studio 2008
8.11.4. Using EDM to create Entity Framework based applications
8.12. Using Microsoft Entity Frameworks to Access Firebird Schema Objects with Virtuoso
8.12.1. Install and configure the Firebird ODBC Driver
8.12.2. Install and configure OpenLink Virtuoso Universal Server
8.12.3. Linking Firebird tables into OpenLink Virtuoso
8.12.4. Creating EDM in Visual Studio 2008
8.12.5. Using EDM to create Entity Framework based applications
8.13. Using Microsoft Entity Frameworks to Access Microsoft SQL Server Schema Objects with Virtuoso
8.13.1. Install and configure OpenLink ODBC Driver for Microsoft SQL Server
8.13.2. Install and configure OpenLink Virtuoso Universal Server
8.13.3. Linking Microsoft SQL Server tables into OpenLink Virtuoso
8.13.4. Creating EDM in Visual Studio 2008
8.13.5. Using EDM to create Entity Framework based applications
8.14. Parallel Operations and Bulk Data Transfer with Remote Tables
9. SQL Reference
9.1. Datatypes
9.1.1. Date Literals
9.1.2. Casting
9.1.3. Time & Date Manipulation
9.1.4. Declaring Collations of Expressions
9.2. User Defined Types
9.2.1. CREATE TYPE Statement
9.2.2. ALTER TYPE Statement
9.2.3. DROP TYPE Statement
9.2.4. CREATE METHOD Statement
9.2.5. Type Instances
9.2.6. Instance References
9.2.7. NEW Operator
9.2.8. Finding Methods - Method Signatures Generation & Comparison
9.2.9. Getting & Setting Member Values of Type Instances (member observers & mutators)
9.2.10. Calling Static Methods
9.2.11. Calling Instance Methods
9.2.12. Serializing & Deserializing Type Instances
9.2.13. User Defined Types Utility Functions
9.2.14. Hosted Foreign Objects in Virtuoso
9.2.15. Using User Defined Types to Represent SOAP Structures
9.2.16. Consuming Third-Party SOAP Services via User Defined Types
9.2.17. UDT Security
9.3. XML Column Type
9.4. Identifier Case & Quoting
9.5. Wide Character Identifiers
9.5.1. UTF-8 Implementation Notes For ODBC
9.5.2. UTF-8 Implementation Notes In JDBC
9.6. Qualified Names
9.6.1. Qualifiers and Owners
9.6.2. Default Qualifiers
9.6.3. USE Statement, USE identifier
9.7. Literals, Brace Escapes
9.7.1. Strings
9.7.2. Numbers
9.7.3. ODBC Brace Escapes
9.7.4. Hexadecimal Literals
9.7.5. Binary Literals
9.8. CREATE TABLE Statement
9.8.1. Syntax
9.8.2. NOT NULL
9.8.3. IDENTITY (Auto Increment)
9.8.4. DEFAULT
9.8.5. PRIMARY KEY Constraint
9.8.6. UNDER
9.8.7. FOREIGN KEY Constraint
9.8.8. The CHECK Constraint
9.8.9. The WITH SCHEMA Constraint
9.9. DROP TABLE Statement
9.10. CREATE INDEX Statement
9.11. DROP INDEX Statement
9.12. ALTER TABLE Statement
9.12.1. Adding a CHECK Constraint
9.13. CREATE VIEW Statement
9.14. CREATE XML SCHEMA Statement
9.15. DROP XML SCHEMA Statement
9.16. Sequence Objects
9.17. INSERT Statement
9.17.1. INSERT SOFT
9.17.2. INSERT REPLACING
9.18. UPDATE Statement
9.19. SELECT Statement
9.19.1. Syntax
9.19.2. Description
9.19.3. Column Aliasing - AS Declaration
9.19.4. Join examples
9.19.5. Ordering and Grouping
9.19.6. Derived Tables
9.19.7. Query Expressions
9.19.8. LIKE Predicate & Search Patterns
9.19.9. The TOP SELECT Option
9.19.10. CASE, NULLIF, COALESCE, CAST Value Expressions
9.19.11. SELECT BREAKUP
9.20. COMMIT WORK, ROLLBACK WORK Statement
9.21. CHECKPOINT, SHUTDOWN Statement
9.21.1. Checkpoint & Page Remapping
9.22. Stored Procedures as Views & Derived Tables
9.22.1. Procedure Table Parameters
9.22.2. Procedure Table Result Sets
9.22.3. Procedure Tables & Security
9.22.4. Procedure Table Cost and Join Order
9.22.5. Limitations
9.22.6. Procedure Table Examples
9.23. GRANT, REVOKE Statement
9.24. SET Statement
9.24.1. ISOLATION
9.24.2. LOCK_ESCALATION_PCT
9.24.3. transaction_timeout
9.24.4. PARAM_BATCH
9.25. Anytime Queries
9.26. Best Effort Union
9.27. Standard and User-Defined Aggregate Functions
9.27.1. Create Aggregate Statement
9.27.2. Drop Aggregate Statement
9.27.3. Examples of User-Defined Aggregates
9.28. Virtuoso SQL Optimization
9.28.1. Optimization Techniques
9.28.2. Query Options
9.28.3. ANY ORDER
9.28.4. VDB Statistics for the SQL Compiler Collection
9.29. SQL Inverse Functions
9.29.1. Updating through Inverses
9.30. SQL Grammar
9.31. Bitmap Indices
9.31.1. Bitmap Indices and Transactions
9.31.2. Performance Implications
9.31.3. Physical Structure and Overheads
9.32. Transitivity in SQL
9.33. Fast Phrase Match Processor
9.33.1. Phrases, Phrase Sets and Phrase Classes
9.33.2. Phrase Set Configuration API
9.33.3. Advertisers and Advertisement Rules
9.33.4. Example
9.34. Geometry Data Types and Spatial Index Support
9.34.1. SQL MM Function Support
9.34.2. Spatial References
9.34.3. Geometric Objects
9.34.4. Well Known Text
9.34.5. Precision of Geometries
9.34.6. Predicates
9.34.7. Querying Geometric Relations
9.34.8. Defining a Geometry Index
9.34.9. Insert and Delete
9.34.10. Using Geometries in Client Applications and SQL Procedures
9.35. SQL Bulk Load, ELT, File Tables and Zero Load Operations
9.35.1. File Tables
9.35.2. Parallel Insert With File Tables and Transactions
10. Virtuoso Cluster Programming
10.1. Cluster SQL Execution Model
10.2. Sequences, Identity and Registry
10.3. SQL Options
10.3.1. Parallel INSERT Options
10.3.2. INSERT KEY Option
10.4. Calling Procedures in Cluster
10.5. Partition Functions
10.6. Distributed Pipe
10.6.1. SQL optimization and Dpipe
10.7. Cluster and RDF
10.8. Cluster, Virtual Database and Replication
10.9. Troubleshooting
11. SQL Procedure Language Guide
11.1. General Principles
11.2. Scope of Declarations
11.3. Data Types
11.4. Handling Result Sets
11.5. Result Sets and Array Parameters
11.6. Exception Semantics
11.7. Virtuoso/PL Syntax
11.7.1. Create Procedure Statement
11.7.2. Grand Execute Statement
11.7.3. Stored Procedures as Views & Derived Tables
11.7.4. Keyword and Optional Procedure Arguments
11.7.5. if, while, for, foreach statements
11.7.6. compound statement
11.7.7. goto, return statements
11.7.8. whenever statement
11.7.9. call, assignment statements
11.7.10. open, fetch, close, select ... into statements
11.7.11. FOR Select Statement
11.7.12. SET statement
11.7.13. SET Triggers
11.7.14. Vectored Procedures
11.7.15. FOR VECTORED Statement
11.7.16. Limitations on Vectored Code
11.7.17. Data Types and Vectoring
11.8. Execute Stored Procedures via SELECT statement
11.9. Execute Stored Procedures In Background
11.10. CREATE ASSEMBLY Syntax - External Libraries
11.11. CREATE PROCEDURE Syntax - External hosted procedures
11.12. Asynchronous Execution and Multithreading in Virtuoso/PL
11.12.1. Synchronization
11.13. Performance Tips
11.13.1. Remember the following:
11.14. Procedures and Transactions
11.15. Distributed Transaction & Two Phase Commit
11.15.1. Initiating Distributed Transactions
11.15.2. Responding to Distributed Transactions
11.15.3. 2PC Log & Recovery
11.15.4. Error Codes
11.16. Triggers
11.16.1. The CREATE TRIGGER statement
11.16.2. Triggers on Views
11.16.3. The DROP TRIGGER statement
11.16.4. Triggers and Virtual Database
11.17. Character Escaping
11.17.1. Statement Level
11.17.2. Connection Level
11.17.3. Server Default
11.18. Virtuoso/PL Scrollable Cursors
11.18.1. Declaring a Scrollable Cursor
11.18.2. Opening a Scrollable Cursor
11.18.3. Fetching Data From a Scrollable Cursor
11.18.4. Virtuoso/PL Scrollable Cursor Examples
11.18.5. FORWARD-ONLY (traditional cursor statement) Example
11.18.6. DYNAMIC (traditional cursor statement) Example
11.18.7. KEYSET (traditional cursor statement) Example
11.19. Virtuoso PL Modules
11.19.1. Syntax
11.19.2. Security
11.20. Handling Conditions In Virtuoso/PL Procedures
11.20.1. Declaring Condition Handlers
11.20.2. Stack Trace Reporting On Sql Error Generation
11.21. Procedure Language Debugger
11.21.1. Branch Coverage
11.21.2. Coverage Functions
11.22. Row Level Security
11.22.1. Row Level Security Functions
11.23. Vectored Execution and Query Parallelization
11.23.1. Automatic Query Parallelization
11.23.2. Configuration Parameters for Vectoring and Parallelization
12. Database Event Hooks
12.1. Database Startup
12.2. Database Connections
12.3. Database Logins
12.4. Database Disconnections
12.5. Database Shutdown
12.6. SQL Statement Preparation
12.7. SQL Parse Tree
12.7.1. Notes on Special Features of the Parse Tree
12.7.2. SQL Security and Parse Trees
12.7.3. Debugging with Parse Trees
12.8. WebDAV Logins
12.9. Associating Auxiliary Data With A Connection
13. Data Replication, Synchronization and Transformation Services
13.1. Introduction
13.1.1. Snapshot replication
13.1.2. Transactional replication
13.2. Snapshot Replication
13.2.1. Non incremental snapshot replication
13.2.2. Incremental snapshot replication
13.2.3. Command reference
13.2.4. Bi-Directional Snapshot Replication
13.2.5. Registry variables
13.2.6. Heterogeneous snapshot replication
13.2.7. Data type mappings
13.2.8. Objects created by incremental snapshot replication
13.2.9. Objects created by bi-directional snapshot replication
13.2.10. Replication system tables
13.2.11. Table snapshot logs
13.3. Transactional Replication
13.3.1. Publishable Items
13.3.2. Errors in Replication
13.3.3. Publisher Transactional Replication Functions
13.3.4. Subscriber Functions
13.3.5. Common Status Functions
13.3.6. Bi-Directional Transactional Replication
13.3.7. Purging replication logs
13.3.8. Objects created by transactional replication
13.4. Virtuoso scheduler
13.4.1. SYS_SCHEDULED_EVENT
13.5. Transactional Replication Example
13.5.1. Transactional Replication Objects Example
13.6. Replication Logger Sample
13.6.1. Configuration of the Sample
13.6.2. Synchronization
13.6.3. Running the Sample
13.6.4. Notes on the Sample's Dynamics
14. Web Application Development
14.1. The HTTP Server
14.1.2. HTTP Server Base Configuration
14.1.3. Virtual Directories
14.1.4. Authentication
14.1.5. Session Management
14.1.6. Writing Your Own Authentication and Session Handling
14.1.7. Cancellation of Web Requests
14.1.8. Virtuoso WebRobot API
14.1.9. HTTP Server Extensions
14.1.10. Chunked Transfer Encoding
14.1.11. Using Virtuoso Server capabilities via Apache Web Server
14.1.12. Setting Up the Virtuoso HTTPS Listener
14.2. Web Services ACL (Access Control List)
14.2.1. General purpose ACLs
14.2.2. ACL Definition/Removal
14.2.3. Using ACL's Within Application Logic
14.2.4. Predefined ACLs
14.3. Virtuoso Server Pages (VSP)
14.3.2. VSP Markup & Basic Functions
14.3.3. Access Request Information
14.3.4. Errors in Page Procedures
14.3.5. /INLINEFILE HTTP Server Pseudo-Directory
14.3.6. Beyond Basics
14.3.7. Long HTTP Transactions
14.3.8. Using chunked encoding in HTTP 1.1
14.3.9. Making Simple Dynamic Web Pages
14.3.10. Generation of non-HTML output
14.3.11. Post VSP XSLT Transformation Mode
14.3.12. XML & XSLT Generated VSP Pages
14.4. Virtuoso Server Pages for XML (VSPX)
14.4.1. Processing Model
14.4.2. Object Model
14.4.3. Keeping Page and Session State
14.4.4. Application Code
14.4.5. A Simple Example
14.4.6. VSPX Event Handler Parameters
14.4.7. Registering a VSPX Event Callbacks
14.4.8. Commonly Used Types of Attributes of VSPX Controls
14.4.9. VSPX Controls
14.4.10. XForms rendering
14.4.11. XMLSchema for VSPX page
14.5. Deploying ASP.Net Web Applications
14.5.2. Programming Concepts
14.5.3. ASP.Net Deployment & Configuration
14.5.4. The Mono Project
14.5.5. Migrating ASP.Net Applications to Virtuoso
14.6. ASMX Web Service Hosting
14.7. Blogging & Weblogs
14.7.1. The Virtuoso Blogging Application
14.7.2. Blogger Clients Compatibility
14.7.3. Blogs Management User Interface
14.7.4. Community Blog Site
14.7.5. Blogger API
14.7.6. MetaWeblog API
14.7.7. Movable Type API
14.7.8. Atom API
14.7.9. XML-RPC Endpoint Configuration
14.7.10. Blog Hooks - Customizing the Blog Server
14.7.11. Blogger Client API
14.7.12. xmlStorageSystem API
14.7.13. User's Blog quota
14.7.14. Posting a message in to the Blog
14.7.15. Multi-author blogging
14.7.16. Posting a comments
14.7.17. Blog Post Upstreaming (bridging)
14.7.18. Weblogs API
14.7.19. Subscriptions
14.7.20. Trackback API
14.7.21. Pingback API
14.7.22. E-mail Notifications
14.7.23. Comments tracking options
14.7.24. Subscription Harmonizer API
14.7.25. Mobile Blogging (Moblog)
14.7.26. Posting a dynamic content
14.7.27. Notification Services
14.7.28. Rendering the RSS feed in WML format
14.8. Deploying PHP Applications
14.8.2. Building the Virtuoso Server With PHP Extension
14.8.3. PHP Extension Functions
14.8.4. PHP Examples
14.9. Deploying JSP Applications
14.9.2. Environment Setup & Verification
14.10. Perl Hosting
14.11. Python Hosting
14.12. Ruby Hosting
15. XML Support
15.1. Rendering SQL Queries as XML (FOR XML Clause)
15.1.1. FOR XML EXPLICIT Mode
15.1.2. Examples of FOR XML
15.1.3. Functions
15.1.4. FOR XML Syntax
15.2. XML Composing Functions in SQL Statements (SQLX)
15.3. Virtuoso XML Services
15.3.1. XPATH Implementation and SQL
15.3.2. XPATH Query Options
15.3.3. XML Views - Representing SQL Data as Dynamic and Persistent XML
15.3.4. External Entity References in Stored XML
15.3.5. Using XPATH in SQL Queries and Procedures
15.3.6. XQUERY and XML view
15.3.7. Mapping Schemas as XML Views
15.3.8. Differences Between SQLX, FOR XML and XML Views
15.4. Querying Stored XML Data
15.4.1. XPATH_CONTAINS SQL Predicate
15.4.2. Using xpath_eval()
15.4.3. External Entity References in Stored XML
15.4.4. XML Schema & DTD Functions
15.4.5. Using XML and Free Text
15.4.6. XCONTAINS predicate
15.4.7. text-contains XPath Predicate
15.4.8. XML Free Text Indexing Rules
15.4.9. XML Processing & Free Text Encoding Issues
15.5. Using UpdateGrams to Modify Data
15.5.1. Updategrams Basics
15.5.2. Elements Description
15.5.3. Determining Actions
15.5.4. Using Input Parameters
15.5.5. Examples
15.6. XML Templates
15.6.2. Syntax
15.6.3. Saving SQL Queries to XML Template
15.6.4. Saving XQUERY Queries to XML Template
15.6.5. Saving XPATH Queries to XML Template
15.6.6. Programmatic Examples
15.7. XML DTD and XML Schemas
15.7.1. XML Document Type Definition (DTD)
15.7.2. Configuration Options of the DTD Validator
15.7.3. XML Schema Definition Language
15.7.4. XML Schema Functions
15.7.5. XML Schema & SOAP
15.8. XQuery 1.0 Support
15.8.1. Types of XQuery Expressions
15.8.2. Details of XQuery Syntax
15.8.3. Pre-compilation of XPath and XQuery Expressions
15.9. XSLT Transformation
15.9.1. Namespaces
15.9.2. The <xsl:output> Tag
15.9.3. External Parameters in XSLT Stylesheets
15.9.4. Functions
15.9.5. XSLT Examples
15.9.6. XPath Function Extensions for XSLT
15.9.7. Status Of XSLT And XPath Implementation
15.10. XMLType
15.11. Changing XML entities in DOM style
15.11.1. Composing Document Fragments From DOM Function Arguments
16. RDF Data Access and Data Management
16.1. Data Representation
16.1.1. IRI_ID Type
16.1.2. RDF_BOX Type
16.1.3. RDF_QUAD and other tables
16.1.4. Short, Long and SQL Values
16.1.5. Programatically resolving DB.DBA.RDF_QUAD.O to SQL
16.1.6. Special Cases and XML Schema Compatibility
16.1.7. SQL Compiler Support - QUIETCAST option
16.1.8. Dynamic Renaming of Local IRI's
16.2. SPARQL
16.2.1. SPARQL Implementation Details
16.2.2. Query Constructs
16.2.3. SPARQL Web Services & APIs
16.2.4. Troubleshooting SPARQL Queries
16.2.5. SPARQL Inline in SQL
16.2.6. API Functions
16.2.7. Useful Internal Functions
16.2.8. Default and Named Graphs
16.2.9. Calling SQL from SPARQL
16.2.10. SPARQL DESCRIBE
16.2.11. Transitivity in SPARQL
16.2.12. Supported SPARQL-BI "define" pragmas
16.2.13. Built-in bif functions
16.2.14. Sending SOAP Requests to Virtuoso SPARQL Endpoint
16.2.15. Use of Hash Join With RDF
16.3. Extensions
16.3.1. Using Full Text Search in SPARQL
16.3.2. SPARUL -- an Update Language For RDF Graphs
16.3.3. Business Intelligence Extensions for SPARQL
16.4. RDF Graphs Security
16.4.1. RDF Graph Groups
16.4.2. NOT FROM and NOT FROM NAMED Clauses
16.4.3. Graph-Level Security
16.4.4. Understanding Default Permissions
16.4.5. Initial Configuration of SPARQL Security
16.4.6. Application Callbacks for Graph Level Security
16.4.7. Graph-level security and sponging
16.5. Linked Data Views over RDBMS Data Source
16.5.1. Introduction
16.5.2. Rationale
16.5.3. Quad Map Patterns, Values and IRI Classes
16.5.4. Configuring RDF Storages
16.5.5. Translation Of SPARQL Triple Patterns To Quad Map Patterns
16.5.6. Describing Source Relational Tables
16.5.7. Function-Based IRI Classes
16.5.8. Connection Variables in IRI Classes
16.5.9. Lookup Optimization -- BIJECTION and RETURNS Options
16.5.10. Join Optimization -- Declaring IRI Subclasses
16.5.11. RDF Metadata Maintenance and Recovery
16.5.12. Split Linked Data View
16.5.13. Linked Data Views and recursive FK relationships
16.6. Automated Generation of Linked Data Views over Relational Data Sources
16.6.1. Introduction
16.6.2. One Click Linked Data Generation & Deployment
16.6.3. Manual Linked Data Generation & Deployment using the Conductor's HTML-based wizard
16.7. Virtuoso R2RML Support
16.7.1. What is R2RML?
16.7.2. Why use it?
16.7.3. How do I use it with Virtuoso?
16.7.4. Known Limitations
16.7.5. Generating an R2RML based Linked Data View from iSQL command-line
16.7.6. Virtuoso Conductor R2RML Import Wizard
16.7.7. Generate Transient and/or Persistent Linked Data Views atop Remote Relational Data Sources Using Conductor
16.8. Examples of Linked Data Views
16.8.1. Simple Mapping Example -- Northwind Linked Data View
16.8.2. BSBM to RDF
16.8.3. TPCH to RDF
16.8.4. TPCD to RDF
16.8.5. Thalia to RDF
16.8.6. Musicbrainz to RDF
16.8.7. Virtuoso ODS to RDF
16.8.8. Sybase using demonstration 'pubs2' database
16.8.9. Virtuoso's Northwind based Demo Database (Tutorials variant) to RDF
16.8.10. SQL Server's Northwind Demo Database
16.8.11. Oracle Demonstration 'HR' Database
16.8.12. Oracle using the demonstration 'Human Resources' database
16.8.13. DB2 using the demonstration 'Sample' database
16.8.14. Informix using demonstration 'Stores' database
16.8.15. Ingres using demonstration 'Tutorial' database
16.8.16. Progress (SQL-89) using demonstration 'iSports' database
16.8.17. Progress (SQL-92) using demonstration 'iSports' database
16.9. RDF Insert Methods in Virtuoso
16.9.1. Using API functions
16.9.2. SPARQL endpoint REST API
16.9.3. HTTP PUT using Content-Type: application/rdf+xml
16.9.4. SPARQL Insert using LOAD
16.9.5. SPARQL Insert via /sparql endpoint
16.9.6. SPARQL Insert via SPARQL endpoint REST API and ODS wiki
16.9.7. Using WebDAV
16.9.8. Using Virtuoso Crawler
16.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)
16.9.10. Using Virtuoso PL APIs
16.9.11. Using SIMILE RDF Bank API
16.9.12. Using RDF NET
16.9.13. Using the RDF Proxy (Sponger) Service
16.10. RDFizer Middleware (Sponger)
16.10.1. What Is The Sponger?
16.10.2. Why is it Important?
16.10.3. How Does It Work?
16.10.4. Installation Steps
16.10.5. Using The Sponger
16.10.6. Consuming the Generated RDF Structured Data
16.10.7. RDF Cartridges Use Cases
16.10.8. Cartridge Architecture
16.10.9. Sponger Programmers Guide
16.10.10. Sponger Usage Examples
16.11. Virtuoso Faceted Browser Installation and configuration
16.11.1. Prerequisites
16.11.2. Pre Installation
16.11.3. VAD Package Installation
16.11.4. Post Installation
16.11.5. URI Labels
16.11.6. Usage Statistics
16.11.7. Examples
16.12. Virtuoso Faceted Web Service
16.12.1. Customizing
16.12.2. Examples
16.12.3. WebService Interface
16.13. Linked Data
16.13.1. IRI Dereferencing For FROM Clauses, "define get:..." Pragmas
16.13.2. IRI Dereferencing For Variables, "define input:grab-..." Pragmas
16.13.3. URL rewriting
16.13.4. Examples of other Protocol Resolvers
16.13.5. Faceted Views over Large-Scale Linked Data
16.14. Inference Rules & Reasoning
16.14.1. Introduction
16.14.2. Making Rule Sets
16.14.3. Changing Rule Sets
16.14.4. Subclasses and Subproperties
16.14.5. OWL sameAs Support
16.14.6. Implementation
16.14.7. Enabling Inferencing
16.14.8. Examples
16.14.9. Identity With Inverse Functional Properties
16.14.10. Inference Rules and SPARQL with Transitivity Option
16.14.11. Inference Rules, OWL Support and Relationship Ontology
16.15. RDF and Geometry
16.15.1. Programmatic Manipulation of Geometries in RDF
16.15.2. Creating Geometries From RDF Data
16.15.3. Using Geometries With Existing Databases
16.15.4. GEO Spatial Examples
16.16. RDF Performance Tuning
16.16.1. General
16.16.2. RDF Index Scheme
16.16.3. Index Scheme Selection
16.16.4. Manage Public Web Service Endpoints
16.16.5. Erroneous Cost Estimates and Explicit Join Order
16.16.6. Using "swappiness" parameter ( Linux only )
16.16.7. Get All Graphs
16.16.8. Rename RDF Graph and RDF Graph Groups
16.16.9. Dump and Reload Graphs
16.16.10. RDF dumps from Virtuoso Quad store hosted data into NQuad dumps
16.16.11. Dump Linked Data View Graph to n3
16.16.12. Loading RDF
16.16.13. Using SPARUL
16.16.14. DBpedia Benchmark
16.16.15. RDF Store Benchmarks
16.16.16. Fast Approximate RDF Graph Diff and Patch
16.16.17. RDB2RDF Triggers
16.17. RDF Data Access Providers (Drivers)
16.17.1. Virtuoso Jena Provider
16.17.2. Virtuoso Sesame Provider
16.17.3. Virtuoso Redland Provider
16.18. RDF Graph Replication
16.18.1. Replication Scenarios
16.18.2. Replication Topologies
16.18.3. Set up RDF Replication via procedure calls
17. Web Services
17.1. SOAP
17.1.1. Virtuoso SOAP Support Overview
17.1.2. Handling of SOAP HTTP Requests
17.1.3. Extending Datatypes for SOAP Objects
17.1.4. Inheritance of Datatypes for SOAP Objects
17.1.5. Complex Types in PL Procedure and UDT Method Definition
17.1.6. Complex Types in Procedure Definition using a pre-defined XML Schema datatypes
17.1.7. Default SOAP-SQL Datatype Mappings
17.1.8. Exposing Stored Procedures as SOAP Objects
17.1.9. Creation of SOAP proxy based on User Defined Types
17.1.10. Exposing User Defined Type Methods as SOAP Objects
17.1.11. Exposing Remote Third Party SQL Stored Procedures as SOAP Services
17.1.12. Virtuoso/PL SOAP Client
17.1.13. Execution Privileges
17.1.14. Custom Soap Server Support
17.1.15. PL Procedures and UDT Methods Syntax Affecting WSDL & SOAP Processing
17.1.16. Exposing & Processing SOAP Header Messages
17.1.17. Exposing & Processing SOAP Fault Messages
17.1.18. Document Literal Encoding
17.1.19. DIME encapsulation of SOAP messages
17.1.20. SOAP Endpoint Options
17.2. WSDL
17.2.1. Exposing Stored Procedures as WSDL Services
17.2.2. Exposing SQL Stored Procedures containing complex datatype definitions
17.2.3. Exposing Third Party SQL Stored Procedures as WSDL-Compliant Web Services
17.2.4. WSDL Descriptions of SOAP Header Messages
17.2.5. Importing A WSDL File & SOAP/WSDL Proxying
17.2.6. SOAP/WSDL Interoperability
17.3. WebID Protocol Support
17.3.1. x.509 certificate
17.3.2. Setting up Virtuoso HTTPS
17.3.3. Setting Up Firefox
17.3.4. Configuring ODS Account to use WebID Protocol
17.3.5. Testing the setup
17.3.6. WebID Protocol ACLs
17.3.7. SPARQL-WebID based Endpoint
17.3.8. CA Keys Import using Conductor
17.3.9. Set Up X.509 certificate issuer, HTTPS listener and generate ODS user's certificates
17.3.10. WebID Protocol ODBC Login
17.4. OAuth Support
17.4.1. OAuth Access Tokens
17.4.2. Virtuoso OAuth server
17.4.3. OAuth Implementation in OpenLink Data Spaces
17.4.4. OAuth Generate Keys for ODS Controllers (Web Services)
17.4.5. ODS Ubiquity Commands
17.4.6. OAuth Test Tool for ODS Controllers
17.4.7. OAuth QA
17.5. WS-Security (WSS) Support in Virtuoso SOAP Server
17.5.1. Client and Server side Certificates & Keys
17.5.2. SOAP Server WS-Security Endpoint
17.5.3. Virtual Directory SOAP WSS Options
17.5.4. Accounting & Accounting Hook
17.5.5. Signature Templates
17.5.6. SOAP Client
17.6. Web Services Routing Protocol (WS-Routing)
17.6.1. Configuration
17.6.2. Traversing Message Paths
17.7. Web Services Reliable Messaging Protocol (WS-ReliableMessaging)
17.7.1. SOAP CLIENT API Extensions
17.7.2. WS-RM Sender API
17.7.3. WSRM Receiver API
17.7.4. WS-RM Protocol Endpoint Configuration
17.7.5. Message Examples
17.7.6. WS-RM Schema
17.8. Web Services Trust Protocol (WS-Trust)
17.9. XML for Analysis Provider
17.10. XML-RPC support
17.11. SyncML
17.12. UDDI
17.12.1. Concepts
17.12.2. Dealing with SOAP
17.12.3. Supported API Calls
17.12.4. Authorization Mechanism
17.12.5. UDDI API Calls
17.12.6. Examples
17.13. Exposing Persistent Stored Modules as Web Services
17.13.1. Publishing Stored Procedures as Web Services
17.13.2. XML Query Templates
17.13.3. Publishing VSE's as Web Services
17.14. Testing Web Published Web Services
17.15. BPEL Reference
17.15.1. Activities
17.15.2. Protocol Support
17.15.3. Process lifecycle
17.15.4. Using virtual directories
17.15.5. Process archiving
17.15.6. Configuration parameters
17.15.7. Process Statistics
17.15.8. Deployment file suitcase format
17.15.9. SQL API
17.15.10. BPEL XPath Functions
17.15.11. Tables
17.15.12. Errors
17.15.13. Samples
17.15.14. References
17.15.15. BPEL4WS VAD Package installation
17.16. XSQL
17.16.1. XSQL Syntax
17.16.2. XSQL Directives
18. Runtime Hosting
18.1. Runtime Environments
18.2. CLR, .Net & ASPX Host
18.2.1. Environment Setup
18.2.2. Testing the Virtuoso .NET Runtime Environment
18.3. CLR & Mono
18.3.1. Environment Setup
18.3.2. Testing the Virtuoso Mono Runtime Environment
18.4. Embedded Java VM API
18.4.1. Correspondence Between Virtuoso & Java VM Threads
18.4.2. Virtuoso/PL <-> Java VM Type Mapping Schema
18.4.3. References to Java VM Class Instances in Virtuoso/PL
18.4.4. Specifying the Correct Java Type When Passing Values from Virtuoso/PL
18.4.5. Virtuoso Java PL API VSEs
18.4.6. Java Security
18.5. Virtuoso Server Extension Interface (VSEI) (C Interface)
18.5.1. Virtuoso Server Extension Interface (VSEI)
18.5.2. SQL Run Time Objects
18.5.3. Memory Management Rules
18.5.4. Server Main Function
18.5.5. Compiling & Linking
18.5.6. Functions by Category
18.5.7. VSEI Definition
18.5.8. SQL Exceptions
18.5.9. Executing SQL
18.5.10. Adding New Languages And Encodings Into Virtuoso
18.6. VSEI Plugins
19. Internet Services
19.1. WebDAV Server
19.1.2. DAV User Accounts
19.1.3. WebDAV Authentication
19.1.4. WebDAV Symbolic Links
19.1.5. Access Right Permissions of Web Resources
19.1.6. DAV and RDF Metadata
19.1.7. Special Attributes of Web Resources
19.2. URIQA Semantic Web Enabler
19.2.1. URIQA HTTP Methods
19.2.2. URIQA Web Service
19.2.3. URIQA Section in Virtuoso Configuration File
19.2.4. URI Matching Rules
19.3. Mail Delivery & Storage
19.3.1. The SMTP Client
19.3.2. POP3 Server
19.3.3. Storing Email in Virtuoso
19.4. NNTP Newsgroups
19.4.1. NNTP Client
19.4.2. NNTP Server
19.5. MIME & Internet Messages
19.5.1. About Simple Internet (RFC 822) Messages
19.5.2. MIME Messages - Extension to Simple Internet Messages
19.5.3. S/MIME Support
19.6. FTP Services
19.6.1. FTP Client
19.6.2. FTP Server
19.7. VSP Guide
19.7.1. Introduction
19.7.2. Simple HTML FORM usage
19.7.3. Interacting with the Database
19.7.4. The Forums Application
19.7.5. Setting up server-side Cross-Origin Resource Sharing (CORS) with Virtuoso
19.8. LDAP
19.8.1. LDAP Client
19.8.2. LDAP Server
20. Free Text Search
20.1. Basic Concepts
20.2. Creating Free Text Indexes
20.2.1. The CREATE TEXT INDEX statement
20.2.2. Choosing An Application Specific Document ID
20.2.3. The composite Data Type
20.2.4. Free Text Index Examples
20.2.5. Pre-processing and Extending the Content Being Indexed
20.2.6. Hit Scores
20.2.7. Word Ranges
20.2.8. Using Offband Data for Faster Filtering
20.2.9. Order of Hits
20.2.10. Noise Words
20.3. Querying Free Text Indexes
20.3.1. CONTAINS predicate
20.3.2. Comments
20.3.3. Text Expression Syntax
20.4. Text Triggers
20.4.1. Creating Text Triggers
20.4.2. Created Database Objects
20.5. Generated Tables and Internals
20.5.1. Generated Tables and Procedures
20.5.2. The procedures are:
20.5.3. Tables and Procedures Created By Text Triggers
20.6. Removing A Text Index
20.7. Removing A Text Trigger
20.8. Internationalization & Unicode
20.9. Performance
20.9.1. Restrictions
20.10. Free Text Functions
21. TPC C Benchmark Kit
21.1. Building the Test Database
21.2. Using the Test Program
21.3. Tuning Parameters and Number of Users
21.4. Omissions, Exceptions from the Definition
21.5. Sample Configuration
21.6. Other Factors
21.7. TPC C Procedures
21.7.1. Introduction
21.7.2. New Order
21.7.3. Payment
21.7.4. Delivery
21.7.5. Order Status
21.7.6. Stock Level
21.8. DDL Statements
21.9. Stored Procedures
22. Using Virtuoso with Tuxedo
22.1. Building the Transaction Manager Server
22.2. Configuration
22.3. Services
22.3.1. Introduction
22.3.2. VQL functions
22.3.3. Services concept
22.3.4. OPENINFO
22.4. Clients
22.5. Service example
23. Appendix
23.1. YACC SQL Grammar Reference
23.2. Error Codes Reference
23.2.1. Virtuoso Error Codes
23.2.2. Data Type Errors
23.3. Signals and Exit codes
23.3.1. Exit codes
23.3.2. Signals
23.4. Release Notes
23.4.1. New Features
23.4.2. Bugs Fixed
23.5. Product Support
23.5.1. OpenLink Discussion Forums
23.6. Virtuoso System Tables
23.6.1. Core System Tables
23.6.2. System Tables
23.6.3. Row Level Security Table
23.6.4. SYS_CHARSETS
23.6.5. Collations System Table
23.6.6. UDDI Schema
23.6.7. Web Robot System Tables
23.6.8. Web Server & DAV System Tables
23.6.9. Mail Table Description
23.6.10. NNTP Server Tables
23.6.11. WS Reliable Messaging
23.6.12. WS Trust
23.6.13. SyncML Schema Objects
23.6.14. INFORMATION_SCHEMA views
23.7. Basic Syntax of Regular Expressions
23.8. Server & client versions compatibility
24. Virtuoso Functions Guide