GithubHelp home page GithubHelp logo

jexp / fincen Goto Github PK

View Code? Open in Web Editor NEW
32.0 10.0 10.0 6.32 MB

ICIJ #Fincen Files in Neo4j

Home Page: https://www.icij.org/investigations/fincen-files/

Jupyter Notebook 100.00%
icij investigative-journalism fincen fincenfiles panama-papers neo4j graph-database visualization database data-journalism

fincen's Introduction

ICIJ FinCen Dataset in Neo4j

ICIJ Investigation

FinCEN Files ICIJ 1920px

Finally, ICIJ used graph databases (Neo4J and Linkurious) to visualize and explore the FinCEN Files’ 400 spreadsheets containing data on 100,000 transactions. These were among the many tools to help piece together a nuanced picture of a broken system.

— ICIJ again used Neo4j for their investigation

Data

The download contains two CSV files with the same data as our JSON so I’ll adjust the instructions below.

The JSON files used here were scraped from their site (Explore The FinCen Data Files)

Feedback and Contributions

All data is from the ICIJ Web-Visualization (JS files) or download section.

If you have fixes, or new ideas for queries, please send a pull request.

If something doesn’t work, please create an issue.

Pre-Populated Demo Databases

Demo Server with Neo4j Browser

Sandbox

Dump File

  • fincen.dump

  • To import into Neo4j Aura, use the "Upload Data" feature and drop the dump file

  • For Neo4j Desktop, add the file to your project and use the "Imort Dump" from the 3-dots menu to import

  • For manual import use neo4j-admin load --from fincen.dump in a stopped dmbs

  • For a running 4.x Enterprise dbms, you need to add --database fincen and then use :use system and create database fincen to activate it.

Import into Neo4j

Neo4j Sandbox (3 days)

  1. Start Blank Neo4j sandbox https://sandbox.neo4j.com/?usecase=blank-sandbox

  2. Open Neo4j Browser with the button

  3. Copy or drag&drop fincen_csv.cypher into the editor window on top and run with the triangular run button

  4. Explore with the sidebar, e.g. clicking on Filing

  5. To explore interactively and visually, use the blue "Open with Bloom" button and use "neo4j" as a username, and the password (under the key icon) as password to log in

Neo4j Desktop (local installation)

  1. Download Neo4j Desktop https://neo4j.com/download

  2. Install locally

  3. Create a new project and a new database, call it eg. FinCen, set a password and remember it

  4. Click on the three dots and then "Manage", click on "Plugins" and Install "APOC"

  5. Start the database with the Start Button (Triangle)

  6. Open Neo4j Browser (e.g. with the blue "Open" button) or by pressing cmd+k or ctrl+k and entering "Browser"

  7. Copy or drag&drop fincen_csv.cypher into the editor window on top and run with the triangular run button

  8. Explore with the sidebar, e.g. clicking on Filing

  9. To explore interactively and visually, select "Open with Bloom" from the blue "Open" button drop-down

Neo4j Aura Cloud Database

  1. Log into https://neo4j.com/cloud/aura (or directly https://console.neo4j.io)

  2. Put in your credit card information

  3. Create a new 1GB database

  4. Save the password

  5. Open Neo4j Browser with the button

  6. Copy or drag&drop fincen_csv.cypher into the editor window on top and run with the triangular run button

  7. Explore with the sidebar, e.g. clicking on Filing

  8. To explore interactively and visually, select "Open with Bloom" from the blue "Open" button drop-down

Exploration

Neo4j Bloom

bloom fincen

In Neo4j Bloom, you can e.g. search for Filing Entity in the search bar.

You can configure the sidebar with icons for Countries, Entities and filings

You can set a rule based styling e.g. for Filings, I did a size based on amount with the min 100000 to 0.5x and the max 100000000 to 2x

bloom sidebar

To not have to do that manually, you can also import the bloom perspective file in this repository.

Example Queries

To run in Neo4j Browser just copy them into the editor on top and run with the triangular run button.

Biggest Filings
MATCH (f:Filing)
RETURN f ORDER BY f.amount DESC LIMIT 10;
Biggest Filing with participants
MATCH (f:Filing)
WITH f ORDER BY f.amount DESC LIMIT 10
MATCH (f)--(e:Entity)
RETURN *
fincen browser
Entities with highest transaction volume
MATCH (e:Entity)--(f:Filing)
WITH e, round(sum(f.amount)) as total
WITH e, total ORDER BY total DESC LIMIT 10
OPTIONAL MATCH (e)-[:COUNTRY]-(c:Country)
RETURN e.name, c.name, total
Money flows between banks
MATCH (source:Entity)<-[:ORIGINATOR]-(f:Filing)-[:BENEFITS]->(target:Entity)
WITH source, target, round(sum(f.amount)) as total ORDER BY total DESC LIMIT 10
RETURN source.name, target.name, total

fincen's People

Contributors

jexp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fincen's Issues

Missing fields latitude and longitude in CSV input files

load csv with headers from "https://raw.githubusercontent.com/jexp/fincen/main/download_bank_connections.csv" as value
WITH value WHERE value.filer_org_lng is not null 
RETURN value LIMIT 10

returns nothing.
Same for filer_org_lat, entity_b_lng, entity_b_lat

Consequence is we don't have latitude and longitude on Entity nodes, which makes it difficult to show them on a map.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.