これを見る限り、ノードは以下のタイプに分類してあります

そしてそれを「会社の役員である」「登録先の住所」などといった比較的単純な関係性に分類してエッジを構築しています。ここから、おそらく以下のようなことを行ったのではないかと想像しています:

もし公開されているサブグラフが元のデータベースのものと大差ないものであれば、比較的シンプルなデータとしてまとめた感じです。この場合、まだまだ眠っている関係性を今後掘り起こせる可能性もあります。例えば、今回はメールデータも含まれていますので、それらの差出人（From）と宛先（To）からコミュニケーションの方向性と頻度を測定し、そこからエッジのスコアに換算。これにより重み付きのエッジが大量に発生するので、より「解像度の高い」グラフデータに仕上げることも可能ではないかと思います。もちろんその先には、自然言語処理の技術を使った様々な解析もあるでしょうが、今回は触れません。なお、メールデータ等から関連人物のネットワーク構造を推定するという手法はいろいろな場面で用いられており、米国の諜報機関もテロリストのネットワークを可視化したり解析するために、類似の手法を使っていると言われています。余談ですが、過去の巨大なスキャンダルであるエンロン事件での証拠として公開されているメールのアーカイブから、関係者のネットワークを可視化すると言うプロジェクトもあります。この作者はその後スタンフォード、ワシントン大学と渡って教授となり、彼のラボからはD3.jsという非常に有名な可視化のためのライブラリが生まれました。

さて、グラフを作る方針を決めた後は、ひたすらデータの掃除と加工、データベースへの流し込みです。データ解析の世界で働いていらっしゃる方はお分かりだと思いますが、これは非常に苦痛な作業でもあります。いわゆる「データサイエンス」が実はとても泥臭い仕事だと言われる所以もこのあたりにあります。今回のデータの場合、215,000の会社組織に対し、最低３人の関係者がおり、これらのつながりをグラフ化するとおよそ100万ノードのグラフが出来上がりました。実際にNeo4jのデータベースを構築するときには、このソフトウェアを利用したようです

http://www.talend.com/download/talend-open-studio

詳細はさらに担当者の方にインタビューをしないとわかりませんが、概ねこのような作業で、まず調査のバックボーンとなるグラフデータベースが構築されたようです。

ここまで読んで、RDBの経験者の方は「そもそもRDBのファイルでデータが流出したのならば、なんでこんなまどろっこしいことをやるのか？そのまま統合したデータベースにSQLクエリを投げれば良いのではないか？」と疑問を持たれるかもしれません。彼らがわざわざグラフ化した一番大きな理由は、経路検索などといったグラフ構造に対する特有の検索を大量に行う場合、RDBで構築したものだと使い物にならないくらいパフォーマンスが低下する場合があるからだと思います。今回の調査では、金の流れと関連人物の繋がりを見ながら資料を読み込むというユースケースだったため、グラフDBを使うのがもっとも適していると判断したのでしょう。

ここからは少し泥臭くなります。「データベース化したものを人工知能に自動的に解析させる」というような時代は少なくともまだ当分は来ません。ですから、ここからは人間の出番です。そもそも彼らがグラフデータベースを利用した大きな理由には、関係者のつながりを文字通り人間が見られるようにする、というグラフ可視化の機能を使いたかったという部分が大きいようです。複雑なグラフ構造を理解する場合、関係性を文章で読んでいても、とても人間の脳は大規模なものを短時間で把握することはできません。そこで彼らは構築したNeo4jデータベースをLinkuriousというグラフ可視化・解析サービスに接続しました。今回の分析には370人の世界中に散らばったジャーナリストが関わっています。これらの人々が同時に同じデータにアクセスして分散して解析作業を行って行く場合、グラフデータベースの上にそういった作業を可能とする何らかのアプリケーションを構築する必要があります。もちろんカスタムアプリケーションを自ら作ることもできるのですが、そこまでやる必要はないし、それはあまりにも負担が大きいので、Linkurious社の提供するLinkurious Enterpriseというサービスを利用したそうです。

今回参加したジャーナリストの大半は、Linkurious社が提供するアプリケーションのGUIを使って、グラフデータベースから人物と会社の関係を引き出し、それを目で確認しながら関連書類や資料を読み込んだようです。中にはNeo4jに標準搭載されているグラフクエリ用言語のCypherでより高度な検索を行いながら解析を行った高度な技術を持つユーザーもいたようです。グラフクエリ言語というのは、あるグラフに対して、特定の条件にマッチする経路やノードを検索させるためのDSL（ドメイン固有言語）の一種です。グラフを検索するための単純なプログラミング言語のようなものだと考えてもらっても概ね正しいです。単純な例で言えば、

「企業Aに２ホップ以内でつながっている人物と会社を列挙せよ」

「某国大統領とかかわりのある企業とX氏の間に経路があるか調べよ。ある場合はそれを全て列挙せよ」

といった感じの検索条件を、計算機が理解できる形の検索条件に置き換えるための言語です。こういった調査でグラフデータベースを利用する利点の一つには、構造に対するかなり複雑なクエリを実行することができる点です。経路検索はもとより、特定の小構造（ネットワークモチーフとも呼ばれます）を持った部分を探し出したりと、RDBでは難しい解析を現実的な時間で行うことができます。おそらくまだ今後も様々な解析を行っていくはずなので、続報を待ちたいところです。

まだ（生）データが出ていないので想像でしか物が言えないのが心苦しいですが、これらの記事を読んだ印象では、いわゆるデータサイエンティストと呼ばれる人々を迎える事により、まだまだ多面的な解析が行えそうな気がしています。

現在公開されているLinkuriousのサブグラフに出ているエッジの種類はかなり限られていますし、スコアリングや時系列の資金の流れのマッピングなどといった高度な事は行っていないようにも見えます。私は統計屋さんではないので、あくまでプログラマとしての立場の意見ですが。秘密裏にデータをシェアして共同作業を行う、という点でフロントエンドとして大きな役割を果たしたLinkuriousですが、バックエンドのNeo4jは独立して存在するので、今後グラフ構造そのものの解析や、エッジ/プロパティ追加によるデータのさらなる多面的な解析を行う場合は、直接Cypher経由で複雑なシナリオを検討する事が考えられます。また、非構造化データから抽出したキーワードや、一定のルールに基づいて行うエッジのスコアリングなどでグラフデータベースの厚みを増し、高度な解析能力を有する専門家がJupyter Notebookなどを利用したオープンで再現性のある解析を行い、ノートとデータ、できれば環境をDockerfileにまとめて、それをそのまま公開してしまう、という道もあるのではないかと思います。そうなれば解析の環境から手法、データまで含めたある意味究極の情報公開になります。

担当者の方が述べておられるように、比較的簡単で面白そうなのはスイス・リークスのデータセットとの統合です。彼らがグラフデータベースを利用し始めたのはスイス・リークスの一件の時からなので、すでにグラフデータベース化されているものがあれば、マージは比較的容易だと思われます。それによりさらに大きな俯瞰図ができれば興味深いと思います。彼女もこう言っていますし、続報を待ちましょう。

I think that we have just scratched the surface on how we can analyze the graph data.

また、全データ公開は無理でも、ある程度加工された二次利用しやすいデータとして部分的にでも公開されれば、新聞社などのインフォグラフィックやデータビジュアライゼーションのチームが、各種公開データセット（地図など）とのマージを行って、さらに分かりやすい全体像を提示することも可能かもしれません。

いかがでしたでしょうか。ちなみにここに列挙したツールは、Linkuriousを除き、私が可視化のサンプルを作ったCytoscapeもNeo4jも含めて全て無料で利用できます。グラフというデータ構造はこの世界のあらゆるところに現れますので、それを機械で読める形にして格納すれば、このように様々な場面で使えるとわかっていただければ幸いです。

驚くべきことに、今回の作業は全てジャーナリストの団体が行っています。彼らは内部にデータ解析班を持ち、その人々はデータの前処理のためのパイプライン作成から、商用クラウドサービスを利用した自前で計算機を持たない形でのデータ処理（おそらく多くはAWS上でのスポットインスタンス利用によるバッチ処理)、分散作業のためのシステム構築、データベースの構築、UIの選択など、ソフトウェア系の企業で行うようなことを自前でやっています。世界の調査報道の先端はここまで来ているのかと感心しました。同時に、ソフトウェアエンジニアのキャリアパスとしてこういうものも面白いのではないかとも感じました。

ビッグデータだの何だの雲をつかむようなキーワードが飛び交う昨今ですが、ここはひとつじっくりとJupyter Notebookに貴方のお気に入りのツールを組み合わせるデータ解析パイプラインを書き下し、何か社会にインパクトを与える解析・可視化作業でもしてみませんか？今は技術と知識を身につければ昔では考えられなかったレベルの作業が、オープンソースソフトウェアやクラウドサービスを利用して、個人や小さな団体でも行える時代です。これをテクノロジーの民主化と呼ぶ人もいます。

最後にNeo4j社のCEOの言葉を引用しておきます。

The democratization of technologies to make sense of data at scale is an important part of a free and open society, and I’m proud of the role we play in that evolving landscape — not only in the case of Swiss Leaks and the Panama Papers, but in solving future problems we can’t even yet imagine.

大規模データを理解するためのテクノロジーの民主化は、自由で開かれた社会の重要な一部分である。そして私はその発展を続ける情景の中で我々が担えた役割を誇りに思っている。パナマ文書やスイス・リークスに限らず、我々がまだ想像すらできない未来の問題解決のために。

Emil Eifrem, CEO, Neo Technology