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