Typical replication topologies are Chains, Stars and Bi-directional. They can be achieved with Virtuoso, by repeating the "Publish" and/or "Subscribe" steps on each relevant node.

In a Star, there is one Publisher, and many Subscribers.

Figure 16.202. Star Replication Topology

Star Replication Topology

To set up a Star, follow the scenario:

  1. Configure Instance #1 to Publish.

  2. Configure Instance #2 to Subscribe to #1.

  3. Repeat as necessary.

The following How-To walks you through setting up Virtuoso RDF Graph Replication in a Star Topology.

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 = example.com:8891
    ...
    [Replication]
    ServerName   = db1
    ...
    
    
  2. 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
    ...
    
  3. virtuoso3.ini:

    ...
    [Database]
    DatabaseFile    = virtuoso3.db
    TransactionFile = virtuoso3.trx
    ErrorLogFile     = virtuoso3.log
    ...
    [Parameters]
    ServerPort               = 1113
    SchedulerInterval        = 1
    ...
    [HTTPServer]
    ServerPort                  = 8893
    ...
    [URIQA]
    DefaultHost = example.com:8893
    ...
    [Replication]
    ServerName   = db3
    ...
    

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.

On each of the 3 Virtuoso instances install the conductor_dav.vad package.

  1. Go to Conductor -> Replication -> Transactional -> Publications

    Figure 16.203. Star Replication Topology

    Star Replication Topology

  2. Click Enable RDF Publishing

  3. A publication with the name RDF Publication should be created:

    Figure 16.204. Star Replication Topology

    Star Replication Topology

  4. Click the link which is the publication name.

  5. You will be shown the publication items page:

    Figure 16.205. Star Replication Topology

    Star Replication Topology

  6. Enter for Graph IRI:

    http://example.org
    

    Figure 16.206. Star Replication Topology

    Star Replication Topology

  7. Click Add New

  8. The item will be created and shown in the list of items for the currently viewed publication.

    Figure 16.207. Star Replication Topology

    Star Replication Topology

There are several ways to insert data into a Virtuoso Named Graph. In this example, we will use the Virtuoso Conductor's Import RDF feature:

  1. In the Virtuoso Conductor, go to Linked Data -> Quad Store Upload:

    Figure 16.208. Replication Topology

    Replication Topology

  2. In the 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
      

    Figure 16.209. Replication Topology

    Replication Topology

  3. Click Upload

  4. A successful upload will result in this message:

    Figure 16.210. Star Replication Topology

    Star Replication Topology

  5. Check the inserted triples by executing a query like the following against the SPARQL endpoint, http://cname:port/sparql:

    SELECT *
      FROM <http://example.org>
     WHERE { ?s ?p ?o }
    

    Figure 16.211. Star Replication Topology

    Star Replication Topology

  6. See how many triples have been inserted in your graph:

    SELECT COUNT(*)
      FROM <http://example.org>
     WHERE { ?s ?p ?o }
    

    Figure 16.212. Star Replication Topology

    Star Replication Topology

  1. Go to Conductor -> Replication -> Transactional -> Subscriptions

    Figure 16.213. Star Replication Topology

    Star Replication Topology

  2. Click New Subscription

    Figure 16.214. Star Replication Topology

    Star Replication Topology

  3. Specify a new Data Source Enter or selected target data source from the available connected Data Sources:

    Figure 16.215. Star Replication Topology

    Star Replication Topology

    Figure 16.216. Star Replication Topology

    Star Replication Topology

  4. Click Publications list

    Figure 16.217. Star Replication Topology

    Star Replication Topology

  5. Select the RDF Publication and click List Items

    Figure 16.218. Star Replication Topology

    Star Replication Topology

  6. Click Subscribe

  7. The subscription will be created

    Figure 16.219. Star Replication Topology

    Star Replication Topology

  8. Click Sync

  9. Check the retrieved triples by executing the following query

    SELECT *
      FROM <http://example.org>
     WHERE {?s ?p ?o}
    

    Figure 16.220. Star Replication Topology

    Star Replication Topology

  10. See how many triples have been inserted into your graph by executing the following query:

    SELECT COUNT(*)
      FROM <http://example.org>
     WHERE {?s ?p ?o}
    

    Figure 16.221. Star Replication Topology

    Star Replication Topology

These steps may be repeated for any number of Subscriber.

  1. To check the starting count, on the Destination Virtuoso Instance SPARQL Endpoint, execute:

    SELECT COUNT(*)
      FROM <http://example.org>
     WHERE { ?s ?p ?o }
    
  2. On the Host Virtuoso Instance go to Conductor -> Database -> Interactive SQL and execute the following statement:

    SPARQL INSERT INTO GRAPH <http://example.org>
      {
         <http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this>
         <http://xmlns.com/foaf/0.1/interest>
         <http://dbpedia.org/resource/Web_Services>
      } ;
    SPARQL INSERT INTO GRAPH <http://example.org>
      {
        <http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this>
        <http://xmlns.com/foaf/0.1/interest>
        <http://dbpedia.org/resource/Web_Clients>
      } ;
    SPARQL INSERT INTO GRAPH <http://example.org>
      {
        <http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this>
        <http://xmlns.com/foaf/0.1/interest>
        <http://dbpedia.org/resource/SPARQL>
      } ;
    

    Figure 16.222. Star Replication Topology

    Star Replication Topology

    Figure 16.223. Star Replication Topology

    Star Replication Topology

  3. 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 <http://example.org>
     WHERE { ?s ?p ?o }
    

    Figure 16.224. Star Replication Topology

    Star Replication Topology

In a Chain, there is one original Publisher, to which there is only one Subscriber. That Subscriber may also serve as a Publisher, again with only one Subscriber. The chain ends with a Subscriber which does not Publish.

Figure 16.225. Chain Replication Topology

Chain Replication Topology

To set up a Chain, follow the scenario:

  1. Configure Instance #1 to Publish.

  2. Configure Instance #2 to Subscribe to #1.

  3. Configure Instance #2 to Publish.

  4. Configure Instance #3 to Subscribe to #2.

  5. Repeat as necessary.

The following How-To walks you through setting up Virtuoso RDF Graph Replication in a Chain Topology.

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 = example.com:8891
    ...
    [Replication]
    ServerName   = db1
    ...
    
    
  2. 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
    ...
    
  3. virtuoso3.ini:

    ...
    [Database]
    DatabaseFile    = virtuoso3.db
    TransactionFile = virtuoso3.trx
    ErrorLogFile     = virtuoso3.log
    ...
    [Parameters]
    ServerPort               = 1113
    SchedulerInterval        = 1
    ...
    [HTTPServer]
    ServerPort                  = 8893
    ...
    [URIQA]
    DefaultHost = example.com:8893
    ...
    [Replication]
    ServerName   = db3
    ...
    

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.

On each of the 3 Virtuoso instances install the conductor_dav.vad package.

  1. Go to http://example.com:8891/conductor and log in as dba

  2. Go to Conductor - > Replication - > Transactional - > Publications

    Figure 16.226. Chain Replication Topology

    Chain Replication Topology

  3. Click

    Enable RDF Publishing

  4. As result publication with the name

    RDF Publication

    should be created

    Figure 16.227. Chain Replication Topology

    Chain Replication Topology

  5. Click the link which is the publication name.

  6. You will be shown the publication items page

    Figure 16.228. Chain Replication Topology

    Chain Replication Topology

  7. Enter for Graph IRI:

    http://example.org
    

    Figure 16.229. Chain Replication Topology

    Chain Replication Topology

  8. Click Add New

  9. The item will be created and shown in the list of items for the currently viewed publication.

    Figure 16.230. Chain Replication Topology

    Chain Replication Topology

  1. Log in at http://example.com:8892/conductor

  2. Go to Replication - > Transactional - > Subscriptions

    Figure 16.231. Chain Replication Topology

    Chain Replication Topology

  3. Click

    New Subscription

    Figure 16.232. Chain Replication Topology

    Chain Replication Topology

  4. From the list of "Specify new data source" select Data Source db1

    Figure 16.233. Chain Replication Topology

    Chain Replication Topology

  5. Enter for db1 dba user credentials

    Figure 16.234. Chain Replication Topology

    Chain Replication Topology

  6. Click "Add Data Source"

  7. As result

    db1

    will be shown in the "Connected Data Sources" list.

    Figure 16.235. Chain Replication Topology

    Chain Replication Topology

  8. Select

    db1

    the "Connected Data Sources" list and click "Publications list"

    Figure 16.236. Chain Replication Topology

    Chain Replication Topology

  9. As result will be shown the list of available publications for the selected data source. Select the one with name "RDF Publication" and click "List Items".

    Figure 16.237. Chain Replication Topology

    Chain Replication Topology

  10. As result will be shown the "Confirm subscription" page.

    Figure 16.238. Chain Replication Topology

    Chain Replication Topology

  11. The sync interval by default is 10 minutes. For the testing purposes, we will change it to 1 minute.

    Figure 16.239. Chain Replication Topology

    Chain Replication Topology

  12. Click "Subscribe"

  13. The subscription will be created.

    Figure 16.240. Chain Replication Topology

    Chain Replication Topology

  1. Go to http://example.com:8892/conductor and log in as dba

  2. Go to Conductor - > Replication - > Transactional - > Publications

    Figure 16.241. Chain Replication Topology

    Chain Replication Topology

  3. Click

    Enable RDF Publishing

  4. As result publication with the name

    RDF Publication

    should be created

    Figure 16.242. Chain Replication Topology

    Chain Replication Topology

  5. Click the link which is the publication name.

  6. You will be shown the publication items page

    Figure 16.243. Chain Replication Topology

    Chain Replication Topology

  7. Enter for Graph IRI:

    http://example.org
    

    Figure 16.244. Chain Replication Topology

    Chain Replication Topology

  8. Click Add New

  9. The item will be created and shown in the list of items for the currently viewed publication.

    Figure 16.245. Chain Replication Topology

    Chain Replication Topology

  1. Log in at http://example.com:8893/conductor

  2. Go to Replication - > Transactional - > Subscriptions

    Figure 16.246. Chain Replication Topology

    Chain Replication Topology

  3. Click

    New Subscription

    Figure 16.247. Chain Replication Topology

    Chain Replication Topology

  4. From the list of "Specify new data source" select Data Source db2

    Figure 16.248. Chain Replication Topology

    Chain Replication Topology

  5. Enter for db2 dba user credentials

    Figure 16.249. Chain Replication Topology

    Chain Replication Topology

  6. Click "Add Data Source"

    Figure 16.250. Chain Replication Topology

    Chain Replication Topology

  7. As result

    db2

    will be shown in the "Connected Data Sources" list. Select it and click "Publications list"

    Figure 16.251. Chain Replication Topology

    Chain Replication Topology

  8. As result will be shown the list of available publications for the selected data source. Select the one with name "RDF Publication" and click "List Items".

    Figure 16.252. Chain Replication Topology

    Chain Replication Topology

  9. As result will be shown the "Confirm subscription" page.

    Figure 16.253. Chain Replication Topology

    Chain Replication Topology

  10. The sync interval by default is 10 minutes. For the testing purposes, we will change it to 1 minute.

    Figure 16.254. Chain Replication Topology

    Chain Replication Topology

  11. Click "Subscribe"

  12. The subscription will be created.

    Figure 16.255. Chain Replication Topology

    Chain Replication Topology

  1. Log in at http://example.com:8891/conductor

  2. Go to Linked Data -> Quad Store Upload:

    Figure 16.256. Chain Replication Topology

    Chain Replication Topology

  3. In the shown form:

    1. Tick the box for

      Resource URL

      and enter your resource URL, e.g.:

      http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this
      
    2. Enter for Named Graph IRI:

      http://example.org
      

      Figure 16.257. Chain Replication Topology

      Chain Replication Topology

  4. Click Upload

  5. A successful upload will result in a shown message.

    Figure 16.258. Chain Replication Topology

    Chain Replication Topology

  6. Check the count of the inserted triples by executing a query like the following against the SPARQL endpoint, http://example.com:8891/sparql:

    SELECT COUNT(*)
       FROM <http://example.org>
    WHERE { ?s ?p ?o }
    

    Figure 16.259. Chain Replication Topology

    Chain Replication Topology

  7. Should return

    57

    as total.

    Figure 16.260. Chain Replication Topology

    Chain Replication Topology

  1. To check the starting count, on each of the Destination Virtuoso Instances db2 and db3 from SPARQL Endpoint execute:

    SELECT COUNT(*)
       FROM <http://example.org>
    WHERE { ?s ?p ?o }
    
  2. Should return

    57

    as total.

    Figure 16.261. Chain Replication Topology

    Chain Replication Topology

  1. Disconnect db2 and db3.

  2. On the Host Virtuoso Instance db1 go to Conductor - > Database - > Interactive SQL enter the following statement:

    SPARQL INSERT INTO GRAPH <http://example.org>
      {
         <http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this>
         <http://xmlns.com/foaf/0.1/interest>
         <http://dbpedia.org/resource/Web_Services>
      } ;
    SPARQL INSERT INTO GRAPH <http://example.org>
      {
        <http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this>
        <http://xmlns.com/foaf/0.1/interest>
        <http://dbpedia.org/resource/Web_Clients>
      } ;
    SPARQL INSERT INTO GRAPH <http://example.org>
      {
        <http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this>
        <http://xmlns.com/foaf/0.1/interest>
        <http://dbpedia.org/resource/SPARQL>
      } ;
    

    Figure 16.262. Chain Replication Topology

    Chain Replication Topology

  3. Click "Execute"

  4. As result the triples will be inserted

    Figure 16.263. Chain Replication Topology

    Chain Replication Topology

  5. Check the count of the destination instance graph's triples by executing the following query like against the SPARQL endpoint, http://example.com:8891/sparql:

    SELECT COUNT(*)
       FROM <http://example.org>
    WHERE { ?s ?p ?o }
    
  6. Should return

    60

    as total.

    Figure 16.264. Chain Replication Topology

    Chain Replication Topology

  1. Start instances db2 and db3

  2. To confirm that the triple count has increased by the number of inserted triples, execute the following on the Destination Virtuoso Instance db2 and db3 SPARQL Endpoint:

    SELECT COUNT(*)
       FROM <http://example.org>
    WHERE { ?s ?p ?o }
    
  3. Should return

    60

    as total.

    Figure 16.265. Chain Replication Topology

    Chain Replication Topology

The following How-To walks you through setting up Virtuoso RDF Graph Replication in a Bi-directional Topology.

db1 <---- db2
db1 ---->

 db2

Suppose there are 2 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 = example.com:8891
    ...
    [Replication]
    ServerName   = db1
    ...
    
    
  2. 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
    ...
    

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 db1 and db2 with names db1 and db2 respectively.

On each of the 2 Virtuoso instances install the conductor_dav.vad package.

  1. Go to http://example.com:8892/conductor and log in as dba

  2. Go to Conductor -> Replication -> Transactional -> Publications

    Figure 16.266. Bi-directional Replication Topology

    Bi-directional Replication Topology

  3. Click

    Enable RDF Publishing

  4. As result publication with the name

    RDF Publication

    should be created

    Figure 16.267. Bi-directional Replication Topology

    Bi-directional Replication Topology

  5. Click the link which is the publication name.

  6. You will be shown the publication items page

    Figure 16.268. Bi-directional Replication Topology

    Bi-directional Replication Topology

  7. Enter for Graph IRI:

    http://example.org
    

    Figure 16.269. Bi-directional Replication Topology

    Bi-directional Replication Topology

  8. Click Add New

  9. The item will be created and shown in the list of items for the currently viewed publication.

    Figure 16.270. Bi-directional Replication Topology

    Bi-directional Replication Topology

  1. Log in at http://example.com:8891/conductor

  2. Go to Replication -> Transactional -> Subscriptions

    Figure 16.271. Bi-directional Replication Topology

    Bi-directional Replication Topology

  3. Click

    New Subscription

    Figure 16.272. Bi-directional Replication Topology

    Bi-directional Replication Topology

  4. From the list of "Specify new data source" select Data Source db2

    Figure 16.273. Bi-directional Replication Topology

    Bi-directional Replication Topology

  5. Enter for db2 dba user credentials

    Figure 16.274. Bi-directional Replication Topology

    Bi-directional Replication Topology

  6. Click "Add Data Source"

  7. As result

    db2

    will be shown in the "Connected Data Sources" list.

    Figure 16.275. Bi-directional Replication Topology

    Bi-directional Replication Topology

  8. Select

    db2

    the "Connected Data Sources" list and click "Publications list"

    Figure 16.276. Bi-directional Replication Topology

    Bi-directional Replication Topology

  9. As result will be shown the list of available publications for the selected data source. Select the one with name "RDF Publication" and click "List Items".

    Figure 16.277. Bi-directional Replication Topology

    Bi-directional Replication Topology

  10. As result will be shown the "Confirm subscription" page.

    Figure 16.278. Bi-directional Replication Topology

    Bi-directional Replication Topology

  11. The sync interval by default is 10 minutes. For the testing purposes, we will change it to 1 minute.

    Figure 16.279. Bi-directional Replication Topology

    Bi-directional Replication Topology

  12. Click "Subscribe"

  13. The subscription will be created.

    Figure 16.280. Bi-directional Replication Topology

    Bi-directional Replication Topology

  1. Go to http://example.com:8891/conductor and log in as dba

  2. Go to Conductor -> Replication -> Transactional -> Publications

    Figure 16.281. Bi-directional Replication Topology

    Bi-directional Replication Topology

  3. Click

    Enable RDF Publishing

  4. As result publication with the name

    RDF Publication

    should be created

    Figure 16.282. Bi-directional Replication Topology

    Bi-directional Replication Topology

  5. Click the link which is the publication name.

  6. You will be shown the publication items page

    Figure 16.283. Bi-directional Replication Topology

    Bi-directional Replication Topology

  7. Enter for Graph IRI:

    http://example.org
    

    Figure 16.284. Bi-directional Replication Topology

    Bi-directional Replication Topology

  8. Click Add New

  9. The item will be created and shown in the list of items for the currently viewed publication.

    Figure 16.285. Bi-directional Replication Topology

    Bi-directional Replication Topology

  1. Log in at http://example.com:8892/conductor

  2. Go to Replication -> Transactional -> Subscriptions

    Figure 16.286. Bi-directional Replication Topology

    Bi-directional Replication Topology

  3. Click

    New Subscription

    Figure 16.287. Bi-directional Replication Topology

    Bi-directional Replication Topology

  4. From the list of "Specify new data source" select Data Source db1

    Figure 16.288. Bi-directional Replication Topology

    Bi-directional Replication Topology

  5. Enter for db1 dba user credentials

    Figure 16.289. Bi-directional Replication Topology

    Bi-directional Replication Topology

  6. Click "Add Data Source"

    Figure 16.290. Bi-directional Replication Topology

    Bi-directional Replication Topology

  7. As result

    db1

    will be shown in the "Connected Data Sources" list. Select it and click "Publications list"

    Figure 16.291. Bi-directional Replication Topology

    Bi-directional Replication Topology

  8. As result will be shown the list of available publications for the selected data source. Select the one with name "RDF Publication" and click "List Items".

    Figure 16.292. Bi-directional Replication Topology

    Bi-directional Replication Topology

  9. As result will be shown the "Confirm subscription" page.

    Figure 16.293. Bi-directional Replication Topology

    Bi-directional Replication Topology

  10. The sync interval by default is 10 minutes. For the testing purposes, we will change it to 1 minute.

    Figure 16.294. Bi-directional Replication Topology

    Bi-directional Replication Topology

  11. Click "Subscribe"

  12. The subscription will be created.

    Figure 16.295. Bi-directional Replication Topology

    Bi-directional Replication Topology

  1. Log in at http://example.com:8892/conductor

  2. Go to Linked Data -> Quad Store Upload:

    Figure 16.296. Bi-directional Replication Topology

    Bi-directional Replication Topology

  3. In the shown form:

  4. Tick the box for

    Resource URL

    and enter your resource URL, e.g.:

    http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this
    
  5. Enter for Named Graph IRI:

    http://example.org
    

    Figure 16.297. Bi-directional Replication Topology

    Bi-directional Replication Topology

  6. Click Upload

  7. A successful upload will result in a shown message.

    Figure 16.298. Bi-directional Replication Topology

    Bi-directional Replication Topology

  8. Check the count of the inserted triples by executing a query like the following against the SPARQL endpoint, http://example.com:8892/sparql:

    SELECT COUNT(*)
       FROM <http://example.org>
    WHERE { ?s ?p ?o }
    

    Figure 16.299. Bi-directional Replication Topology

    Bi-directional Replication Topology

  9. Should return

    57

    as total.

    Figure 16.300. Bi-directional Replication Topology

    Bi-directional Replication Topology

  1. To check the starting count, execute from db1's SPARQL Endpoint:

    SELECT COUNT(*)
       FROM <http://example.org>
    WHERE { ?s ?p ?o }
    
  2. Should return

    57

    as total.

    Figure 16.301. Bi-directional Replication Topology

    Bi-directional Replication Topology

  1. Disconnect db1.

  2. On the Host Virtuoso Instance db2 go to Conductor -> Database -> Interactive SQL enter the following statement:

    SPARQL INSERT INTO GRAPH <http://example.org>
      {
         <http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this>
         <http://xmlns.com/foaf/0.1/interest>
         <http://dbpedia.org/resource/Web_Services>
      } ;
    

    Figure 16.302. Bi-directional Replication Topology

    Bi-directional Replication Topology

  3. Click "Execute"

  4. As result the triples will be inserted

    Figure 16.303. Bi-directional Replication Topology

    Bi-directional Replication Topology

  5. Check the count of the destination instance graph's triples by executing the following query like against the SPARQL endpoint, http://example.com:8892/sparql:

    SELECT COUNT(*)
       FROM <http://example.org>
    WHERE { ?s ?p ?o }
    
  6. Should return

    58

    as total.

    Figure 16.304. Bi-directional Replication Topology

    Bi-directional Replication Topology

  1. Start instance db1

  2. To confirm that the triple count has increased by the number of inserted triples, execute the following statement on db1's SPARQL Endpoint:

    SELECT COUNT(*)
       FROM <http://example.org>
    WHERE { ?s ?p ?o }
    
  3. Should return

    58

    as total.

    Figure 16.305. Bi-directional Replication Topology

    Bi-directional Replication Topology

  1. Disconnect db2.

  2. On the Host Virtuoso Instance db1 go to Conductor -> Database -> Interactive SQL enter the following statement:

    SPARQL INSERT INTO GRAPH <http://example.org>
      {
        <http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this>
        <http://xmlns.com/foaf/0.1/interest>
        <http://dbpedia.org/resource/Web_Clients>
      } ;
    SPARQL INSERT INTO GRAPH <http://example.org>
      {
        <http://www.openlinksw.com/dataspace/person/kidehen@openlinksw.com#this>
        <http://xmlns.com/foaf/0.1/interest>
        <http://dbpedia.org/resource/SPARQL>
      } ;
    

    Figure 16.306. Bi-directional Replication Topology

    Bi-directional Replication Topology

  3. Click "Execute"

  4. As result the triples will be inserted

    Figure 16.307. Bi-directional Replication Topology

    Bi-directional Replication Topology

  5. Check the count of the destination instance graph's triples by executing the following query like against the SPARQL endpoint, http://example.com:8891/sparql:

    SELECT COUNT(*)
       FROM <http://example.org>
    WHERE { ?s ?p ?o }
    
  6. Should return

    60

    as total.

    Figure 16.308. Bi-directional Replication Topology

    Bi-directional Replication Topology

  1. Start instance db2

  2. To confirm that the triple count has increased by the number of inserted triples, execute the following statement on db2's SPARQL Endpoint:

    SELECT COUNT(*)
       FROM <http://example.org>
    WHERE { ?s ?p ?o }
    
  3. Should return

    60

    as total.

    Figure 16.309. Bi-directional Replication Topology

    Bi-directional Replication Topology