Michael Povolotsky CMSC491s/691s. What is Virtuoso? Virtuoso, known as Virtuoso Universal Server, is...

19
Michael Povolotsky CMSC491s/691s

Transcript of Michael Povolotsky CMSC491s/691s. What is Virtuoso? Virtuoso, known as Virtuoso Universal Server, is...

Michael PovolotskyCMSC491s/691s

What is Virtuoso?Virtuoso, known as Virtuoso Universal

Server, is a multi-protocol RDBMS

Includes an object-relational database engine (for sql, xml, rdf, and free-text), includes JAVA and .NET runtime hosting, Web Application Server, Web Services, Web Content Management, DataPortability ( controlling, sharing, and moving data freely from system to system)

Instead of separate servers for RDBMS, ORDBMS, RDF, XML, Web Application Server, and File Server functionality, Virtuoso combines the aforementioned into a single “universal server”

Virtuoso is designed with multi-threading and multi-CPU support

QuadsImplements a quad (graph, subject, predicate,

object)

Default Layout- GSPO is used as the primary key- OPGS is used as a bitmap index

GPS are IRI ids (Internalized Resource Identifier) , O is any SQL serializable object

Uses bitmap indices for efficient storage capacity

Quads

In Virtuoso, an RDF mapping schema consists of declarations of one or more quad storages.[1]

The default quad storage declares that the system table RDF QUAD consists of four columns (G, S, P and O) that contain fields of stored triples, using special formats that are suitable for arbitrary RDF nodes and literals.[1]

Quads

“A quad map value describes how to compose one of four fields of an RDF quad. It may be an RDF literal constant, an IRI constant or an IRI class with a list of columns of table aliases where SQL values come from. Four quad map values (for G, S, P and O) form quad map pattern that specify how the column values of table aliases are combined into an RDF quad.”[1]

Data Manipulation

Virtuoso includes support for SPARUL SPARQL and is compatibility with Jena

Updates can be run transactionally or with an automatic commit after each modified triple[1]

SPARQL & SQL

SPARQL is translated into SQL when the query is parsed.

All triples are stored in one table

RDF Inferencing

Includes an integrated capability directly in the Virtuoso SQL execution engine to inference subclasses and sub properties.

Asking for the class of an IRI also return any super classes. This behavior is equivalent to having all of the implied classes stored directly in the database.[1]

Benchmarks

Virtuoso can store over 1 billion triples

Loads 1 billion triples LUBM benchmark at a sustained rate of 12692 triples/s and 47 million triples Wikipedia data set at a sustained rate of 20800 triples/s (Orri Erling, OpenLink) [4]

Applications

DbpediaMusicbrainzGeonamesPingTheSemanticWeb

Features

http://virtuoso.openlinksw.com/main/featurematrix/index.htm

Protocols Implemented API’s ImplementedHTTP, HTTPS, WebDAV,

SOAP, UDDI, WSDL, WS-Policy, WS-Security, WS-ReliableMessaging, WS-Routing, WS-Referral, WS-Attachment, WS-BPEL, SyncML, GData, SPARQL, SPARUL, NNTP

ODBC, JDBC, OLE DB, ADO.NET, ADO.NET Entity Framework, XMLA

Query Language Support

Schema Definition Lanuage

SQLSPARQLXQueryXPathXSLT

SQL’s DDL (Data Definition Language)

XML Schema

Content Syndication and Interchange Format Support

AtomRSS 2.0/1.0OPMLXBELFOAFSIOC

Cross-Platform SupportVirtuoso is supported on large number of

platforms, both 32-bit and 64-bit

- Windows- UNIX (HP, AIX, Sun, DEC, BSD, SCO)- Linux (Red Hat, SUSE)- Mac OS X

LicensingIn 2006 Virtuoso was available as open

source

Today, Virtuoso is available in both open source and commercial licenses

The open-source version of Virtuoso is known as OpenLink Virtuoso

Subsequent WorkClustering: increasing the storage of triples from

the billions to hundreds of billions and upwards[1]

Updating Relational Data by SPARUL statements: extending SPARUL compiler and run-time in order to make RDF views updatable[1]

Cloud Computing: for huge triple storage sets that current data centers may not be able to handle

Bibliography[1] Erling O., Mikhailov I.: RDF Support in the Virtuoso DBMS

[2] Erling O.: Towards Web Scale RDF

[3] http://en.wikipedia.org/wiki/Virtuoso_Universal_Server

[4] http://virtuoso.openlinksw.com/wiki/main/Main/VOSBitmapIndexing