OpenLink Virtuoso Universal Server: Documentation - Contents
Contents
|
Prev
|
Next
Keyword Search:
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
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 execute SPARQL queries containing '$' character using ISQL?
1.5.2. How can I find on which table deadlocks occur?
1.5.3. How Can I configure parameters to avoid out of memory error?
1.5.4. What are "Generate RDB2RDF triggers" and "Enable Data Syncs with Physical Quad Store" RDF Views options?
1.5.5. How to Manage Date Range SPARQL queries?
1.5.6. How can I see which quad storages exist and in which quad storage a graph resides?
1.5.7. Can I drop and re-create the DefaultQuadStorage?
1.5.8. How to display only some information from RDF graph?
1.5.9. Is it possible to have the SPARQL endpoint on a different port than the Conductor?
1.5.10. How to enable the Virtuoso Entity Framework 3.5 ADO.Net Provider in Visual Studio 2010?
1.5.11. How Can I Control the normalization of UNICODE3 accented chars in free-text index?
1.5.12. How Can I define graph with virt:rdf_sponger option set to "on"?
1.5.13. How do I use SPARUL to change a selection of property values from URI References to Literals?
1.5.14. How is a Checkpoint performed against a Virtuoso Clustered Server?
1.5.15. How can I use CONSTRUCT with PreparedStatements?
1.5.16. How can perform SPARQL Updates without transactional log size getting exceed?
1.5.17. How can I write custom crawler using PL?
1.5.18. How Can I Get an exact mapping for a date?
1.5.19. How Can I Get certificate attributes using SPARQL?
1.5.20. How can I make Multi Thread Virtuoso connection using JDBC??
1.5.21. How Do I Perform Bulk Loading of RDF Source Files into one or more Graph IRIs?
1.5.22. How to exploit RDF Schema and OWL Inference Rules with minimal effort?
1.5.23. How can I dump arbitrary query result as N-Triples?
1.5.24. How do I bind named graph parameter in prepared statement?
1.5.25. How can I insert binary data to Virtuoso RDF storage in plain queries and with parameter binding via ADO.NET calls?
1.5.26. How can I insert RDF data from Visual Studio to Virtuoso?
1.5.27. How does default describe mode work?
1.5.28. What should I do if the Virtuoso Server is not responding to HTTP requests?
1.5.29. What CXML params are supported for the SPARQL URL pattern?
1.5.30. How can I replicate all graphs?
1.5.31. 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.32. How can I replicate all graphs?
1.5.33. How can I use SPARQL to make Meshups?
1.5.34. How can I use the net_meter utility before starting the ingestion to a cluster?
1.5.35. How can I use the LOAD command to import RDF data?
1.5.36. How can I delete graphs using stored procedure?
1.5.37. How can I use SPARUL to add missing triples to a Named Graph?
1.5.38. How can I use the SPARQL IF operator for SPARQL-BI endpoint?
1.5.39. How can I handle checkpoint condition?
1.5.40. How can I incorporate Content Negotiation into RDF bulk loaders?
1.5.41. Virtuoso Linked Data Deployment In 3 Simple Steps?
1.5.42. What are the differences between create, drop, clear and delete Graph?
1.5.43. How can I perform search for predicate values?
1.5.44. How can I use INSERT via CONSTRUCT Statements?
1.5.45. How to clear graphs which are related to empty graphs?
1.5.46. How can I use sub-queries to enable literal values based joins?
1.5.47. How can I execute query with labels preference order?
1.5.48. How can I get object datatype?
1.5.49. How Can I Backup and Restore individual table(s) and individual index(s)?
1.5.50. What bif:contains free-text options can I use?
1.5.51. What SPARQL Endpoint Protection Methods can I use?
1.5.52. How do I assign SPARQL role to SQL user?
2. Installation Guide
2.1. Virtuoso for Windows
2.1.1. Before You Start
2.1.2. Getting To Know Your Virtuoso Components
2.1.3. Installation Steps
2.1.4. Post Installation
2.1.5. Starting Your Virtuoso Server
2.1.6. Creating and Deleting Virtuoso Services
2.1.7. Configuring Virtuoso Client Components
2.1.8. Default passwords
2.2. Virtuoso for Linux (Enterprise Edition)
2.2.1. Before You Install
2.2.2. Installation Process
2.2.3. Post Installation
2.2.4. Starting Virtuoso Automatically on Reboot
2.2.5. Default passwords
2.3. Virtuoso for Unix (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 (Personal Edition)
2.4.1. Installation
2.4.2. Post Installation
2.4.3. Configuration
2.4.4. Demo Database
2.5. Virtuoso for Mac OS X
2.5.1. Before You Install
2.5.2. Installation Process
2.5.3. Configuration
2.5.4. Post Installation
2.5.5. Configuring an ODBC Data Source
2.5.6. Testing an ODBC Data Source
2.5.7. Default passwords
2.5.8. Demo Database
2.6. Virtuoso ADO.Net Data Grid Form Application
2.7. Using Visual Studio 2008 to Build an Entity Frameworks based Windows Form Application
2.7.1. Pre-requisites
2.7.2. Create the School database and schema
2.7.3. Generating the School Entity Data Mode
2.7.4. Querying Entities and Associations
2.7.5. Inserting and Updating Data
2.8. Using Visual Studio 2008 to Build an ADO.NET Data Services based Application
2.8.1. Introduction
2.8.2. Getting Started: Creating Data Services
2.8.3. Creating a Data Service using the ADO.NET Entity Framework
2.9. Windows Form Application for accessing Virtuoso RDF data via SPASQL using the Virtuoso ADO.Net Provider
2.9.1. Pre-requisites
2.9.2. Creating the Application
2.9.3. Extending RDFDemo to Allow Dereferencing of External IRIs
2.9.4. Extending RDFDemo to Display More Compact Labels
2.9.5. Modifying the Northwind Ontology to Add Labels
2.9.6. Extending RDFDemo to Display Images and Longer Text Fields.
2.9.7. Extending RDFDemo To Make The Property Labels Clickable
2.10. Creating a Web Browser Application to Access RDF Data Using The Virtuoso ADO.Net Provider
2.10.1. Pre-requisites
2.10.2. Creating the Web Service
2.10.3. Creating the Browser Application
2.10.4. Deploy With IIS
2.11. Creating a Silverlight Application to consume the service
2.11.1. Pre-requisites
2.11.2. Creating the Application for Silverlight.
2.12. Creating A Simple .NET RIA Services Application To Display Data From Virtuoso
2.12.1. Pre-requisites
2.12.2. Creating the Application
2.12.3. Displaying RDF Data
2.12.4. Next Steps
2.13. Creating a .Net RIA Services Application That Will Update Virtuoso Data
2.13.1. Pre-requisites
2.13.2. Creating the Application
2.13.3. Propagate Updates to Virtuoso
2.14. Cluster Installation and Config
2.14.1. Creating New Cluster Setup
2.14.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. 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.3. Virtuoso Cluster Fault Tolerance
6.3.1. Introduction
6.3.2. Sample Configuration
6.3.3. Transactions
6.3.4. Dividing Virtuoso Hosts Over Physical Machines
6.3.5. Managing Availability
6.3.6. Optimizing Schema for Fault Tolerance
6.3.7. Interpreting Status Messages
6.3.8. Administration API
6.3.9. RDF Specifics
6.3.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. SQL Reference
8.1. Datatypes
8.1.1. Date Literals
8.1.2. Casting
8.1.3. Time & Date Manipulation
8.1.4. Declaring Collations of Expressions
8.2. User Defined Types
8.2.1. CREATE TYPE Statement
8.2.2. ALTER TYPE Statement
8.2.3. DROP TYPE Statement
8.2.4. CREATE METHOD Statement
8.2.5. Type Instances
8.2.6. Instance References
8.2.7. NEW Operator
8.2.8. Finding Methods - Method Signatures Generation & Comparison
8.2.9. Getting & Setting Member Values of Type Instances (member observers & mutators)
8.2.10. Calling Static Methods
8.2.11. Calling Instance Methods
8.2.12. Serializing & Deserializing Type Instances
8.2.13. User Defined Types Utility Functions
8.2.14. Hosted Foreign Objects in Virtuoso
8.2.15. Using User Defined Types to Represent SOAP Structures
8.2.16. Consuming Third-Party SOAP Services via User Defined Types
8.2.17. UDT Security
8.3. XML Column Type
8.4. Identifier Case & Quoting
8.5. Wide Character Identifiers
8.5.1. UTF-8 Implementation Notes For ODBC
8.5.2. UTF-8 Implementation Notes In JDBC
8.6. Qualified Names
8.6.1. Qualifiers and Owners
8.6.2. Default Qualifiers
8.6.3. USE Statement, USE identifier
8.7. Literals, Brace Escapes
8.7.1. Strings
8.7.2. Numbers
8.7.3. ODBC Brace Escapes
8.7.4. Hexadecimal Literals
8.7.5. Binary Literals
8.8. CREATE TABLE Statement
8.8.1. Syntax
8.8.2. NOT NULL
8.8.3. IDENTITY (Auto Increment)
8.8.4. DEFAULT
8.8.5. PRIMARY KEY Constraint
8.8.6. UNDER
8.8.7. FOREIGN KEY Constraint
8.8.8. The CHECK Constraint
8.8.9. The WITH SCHEMA Constraint
8.9. DROP TABLE Statement
8.10. CREATE INDEX Statement
8.11. DROP INDEX Statement
8.12. ALTER TABLE Statement
8.12.1. Adding a CHECK Constraint
8.13. CREATE VIEW Statement
8.14. CREATE XML SCHEMA Statement
8.15. DROP XML SCHEMA Statement
8.16. Sequence Objects
8.17. INSERT Statement
8.17.1. INSERT SOFT
8.17.2. INSERT REPLACING
8.18. UPDATE Statement
8.19. SELECT Statement
8.19.1. Syntax
8.19.2. Description
8.19.3. Column Aliasing - AS Declaration
8.19.4. Join examples
8.19.5. Ordering and Grouping
8.19.6. Derived Tables
8.19.7. Query Expressions
8.19.8. LIKE Predicate & Search Patterns
8.19.9. The TOP SELECT Option
8.19.10. CASE, NULLIF, COALESCE, CAST Value Expressions
8.19.11. SELECT BREAKUP
8.20. COMMIT WORK, ROLLBACK WORK Statement
8.21. CHECKPOINT, SHUTDOWN Statement
8.21.1. Checkpoint & Page Remapping
8.22. Stored Procedures as Views & Derived Tables
8.22.1. Procedure Table Parameters
8.22.2. Procedure Table Result Sets
8.22.3. Procedure Tables & Security
8.22.4. Procedure Table Cost and Join Order
8.22.5. Limitations
8.22.6. Procedure Table Examples
8.23. GRANT, REVOKE Statement
8.24. SET Statement
8.24.1. ISOLATION
8.24.2. LOCK_ESCALATION_PCT
8.24.3. transaction_timeout
8.24.4. PARAM_BATCH
8.25. Anytime Queries
8.26. Best Effort Union
8.27. Standard and User-Defined Aggregate Functions
8.27.1. Create Aggregate Statement
8.27.2. Drop Aggregate Statement
8.27.3. Examples of User-Defined Aggregates
8.28. Virtuoso SQL Optimization
8.28.1. Optimization Techniques
8.28.2. Query Options
8.28.3. ANY ORDER
8.28.4. VDB Statistics for the SQL Compiler Collection
8.29. SQL Inverse Functions
8.29.1. Updating through Inverses
8.30. SQL Grammar
8.31. Bitmap Indices
8.31.1. Bitmap Indices and Transactions
8.31.2. Performance Implications
8.31.3. Physical Structure and Overheads
8.32. Transitivity in SQL
8.33. Fast Phrase Match Processor
8.33.1. Phrases, Phrase Sets and Phrase Classes
8.33.2. Phrase Set Configuration API
8.33.3. Advertisers and Advertisement Rules
8.33.4. Example
9. SQL Procedure Language Guide
9.1. General Principles
9.2. Scope of Declarations
9.3. Data Types
9.4. Handling Result Sets
9.5. Result Sets and Array Parameters
9.6. Exception Semantics
9.7. Virtuoso/PL Syntax
9.7.1. Create Procedure Statement
9.7.2. Grand Execute Statement
9.7.3. Stored Procedures as Views & Derived Tables
9.7.4. Keyword and Optional Procedure Arguments
9.7.5. if, while, for, foreach statements
9.7.6. compound statement
9.7.7. goto, return statements
9.7.8. whenever statement
9.7.9. call, assignment statements
9.7.10. open, fetch, close, select ... into statements
9.7.11. FOR Select Statement
9.7.12. SET statement
9.7.13. SET Triggers
9.8. Execute Stored Procedures via SELECT statement
9.9. Execute Stored Procedures In Background
9.10. CREATE ASSEMBLY Syntax - External Libraries
9.11. CREATE PROCEDURE Syntax - External hosted procedures
9.12. Asynchronous Execution and Multithreading in Virtuoso/PL
9.12.1. Synchronization
9.13. Performance Tips
9.13.1. Remember the following:
9.14. Procedures and Transactions
9.15. Distributed Transaction & Two Phase Commit
9.15.1. Initiating Distributed Transactions
9.15.2. Responding to Distributed Transactions
9.15.3. 2PC Log & Recovery
9.15.4. Error Codes
9.16. Triggers
9.16.1. The CREATE TRIGGER statement
9.16.2. Triggers on Views
9.16.3. The DROP TRIGGER statement
9.16.4. Triggers and Virtual Database
9.17. Character Escaping
9.17.1. Statement Level
9.17.2. Connection Level
9.17.3. Server Default
9.18. Virtuoso/PL Scrollable Cursors
9.18.1. Declaring a Scrollable Cursor
9.18.2. Opening a Scrollable Cursor
9.18.3. Fetching Data From a Scrollable Cursor
9.18.4. Virtuoso/PL Scrollable Cursor Examples
9.18.5. FORWARD-ONLY (traditional cursor statement) Example
9.18.6. DYNAMIC (traditional cursor statement) Example
9.18.7. KEYSET (traditional cursor statement) Example
9.19. Virtuoso PL Modules
9.19.1. Syntax
9.19.2. Security
9.20. Handling Conditions In Virtuoso/PL Procedures
9.20.1. Declaring Condition Handlers
9.20.2. Stack Trace Reporting On Sql Error Generation
9.21. Procedure Language Debugger
9.21.1. Branch Coverage
9.21.2. Coverage Functions
9.22. Row Level Security
9.22.1. Row Level Security Functions
10. Database Event Hooks
10.1. Database Startup
10.2. Database Connections
10.3. Database Logins
10.4. Database Disconnections
10.5. Database Shutdown
10.6. SQL Statement Preparation
10.7. SQL Parse Tree
10.7.1. Notes on Special Features of the Parse Tree
10.7.2. SQL Security and Parse Trees
10.7.3. Debugging with Parse Trees
10.8. WebDAV Logins
10.9. Associating Auxiliary Data With A Connection
11. Data Replication, Synchronization and Transformation Services
11.1. Introduction
11.1.1. Snapshot replication
11.1.2. Transactional replication
11.2. Snapshot Replication
11.2.1. Non incremental snapshot replication
11.2.2. Incremental snapshot replication
11.2.3. Command reference
11.2.4. Bi-Directional Snapshot Replication
11.2.5. Registry variables
11.2.6. Heterogeneous snapshot replication
11.2.7. Data type mappings
11.2.8. Objects created by incremental snapshot replication
11.2.9. Objects created by bi-directional snapshot replication
11.2.10. Replication system tables
11.2.11. Table snapshot logs
11.3. Transactional Replication
11.3.1. Publishable Items
11.3.2. Errors in Replication
11.3.3. Publisher Transactional Replication Functions
11.3.4. Subscriber Functions
11.3.5. Common Status Functions
11.3.6. Bi-Directional Transactional Replication
11.3.7. Purging replication logs
11.3.8. Objects created by transactional replication
11.4. Virtuoso scheduler
11.4.1. SYS_SCHEDULED_EVENT
11.5. Transactional Replication Example
11.5.1. Transactional Replication Objects Example
11.6. Replication Logger Sample
11.6.1. Configuration of the Sample
11.6.2. Synchronization
11.6.3. Running the Sample
11.6.4. Notes on the Sample's Dynamics
12. Web Application Development
12.1. The HTTP Server
12.1.2. HTTP Server Base Configuration
12.1.3. Virtual Directories
12.1.4. Authentication
12.1.5. Session Management
12.1.6. Writing Your Own Authentication and Session Handling
12.1.7. Cancellation of Web Requests
12.1.8. Virtuoso WebRobot API
12.1.9. HTTP Server Extensions
12.1.10. Chunked Transfer Encoding
12.1.11. Using Virtuoso Server capabilities via Apache Web Server
12.1.12. Setting Up the Virtuoso HTTPS Listener
12.2. Web Services ACL (Access Control List)
12.2.1. General purpose ACLs
12.2.2. ACL Definition/Removal
12.2.3. Using ACL's Within Application Logic
12.2.4. Predefined ACLs
12.3. Virtuoso Server Pages (VSP)
12.3.2. VSP Markup & Basic Functions
12.3.3. Access Request Information
12.3.4. Errors in Page Procedures
12.3.5. /INLINEFILE HTTP Server Pseudo-Directory
12.3.6. Beyond Basics
12.3.7. Long HTTP Transactions
12.3.8. Using chunked encoding in HTTP 1.1
12.3.9. Making Simple Dynamic Web Pages
12.3.10. Generation of non-HTML output
12.3.11. Post VSP XSLT Transformation Mode
12.3.12. XML & XSLT Generated VSP Pages
12.4. Virtuoso Server Pages for XML (VSPX)
12.4.1. Processing Model
12.4.2. Object Model
12.4.3. Keeping Page and Session State
12.4.4. Application Code
12.4.5. A Simple Example
12.4.6. VSPX Event Handler Parameters
12.4.7. Registering a VSPX Event Callbacks
12.4.8. Commonly Used Types of Attributes of VSPX Controls
12.4.9. VSPX Controls
12.4.10. XForms rendering
12.4.11. XMLSchema for VSPX page
12.5. Deploying ASP.Net Web Applications
12.5.2. Programming Concepts
12.5.3. ASP.Net Deployment & Configuration
12.5.4. The Mono Project
12.5.5. Migrating ASP.Net Applications to Virtuoso
12.6. ASMX Web Service Hosting
12.7. Blogging & Weblogs
12.7.1. The Virtuoso Blogging Application
12.7.2. Blogger Clients Compatibility
12.7.3. Blogs Management User Interface
12.7.4. Community Blog Site
12.7.5. Blogger API
12.7.6. MetaWeblog API
12.7.7. Movable Type API
12.7.8. Atom API
12.7.9. XML-RPC Endpoint Configuration
12.7.10. Blog Hooks - Customizing the Blog Server
12.7.11. Blogger Client API
12.7.12. xmlStorageSystem API
12.7.13. User's Blog quota
12.7.14. Posting a message in to the Blog
12.7.15. Multi-author blogging
12.7.16. Posting a comments
12.7.17. Blog Post Upstreaming (bridging)
12.7.18. Weblogs API
12.7.19. Subscriptions
12.7.20. Trackback API
12.7.21. Pingback API
12.7.22. E-mail Notifications
12.7.23. Comments tracking options
12.7.24. Subscription Harmonizer API
12.7.25. Mobile Blogging (Moblog)
12.7.26. Posting a dynamic content
12.7.27. Notification Services
12.7.28. Rendering the RSS feed in WML format
12.8. Deploying PHP Applications
12.8.2. Building the Virtuoso Server With PHP Extension
12.8.3. PHP Extension Functions
12.8.4. PHP Examples
12.9. Deploying JSP Applications
12.9.2. Environment Setup & Verification
12.10. Perl Hosting
12.11. Python Hosting
12.12. Ruby Hosting
13. XML Support
13.1. Rendering SQL Queries as XML (FOR XML Clause)
13.1.1. FOR XML EXPLICIT Mode
13.1.2. Examples of FOR XML
13.1.3. Functions
13.1.4. FOR XML Syntax
13.2. XML Composing Functions in SQL Statements (SQLX)
13.3. Virtuoso XML Services
13.3.1. XPATH Implementation and SQL
13.3.2. XPATH Query Options
13.3.3. XML Views - Representing SQL Data as Dynamic and Persistent XML
13.3.4. External Entity References in Stored XML
13.3.5. Using XPATH in SQL Queries and Procedures
13.3.6. XQUERY and XML view
13.3.7. Mapping Schemas as XML Views
13.3.8. Differences Between SQLX, FOR XML and XML Views
13.4. Querying Stored XML Data
13.4.1. XPATH_CONTAINS SQL Predicate
13.4.2. Using xpath_eval()
13.4.3. External Entity References in Stored XML
13.4.4. XML Schema & DTD Functions
13.4.5. Using XML and Free Text
13.4.6. XCONTAINS predicate
13.4.7. text-contains XPath Predicate
13.4.8. XML Free Text Indexing Rules
13.4.9. XML Processing & Free Text Encoding Issues
13.5. Using UpdateGrams to Modify Data
13.5.1. Updategrams Basics
13.5.2. Elements Description
13.5.3. Determining Actions
13.5.4. Using Input Parameters
13.5.5. Examples
13.6. XML Templates
13.6.2. Syntax
13.6.3. Saving SQL Queries to XML Template
13.6.4. Saving XQUERY Queries to XML Template
13.6.5. Saving XPATH Queries to XML Template
13.6.6. Programmatic Examples
13.7. XML DTD and XML Schemas
13.7.1. XML Document Type Definition (DTD)
13.7.2. Configuration Options of the DTD Validator
13.7.3. XML Schema Definition Language
13.7.4. XML Schema Functions
13.7.5. XML Schema & SOAP
13.8. XQuery 1.0 Support
13.8.1. Types of XQuery Expressions
13.8.2. Details of XQuery Syntax
13.8.3. Pre-compilation of XPath and XQuery Expressions
13.9. XSLT Transformation
13.9.1. Namespaces
13.9.2. The <xsl:output> Tag
13.9.3. External Parameters in XSLT Stylesheets
13.9.4. Functions
13.9.5. XSLT Examples
13.9.6. XPath Function Extensions for XSLT
13.9.7. Status Of XSLT And XPath Implementation
13.10. XMLType
13.11. Changing XML entities in DOM style
13.11.1. Composing Document Fragments From DOM Function Arguments
14. RDF Data Access and Data Management
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.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 RDF View
14.5.13. RDF views and recursive FK relationships
14.6. Automated Generation of RDF 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. Examples of Linked Data Views
14.7.1. Simple Mapping Example -- Northwind RDF View
14.7.2. BSBM to RDF
14.7.3. TPCH to RDF
14.7.4. TPCD to RDF
14.7.5. Thalia to RDF
14.7.6. Musicbrainz to RDF
14.7.7. Virtuoso ODS to RDF
14.7.8. Oplweb to RDF
14.7.9. Sybase using demonstration 'pubs2' database
14.7.10. Virtuoso's Northwind based Demo Database (Tutorials variant) to RDF
14.7.11. SQL Server's Northwind Demo Database
14.7.12. Oracle Demonstration 'HR' Database
14.7.13. Oracle using the demonstration 'Human Resources' database
14.7.14. DB2 using the demonstration 'Sample' database
14.7.15. Informix using demonstration 'Stores' database
14.7.16. Ingres using demonstration 'Tutorial' database
14.7.17. Progress (SQL-89) using demonstration 'iSports' database
14.7.18. Progress (SQL-92) using demonstration 'iSports' database
14.8. RDF Insert Methods in Virtuoso
14.8.1. Using API functions
14.8.2. SPARQL endpoint REST API
14.8.3. HTTP PUT using Content-Type: application/rdf+xml
14.8.4. SPARQL Insert using LOAD
14.8.5. SPARQL Insert via /sparql endpoint
14.8.6. SPARQL Insert via SPARQL endpoint REST API and ODS wiki
14.8.7. Using WebDAV
14.8.8. Using Virtuoso Crawler
14.8.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)
14.8.10. Using Virtuoso PL APIs
14.8.11. Using SIMILE RDF Bank API
14.8.12. Using RDF NET
14.8.13. Using the RDF Proxy (Sponger) Service
14.9. RDFizer Middleware (Sponger)
14.9.1. What Is The Sponger?
14.9.2. Why is it Important?
14.9.3. How Does It Work?
14.9.4. Installation Steps
14.9.5. Using The Sponger
14.9.6. Consuming the Generated RDF Structured Data
14.9.7. RDF Cartridges Use Cases
14.9.8. Cartridge Architecture
14.9.9. Sponger Programmers Guide
14.9.10. Sponger Usage Examples
14.10. Virtuoso Faceted Browser Installation and configuration
14.10.1. Prerequisites
14.10.2. Pre Installation
14.10.3. VAD Package Installation
14.10.4. Post Installation
14.10.5. URI Labels
14.10.6. Usage Statistics
14.10.7. Examples
14.11. Virtuoso Faceted Web Service
14.11.1. Customizing
14.11.2. Examples
14.11.3. WebService Interface
14.12. Linked Data
14.12.1. IRI Dereferencing For FROM Clauses, "define get:..." Pragmas
14.12.2. IRI Dereferencing For Variables, "define input:grab-..." Pragmas
14.12.3. URL rewriting
14.12.4. Examples of other Protocol Resolvers
14.12.5. Faceted Views over Large-Scale Linked Data
14.13. Inference Rules & Reasoning
14.13.1. Introduction
14.13.2. Making Rule Sets
14.13.3. Changing Rule Sets
14.13.4. Subclasses and Subproperties
14.13.5. OWL sameAs Support
14.13.6. Implementation
14.13.7. Enabling Inferencing
14.13.8. Examples
14.13.9. Identity With Inverse Functional Properties
14.13.10. Inference Rules and SPARQL with Transitivity Option
14.13.11. Inference Rules, OWL Support and Relationship Ontology
14.14. RDF and Geometry
14.14.1. Programmatic Manipulation of Geometries in RDF
14.14.2. Creating Geometries From RDF Data
14.14.3. Using Geometries With Existing Databases
14.14.4. GEO Spatial Examples
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. Dump and Reload Graphs
14.15.7. Dump RDF View Graph to n3
14.15.8. Loading RDF
14.15.9. Using SPARUL
14.15.10. DBpedia Benchmark
14.15.11. RDF Store Benchmarks
14.15.12. Fast Approximate RDF Graph Diff and Patch
14.15.13. 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
14.17. RDF Graph Replication
14.17.1. Replication Scenarios
14.17.2. Replication Topologies
14.17.3. Set up RDF Replication via procedure calls
15. Web Services
15.1. SOAP
15.1.1. Virtuoso SOAP Support Overview
15.1.2. Handling of SOAP HTTP Requests
15.1.3. Extending Datatypes for SOAP Objects
15.1.4. Inheritance of Datatypes for SOAP Objects
15.1.5. Complex Types in PL Procedure and UDT Method Definition
15.1.6. Complex Types in Procedure Definition using a pre-defined XML Schema datatypes
15.1.7. Default SOAP-SQL Datatype Mappings
15.1.8. Exposing Stored Procedures as SOAP Objects
15.1.9. Creation of SOAP proxy based on User Defined Types
15.1.10. Exposing User Defined Type Methods as SOAP Objects
15.1.11. Exposing Remote Third Party SQL Stored Procedures as SOAP Services
15.1.12. Virtuoso/PL SOAP Client
15.1.13. Execution Privileges
15.1.14. Custom Soap Server Support
15.1.15. PL Procedures and UDT Methods Syntax Affecting WSDL & SOAP Processing
15.1.16. Exposing & Processing SOAP Header Messages
15.1.17. Exposing & Processing SOAP Fault Messages
15.1.18. Document Literal Encoding
15.1.19. DIME encapsulation of SOAP messages
15.1.20. SOAP Endpoint Options
15.2. WSDL
15.2.1. Exposing Stored Procedures as WSDL Services
15.2.2. Exposing SQL Stored Procedures containing complex datatype definitions
15.2.3. Exposing Third Party SQL Stored Procedures as WSDL-Compliant Web Services
15.2.4. WSDL Descriptions of SOAP Header Messages
15.2.5. Importing A WSDL File & SOAP/WSDL Proxying
15.2.6. SOAP/WSDL Interoperability
15.3. WebID Protocol Support
15.3.1. x.509 certificate
15.3.2. Setting up Virtuoso HTTPS
15.3.3. Setting Up Firefox
15.3.4. Configuring ODS Account to use WebID Protocol
15.3.5. Testing the setup
15.3.6. WebID Protocol ACLs
15.3.7. SPARQL-SSL based Endpoint
15.3.8. CA Keys Import using Conductor
15.3.9. Set Up X.509 certificate issuer, HTTPS listener and generate ODS user's certificates
15.3.10. WebID Protocol ODBC Login
15.4. OAuth Support
15.4.1. OAuth Access Tokens
15.4.2. Virtuoso OAuth server
15.4.3. OAuth Implementation in OpenLink Data Spaces
15.4.4. OAuth Generate Keys for ODS Controllers (Web Services)
15.4.5. ODS Ubiquity Commands
15.4.6. OAuth Test Tool for ODS Controllers
15.4.7. OAuth QA
15.5. WS-Security (WSS) Support in Virtuoso SOAP Server
15.5.1. Client and Server side Certificates & Keys
15.5.2. SOAP Server WS-Security Endpoint
15.5.3. Virtual Directory SOAP WSS Options
15.5.4. Accounting & Accounting Hook
15.5.5. Signature Templates
15.5.6. SOAP Client
15.6. Web Services Routing Protocol (WS-Routing)
15.6.1. Configuration
15.6.2. Traversing Message Paths
15.7. Web Services Reliable Messaging Protocol (WS-ReliableMessaging)
15.7.1. SOAP CLIENT API Extensions
15.7.2. WS-RM Sender API
15.7.3. WSRM Receiver API
15.7.4. WS-RM Protocol Endpoint Configuration
15.7.5. Message Examples
15.7.6. WS-RM Schema
15.8. Web Services Trust Protocol (WS-Trust)
15.9. XML for Analysis Provider
15.10. XML-RPC support
15.11. SyncML
15.12. UDDI
15.12.1. Concepts
15.12.2. Dealing with SOAP
15.12.3. Supported API Calls
15.12.4. Authorization Mechanism
15.12.5. UDDI API Calls
15.12.6. Examples
15.13. Exposing Persistent Stored Modules as Web Services
15.13.1. Publishing Stored Procedures as Web Services
15.13.2. XML Query Templates
15.13.3. Publishing VSE's as Web Services
15.14. Testing Web Published Web Services
15.15. BPEL Reference
15.15.1. Activities
15.15.2. Protocol Support
15.15.3. Process lifecycle
15.15.4. Using virtual directories
15.15.5. Process archiving
15.15.6. Configuration parameters
15.15.7. Process Statistics
15.15.8. Deployment file suitcase format
15.15.9. SQL API
15.15.10. BPEL XPath Functions
15.15.11. Tables
15.15.12. Errors
15.15.13. Samples
15.15.14. References
15.15.15. BPEL4WS VAD Package installation
15.16. XSQL
15.16.1. XSQL Syntax
15.16.2. XSQL Directives
16. Runtime Hosting
16.1. Runtime Environments
16.2. CLR, .Net & ASPX Host
16.2.1. Environment Setup
16.2.2. Testing the Virtuoso .NET Runtime Environment
16.3. CLR & Mono
16.3.1. Environment Setup
16.3.2. Testing the Virtuoso Mono Runtime Environment
16.4. Embedded Java VM API
16.4.1. Correspondence Between Virtuoso & Java VM Threads
16.4.2. Virtuoso/PL <-> Java VM Type Mapping Schema
16.4.3. References to Java VM Class Instances in Virtuoso/PL
16.4.4. Specifying the Correct Java Type When Passing Values from Virtuoso/PL
16.4.5. Virtuoso Java PL API VSEs
16.4.6. Java Security
16.5. Virtuoso Server Extension Interface (VSEI) (C Interface)
16.5.1. Virtuoso Server Extension Interface (VSEI)
16.5.2. SQL Run Time Objects
16.5.3. Memory Management Rules
16.5.4. Server Main Function
16.5.5. Compiling & Linking
16.5.6. Functions by Category
16.5.7. VSEI Definition
16.5.8. SQL Exceptions
16.5.9. Executing SQL
16.5.10. Adding New Languages And Encodings Into Virtuoso
16.6. VSEI Plugins
17. Internet Services
17.1. WebDAV Server
17.1.2. DAV User Accounts
17.1.3. WebDAV Authentication
17.1.4. WebDAV Symbolic Links
17.1.5. Access Right Permissions of Web Resources
17.1.6. DAV and RDF Metadata
17.1.7. Special Attributes of Web Resources
17.2. URIQA Semantic Web Enabler
17.2.1. URIQA HTTP Methods
17.2.2. URIQA Web Service
17.2.3. URIQA Section in Virtuoso Configuration File
17.2.4. URI Matching Rules
17.3. Mail Delivery & Storage
17.3.1. The SMTP Client
17.3.2. POP3 Server
17.3.3. Storing Email in Virtuoso
17.4. NNTP Newsgroups
17.4.1. NNTP Client
17.4.2. NNTP Server
17.5. MIME & Internet Messages
17.5.1. About Simple Internet (RFC 822) Messages
17.5.2. MIME Messages - Extension to Simple Internet Messages
17.5.3. S/MIME Support
17.6. FTP Services
17.6.1. FTP Client
17.6.2. FTP Server
17.7. VSP Guide
17.7.1. Introduction
17.7.2. Simple HTML FORM usage
17.7.3. Interacting with the Database
17.7.4. The Forums Application
17.7.5. Setting up server-side Cross-Origin Resource Sharing (CORS) with Virtuoso
17.8. LDAP
17.8.1. LDAP Client
17.8.2. LDAP Server
18. Free Text Search
18.1. Basic Concepts
18.2. Creating Free Text Indexes
18.2.1. The CREATE TEXT INDEX statement
18.2.2. Choosing An Application Specific Document ID
18.2.3. The composite Data Type
18.2.4. Free Text Index Examples
18.2.5. Pre-processing and Extending the Content Being Indexed
18.2.6. Hit Scores
18.2.7. Word Ranges
18.2.8. Using Offband Data for Faster Filtering
18.2.9. Order of Hits
18.2.10. Noise Words
18.3. Querying Free Text Indexes
18.3.1. CONTAINS predicate
18.3.2. Comments
18.3.3. Text Expression Syntax
18.4. Text Triggers
18.4.1. Creating Text Triggers
18.4.2. Created Database Objects
18.5. Generated Tables and Internals
18.5.1. Generated Tables and Procedures
18.5.2. The procedures are:
18.5.3. Tables and Procedures Created By Text Triggers
18.6. Removing A Text Index
18.7. Removing A Text Trigger
18.8. Internationalization & Unicode
18.9. Performance
18.9.1. Restrictions
18.10. Free Text Functions
19. TPC C Benchmark Kit
19.1. Building the Test Database
19.2. Using the Test Program
19.3. Tuning Parameters and Number of Users
19.4. Omissions, Exceptions from the Definition
19.5. Sample Configuration
19.6. Other Factors
19.7. TPC C Procedures
19.7.1. Introduction
19.7.2. New Order
19.7.3. Payment
19.7.4. Delivery
19.7.5. Order Status
19.7.6. Stock Level
19.8. DDL Statements
19.9. Stored Procedures
20. Using Virtuoso with Tuxedo
20.1. Building the Transaction Manager Server
20.2. Configuration
20.3. Services
20.3.1. Introduction
20.3.2. VQL functions
20.3.3. Services concept
20.3.4. OPENINFO
20.4. Clients
20.5. Service example
21. Appendix
21.1. YACC SQL Grammar Reference
21.2. Error Codes Reference
21.2.1. Virtuoso Error Codes
21.2.2. Data Type Errors
21.3. Signals and Exit codes
21.3.1. Exit codes
21.3.2. Signals
21.4. Release Notes
21.4.1. New Features
21.4.2. Bugs Fixed
21.5. Product Support
21.5.1. OpenLink Discussion Forums
21.6. Virtuoso System Tables
21.6.1. Core System Tables
21.6.2. System Tables
21.6.3. Row Level Security Table
21.6.4. SYS_CHARSETS
21.6.5. Collations System Table
21.6.6. UDDI Schema
21.6.7. Web Robot System Tables
21.6.8. Web Server & DAV System Tables
21.6.9. Mail Table Description
21.6.10. NNTP Server Tables
21.6.11. WS Reliable Messaging
21.6.12. WS Trust
21.6.13. SyncML Schema Objects
21.6.14. INFORMATION_SCHEMA views
21.7. Basic Syntax of Regular Expressions
21.8. Server & client versions compatibility
22. Virtuoso Functions Guide