-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathrdfize.pl
More file actions
executable file
·64 lines (57 loc) · 2.25 KB
/
Copy pathrdfize.pl
File metadata and controls
executable file
·64 lines (57 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env perl
use warnings;
use strict;
use Fatal qw/open/;
use open ":utf8";
use utf8;
use Encode;
use URI::Escape;
use RDF::Trine;
use Text::Trim;
binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";
my $base_uri = 'http://purl.jp/bio/10/tga/';
my $term_uri_prefix = 'http://purl.jp/bio/10/tga/term/';
my $vocab_uri_prefix = 'http://purl.jp/bio/10/tga/vocabulary#';
my $tgao = RDF::Trine::Namespace->new( $vocab_uri_prefix );
my $rdf = RDF::Trine::Namespace->new( 'http://www.w3.org/1999/02/22-rdf-syntax-ns#' );
my $rdfs = RDF::Trine::Namespace->new( 'http://www.w3.org/2000/01/rdf-schema#' );
my $namespaces = {
'tgat' => $term_uri_prefix,
'tgao' => $vocab_uri_prefix
};
my $beforeClass = $tgao->BeforeReplacementTerm;
my $afterClass = $tgao->AfterReplacementTerm;
my $curatedClass = $tgao->CuratedReplacementTerm;
my $replacedBy = $tgao->replacedBy;
my $rdfslabel = $rdfs->label;
my $a = $rdf->type;
my $dummy = <>;
while(<>){
chomp;
my @vals = split /\t/;
if($vals[4] && $vals[5]){
my $before = trim( $vals[5] );
my $after = trim( $vals[4] );
$before =~ s/^"\s*//;
$before =~ s/\s*"$//;
$after =~ s/^"\s*//;
$after =~ s/\s*"$//;
my $m = RDF::Trine::Model->temporary_model;
my $uri_s = RDF::Trine::Node::Resource->new($term_uri_prefix.uri_escape(encode_utf8($vals[5])));
my $uri_d = RDF::Trine::Node::Resource->new($term_uri_prefix.uri_escape(encode_utf8($vals[4])));
my $uri_s_label = RDF::Trine::Node::Literal->new( encode_utf8($vals[5]) );
my $uri_d_label = RDF::Trine::Node::Literal->new( encode_utf8($vals[4]) );
$m->add_statement( RDF::Trine::Statement->new($uri_s, $a, $beforeClass) );
$m->add_statement( RDF::Trine::Statement->new($uri_s, $rdfslabel, $uri_s_label) );
$m->add_statement( RDF::Trine::Statement->new($uri_d, $a, $afterClass) );
$m->add_statement( RDF::Trine::Statement->new($uri_d, $rdfslabel, $uri_d_label) );
$m->add_statement( RDF::Trine::Statement->new($uri_s, $replacedBy, $uri_d) );
my $s = RDF::Trine::Serializer::NTriples->new();
#my $s = RDF::Trine::Serializer::Turtle->new( namespaces => $namespaces );
#my $s = RDF::Trine::Serializer::Turtle->new( namespaces => {tgat => $term_uri_prefix} );
print $s->serialize_model_to_string( $m );
# print "\n";
}
}
__END__