Show / Hide Table of Contents

Configuring Update Processors

Update Processors are used to process SPARQL Update commands. Update Processors implement the ISparqlUpdateProcessor interface and the library provides 3 concrete implementations which can be configured using the Configuration API

Basic Configuration

Basic Configuration for a Update Processor looks like the following:


@prefix dnr: <http://www.dotnetrdf.org/configuration#> .

_:proc a dnr:SparqlUpdateProcessor .
  dnr:type "VDS.RDF.Update.LeviathanUpdateProcessor" .

Leviathan Update Processor

The Leviathan Update Processor is used to process updates on in-memory stores using the library's Leviathan SPARQL Engine. It is configured quite simply by adding a dnr:usingStore property to the basic configuration, the object pointed to by this property must be a Triple Store which implements the IInMemoryQueryableStore interface e.g.


@prefix dnr: <http://www.dotnetrdf.org/configuration#> .

_:proc a dnr:SparqlUpdateProcessor .
  dnr:type "VDS.RDF.Update.LeviathanUpdateProcessor" ;
  dnr:usingStore _:store .

_:store a dnr:TripleStore ;
  dnr:type "VDS.RDF.TripleStore" .

For information on how to configure Triple Stores see Configuration API - Triple Stores.

Alternatively you may use the dnr:usingDataset property to connect it to a Dataset instead. See Configuration API - Datasets for details. If both dnr:usingDataset and dnr:usingStore are present then dnr:usingDataset has priority and the value for dnr:usingStore is ignored.

Generic Update Processor

The Generic Update Processor is used to process updates against some arbitrary store's SPARQL engine where the store you wish to connect to has an implementation of IStorageProvider.

How updates are actually processed depends on the exact concrete implementation of IStorageProvider being used, if the implementation also implements IUpdateableStorage then the managers own SPARQL Update implementation is used. If this interface is not implemented then dotNetRDF will approximate SPARQL update implementation - in this case not all of SPARQL update may be supported or behave correctly depending on the capabilities of the IStorageProvider provided

To configure these handlers simply add a dnr:storageProvider property to the basic configuration like so:


@prefix dnr: <http://www.dotnetrdf.org/configuration#> .

_:proc a dnr:SparqlUpdateProcessor .
  dnr:type "VDS.RDF.Update.GenericUpdateProcessor" ;
  dnr:genericManager _:manager .

_:manager a dnr:GenericIOManager ;
  dnr:type "VDS.RDF.Storage.AllegroGraphConnector" ;
  dnr:server "http://agraph.example.com" ;
  dnr:catalogID "catalog" ;
  dnr:storeID "store" .

The above specifies a Update Processor which applies the updates to the AllegroGraph repository store in the catalog catalog on the server http://agraph.example.com. See Configuration API - Storage Providers for more detail on configuring storage providers.

Simple Update Processor

Similar to the Generic Update Processor the Simple Update Processor passes updates to the ExecuteUpdate() method of a Triple Store that implements the IUpdateableTripleStore interface. To configure this add a using Store property that points to a Triple Store that implements the relevant interface e.g.


@prefix dnr: <http://www.dotnetrdf.org/configuration#> .

_:proc a dnr:SparqlUpdateProcessor .
  dnr:type "VDS.RDF.Update.SimpleUpdateProcessor" ;
  dnr:usingStore _:store .

_:store a dnr:TripleStore ;
  dnr:type "VDS.RDF.TripleStore" .

The above specifies a simple query processor that operates on an in-memory store. Note that both native and in-memory stores can be configured for use with this processor.

  • Improve this Doc
In This Article
  • Configuring Update Processors
  • Basic Configuration
    • Leviathan Update Processor
    • Generic Update Processor
    • Simple Update Processor
Back to top Generated by DocFX