# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0

@prefix sdb:     <http://jena.hpl.hp.com/2007/sdb#> .
@prefix rdfs:	 <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .

<#store> rdf:type sdb:Store ;
    sdb:layout         "layout2" ;
    sdb:connection     <#conn> ;
.

<#conn> rdf:type sdb:SDBConnection ;
    sdb:sdbType        "DB2" ;
    sdb:sdbHost        "localhost:50000" ;
    sdb:sdbName        "SDB2" ;
    # Universal
    # sdb:driver         "com.ibm.db2.jcc.DB2Driver" ;
    .

