<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--ATOM based XML document generated By OpenLink Virtuoso-->
<atom:feed xmlns:atom="http://www.w3.org/2005/Atom">
<atom:id>http://docs.openlinksw.com/virtuoso/rdfandsparql.html</atom:id>
<atom:title>RDF Database and SPARQL</atom:title>
<atom:link href="http://docs.openlinksw.com/virtuoso/rdfandsparql.html" type="text/html" rel="alternate" />
<atom:link href="http://docs.openlinksw.com/virtuoso/rdfandsparql.html" type="application/atom+xml" rel="self" />
<atom:subtitle>OpenLink Virtuoso Universal Server: Documentation</atom:subtitle>
 <atom:author>
  <atom:name>virtuoso.docs@openlinksw.com</atom:name>
  <atom:email>virtuoso.docs@openlinksw.com</atom:email>
  </atom:author>
<atom:updated>2008-04-09T14:35:56Z</atom:updated>
<atom:generator>OpenLink Software Documentation Team</atom:generator>
<atom:logo>http://docs.openlinksw.com/virtuoso/../images/misc/logo.jpg</atom:logo>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfdatarepresentation.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Data Representation<atom:link href="http://docs.openlinksw.com/virtuoso/rdfdatarepresentation.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>Data Representation</atom:title>
  <atom:content type="html">This section covers how Virtuoso stores RDF triples. The IRI_ID built-in data type is introduced, along with the default table structures used for triple persistency.</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfapiandsql.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>RDF and SPARQL API and SQL<atom:link href="http://docs.openlinksw.com/virtuoso/rdfapiandsql.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>RDF and SPARQL API and SQL</atom:title>
  <atom:content type="html">SPARQL can be used inline wherever SQL can be used. The only API functions that one needs to know are the ones for loading RDF data into the store. Dynamic SQL client applications can issue SPARQL queries against Virtuoso through the regular SQL client API, ODBC, JDBC or other, simply by prefixing the SPARQL query with the SPARQL keyword. Parameters work just as with dynamic SQL. Stored procedures can have SPARQL expressions inline and can declare cursors over SPARQL result sets. Value conversions between SQL and SPARQL are most often automatic and invisible. In some cases one needs to be aware of the different SPARQL value representations (valmodes). SPARQL offers declarations for determining if graphs to be returned are to be represented as XML or Turtle text serialization or whether these will be hash tables of triples. See dict_new() and related functions for a description of the hash table SQL data type. The use of dict&#39;s is convenient for further programmatic processing of graphs. RDF-related procedures use Virtuoso/PL vectors and dictionaries to represent RDF triples and sets of triples.</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfsparul.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>SPARUL -- an Update Language For RDF Graphs<atom:link href="http://docs.openlinksw.com/virtuoso/rdfsparul.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>SPARUL -- an Update Language For RDF Graphs</atom:title>
  <atom:content type="html" />
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfiridereferencing.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Dereferencable IRIs and RDF Linked Data<atom:link href="http://docs.openlinksw.com/virtuoso/rdfiridereferencing.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>Dereferencable IRIs and RDF Linked Data</atom:title>
  <atom:content type="html">There are many cases when RDF data should be retrieved from remote sources only when really needed. E.g., a scheduling application may read personal calendars from personal sites of its users. Calendar data expire quickly, so there&#39;s no reason to frequently re-load them in hope that they are queried before expired. Virtuoso extends SPARQL so it is possible to download RDF resource from a given IRI, parse them and store the resulting triples in a graph, all three operations will be performed during the SPARQL query execution. The IRI of graph to store triples is usually equal to the IRI where the resource is download from, so the feature is named &quot;IRI dereferencing&quot; There are two different use cases for this feature. In simple case, a SPARQL query contains from clauses that enumerate graphs to process, but there are no triples in DB.DBA.RDF_QUAD that correspond to some of these graphs. The query execution starts with dereferencing of these graphs and the rest runs as usual. In more sophisticated case, the query is executed many times in a loop. Every execution produces a partial result. SPARQL processor checks for IRIs in the result such that resources with that IRIs may contain relevant data but not yet loaded into the DB.DBA.RDF_QUAD. After some iteration, the partial result is identical to the result of the previous iteration, because there&#39;s no more data to retrieve. As the last step, SPARQL processor builds the final result set.</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfviews.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>RDF Views -- Mapping Relational Data to RDF<atom:link href="http://docs.openlinksw.com/virtuoso/rdfviews.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>RDF Views -- Mapping Relational Data to RDF</atom:title>
  <atom:content type="html">RDF Views map relational data into RDF and allow customizing RDF representation of locally stored RDF data. To let SPARQL clients access relational data as well as physical RDF graphs in a single query, we introduce a declarative Meta Schema Language for mapping SQL Data to RDF Ontologies. As a result, all types of clients can efficiently access all data stored on the server. The mapping functionality dynamically generates RDF Data Sets for popular ontologies such as SIOC, SKOS, FOAF, and ATOM/OWL without disruption to the existing database infrastructure of Web 1.0 or Web 2.0 solutions. RDF views are also suitable for declaring custom representation for RDF triples, e.g. property tables, where one row holds many single-valued properties.</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfsparqlimplementationextent.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>SPARQL Implementation<atom:link href="http://docs.openlinksw.com/virtuoso/rdfsparqlimplementationextent.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>SPARQL Implementation</atom:title>
  <atom:content type="html">Virtuoso&#39;s RDF support includes in-built support for the SPARQL query language. It also includes a number of powerful extensions that cover path traversal and business intelligence features. In addition, there is in-built security based on Virtuoso&#39;s support for Row Level policy based security, custom authentication, and Named Graphs. All triples of all graphs are stored in a single default system table called DB.DBA.RDF_QUAD. This will change in the next release, where a complex meta-schema system will be introduced for allowing graphs to be stored in different tables, potentially having different index structures, optionally also full text index on long object values. The meta-schema support will also make it possible to map native SQL tables into the RDF SPARQL-queryable space, as well as introduce finer-grained security. Hence the RDF subsystem is offered for review but is not a productized whole. Benchmark results obtained with it are tentative and reflect a non-optimized state.</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfsparqlrule.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>RDF Inference in Virtuoso<atom:link href="http://docs.openlinksw.com/virtuoso/rdfsparqlrule.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>RDF Inference in Virtuoso</atom:title>
  <atom:content type="html" />
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfsparqlrulefulltext.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Using Full Text Search in SPARQL<atom:link href="http://docs.openlinksw.com/virtuoso/rdfsparqlrulefulltext.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>Using Full Text Search in SPARQL</atom:title>
  <atom:content type="html">Virtuoso&#39;s triple store supports optional full text indexing of RDF object values since version 5.0. It is possible to declare that objects of triples with a given predicate or graph get indexed. The graphs and triples may be enumerated or a wildcard may be used. The triples for which a full text index entry exists can be found using the bif:contains or related filters and predicates. For example, the query:</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfsparqlaggregate.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Aggregates in SPARQL<atom:link href="http://docs.openlinksw.com/virtuoso/rdfsparqlaggregate.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>Aggregates in SPARQL</atom:title>
  <atom:content type="html">Virtuoso extends SPARQL with SQL like aggregate and group by functionality. This functionality is also available through embedding SPARQL text inside SQL but the SPARQL extension syntax has the benefit of working also over the SPARQL protocol and of looking more SPARQL-like. The supported aggregates are count, min, max, avg and sum. These can take an optional distinct keyword. These are permitted only in the selection part of a select query. If a selection list consists of a mix of variables and aggregates, the non-aggregate selected items are considered to be grouping columns and a group by over them is implicitly added at the end of the generated SQL query. There is no explicit syntax for group by or having in Virtuoso SPARQL. If a selection consists of aggregates exclusively, the result set has one row with the values of the aggregates. If there are aggregates and variables in the selection, the result set as has many rows as there are distinct combinations of the variables and the aggregates are calculated over each such distinct combination, as if there were a SQL group by over all non-aggregates.</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfsparqlprotocolendpoint.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Virtuoso SPARQL Query Service<atom:link href="http://docs.openlinksw.com/virtuoso/rdfsparqlprotocolendpoint.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>Virtuoso SPARQL Query Service</atom:title>
  <atom:content type="html" />
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfperformancetuning.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Virtuoso RDF Performance Tuning<atom:link href="http://docs.openlinksw.com/virtuoso/rdfperformancetuning.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>Virtuoso RDF Performance Tuning</atom:title>
  <atom:content type="html" />
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfinsertmethods.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>RDF Insert Methods in Virtuoso<atom:link href="http://docs.openlinksw.com/virtuoso/rdfinsertmethods.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>RDF Insert Methods in Virtuoso</atom:title>
  <atom:content type="html" />
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/rdfstorebenchmarks.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>RDF Store Benchmarks<atom:link href="http://docs.openlinksw.com/virtuoso/rdfstorebenchmarks.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>RDF Store Benchmarks</atom:title>
  <atom:content type="html" />
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/virtuososponger.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Virtuoso Sponger<atom:link href="http://docs.openlinksw.com/virtuoso/virtuososponger.html" type="text/html" rel="alternate" />
  <atom:published>2008-04-09T14:35:56Z</atom:published>
  <atom:title>Virtuoso Sponger</atom:title>
  <atom:content type="html">The Virtuoso Sponger is a middleware component of Virtuoso that generates RDF Linked Data from a variety of data sources. The sponger is transparently integrated into the Virtuoso SPARQL Query Processor, where it serves as part of the URI/IRI dereferencing functionality. It is also optionally used by the Virtuoso Content Crawler. A majority of the worlds data naturally resides in non RDF form at the current time. The Sponger delivers middleware that accelerates the bootstrap of the Semantic Data Web by generating RDF from non RDF data sources, unobtrusively. When an RDF aware client requests data from a network accessible resource via the Sponger the following events occur:</atom:content>
 </atom:entry>
</atom:feed>