190 likes | 450 Views
Virtuoso. Michael Povolotsky CMSC491s/691s. What is Virtuoso?. Virtuoso, known as Virtuoso Universal Server, is a multi-protocol RDBMS
E N D
Virtuoso Michael Povolotsky CMSC491s/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
Quads • Implements 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 • Dbpedia • Musicbrainz • Geonames • PingTheSemanticWeb
Features http://virtuoso.openlinksw.com/main/featurematrix/index.htm
Protocols Implemented API’s Implemented • HTTP, 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 • SQL • SPARQL • XQuery • XPath • XSLT • SQL’s DDL (Data Definition Language) • XML Schema
Content Syndication and Interchange Format Support • Atom • RSS 2.0/1.0 • OPML • XBEL • FOAF • SIOC
Cross-Platform Support • Virtuoso 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
Licensing • In 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 Work • Clustering: 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