%META:TOPICPARENT{name="VirtGraphReplication"}%
---+ Replication Example: Star Topology
%TOC%
---++Introduction
The following How-To walks you through setting up Virtuoso RDF Graph Replication in a Star Topology.
%BR%%BR%%BR%%BR%
---++Prerequisites
---+++Database INI Parameters
Suppose there are 3 Virtuoso instances respectively with the following ini parameters values:
1. virtuoso1.ini:
...
[Database]
DatabaseFile = virtuoso1.db
TransactionFile = virtuoso1.trx
ErrorLogFile = virtuoso1.log
...
[Parameters]
ServerPort = 1111
SchedulerInterval = 1
...
[HTTPServer]
ServerPort = 8891
...
[URIQA]
DefaultHost = localhost:8891
...
[Replication]
ServerName = db1
...
1. virtuoso2.ini:
...
[Database]
DatabaseFile = virtuoso2.db
TransactionFile = virtuoso2.trx
ErrorLogFile = virtuoso2.log
...
[Parameters]
ServerPort = 1112
SchedulerInterval = 1
...
[HTTPServer]
ServerPort = 8892
...
[URIQA]
DefaultHost = localhost:8892
...
[Replication]
ServerName = db2
...
1. virtuoso3.ini:
...
[Database]
DatabaseFile = virtuoso3.db
TransactionFile = virtuoso3.trx
ErrorLogFile = virtuoso3.log
...
[Parameters]
ServerPort = 1113
SchedulerInterval = 1
...
[HTTPServer]
ServerPort = 8893
...
[URIQA]
DefaultHost = localhost:8893
...
[Replication]
ServerName = db3
...
---+++Database DSNs
Use the ODBC Administrator on your Virtuoso host (e.g., on Windows, *Start* menu -> *Control Panel* -> *Administrative Tools* -> Data Sources (ODBC); on Mac OS X, /Applications/Utilities/OpenLink ODBC Administrator.app
) to create a System DSN for each of db1, db2, db3, with names db1, db2 and db3, respectively.
---+++Install Conductor package
On each of the 3 Virtuoso instances install the [[https://virtuoso.openlinksw.com/download/][conductor_dav.vad]] package.
---++Create a Publication on the Host Virtuoso Instance -- db1
1 Go to *Conductor* -> *Replication* -> *Transactional* -> *Publications*:
%BR%%BR%%BR%%BR%
1 Click Enable RDF Publishing.
1 A publication with the name *RDF Publication* should be created:
%BR%%BR%%BR%%BR%
1 Click the link which is the publication name.
1 You will be shown the publication items page:
%BR%%BR%%BR%%BR%
1 Enter for Graph IRI
http://example.org
%BR%%BR%%BR%%BR%
1 Click Add New.
1 The item will be created and shown in the list of items for the currently viewed publication.
%BR%%BR%%BR%%BR%
---++Insert Data into a Named Graph on the Host Virtuoso Instance
There are several ways to insert data into a Virtuoso Named Graph. In this Guide, we will use the Virtuoso Conductor's Import RDF feature:
1. In the Virtuoso Conductor, go to *Linked Data* -> *Quad Store Upload*:
%BR%%BR%%BR%%BR%
1 In the presented form:
* Tick the box for *Resource URL* and enter your resource URL, for e.g.:
http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this
* Enter for *Named Graph IRI*:
http://example.org
%BR%%BR%%BR%%BR%
1 Click Upload
1 A successful upload will result in this message:
%BR%%BR%%BR%%BR%
1 Check the inserted triples by executing a query like the following against the SPARQL endpoint, http://cname:port/sparql
--
SELECT *
FROM
WHERE { ?s ?p ?o }
%BR%%BR%%BR%%BR%
1 See how many triples have been inserted in your graph:
SELECT COUNT(*)
FROM
WHERE { ?s ?p ?o }
%BR%%BR%%BR%%BR%
---++Subscribe to the Publication on the a Destination Virtuoso Instance -- db2, db3, etc.
1 Go to *Conductor* -> *Replication* -> *Transactional* -> *Subscriptions*:
%BR%%BR%%BR%%BR%
1 Click New Subscription:
%BR%%BR%%BR%%BR%
1 Specify a new Data Source Enter or selected target data source from the available connected Data Sources:
%BR%%BR%%BR%%BR%
%BR%%BR%%BR%%BR%
1 Click Publications list:
%BR%%BR%%BR%%BR%
1 Select the RDF Publication and click List Items:
%BR%%BR%%BR%%BR%
1 Click Subscribe.
1 The subscription will be created:
%BR%%BR%%BR%%BR%
1 Click Sync.
1 Check the retrieved triples by executing the following query:
SELECT *
FROM
WHERE {?s ?p ?o}
%BR%%BR%%BR%%BR%
1 See how many triples have been inserted into your graph by executing the following query:
SELECT COUNT(*)
FROM
WHERE {?s ?p ?o}
%BR%%BR%%BR%%BR%
These steps may be repeated for any number of Subscribers.
---++Insert Triples into the Host Virtuoso Instance Graph and check availability at Destination Virtuoso Instance Graph
1. To check the starting count, on the Destination Virtuoso Instance SPARQL Endpoint, execute:
SELECT COUNT(*)
FROM
WHERE { ?s ?p ?o }
1. On the Host Virtuoso Instance go to *Conductor* -> *Database* -> *Interactive SQL* and execute the following statement:
SPARQL INSERT INTO GRAPH
{
} ;
SPARQL INSERT INTO GRAPH
{
} ;
SPARQL INSERT INTO GRAPH
{
} ;
%BR%%BR%%BR%%BR%
%BR%%BR%%BR%%BR%
1. To confirm that the triple count has increased by the number of inserted triples, execute the following on the Destination Virtuoso Instance SPARQL Endpoint:
SELECT COUNT(*)
FROM
WHERE { ?s ?p ?o }
%BR%%BR%%BR%%BR%
---++Related
* [[VirtGraphReplicationChain][Replication Example: Chain Topology]]
* [[VirtGraphReplicationBiDirectional][Replication Example: 2-node Bi-directional Topology]]
* [[VirtGraphReplicationPSQL][Set up RDF Replication via procedure calls]]
* [[http://ods.openlinksw.com/wiki/ODS/VirtPubSubHub][Example of Linked Data Usage of PubSubHubbub Implementation]]
* [[VirtRdfReplScenarios][Exploit Virtuoso's Replication Functionality Web based Solutions]]