2. 1
TABLE DE MATIERE
Introduction........................................................................................................................................2
I. Description de projet ..................................................................................................................3
1. Panama_papers ......................................................................................................................3
2. Structure de données de PANAMA-PAPERS.............................................................................3
II. Description de la base de données ..............................................................................................4
1. Définition de NEO4J ................................................................................................................4
2. Définition de CYPHER ..............................................................................................................4
III. Les requetés utilisées ..............................................................................................................5
1. La création des nœuds ............................................................................................................5
2. La création d’une relation........................................................................................................5
3. Requête du recherche .............................................................................................................5
4. Simplification des graphes avec nœuds virtuels et relations ....................................................6
5. Le chemin court entre deux officiers........................................................................................7
CONCLUSION......................................................................................................................................8
3. 2
Introduction
Les Panama Papers « documents panaméens » désignent la fuite de plus de 11,5
millions de documents confidentiels issus du cabinet d'avocats panaméen Mossack
Fonseca, détaillant des informations sur plus de 214 000 sociétés offshore ainsi que
les noms des actionnaires de ces sociétés. Parmi eux se trouvent des hommes
politiques, des milliardaires, des sportifs de haut niveau ou des célébrités. Des
associés de chefs de gouvernements de plus de 40 autres pays.
Les documents fournis par un lanceur d'alerte anonyme et non rémunéré, représentant
un total de 2,6 téraoctets de données. Les données ont rapidement été partagées
avec les rédactions de médias dans plus de 80 pays par l'intermédiaire du consortium
international des journalistes d'investigation5 (ICIJ).
Dans ce compte rendu, je vais présenter 3 chapitres :
Chapitre I contient une description du PANAMA PAPERS et sa structure
Chapitre II présente la définition de la base de données « NEO4 J» et le language «
CYPHER».
Chapitre III contient quelques requîtes qui nous permet de bien comprendre quelque
cas avec le modèle de données graphiques, je disséquerai quelques exemples à partir
des données divulguées, en le recréant à l'aide de Cypher.
4. 3
I. Description de projet
1. Panama_papers
Comme le monde l’a vu, le Consortium international des journalistes d’investigation
(ICIJ) a exposé des réseaux hautement connectés de structures fiscales offshores
utilisées par les élites les plus riches du monde.
Ces structures ont été découvertes suite à des fuites de documents financiers et ont
été analysées par les journalistes. Ils ont extrait les métadonnées des documents à
l'aide d'Apache Solr et de Tika, puis ont connecté toutes les informations ensemble à
l'aide des bases de données divulguées, créant un graphique des nœuds et des bords
dans Neo4j et l'ont rendu accessible à l'aide de l'application de visualisation
Linkurious.
2. Structure de données de PANAMA-PAPERS
Le modèle de données de la base de données Panama Papers / Offshore leaks Neo4j
contient des entités juridiques offshore et leurs connexions
Entité - L'entité juridique offshore. Il peut s'agir d'une entreprise, d'une fiducie, d'une
fondation ou d'une autre entité juridique créée dans une juridiction à faible taux
d'imposition.
Officier - Une personne ou une entreprise qui joue un rôle dans une entité offshore,
comme un bénéficiaire, un administrateur ou un actionnaire. Les relations illustrées
dans le diagramme ne sont qu'un échantillon de toutes les relations existantes.
Intermédiaire - Un intermédiaire pour quelqu'un qui cherche une société offshore et
un fournisseur de services offshore - généralement un cabinet d'avocats ou un
5. 4
intermédiaire qui demande à un fournisseur de services offshore de créer une société
offshore.
Adresse - L'adresse enregistrée telle qu'elle apparaît dans les bases de données
originales obtenues par ICIJ.
Autre - Autres entités trouvées dans les données.
II. Description de la base de données
1. Définition de NEO4J
Neo4J est une base de données orientée graphe, elle vit le jour en 2000 et appartient
à la société Neo Technology. Elle garantit que les transactions sont ACID (atomicité,
cohérence, isolation et durabilité), chaque transaction est fiable et unique au sein de
cette base. L’un des points mis en avant par Neo Technology est la possibilité
d’exécuter plusieurs millions de requêtes par seconde sur des relations entre nœuds.
Neo4J intègre son propre langage de requêtage, le Cypher. Il peut être appelé grâce
à l’API REST fournie, ou via l’une des différentes implémentations disponibles pour les
principaux langages, dont Ruby. Les données peuvent être chargées grâce à
l’ETL propre à ce système, ce qui permet d’importer facilement et en masse une
grande quantité de données provenant de fichiers CSV. Les données ainsi insérées
peuvent être ensuite consultées sur un navigateur, par l’intermédiaire du panneau
d’administration de notre instance Neo4J.
2. Définition de CYPHER
CYPHER est un langage informatique de requête orienté graphe utilisé par Neo4j.
Le langage se veut simple et efficace dans la formulation des requêtes d'interrogation
et de mise à jour des bases de données orientées graphe. Cypher est relativement
simple dans sa construction syntaxique mais reste néanmoins un langage efficace.
Les concepteurs ont voulu permettre aux utilisateurs de rester concentrés dans leur
domaine d'expertise au lieu de se perdre dans les formulations de requêtes en bases
de données.
6. 5
III. Les requetés utilisées
1. La création des nœuds
Requête de base (simple)
La création de 2 nœuds <Staff> et <company> chaque nœud contient une ligne avec
des attributs spécifiques.
2. La création d’une relation
Ces commandes vont rechercher tous les nœuds avec le label Staff et avec le
label Company. Comme il n’y a qu’un seul nœud Company avec un attribut name égal
à zineb, les deux Staff vont être liés au seul nœud zineb.
3. Requête du recherche
Requête complexe « PANAMA-PAPERS »
Cette requête permet d'afficher l’entreprise « Regula limited » qui existe déjà dans le
nœud Entity et toutes les sociétés auxquelles il se rapporte dans Panama-papers,
cette recherche est limitées dans 25 nœuds.
7. 6
4. Simplification des graphes avec nœuds virtuels et relations
WHERE (o2:Officer OR o2:Intermediary)
AND NOT toUpper(o2.name) CONTAINS "REGULA LIMITED"
RETURN collapsed, e, r1, r2, o2 LIMIT 10
Les nœuds virtuels et les relations sont des objets graphiques qui n'existent pas dans
la base de données, mais peuvent être construits au moment de la requête pour être
utilisés par des outils comme Neo4j Browser. Nous pouvons créer des nœuds virtuels
à l'aide de la bibliothèque de procédures APOC et des fonctions apoc.create.vNode
et apoc.create.vRelationship
Voici un exemple montrant comment réduire tous les nœuds «Regula Limited» en un
seul nœud, y compris toutes les relations, à l'aide de nœuds virtuels et de relations
MATCH (o:Officer) WHERE toUpper(o.name) CONTAINS "REGULA LIMITED" WITH o AS collapsed
LIMIT 1
WITH apoc.create.vNode(["Regula"], collapsed {.*}) AS collapsed
MATCH (o)-[col1]->(e:Entity) WHERE toUpper(o.name) CONTAINS "REGULA LIMITED"
WITH collapsed, o, e, apoc.create.vRelationship(collapsed, type(col1), {}, e) AS r1
MATCH (e)<-[r2]-(o2)
8. 7
L'exécution de cette requête dans le navigateur Neo4j nous donne une vue simplifiée
des données. Maintenant, nous pouvons voir plus facilement les connexions à
«Regula Limited».
5. Le chemin court entre deux officiers
Cette requête permet de définir le chemin court entre deux officiers on utilise le mot-
clé « shortestPath »
9. 8
Pour définir tous les chemins, courts en utilisent le mot-clé « AllShortedPath »
CONCLUSION
La réalisation de ce projet est passée par un ensemble des étapes, en commençant
d’abord par la métrise du système et savoir ses différentes composantes, puis pose
des questions et les répond sous forme de requêtes, ensuite faire le traitement, et
finalement l’affichage de résultats sous forme du graphe sur NEO4J.