1#!/usr/bin/env perl 2 3use strict; 4use warnings; 5no warnings 'redefine'; 6use File::Spec; 7use File::Slurp; 8use LWP::UserAgent; 9use Data::Dumper; 10 11use RDF::Trine; 12use RDF::Trine::Model; 13use RDF::Trine::Serializer::NTriples; 14use RDF::Trine::Store::DBI; 15use RDF::Trine::Statement; 16 17unless (@ARGV >= 4) { 18 print <<"END"; 19USAGE: $0 server-type dbname username password model-name [host] 20 21 server-type can be either 'mysql' or 'sqlite' 22 23 24END 25 exit; 26} 27 28my $server = shift; 29my $dbname = shift; 30my $user = shift; 31my $pass = shift; 32my $modelname = shift; 33my $host = shift; 34 35my $dsn; 36if ($server eq 'mysql') { 37 $dsn = "DBI:mysql:database=${dbname}"; 38} elsif ($server eq 'sqlite') { 39 $dsn = "DBI:SQLite:dbname=${dbname}"; 40} elsif ($server eq 'pg') { 41 $dsn = "DBI:Pg:dbname=${dbname}"; 42 if ($host) { 43 $dsn .= ';host=' . $host; 44 } 45} else { 46 warn "Unknown server type: $server\n"; 47 exit; 48} 49 50my $store = RDF::Trine::Store::DBI->new($modelname, $dsn, $user, $pass); 51my $model = RDF::Trine::Model->new($store); 52 53my $serializer = RDF::Trine::Serializer::NTriples->new(); 54$serializer->serialize_model_to_file( \*STDOUT, $model ); 55 56if (0) { 57 my $iter = $store->get_statements(); 58 59 while (my $s = $iter->next) { 60 print $s->as_string . "\n"; 61 } 62} 63