弁財天

ゴフマン「専門家を信じるのではなく、自分自身で考えて判断せよ」

【パラダイス文書】の.csvファイルを解析。update2

How to download this database

$ unzip -l csv_paradise_papers.2017-11-17.zip
Archive:  csv_paradise_papers.2017-11-17.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
 43286174  11-17-2017 20:08   paradise_papers.edges.csv
 14240550  11-17-2017 19:56   paradise_papers.nodes.address.csv
  5572981  11-17-2017 19:56   paradise_papers.nodes.entity.csv
    34116  11-17-2017 19:56   paradise_papers.nodes.intermediary.csv
 13651810  11-17-2017 19:56   paradise_papers.nodes.officer.csv
   325209  11-17-2017 19:56   paradise_papers.nodes.other.csv
---------                     -------
 77110840                     6 files

$ grep -i hatoyama *.csv
paradise_papers.nodes.officer.csv:"[""Officer""]","Appleby data is current through 2014","JPN","","84100002","Paradise Papers - Appleby","","Yukio Hatoyama","","","","","","","","","","Record manually added from leaked documents."
ポッポいたw。grep -i mikitani *.csvで三木谷浩史のレコードが見つからないので、過去のバハマリークス以前のレコードは含まれてないらすい。

.csvファイルを解析してテケトーなcreate table文を作製する。(csv2table.pl)

#!/usr/bin/perl

use strict;

$| = 1;

use Text::CSV;
#use Scalar::Util qw(looks_like_number);

print "-- $ARGV[0]\n";
my $tn = `basename $ARGV[0] .csv`;
chomp $tn;
$tn = lc $tn;
$tn = "offshore_20170103_".$tn;

my $h = scalar(<>);
print "-- ".$h."\n";

chomp($h);

my @COL_LEN;
my @COL_TYPE;
my @COL_NULL;

my @colname = split(/,/, $h);
for (my $loop = 0; $loop <= $#colname; $loop++) {
	print "-- $loop $colname[$loop]\n";
	$COL_LEN[$loop] = 1;
	$COL_NULL[$loop] = "not null";
	$COL_TYPE[$loop] = "x";
}

my $MAX_COLS=$#colname + 1;
print "-- MAX_COLS $MAX_COLS\n\n";

my $pp = Text::CSV->new({ allow_whitespace => 1, binary => 1 });

while(<>) {
	chomp;
	my $line = $_;
	$pp->parse($line);
	my @fs = $pp->fields($line);
	&column_type(@fs);
}

print "create table $tn (\n";

for (my $loop = 0; $loop <= $#colname; $loop++) {
	if ($COL_TYPE[$loop] eq "d" ) {
		print "$colname[$loop] integer";
		print " not null" if ($COL_NULL[$loop] ne "null");
	} else {
		print $colname[$loop] . " varchar(" . $COL_LEN[$loop] . ")";
		print " not null" if ($COL_NULL[$loop] ne "null");
	}
	print ",\n" if ($loop < $#colname);
}

print ");\n\n";


sub column_type {
	my (@fs) = @_;
	for (my $loop = 0; $loop <= $#colname; $loop++) {
		if ($COL_LEN[$loop] < length($fs[$loop])) {
			$COL_LEN[$loop] = length($fs[$loop]);
		}
		if ($fs[$loop] ne "") {
			if ($fs[$loop] =~ /^\d+$/) {
				$COL_TYPE[$loop] = "d" if ($COL_TYPE[$loop] ne "s");
			} else {
				$COL_TYPE[$loop] = "s";
			}
		}
		if ($fs[$loop] eq "") {
			$COL_NULL[$loop] = "null";
		}
	}
}

# End of FILE.
$ cat paradise_20171117_schema.sql
-- 20171117/paradise_papers.edges.csv
-- "node_1","rel_type","node_2","r.sourceID","r.valid_until","r.start_date","r.end_date"

-- 0 "node_1"
-- 1 "rel_type"
-- 2 "node_2"
-- 3 "r.sourceID"
-- 4 "r.valid_until"
-- 5 "r.start_date"
-- 6 "r.end_date"
-- MAX_COLS 7

create table paradise_20171117_edges (
"node_1" integer not null,
"rel_type" varchar(18) not null,
"node_2" integer not null,
"sourceID" varchar(45) not null,
"valid_until" varchar(56) not null,
"start_date" varchar(11),
"end_date" varchar(11)
);

-- 20171117/paradise_papers.nodes.address.csv
-- "labels(n)","n.valid_until","n.country_codes","n.countries","n.node_id","n.sourceID","n.address","n.name","n.jurisdiction_description","n.service_provider","n.jurisdiction","n.closed_date","n.incorporation_date","n.ibcRUC","n.type","n.status","n.company_type","n.note"

-- 0 "labels(n)"
-- 1 "n.valid_until"
-- 2 "n.country_codes"
-- 3 "n.countries"
-- 4 "n.node_id"
-- 5 "n.sourceID"
-- 6 "n.address"
-- 7 "n.name"
-- 8 "n.jurisdiction_description"
-- 9 "n.service_provider"
-- 10 "n.jurisdiction"
-- 11 "n.closed_date"
-- 12 "n.incorporation_date"
-- 13 "n.ibcRUC"
-- 14 "n.type"
-- 15 "n.status"
-- 16 "n.company_type"
-- 17 "n.note"
-- MAX_COLS 18

create table paradise_20171117_address (
"labels" varchar(11) not null,
"valid_until" varchar(56) not null,
"country_codes" varchar(3),
"countries" varchar(32),
"node_id" integer not null,
"sourceID" varchar(45) not null,
"address" varchar(213) not null,
"name" varchar(242) not null,
"jurisdiction_description" varchar(1),
"service_provider" varchar(1),
"jurisdiction" varchar(1),
"closed_date" varchar(1),
"incorporation_date" varchar(1),
"ibcRUC" varchar(1),
"type" varchar(1),
"status" varchar(1),
"company_type" varchar(1),
"note" varchar(1));

-- 20171117/paradise_papers.nodes.entity.csv
-- "labels(n)","n.valid_until","n.country_codes","n.countries","n.node_id","n.sourceID","n.address","n.name","n.jurisdiction_description","n.service_provider","n.jurisdiction","n.closed_date","n.incorporation_date","n.ibcRUC","n.type","n.status","n.company_type","n.note"

-- 0 "labels(n)"
-- 1 "n.valid_until"
-- 2 "n.country_codes"
-- 3 "n.countries"
-- 4 "n.node_id"
-- 5 "n.sourceID"
-- 6 "n.address"
-- 7 "n.name"
-- 8 "n.jurisdiction_description"
-- 9 "n.service_provider"
-- 10 "n.jurisdiction"
-- 11 "n.closed_date"
-- 12 "n.incorporation_date"
-- 13 "n.ibcRUC"
-- 14 "n.type"
-- 15 "n.status"
-- 16 "n.company_type"
-- 17 "n.note"
-- MAX_COLS 18

create table paradise_20171117_entity (
"labels" varchar(10) not null,
"valid_until" varchar(56) not null,
"country_codes" varchar(15),
"countries" varchar(61),
"node_id" integer not null,
"sourceID" varchar(45) not null,
"address" varchar(22),
"name" varchar(106) not null,
"jurisdiction_description" varchar(32) not null,
"service_provider" varchar(7),
"jurisdiction" varchar(4) not null,
"closed_date" varchar(11),
"incorporation_date" varchar(12),
"ibcRUC" varchar(27),
"type" varchar(5),
"status" varchar(10),
"company_type" varchar(33),
"note" varchar(44));

-- 20171117/paradise_papers.nodes.intermediary.csv
-- "labels(n)","n.valid_until","n.country_codes","n.countries","n.node_id","n.sourceID","n.address","n.name","n.jurisdiction_description","n.service_provider","n.jurisdiction","n.closed_date","n.incorporation_date","n.ibcRUC","n.type","n.status","n.company_type","n.note"

-- 0 "labels(n)"
-- 1 "n.valid_until"
-- 2 "n.country_codes"
-- 3 "n.countries"
-- 4 "n.node_id"
-- 5 "n.sourceID"
-- 6 "n.address"
-- 7 "n.name"
-- 8 "n.jurisdiction_description"
-- 9 "n.service_provider"
-- 10 "n.jurisdiction"
-- 11 "n.closed_date"
-- 12 "n.incorporation_date"
-- 13 "n.ibcRUC"
-- 14 "n.type"
-- 15 "n.status"
-- 16 "n.company_type"
-- 17 "n.note"
-- MAX_COLS 18

create table paradise_20171117_intermediary (
"labels" varchar(16) not null,
"valid_until" varchar(55) not null,
"country_codes" varchar(7),
"countries" varchar(22),
"node_id" integer not null,
"sourceID" varchar(44) not null,
"address" varchar(1),
"name" varchar(82) not null,
"jurisdiction_description" varchar(7),
"service_provider" varchar(1),
"jurisdiction" varchar(3),
"closed_date" varchar(1),
"incorporation_date" varchar(1),
"ibcRUC" varchar(1),
"type" varchar(1),
"status" varchar(4),
"company_type" varchar(1),
"note" varchar(144));

-- 20171117/paradise_papers.nodes.officer.csv
-- "labels(n)","n.valid_until","n.country_codes","n.countries","n.node_id","n.sourceID","n.address","n.name","n.jurisdiction_description","n.service_provider","n.jurisdiction","n.closed_date","n.incorporation_date","n.ibcRUC","n.type","n.status","n.company_type","n.note"

-- 0 "labels(n)"
-- 1 "n.valid_until"
-- 2 "n.country_codes"
-- 3 "n.countries"
-- 4 "n.node_id"
-- 5 "n.sourceID"
-- 6 "n.address"
-- 7 "n.name"
-- 8 "n.jurisdiction_description"
-- 9 "n.service_provider"
-- 10 "n.jurisdiction"
-- 11 "n.closed_date"
-- 12 "n.incorporation_date"
-- 13 "n.ibcRUC"
-- 14 "n.type"
-- 15 "n.status"
-- 16 "n.company_type"
-- 17 "n.note"
-- MAX_COLS 18

create table paradise_20171117_officer (
"labels" varchar(11) not null,
"valid_until" varchar(56) not null,
"country_codes" varchar(27),
"countries" varchar(69),
"node_id" integer not null,
"sourceID" varchar(45) not null,
"address" varchar(1),
"name" varchar(226) not null,
"jurisdiction_description" varchar(1),
"service_provider" varchar(1),
"jurisdiction" varchar(1),
"closed_date" varchar(1),
"incorporation_date" varchar(1),
"ibcRUC" varchar(1),
"type" varchar(1),
"status" varchar(1),
"company_type" varchar(1),
"note" varchar(226));

-- 20171117/paradise_papers.nodes.other.csv
-- "labels(n)","n.valid_until","n.country_codes","n.countries","n.node_id","n.sourceID","n.address","n.name","n.jurisdiction_description","n.service_provider","n.jurisdiction","n.closed_date","n.incorporation_date","n.ibcRUC","n.type","n.status","n.company_type","n.note"

-- 0 "labels(n)"
-- 1 "n.valid_until"
-- 2 "n.country_codes"
-- 3 "n.countries"
-- 4 "n.node_id"
-- 5 "n.sourceID"
-- 6 "n.address"
-- 7 "n.name"
-- 8 "n.jurisdiction_description"
-- 9 "n.service_provider"
-- 10 "n.jurisdiction"
-- 11 "n.closed_date"
-- 12 "n.incorporation_date"
-- 13 "n.ibcRUC"
-- 14 "n.type"
-- 15 "n.status"
-- 16 "n.company_type"
-- 17 "n.note"
-- MAX_COLS 18

create table paradise_20171117_other (
"labels" varchar(9) not null,
"valid_until" varchar(36) not null,
"country_codes" varchar(15),
"countries" varchar(41),
"node_id" integer not null,
"sourceID" varchar(25) not null,
"address" varchar(1),
"name" varchar(155) not null,
"jurisdiction_description" varchar(1),
"service_provider" varchar(1),
"jurisdiction" varchar(1),
"closed_date" varchar(1),
"incorporation_date" varchar(1),
"ibcRUC" varchar(1),
"type" varchar(1),
"status" varchar(1),
"company_type" varchar(1),
"note" varchar(1));

$
node_idにインデックスを付けるw。
create index paradise_20171117_address_node_id_idx on paradise_20171117_address(node_id);
create index paradise_20171117_all_edges_node_1_idx on paradise_20171117_edges(node_1);
create index paradise_20171117_all_edges_node_2_idx on paradise_20171117_edges(node_2);
create index paradise_20171117_entitiy_node_id_idx on paradise_20171117_entity(node_id);
create index paradise_20171117_intermediaries_node_id_idx on paradise_20171117_intermediary(node_id);
create index paradise_20171117_other_node_id_idx on paradise_20171117_other(node_id);

csvファイルのローダ(paradise_insert.pl)

#!/usr/bin/perl

use strict;
use utf8;
use strict;
use Encode;
use DBD::Pg;

my $dbh;
my $sth;

$dbh = DBI->connect("dbi:Pg:dbname=icijdb;host=localhost", "icij", "hogehoge");
$dbh->{pg_enable_utf8} = 1;

$| = 1;

use Text::CSV;

my $target;

#paradise_papers.edges.csv
#paradise_papers.nodes.address.csv
#paradise_papers.nodes.entity.csv
#paradise_papers.nodes.intermediary.csv
#paradise_papers.nodes.officer.csv
#paradise_papers.nodes.other.csv

#create table paradise_20171117_edges (
#create table paradise_20171117_address (
#create table paradise_20171117_entity (
#create table paradise_20171117_intermediary (
#create table paradise_20171117_officer (
#create table paradise_20171117_other (

$target = "paradise_20171117_edges" if ($ARGV[0] =~ /edges/i);
$target = "paradise_20171117_address" if ($ARGV[0] =~ /address/i);
$target = "paradise_20171117_entity" if ($ARGV[0] =~ /entity/i);
$target = "paradise_20171117_intermediary" if ($ARGV[0] =~ /intermediary/i);
$target = "paradise_20171117_officer" if ($ARGV[0] =~ /officer/i);
$target = "paradise_20171117_other" if ($ARGV[0] =~ /other/i);

print "$target ...\n";
#exit(0);

my $h = scalar(<>);
print $h . "\n";

chomp($h);
my @colname = split(/,/, $h);
for (my $loop = 0; $loop <= $#colname; $loop++) {
	$colname[$loop] =~ s/\(n\)//;
	$colname[$loop] =~ s/n\.//;
	$colname[$loop] =~ s/r\.//;
	print STDERR "$loop $colname[$loop]\n";
}

my $MAX_COLS=$#colname + 1;
print "MAX_COLS $MAX_COLS\n";

my @COL_LEN;
my @COL_TYPE;
my @COL_NULL;

my $pp = Text::CSV->new({ allow_whitespace => 1, binary => 1 });

#exit 0;

while(<>) {
	chomp;
	my $line = $_;
	$pp->parse($line);
	my @fs = $pp->fields($line);
	&insert_panama($target, @fs);
}

$dbh->disconnect;

sub insert_panama {
	my ($tn, @fs) = @_;
	my $sql = "INSERT INTO " . $tn . " (";
	for (my $loop = 0; $loop <= $#colname; $loop++) {
		$sql .= $colname[$loop];
		$sql .= ", " if ($loop < $#colname);
	}
	$sql .= ") values (";
	for (my $loop = 0; $loop <= $#colname; $loop++) {
	    $fs[$loop] =~ s/\"//g;
	    $fs[$loop] =~ s/\\//g;
	    $fs[$loop] =~ s/\'/\'\'/g;
	    $fs[$loop] =~ tr/ / /s;
	    $fs[$loop] =~ s/ $//;
		if ($fs[$loop] eq "") { 
			$sql .= 'null';
		} else {
			#$sql .= 'E\'' . decode('UTF-8',$fs[$loop]) . '\'';
			$sql .= 'E\'' . $fs[$loop] . '\'';
		}
		$sql .= ", " if ($loop < $#colname);
	}
	$sql .= ")";
	#print $sql . "\n";
	$sth = $dbh->prepare($sql);
	$sth->execute() or print "[$sql]\n";
}

# End of FILE.

paradise_extract.pl

#!/usr/bin/perl

use utf8;
use strict;
use Encode;
use DBD::Pg;

my $dbh;
my $sth;

my $TARGET=$ARGV[0];

$dbh = DBI->connect("dbi:Pg:dbname=icijdb;host=localhost", "icij", "hogehoge");
$dbh->{pg_enable_utf8} = 1;

$| = 1;

my $sql = "";
my @did;

if ($TARGET ne "") {
	&decode_edges(0, $TARGET, \@did);
	exit(0);
}

exit(0);

sub decode_edges() {
	my ($nest, $node_id, $did) = @_;
	my $sql = "select node_1, rel_type, node_2 from paradise_20171117_edges where node_1 = $node_id or node_2 = $node_id";

	return if ($node_id eq "");

	my $nest_s = "";
	for (my $loop = 0; $loop < $nest; $loop++) {
		#print ".";
		$nest_s .= ".";
	}

	for (my $loop = 0; $loop <= $#$did; $loop++) {
		if (@$did[$loop] == $node_id) {
			return;
		}
	}

	my $e .= &decode_entity($node_id);
	print "$nest_s$e\n" if ($e ne "");


	if ($nest > 10) {
		return;
	}

	my $e = $dbh->selectall_arrayref($sql);
	foreach my $r (@$e) {
		if ($r->[1] eq "registered_address") {
			my $address2;
			$address2 = &decode_address($r->[2]) if ($r->[0] == $node_id);
			print "$nest_s$address2\n" if ($address2 ne "");
			&decode_edges($nest + 1,$r->[0], $did) if ($r->[2] == $node_id);
		}
		elsif ($r->[1] eq "intermediary_of") {
			#print STDERR "@1@ intermediary_of ";
			my $intermediary;
			$intermediary = &decode_intermediaries($r->[0]) if ($r->[2] == $node_id);
			$intermediary = &decode_intermediaries($r->[2]) if ($r->[0] == $node_id);
			#print STDERR "@2@ intermediary_of ";
			$intermediary .= &decode_entity($r->[2]);
			print encode('UTF-8',"$nest_s$intermediary\n") if ($intermediary ne "");
			&decode_edges($nest + 1,$r->[2], $did) if ($r->[0] == $node_id);
		}
		#elsif ($r->[1] eq "similar") {
		elsif ($r->[1] eq "same_name_as") {
			print $nest_s . $r->[0] . "/" . $r->[1] . "/" . $r->[2] . "\n";
			my $similar;
			$similar = &decode_officer($r->[0]) if ($r->[2] == $node_id);
			$similar = &decode_officer($r->[2]) if ($r->[0] == $node_id);
			$similar .= &decode_entity($r->[2]);
			print $nest_s . "= " . "$similar\n" if ($similar ne "");
			&decode_edges($nest + 1,$r->[2], $did) if ($r->[0] == $node_id);
		}
		# registered_address
		# intermediary_of
		# same_name_as
		# connected_to
		# officer_of
		# same_id_as
		else {
			#print "(" . $r->[0] . " " . $r->[1] . " " . $r->[2] .")";
			my $officer;
			$officer = &decode_officer($r->[0], $r->[1]) if ($r->[2] == $node_id);
			$officer .= &decode_entity($r->[2]);
			$officer .= " (" . $r->[1] . ") " . &decode_other($r->[0]);
			print encode('UTF-8',"$nest_s$officer\n") if ($officer ne "");
			&decode_edges($nest + 1,$r->[2], $did) if ($r->[0] == $node_id);
		}
	}
	push (@$did, $node_id);
}

sub decode_address() {
	my ($node_id) = @_;
	my $sql = "select node_id, address, countries, \"sourceID\" from paradise_20171117_address where node_id = $node_id";
	my $d = $dbh->selectall_arrayref($sql);
	my $address = "";
	foreach my $r (@$d) {
		$address = "ADDRESS(" . $r->[0] . ")[" . $r->[1] . "/" . $r->[2] . "/" . $r->[3] . "]";
	}
	$address;
}

sub decode_officer() {
	my ($node_id, $rel_type) = @_;
	my $sql = "select node_id, name, countries, \"sourceID\" from paradise_20171117_officer where node_id = $node_id";
	my $d = $dbh->selectall_arrayref($sql);
	my $officer = "";
	foreach my $r (@$d) {
		$officer = "OFFICER(" . $r->[0] . ")[" . $r->[1] . "/" . $r->[2] . "/" . $r->[3] . "] ($rel_type) ";
	}
	$officer;
}

sub decode_intermediaries() {
	my ($node_id) = @_;
	my $sql = "select node_id, name, countries, \"sourceID\" from paradise_20171117_intermediary where node_id = $node_id";
	my $d = $dbh->selectall_arrayref($sql);
	my $officer = "";
	foreach my $r (@$d) {
		$officer = "INTERMEDIARIES(" . $r->[0] . ")[" . $r->[1] . "/" . $r->[2] . "/" . $r->[3] . "]";
	}
	$officer;
}

sub decode_entity() {
	my ($node_id) = @_;
	my $sql = "select node_id, name, countries, \"sourceID\", incorporation_date, closed_date from paradise_20171117_entity where node_id = $node_id";
	my $d = $dbh->selectall_arrayref($sql);
	my $officer = "";
	foreach my $r (@$d) {
		$officer = "ENTITY(" . $r->[0] . ")[" . $r->[1] . "/" . $r->[2] . "/" . $r->[3] . "/" . $r->[4] . "," . $r->[5] . "]";
	}
	$officer;
}

sub decode_other() {
	my ($node_id) = @_;
	my $sql = "select node_id, name, countries, \"sourceID\", incorporation_date, closed_date from paradise_20171117_other where node_id = $node_id";
	my $d = $dbh->selectall_arrayref($sql);
	my $other = "";
	foreach my $r (@$d) {
		$other = "OTHER(" . $r->[0] . ")[" . $r->[1] . "/" . $r->[2] . "/" . $r->[3] . "/" . $r->[4] . "," . $r->[5] . "]";
	}
	$other;
}

$dbh->disconnect;
ポッポのレコードで試し斬り。あ、動いたw。ニール・ブッシュ(Bush - Neil)w
$ perl paradise_extract.pl 84100002|perl id2link.pl
ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,]
.ADDRESS(81030583)[27/F, Fortis Tower/Hong Kong/Paradise Papers - Appleby]
.ADDRESS(81029389)[Argyle House/Bermuda/Paradise Papers - Appleby]
.ADDRESS(81027090)[Canon's Court/Bermuda/Paradise Papers - Appleby]
.ADDRESS(81072325)[Units 10-12, 19/F., China Merchants Tower/Hong Kong/Paradise Papers - Appleby]
.OFFICER(84100002)[Yukio Hatoyama//Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(84100002)[Yukio Hatoyama//Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.INTERMEDIARIES(80000189)[Appleby Management (Bermuda) Ltd./Bermuda/Paradise Papers - Appleby]ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,]
.OFFICER(80043028)[Bush - Neil/United States/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80047643)[Chen - Eric Wei-Ming/Hong Kong;Taiwan;United States/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80049541)[Chui - Say Hoe/China/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80055963)[Deloitte Touche Tohmatsu - Hong Kong, Central/Hong Kong/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80059973)[Elite Partners CPA Limited/Hong Kong/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80079679)[Hui - Chi Ming/China/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80079679)[Hui - Chi Ming/China/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80088941)[Kwan - Alan Wang Wai/China;Hong Kong/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80089936)[Lam - Kwok Hing/China;Hong Kong/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80089936)[Lam - Kwok Hing/China;Hong Kong/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80105498)[Nam - Kwok Lun/China;Hong Kong/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80105498)[Nam - Kwok Lun/China;Hong Kong/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.OFFICER(80106544)[Ng - David Chi Kin/China/Paradise Papers - Appleby] (officer_of) ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
.INTERMEDIARIES(80127519)[Tricor Standard Limited/Hong Kong/Paradise Papers - Appleby]ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,]
ENTITY(82004342)[Hoifu Energy Group Limited/Bermuda;Hong Kong/Paradise Papers - Appleby/2000-Mar-29,] (officer_of) 
【パラダイス文書】2000年3月29日の鳩山由紀夫とニール・ブッシュと2009年9月16日の鳩山政権w

icijdb=> select distinct(rel_type) from paradise_20171117_edges;
      rel_type      
--------------------
 connected_to
 same_name_as
 intermediary_of
 registered_address
 officer_of
 same_id_as
(6 行)

icijdb=> 
EU、悪質タックスヘイブンのリスト公表 制裁も視野 ブリュッセル=津阪直樹2017年12月6日00時21分
 欧州連合(EU)の経済・財務相理事会は5日、著名人や企業の投資先になっているタックスヘイブン(租税回避地)のうち、悪質と判断した計17の国・地域のリストを公表した。金融支援の打ち切りなどの制裁を科すことも検討する。
 リストに載ったのは米領グアムや韓国、チュニジア、マーシャル諸島など。EUからみて国際的に不公平な税の制度を採用し、税情報の提供に非協力的な非EU加盟国を対象にした。韓国は、不公平な優遇税制の是正を約束しなかったことが問題視されたという。
 具体的な制裁は今後、検討する。EUの基金による支援の打ち切りなどが議論されているとみられる。
 だが、対象を非EU加盟国に限定したことで、域外の国から批判を浴びる可能性もある。
 EUは理由について「加盟国はすべて税情報の共有で協力している」などとするが、ルクセンブルクやアイルランドなど優遇税制を設けて企業を誘致している加盟国に配慮したとの指摘もある。国際NGO「オックスファム」は、EUが今回採用した基準を加盟国にもあてはめると、これら2カ国を含むEUの4カ国もリストに入ると主張する。
 EUは昨年、リスト作りに着手したものの進展しなかった。だが、タックスヘイブンの実態を明らかにした国際調査報道ジャーナリスト連合(ICIJ)の「パラダイス文書」の報道が議論を後押ししたという。
 行政機能を担う欧州委員会のドムブロフスキス副委員長(金融サービスなど担当)は先月、「パラダイス文書が新しい政治的な推進力を生むことを期待している」と年内のリスト公表に意欲を示していた。(ブリュッセル=津阪直樹)
【EUのタックスヘイブンリストに載った国・地域】
米領サモア、バーレーン、バルバドス、グレナダ、米領グアム、韓国、マカオ、マーシャル諸島、モンゴル、ナミビア、パラオ、パナマ、セントルシア、サモア、トリニダード・トバゴ、チュニジア、アラブ首長国連邦

投稿されたコメント:

コメント
コメントは無効になっています。