巴拿马文件 - 示例数据集 阿塞拜疆总统
让我们看看阿塞拜疆总统伊利哈姆·阿利耶夫的家族,他之前曾是 Linkurious GraphGist 的主题。我们看到了他的妻子、两个女儿和一个儿子。
来源
ICIJ “权力玩家” 出版物摘要
阿塞拜疆总统伊利哈姆·阿利耶夫的家族生活奢华迷人,这部分得益于其在经济几乎所有领域中的金融利益。他的妻子梅赫里班来自特权而强大的帕沙耶夫家族,该家族拥有银行、保险和建筑公司、一家电视台以及一个化妆品系列。她曾领导盖达尔·阿利耶夫基金会,这是阿塞拜疆最杰出的慈善机构,负责建设学校、医院和国家主要体育综合体。他们的长女莱拉(*Baku 杂志编辑)和她的妹妹阿尔祖在一家公司持有股权,该公司获得了在西部乔夫达尔村开采黄金的权利,以及阿塞拜疆最大的手机业务 Azerfon。阿尔祖还是 SW Holding 的重要股东,该公司控制着与阿塞拜疆航空("Azal")相关的几乎所有业务,从餐饮到机场出租车。姐妹俩和弟弟盖达尔在2010年拥有价值约7500万美元的迪拜房产;盖达尔是迪拜九栋豪宅的合法所有者,这些豪宅购入价约为4400万美元。
设置
我们从ICIJ可视化中获取了数据,并将二维图可视化转换成Cypher查询语言中的图模式。如果你仔细看,仍然可以看到与可视化相同的结构。我们只将“是高管 - 受益人、股东、董事”缩短为IOO_BSD
,并给其他“是高管”关系加上IOO
前缀。
我们没有添加股份、国籍、注册号、地址等作为实体或关系的属性,你可以点击嵌入的原始可视化元素来查看它们。
Cypher 语句,用于设置可视化实体和关系
CREATE
(leyla: Officer {name:"Leyla Aliyeva"})-[:IOO_BSD]->(ufu:Company {name:"UF Universe Foundation"}),
(mehriban: Officer {name:"Mehriban Aliyeva"})-[:IOO_PROTECTOR]->(ufu),
(arzu: Officer {name:"Arzu Aliyeva"})-[:IOO_BSD]->(ufu),
(mossack_uk: Client {name:"Mossack Fonseca & Co (UK)"})-[:REGISTERED]->(ufu),
(mossack_uk)-[:REGISTERED]->(fm_mgmt: Company {name:"FM Management Holding Group S.A."}),
(leyla)-[:IOO_BSD]->(kingsview:Company {name:"Kingsview Developents Limited"}),
(leyla2: Officer {name:"Leyla Ilham Qizi Aliyeva"}),
(leyla3: Officer {name:"LEYLA ILHAM QIZI ALIYEVA"})-[:HAS_SIMILIAR_NAME]->(leyla),
(leyla2)-[:HAS_SIMILIAR_NAME]->(leyla3),
(leyla2)-[:IOO_BENEFICIARY]->(exaltation:Company {name:"Exaltation Limited"}),
(leyla3)-[:IOO_SHAREHOLDER]->(exaltation),
(arzu2:Officer {name:"Arzu Ilham Qizi Aliyeva"})-[:IOO_BENEFICIARY]->(exaltation),
(arzu2)-[:HAS_SIMILIAR_NAME]->(arzu),
(arzu2)-[:HAS_SIMILIAR_NAME]->(arzu3:Officer {name:"ARZU ILHAM QIZI ALIYEVA"}),
(arzu3)-[:IOO_SHAREHOLDER]->(exaltation),
(arzu)-[:IOO_BSD]->(exaltation),
(leyla)-[:IOO_BSD]->(exaltation),
(arzu)-[:IOO_BSD]->(kingsview),
(redgold:Company {name:"Redgold Estates Ltd"}),
(:Officer {name:"WILLY & MEYRS S.A."})-[:IOO_SHAREHOLDER]->(redgold),
(:Officer {name:"LONDEX RESOURCES S.A."})-[:IOO_SHAREHOLDER]->(redgold),
(:Officer {name:"FAGATE MINING CORPORATION"})-[:IOO_SHAREHOLDER]->(redgold),
(:Officer {name:"GLOBEX INTERNATIONAL LLP"})-[:IOO_SHAREHOLDER]->(redgold),
(:Client {name:"Associated Trustees"})-[:REGISTERED]->(redgold)
现在,让我们使用 Neo4j 的开放式自然图查询语言 Cypher,对这个数据集运行一些有趣的查询。
家族参与
MATCH (o:Officer) WHERE toLower(o.name) CONTAINS "aliyev"
MATCH (o)-[r]-(c:Company)
RETURN o,r,c
显示家族成员在公司的共同参与
MATCH (o1:Officer)-[r1]->(c:Company)<-[r2]-(o2:Officer)
WITH o1.name AS first, o2.name AS second, count(*) AS c, collect({ name: c.name, kind1: type(r1), kind2:type(r2)}) AS involvements
WHERE c > 1 AND first < second
RETURN first, second, involvements, c
解决重复实体
MATCH (o:Officer)
RETURN toLower(split(o.name," ")[0]) as first_name, collect(o.name) as names, count(*) as count
通过姓名的首尾部分解决重复实体
MATCH (o:Officer)
WITH split(toLower(o.name), " ") AS name_parts, o
WITH name_parts[0] + " " + name_parts[-1] as name, collect(o.name) AS names, count(*) AS count
WHERE count > 1
RETURN name, names, count
ORDER BY count DESC
从莫萨克到该示例中高管的传递路径
MATCH path=(:Client {name: "Mossack Fonseca & Co (UK)"})-[rels*]-(o:Officer)
WHERE NONE(r in rels WHERE type(r)="HAS_SIMILIAR_NAME")
RETURN [n in nodes(path) | n.name] as hops, length(path)
两个人之间的最短路径
MATCH (a:Officer {name: "Mehriban Aliyeva"})
MATCH (b:Officer {name: "Arzu Aliyeva"})
MATCH p=allShortestPaths((a)-[*]-(b))
RETURN p
让我们看看如何进一步扩展这个模型。
合并重复项
创建一个人员节点,并将所有高管连接到该单个人员。重用我们从重复检测中得到的语句。
MATCH (o:Officer)
WITH split(toLower(o.name), " ") AS name_parts, o
WITH name_parts[0]+ " " + name_parts[-1] AS name, collect(o) AS officers
// originally natural people have a “citizenship” property
WHERE name CONTAINS "aliyev"
CREATE (p:Person { name:name })
FOREACH (o IN officers | CREATE (o)-[:IDENTIY]->(p))
引入这些人之间的家庭关系
CREATE (ilham:Person {name:"ilham aliyev"})
CREATE (heydar:Person {name:"heydar aliyev"})
WITH ilham, heydar
MATCH (mehriban:Person {name:"mehriban aliyeva"})
MATCH (leyla:Person {name:"leyla aliyeva"})
MATCH (arzu:Person {name:"arzu aliyeva"})
FOREACH (child in [leyla,arzu,heydar] | CREATE (ilham)-[:CHILD_OF]->(child) CREATE (mehriban)-[:CHILD_OF]->(child))
CREATE (leyla)-[:SIBLING_OF]->(arzu)
CREATE (leyla)-[:SIBLING_OF]->(heydar)
CREATE (arzu)-[:SIBLING_OF]->(heydar)
CREATE (ilham)-[:MARRIED_TO]->(mehriban)
家族与公司的联系
MATCH (p:Person) WHERE p.name CONTAINS "aliyev"
OPTIONAL MATCH (c:Company)<--(o:Officer)-[:IDENTITY]-(p)
RETURN c,o,p
结论
本 GraphGist 由 Will Lyon 和 Michael Hunger 开发,作为一篇关于使用图数据库进行新闻分析的技术文章的一部分。
此页面有帮助吗?