#!/usr/bin/perl use strict; use warnings; no warnings 'redefine'; use File::Spec; use File::Slurp; use RDF::Redland; use LWP::UserAgent; use Data::Dumper; use RDF::Trine; use RDF::Trine::Store::DBI; use RDF::Trine::Statement; unless (@ARGV >= 4) { print <<"END"; USAGE: $0 server-type dbname username password model-name server-type can be either 'mysql' or 'sqlite' END exit; } my $server = shift; my $dbname = shift; my $user = shift; my $pass = shift; my $model = shift; my $dsn; if ($server eq 'mysql') { $dsn = "DBI:mysql:database=${dbname}"; } elsif ($server eq 'sqlite') { $dsn = "DBI:sqlite:database=${dbname}"; } else { warn "Unknown server type: $server\n"; exit; } my $foaf = RDF::Trine::Namespace->new('http://xmlns.com/foaf/0.1/'); my $store = RDF::Trine::Store::DBI->new($model, $dsn, $user, $pass); my @preds = ( $foaf->mbox, $foaf->phone, ); my $table = $store->make_private_predicate_view( 'private_', @preds );