#!/usr/bin/perl use strict; use DBI; my $dsn = "DBI:mysql:database=umbc;host=localhost;port=3306"; my $dbh = DBI->connect($dsn, 'user', 'password'); my $drh = DBI->install_driver("mysql"); my(@databases) = DBI->data_sources("mysql"); my $sth = $dbh->prepare("SELECT * FROM triple_all"); my $rv = $sth->execute; sub blank($) { my $b=shift; $b =~ s/\W//g; "_:b".$b; } sub literal($) { my $l=shift; $l =~ s/\\/\\\\/gs; $l =~ s/\"/\\\"/gs; $l =~ s/\n/\\n/gs; $l =~ s/\r/\\r/gs; $l =~ s/\t/\\t/gs; $l =~ s/([\x00-\x08\x0b\x0c\x0e-\x1f\x80-\xff])/"\\u00".sprintf("%02x",ord($1))/eg; return '"'.$l.'"'; } sub uri($) { my $u=shift; $u =~ s/\\/\\\\/gs; $u =~ s/\"/\\\"/gs; $u =~ s/\n/\\n/gs; $u =~ s/\t/\\t/gs; $u =~ s/\%/\%25/gs; $u =~ s/([ \>\x00-\x1f\x80-\xff])/"%".sprintf("%02x",ord($1))/eg; return '<'.$u.'>'; } my $count=0; my $m=100000; while (my $ref = $sth->fetchrow_arrayref) { my($id,$subject, $predicate, $object, $type_subject,$type_object)=@$ref; $count++; # $m--; # if(!$m) { # warn "triple $count\n"; # $m=100000; # } if($type_subject eq "u") { $subject=uri($subject); } elsif($type_subject eq "b") { $subject=blank($subject) } else { die "Unknown type_subject >>$type_subject<<\n"; } $predicate=uri($predicate); if($type_object eq "u") { $object=uri($object); } elsif($type_object eq "b") { $object=blank($object) } elsif($type_object eq "l") { $object=literal($object); } else { die "Unknown type_object >>$type_object<<\n"; } print "$subject $predicate $object .\n"; } $sth->finish(); # Disconnect from the database. $dbh->disconnect(); warn "$count triples\n";