Visualizing the network of Donald Trump

On January 15, BuzzFeed released a large dataset of Donald Trump’s connections, including people, organizations and the nature of their relationships.

In their article “Help Us Map TrumpWorld”, the four authors of the investigation, John Templon, Anthony Cormier, Alex Campbell and Jeremy Singer-Vine, asked the public to help them understand and analyse the data.

Now we are asking the public to use our data to find connections we may have missed, and to give us context we don’t currently understand. We hope you will help us — and the public — learn more about TrumpWorld and how this unprecedented array of businesses might affect public policy.

So we decided to see what it would looks like in Linkurious, our graph analysis and visualization tool.

The dataset is publicly available in a Google spreadsheet. We imported it in a Neo4j graph database using the following script inspired by Michael Hunger’s work:

The result is a graph of 770 nodes and 611 edges. We then connected Linkurious to this dataset to start exploring it. Following, are some visual representations of the TrumpWorld dataset in Linkurious:

An overview of the organizations connected to Trump and their ties.

An overview of the organizations connected to Trump and their ties.

To clarify the visualization, we added some custom labels. All nodes are organizations. The ones whose name contains the word “bank” are half orange. The ones whose name contains the word “hotel” are half-blue. And the ones whose name contains “Trump” or “DT” are half pink. The other ones are entirely green.

As reported by Forbes in May 2016, Trump’s Personal Financial Disclosure (PFD) listed the future President as being associated with 515 different organizations. Among his most valuable assets were the Trump Tower Commercial LLC and the 40 Wall Street LLC. Let’s look up the connections between those two entities.

Graph visualization of the connections between Trump Tower Commercial LLC and 40 Wall Street Commercial LLC.

Graph visualization of the connections between Trump Tower Commercial LLC and 40 Wall Street Commercial LLC.

The Trump Tower Commercial LLc and 40 Wall Street Commercial LLC have seven connections in common. Both companies share a “owns collateralized debt” with investment funds and assess management companies such as The Vanguard Group or Russell Investments.

We can also look into details in DJT Holdings LLC, one of Donald Trump’s most important asset:

Graph visualization of the entities connected to DJT Holdings LLC.

Graph visualization of the entities connected to DJT Holdings LLC.

The visualization shows that DJT Holding LLC is connected to a lot of others companies via a “ownership” relationship. The companies owns more than 30 other organizations, working as a corporate umbrella for the Trump Empire. DJT Holdings is itself owned by the Donald J. Trump Revocable Trust.

Finally if you look into the famous Trump Hotel & Casino Resorts incorporation, we get the following result:

Visualization of the network around Trump Hotel & Casino Resorts, Inc.

Visualization of the network around Trump Hotel & Casino Resorts, Inc.

Around thirty organisation gravitate around the Trump Hotel & Casino Resorts Incorporation as “Subsidiaries”. Once again it confirms the taste of Donald Trump for complicated corporate structures.

Graph visualization tools help understand complex connections within large datasets. TrumpWorld dataset was turned into a clear view of the network of organisations around Donald Trump. We can identify key organizations and scheme quickly.
We will soon update this case with more data, notably the network and connections of people.

If you want to visualize and investigate the TrumpWorld data in Linkurious, simply download the database here, connect it to Neo4j and use Linkurious to visualize it.

Linkurious at Graphorum & BIWA Summit

We are happy to announce that our team will be attending two important events this month: Graphorum Conference as sponsors & BIWA Summit 2017 as speakers!

Graphorum 2017

Graphorum Conference 2017 - © DATAVERSITY Education, LLC.

Graphorum Conference 2017 – © DATAVERSITY Education, LLC.

Graphorum is a new conference dedicated to graph databases and technologies. It will take place from January 31th to February 1st in San Francisco. The forum is organized by the online trade journal Dataversity. It will be held in conjunction with Smart Data Week.

For this first year, Linkurious is proud to be one of the sponsors of the event. You will find us in the exhibition hall during the three days. Don’t hesitate to stop by to discover our solutions or simply say hello!

About forty speakers will be be sharing their insights on graph analytics, data modeling, graph APIs and integration, visualizations, linked data and much more. You can view the complete agenda on the conference website.

If you haven’t booked your ticket, there is still time! See the option and register online.

BIWA Summit 2017

BIWA Summit 2017 - © BIWA SIG 2016

BIWA Summit 2017 – © BIWA SIG 2016

You will also find us at Oracle HQ Conference Center for the BIWA Summit 2017. On February 1st we will hold a session about using Linkurious to fight financial crimes.

Discover how to use graph analysis to identify suspicious connections and unmask criminals. In this session, Jean will share his experience working on the Panama Papers or with banks and insurance companies (first-party fraud, anti-money laundering, insurance fraud). He will explain how to combine the kind of graph analytics enabled by Oracle Spatial and Graph with powerful graph visualization to help analysts detect, investigate and stop financial crime.”  You can find more details of our talk on the BIWA Summit website.

The Linkurious team will also demonstrate how to use the recently released Ogma graph visualization library to visualize data from Oracle Big Data Spatial and Graph. Stay tuned!

BIWA summits are organized and managed by Oracle BI, DW and Analytics user community. This year, BIWA Summit includes the 11th annual Oracle Spatial Summit. Register today to attend the event & stay tuned for more information about this topic!

If you would like to get in touch to schedule a demo, send us an email.

Linkurious v1.5: default captions, Neo4j 3.1 support, AllegroGraph and DataStax built-in search, SSO plugins

The new major release of our graph visualization software Linkurious is now available! This release is called Xenodochial Xenoposeidon. It supports Neo4j 3.1 and provides Neo4j -> Elasticsearch continuous indexing for all versions of Neo4j 3. It integrates AllegroGraph and DataStax Enterprise Graph built-in search engines. More Single Sign-On strategies are now available to authenticate users and the SSO system can be extended by plugins. Linkurious v1.5 is available in two flavors: Starter and Enterprise. Releases always apply to both variants.

New features

Default configuration of the captions of nodes and edges

Administrators can configure the default properties displayed as text of nodes and edges from the server-side configuration. To apply these default settings to newly created visualizations of existing users, administrators should reset the captions preferences of all users from the Data administration panel.

AllegroGraph and DataStax Enterprise built-in search engines

Linkurious can use the built-in full-text search engines of AllegroGraph and DataStax Enterprise Graph. Admins must set “allegroGraphSearch” or “dseSearch” in the “index” vendor configuration of Linkurious. No indexation phase should be done by Linkurious as these systems keep the database and search index synchronized. Notice that the features and quality of search results varies among vendors, e.g. AllegroGraph supports fuzzy matching.

SSO plugins

More single-sign on (SSO) strategies are now available for a seamless integration experience. With OAuth2 available, you can enable users to log in for instance with their Google or Github account, or to any platform that implements OAuth2. The support of OpenID Connect even allows you to connect with Google Apps and Facebook.

Integrators can create their own connectors to authentication servers. Write less than 50 lines of Javascript in a separate file, add it to the server file structure, test it, and move it to production!

See the API documentation for details.

Noteworthy improvements

Continuous indexing on all versions of Neo4j 3

We have collaborated with GraphAware to update the continuous indexing plugin of Neo4j to support all versions of 3.0 and 3.1. Indexing is incremental as changes within the graph database are indexed on the fly. It is the ideal solution for databases updated directly, i.e. without calling the Linkurious graph API.

Enterprise-only improvements

  • Users can protect published widgets with a password.
  • You can apply a force-directed layout computed on the server on existing visualizations.
  • Add an option to embed the web analytics tracker to widgets.
  • Administrators can configure the maximum number of concurrent users to enforce licensing terms.
  • Use OAuth2 for Azure Active Directory.

Bug fixes

  • Graph layout don’t run when adding nodes in specific cases.
  • Incomplete list of captions on AllegroGraph.
  • Force icon reload in widgets.
  • Missing node properties in Design panel.
  • Apply tooltips settings in widgets. (Enterprise only)
  • Gremlin Websocket closed error.
  • AllegroGraph storeId not dependent on repository.
  • Disable longStackTraces in production because of a memory leak.
  • Text properties with a content longer than 64kB was crashing Linkurious at indexation. Limit increased to 1MB.
  • Prevent visualization folders from being moved into their subtree.

What’s next?

The next release will focus on performance improvement on database operations. We will also provide a new user and admin documentation to help work faster with Linkurious.

Try now

Try this new release on our online demo. We have just updated it! Contact us for any question, or send an email to support@linkurio.us for help.

Existing customers can download the new release from their account now.

Reinforcing AML systems with graph technologies

Fighting financial crimes is a daily battle worldwide. Organizations have to deploy intelligent systems to prevent and detect wrongdoings, such as anti-money laundering (AML) control frameworks. We’ll see in this blog post how graph technologies can reinforce those systems.

Using graph technologies to fight financial crimes

In today’s complex economy, law enforcement and financial organizations fight against a wide range of financial crimes: embezzlement, tax evasion, extortion, corruption, terrorism funding or money laundering, to name a few. While tracking down those activities, governments and financial institutions have to deal with a fast moving financial crime landscape and a growing volume of information of various formats.

Graph technologies like Linkurious can be powerful assets to help fight financial crimes. They provide exhaustive overviews of the different entities and their connections. And they support complex data queries on large data-sets in a near-real time environment.

In this article, we’ll focus on anti-money laundering procedures and explore a specific case with a graph approach.

Strengthening AML controls with network analysis

Money laundering is the act of converting proceeds from criminal activities into legal assets, concealing their true origins. Governments have been steadily strengthening AML rules to prevent those activities. Banking institutions are now required to follow strict AML policies and to report money laundering activity suspicions. Ineffective regulation compliance might be penalized with important financial penalties.

Organizations began to develop risk-based AML frameworks to monitor their customers and financial transactions. But criminals deploy sophisticated tactics to hide their wrongdoings. Shell corporations, tax havens or complex financial schemes are used to prevent identification or tracking of money flows. To thwart such criminal strategies, finding information about a specific suspicious entity is not enough. Financial crime units have to investigate the connections between individuals, accounts, companies, locations, to trace complex transactions. This is why network analysis and visualization technologies turned out to be efficient tools to support AML processes.

We will see below how graph technologies like Linkurious can be an additional asset when it comes to monitoring high risk customers for example.

Financial activities visualized as networks

Banking institutions keep track of numerous information sources about their customers (individuals or companies) and their financial activities. Graph database (GDB) technologies like Neo4j, Titan, AllegroGraph or DataStax Enterprise Graph allow to index complex connected data and easily query them to find patterns. With such systems, organizations can compile various information into a single data model.

A possible graph model of financial informations

A possible graph model of financial information

Linkurious provides an advanced graph interface compatible with numerous graph databases to easily explore and monitor the data.

Identifying money laundering patterns with Linkurious

AML regulations require banks to monitor their high risk customers. Listed on special watchlists, those individuals can be identified either by authorities (e.g Politically Exposed Person, Specially Designated National Lists) or by the institution itself (e.g customers with repeated suspicious transactions). “Are my customers currently involved in activities with flagged individuals?” “If yes, are these activities suspicious?”. Organizations need to be able to answer those questions.

Linkurious offers an interface to monitor graph data in real-time. In addition, analysts can set up alerts for specific patterns with Cypher queries. For instance as an AML analyst, I want to be warned each time there is any type of connection between my customer’s financial activities and my watch-list. I can use the following query to create my alert in the system:

Creation of an alert query

If new data are collected, such as transactions, persons, companies or relationships, Linkurious will automatically update and look for suspicious connections. With the advanced graph visualization interface, it’s then easy to investigate and assess the different cases.

Visual investigation of financial activities

The alert system reported several matches to our query. To evaluate the risk-level of the cases, analysts can use the interface to quickly visualize and investigate. Let’s check one of them:

Visualization of one of the matches signaled by the alert query

Visualization of one of the matches signaled by the alert query

In a glimpse, I see that Angela Marshall (a fictitious individual who figures on my watch-list) is indirectly connected to a transaction on a customer’s bank account. She appears to share the same address as my customer, the company Miboo.

This pattern is relatively suspicious. I might want to explore beyond this single connection and see which other entities are linked to this address.

Investigating the entities linked to the address

Investigating the entities linked to the address

In addition to sharing an address with an individual on a watch-list, our suspicious customer also share his address with three other companies and two of our internal employees. They are all living in the city of Hongqiao, China on 3557 Straubel Circle.

The address, 3557 Straubel Circle is located in Hongqiao, in China

The address, 3557 Straubel Circle is located in Hongqiao, in China

As an analyst, I might recognize a known pattern of money laundering: different companies registered with a unique address. Also, some employees are connected to a known high-risk customer. Those information can be reported to higher authorities to further investigation on the field.

Graph analysis focuses on relationships, therefore helps to discover hidden connections between different entities. Linkurious also operates an alert system in a near-real time environment. That way, financial crime units can identify suspicious activity schemes instantly and reinforce their AML regulation system.

Leverage today the power of graph analysis and visualization to fight financial crimes. Try Linkurious demo or contact us to discuss your project.

Using graphs for intelligence analysis

The identification and monitoring of terrorist or criminal networks are imperatives to detect threats and defeat attacks. Let’s see how Linkurious and graph visualizations can help identify and track potential dangerous individuals and networks.

Challenges for intelligence analysis

Criminal or terrorist activities are rarely the acts of isolated individuals. Behind these activities we find more or less centralized organizations or networks. Intelligence experts are in charge of identifying every actors of such groups, despite their strategies to hide their connections to the networks (encrypted communication services, numerous middlemen, fake identities, etc). Getting the whole picture of the network is essential to monitor suspect activities, prevent attacks or detected potential threats.

Countering such activities is also about gathering as much information as possible, from any possible sources. The more data intelligence and security organisms are able to obtain, the easier it is to track and anticipate criminal or terrorist activities. This means that analysts and investigators have to handle large sets of heterogeneous data.

Graph analysis is particularly suited to this sort of challenge. Graph databases allow organizations to store and query in near real-time the relationships between billions of entities. Let’s see how these systems, combined to tools like Linkurious, can help intelligence analysts identify and investigate threats.

Applying a graph approach to intelligence analysis

We will dive into the investigation of a potential terrorism threat and explore how Linkurious can help identify and investigate suspicious networks.

For this purpose, we have created a dataset with fictitious data about people, including addresses, phone numbers and travel information. This data can easily be modeled as a graph:

Graph data model of our investigation data

Graph data model of our investigation data.

To keep our analysis understandable we chose a very simple model with only a limited volume of data. An authentic situation will definitely involve larger volumes and a wider range of data types.

Data entities, such as individual, email, phone, are modeled as nodes. Relationships between entities are symbolized with edges, labeled with the nature of the connection. The data then forms a network.

In our graph model we have five types of nodes: people, countries, addresses and phone numbers, and as many types of edges, or relationships.
Let’s start our investigation by trying to detect suspicious patterns in our data.

How to use graph patterns to detect potential threats

When dealing with large datasets, we need to find ways to focus the analysts’ attention on relevant information. Here, we want to detect potential terrorist cells. We are going to try to detect groups of at least three people who 1) visited an at-risk country (in our case Syria) and 2) are indirectly in contact (via their addresses or phone communications).

With a simple Cypher script query, Linkurious users can set up a monitoring activity for chosen patterns. Below is the script we will use to identify our pattern:

// Detecting threats:
MATCH (a:Person)-[s:HAS_CONTACTED|HAS_PHONE|HAS_ADDRESS*..10]-(b:Person)-[:HAS_BEEN_TO]->(d:Country {name:’Syria’})
WITH a, collect(s) as rels,collect(distinct b) as suspects,d,count(distinct b) as score
WHERE score > 2
RETURN a,suspects
ORDER BY score DESC

Linkurious reported three individuals: Jessica Wells, Bobby Murphy and Ruth Warren (on the left of the graph). As an analyst, I can visualize them and how they are interconnected. Jessica, Bobby and Ruth display a “has been to” relationship with Syria and appeared to be all connected to a unique phone number: Judy Lewis’ (on the right of the graph).

Visualization of a suspicious network around Jessica, Bobby & Ruth

Visualization of a suspicious network around Jessica, Bobby & Ruth.

Several nodes intermediate between our three people and Judy’s phone number. Phone calls and address are the bridges enabling the connection between our individuals. For analysts, this particular pattern could be pointing toward a recruiting network, with numerous middlemen to avoid detection. Those results could lead to specific recommendations and further investigations.

A graph approach provides the opportunity to detect specific cross-data patterns. With Linkurious, it is easy to visualize and understand both the network and the relationship between its members. Node-edges graph visualizations combine all the available information in a single representation.
Some of the nodes here seem to be connected to other entities. Linkurious allows analysts to interactively explore the data and uncover new information.

Investigate complex network with graph visualization

We identified a potential network with several people. Perhaps they have accomplices? We can try to investigate further, starting from one node of the network. Let’s pick Judy’s phone number for instance and extend the nodes around it.

Investigating Judy’s closest connections via her phone number

Investigating Judy’s closest connections via her phone number.

Judy is connected to a certain Robert Wells, via phone communications, and Robert is himself connected to Theresa Mills’ phone number. If we expand the nodes linked to Theresa’s phone, we get the following visualization.

Visualization of a sub-network around Theresa’s phone number

Visualization of a sub-network around Theresa’s phone number.

The sub-network around Theresa Mills is very specific. The nodes, all linked together, are phone numbers associated to seven individuals. Such pattern -a  small highly connected group with a unique bridge to other potential suspects – represents a sub-network within the larger network we are investigating.

From a single node, we went up to another group, gathering new information about the network. Interactive and scalable tools like Linkurious ease the exploration and analysis for experts.

Visualize and analyse intelligence and security data with Linkurious

Graph approaches are well suited for the investigation of criminal network and terrorist groups. Linkurious offers to intelligence agents a unique entry point to identify hidden insights in complex connected data. Analysts can determine specific pattern to monitor suspicious activities. The visualization interface allows them to navigate between the nodes to identify new key actors through hidden connections.

Discover how you can identify hidden insights in your graph data and try the demo of Linkurious.

Introducing Ogma, the Javascript library for large-scale graph visualization and interaction

Linkurious announces the release of Ogma, the Javascript library for large-scale graph visualization and interaction.

State of the art visualization libraries for the Web are unable to display graphs with more than 10 000 nodes and edges. With Ogma is it now possible to display more than 100 000 nodes and 100 000 edges. Ogma is compatible with more than 80 browsers and any devices. Companies can now start integrating a reliable and scalable graph visualization component into their applications.

Ogma performance - large-scale graph visualization

Technology

Modular architecture

Ogma makes visualization of large graphs possible by leveraging the full performances of WebGL combined with a modular architecture. The visualization engine is built for WebGL first ; it supports HTML5 Canvas and SVG with the same level of details, though performance are dramatically limited by these rendering technologies.

Dynamic graphs

The library is designed for graphs with living data where nodes, edges, and their properties can change in real time due to user interactions or updates from data sources.

Level-of-details

A key challenge in visualizing large dynamic graphs is to display as little information possible on screen to avoid getting overwhelmed by the amount of data.
The graphics engine of Ogma provides the ability to define visibility thresholds for various visual components. For example, node texts can be displayed if the node is big enough on screen.

Ready to code with

Developers can get started easily using a unified API and an event model carefully designed. They get access to an extensive documentation website that contains the documentation reference of the API, more than a hundred examples, and advanced demos. They usually get answers in less than a single business day through the support channel.

Ogma API documentation

Ogma API documentation

Developers get access to the Ogma Showcase. It is a complete application written in Angular 2 to demonstrate the main features of Ogma. They can load sample graphs into the Ogma Showcase, play with layouts, filters, and styles, and export Javascript code snippets to quickly get results.

Ogma Showcase screenshot

Ogma Showcase screenshot

Integration

Ogma can be integrated into any modern Web-based application. It supports module bundlers such as WebPack, it can be used with React, and provides Typescript definitions for fast integration with Angular 2.

Ogma and its layout algorithms can be run on a server within a Node.js application. It provides a solution for clients running on slow machines so they can delegate computationnally expensive operations to the server.

Features

Ogma comes with a complete set of features, including:

Load your data

  • Call the graph API to add nodes and edges to the visualization.
  • Import data from multiple file formats.
  • Connect to a Neo4j server using the Bolt protocol.
  • Or generate synthetic graphs using Wattz-Strogatz or Barabasi-Albert models.

Customize visual results

  • Apply graph layouts (force-directed, hierarchical, concentric, geospatial).
  • Provide built-in user interactions with the mouse, trackpad, or through the API to hover, to select, to drag, or to group nodes and edges.
  • Customize style of nodes and edges with both basic visual variables (color, size, shape, icon, image) and advanced visual components (badges, stroke, outline, halo, and pulse effects).
  • Customize style of texts of nodes and edges (font, color, position, style, size, background) with support for line wrapping and line breaks.

ogma-example-customization

Help users analyze graph data

  • Create data-driven styles: map properties of nodes and edges to visual variables such as colors, sizes, and icons for easy and always up-to-date customization.
  • Filter nodes and edges, with the ability to create compound filters with AND/OR operators.
  • Group nodes and edges manually or with specific rules.
  • Find shortest paths.
  • Display a legend to communicate easily the meaning of the visual variables.
  • Display tooltips on user interaction to provide contextual information on nodes and edges, or to implement a context menu.

Export your results

  • Export customizable image files to SVG, PNG, JPG, TIFF which can integrate a custom watermark.
  • Export data in multiple file formats.

Roadmap

We have focused our efforts on building the next generation of interactive graph visualization engine for Web-based applications. We are now improving the scalability and quality of existing layouts. We will provide you more information during the coming months.

Deprecation of linkurious.js

Ogma comes with all the features of linkurious.js, which becomes deprecated. We will continue to support existing customers of linkurious.js until they migrate to Ogma.

How to get it

Ogma is available in a proprietary license only. Contact us to evaluate it!