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
2. Installation Guide
2.1. Virtuoso for Windows 95/98/NT/2000/XP
2.1.1. Existing Virtuoso 2.7 Users
2.1.2. Before You Start
2.1.3. Getting To Know Your Virtuoso Components
2.1.4. Installation Steps
2.1.5. Starting Your Virtuoso Server
2.1.6. Post-Installation Sanity Check
2.1.7. Creating and Deleting Virtuoso Services
2.1.8. Configuring Virtuoso Client Components
2.1.9. Default passwords
2.2. Virtuoso for Linux (Enterprise Edition)
2.2.1. Existing Virtuoso 2.7 Users
2.2.2. Before You Install
2.2.3. Installation Process
2.2.4. Post-Installation Sanity Check
2.2.5. Starting Virtuoso Automatically on Reboot
2.2.6. Default passwords
2.3. Virtuoso for Unix (Enterprise Edition)
2.3.1. Existing Virtuoso 2.7 Users
2.3.2. Before You Install
2.3.3. Installation Process
2.3.4. Post-Installation Sanity Check
2.3.5. Starting Virtuoso Automatically on Reboot
2.3.6. Default passwords
2.4. Virtuoso for Unix (Personal Edition)
2.4.1. Installation
2.4.2. Configuration
2.4.3. Demo Database
2.5. Virtuoso for Mac OS X
2.5.1. Existing Virtuoso 2.7 Users
2.5.2. Before You Install
2.5.3. Installation Process
2.5.4. Configuration
2.5.5. Configuring an ODBC Data Source
2.5.6. Testing an ODBC Data Source
2.5.7. Post-Installation Sanity Check
2.5.8. Default passwords
2.5.9. Demo Database
2.6. OpenLink License Management
2.6.1. License Files
2.6.2. License Manager
2.6.3. Debugging License Problems
2.7. Virtuoso ADO.Net Data Grid Form Application
2.8. Using Visual Studio 2008 to Build an Entity Frameworks based Windows Form Application
2.8.1. Pre-requisites
2.8.2. Create the School database and schema
2.8.3. Generating the School Entity Data Mode
2.8.4. Querying Entities and Associations
2.8.5. Inserting and Updating Data
2.9. Using Visual Studio 2008 to Build an ADO.NET Data Services based Application
2.9.1. Introduction
2.9.2. Getting Started: Creating Data Services
2.9.3. Creating a Data Service using the ADO.NET Entity Framework
2.10. Windows Form Application for accessing Virtuoso RDF data via SPASQL using the Virtuoso ADO.Net Provider
2.10.1. Pre-requisites
2.10.2. Creating the Application
2.10.3. Extending RDFDemo to Allow Dereferencing of External IRIs
2.10.4. Extending RDFDemo to Display More Compact Labels
2.10.5. Modifying the Northwind Ontology to Add Labels
2.10.6. Extending RDFDemo to Display Images and Longer Text Fields.
2.10.7. Extending RDFDemo To Make The Property Labels Clickable
2.11. Creating a Web Browser Application to Access RDF Data Using The Virtuoso ADO.Net Provider
2.11.1. Pre-requisites
2.11.2. Creating the Web Service
2.11.3. Creating the Browser Application
2.11.4. Deploy With IIS
2.12. Creating a Silverlight Application to consume the service
2.12.1. Pre-requisites
2.12.2. Creating the Application for Silverlight.
2.13. Cluster Installation and Config
2.13.1. Creating New Cluster Setup
2.13.2. Cluster Config
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. Locking
5.1.4. Internationalization & Unicode
5.1.5. 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 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.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. Installation & Configuration Steps
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
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
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
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. Limitations of Alpha 6.0
10.10. 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. Stored Procedures as Views & Derived Tables
11.7.3. Keyword and Optional Procedure Arguments
11.7.4. if, while, for, foreach statements
11.7.5. compound statement
11.7.6. goto, return statements
11.7.7. whenever statement
11.7.8. call, assignment statements
11.7.9. open, fetch, close, select ... into statements
11.7.10. FOR Select Statement
11.7.11. SET statement
11.7.12. SET Triggers
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
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.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. Special Cases and XML Schema Compatibility
16.1.6. SQL Compiler Support - QUIETCAST option
16.1.7. 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. Extensions
16.2.6. SPARQL Inline in SQL
16.2.7. API Functions
16.2.8. Useful Internal Functions
16.2.9. Default and Named Graphs
16.2.10. Calling SQL from SPARQL
16.2.11. SPARQL DESCRIBE
16.2.12. Transitivity in SPARQL
16.3. RDF Graphs Security
16.3.1. RDF Graph Groups
16.3.2. NOT FROM and NOT FROM NAMED Clauses
16.3.3. Graph-Level Security
16.3.4. Understanding Default Permissions
16.3.5. Initial Configuration of SPARQL Security
16.3.6. Application Callbacks for Graph Level Security
16.4. Automated Generation of RDF Views over Relational Data Sources
16.4.1. Introduction
16.4.2. One Click Linked Data Generation & Deployment
16.4.3. Manual Linked Data Generation & Deployment using the Conductor's HTML-based wizard
16.5. RDF Insert Methods in Virtuoso
16.5.1. Using API functions
16.5.2. HTTP Post using Content-Type: application/sparql-query
16.5.3. HTTP PUT using Content-Type: application/rdf+xml
16.5.4. SPARQL Insert using LOAD
16.5.5. SPARQL Insert via /sparql endpoint
16.5.6. SPARQL Insert via HTTP Post using Content-Type: application/sparql-query and ODS wiki
16.5.7. Using WebDAV
16.5.8. Using Virtuoso Crawler
16.5.9. 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)
16.5.10. Using Virtuoso PL APIs
16.5.11. Using SIMILE RDF Bank API
16.5.12. Using RDF NET
16.5.13. Using the RDF Proxy (Sponger) Service
16.6. Integration Middleware
16.6.1. RDFizer Middleware (Sponger)
16.6.2. Enterprise Data Access & Integration
16.6.3. RDF Views over RDBMS Data Source
16.7. Linked Data
16.7.1. IRI Dereferencing For FROM Clauses, "define get:..." Pragmas
16.7.2. IRI Dereferencing For Variables, "define input:grab-..." Pragmas
16.7.3. URL rewriting
16.7.4. Examples of other Protocol Resolvers
16.7.5. Faceted Views over Large-Scale Linked Data
16.8. Inference Rules & Reasoning
16.8.1. Introduction
16.8.2. Making Rule Sets
16.8.3. Changing Rule Sets
16.8.4. Subclasses and Subproperties
16.8.5. OWL sameAs Support
16.8.6. Implementation
16.8.7. Enabling Inferencing
16.8.8. Examples
16.8.9. Identity With Inverse Functional Properties
16.8.10.
16.9. Performance Tuning
16.9.1. General
16.9.2. Index Scheme Selection
16.9.3. Erroneous Cost Estimates and Explicit Join Order
16.9.4. Loading
16.9.5. Using SPARUL
16.9.6. DBpedia Benchmark
16.9.7. RDF Store Benchmarks
16.10. RDF Data Access Providers (Drivers)
16.10.1. Virtuoso Jena Provider
16.10.2. Virtuoso Sesame Provider
16.10.3. Virtuoso Redland Provider
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. FOAF+SSL 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 FOAF+SSL
17.3.5. Testing the setup
17.3.6. FOAF+SSL ACLs
17.3.7. CA Keys Import using Conductor
17.3.8. Set Up X.509 certificate issuer, HTTPS listener and generate ODS user's certificates
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.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. Release Notes
23.3.1. New Features
23.3.2. Bugs Fixed
23.4. Product Support
23.4.1. OpenLink Discussion Forums
23.5. Virtuoso System Tables
23.5.1. Core System Tables
23.5.2. System Tables
23.5.3. Row Level Security Table
23.5.4. SYS_CHARSETS
23.5.5. Collations System Table
23.5.6. UDDI Schema
23.5.7. Web Robot System Tables
23.5.8. Web Server & DAV System Tables
23.5.9. Mail Table Description
23.5.10. NNTP Server Tables
23.5.11. WS Reliable Messaging
23.5.12. WS Trust
23.5.13. SyncML Schema Objects
23.5.14. INFORMATION_SCHEMA views
23.6. Database Migration Guides
23.6.1. Migration of Virtuoso from Version 2.7 to Version 3.0
23.7. Basic Syntax of Regular Expressions
23.8. Server & client versions compatibility
24. Virtuoso Functions Guide