Thinking in Graphs

A Tech Talk, 3/3/23

©2021 Copyright - Confidential and Proprietary

©2021 Copyright - Confidential and Proprietary

What We'll Cover

  • What data graphs are / can be
  • How to think about your data in a graph
  • How data graphs differ from other data modeling approaches
  • The value of data graphs
  • When to use a data graph

©2021 Copyright - Confidential and Proprietary

What is a data graph?

What is a data graph?

  • A data graph is an approach to structuring data that is focused on relationships between entities.
  • It's non-linear architecture allows for more flexibility and enables you to create connections between disparate pieces of data to provide new and powerful insights.
  • When we talk about data within a data graph we generally refer to entities as "nodes", and connections between entities as "edges".

How do they work?

  • Based on graph theory, a mathematical approach to model pairwise relations between objects.
  • It connects vertices in a network through edges.

©2021 Copyright - Confidential and Proprietary

How we got here

©2021 Copyright - Confidential and Proprietary

How we got here

  • Driven by a more recent change in how we think about data, which impacted how we structure it.
  • Thinking shifted from how to most efficiently store data to how to get the most value out of it.
  • Realization that data is inherently more valuable when it is connected.

©2021 Copyright - Confidential and Proprietary

The gold rush

GraphQL

Stardog

DGraph

Notable implementations

©2021 Copyright - Confidential and Proprietary

A shift in mindset needs to occur in order to see the value [in data graphs]. This mindset is a shift from thinking about your data in a table to prioritizing the relationships across it.

- Matthias Broecheler

©2021 Copyright - Confidential and Proprietary

Shifting our mindset

Trees vs. Graphs

  • All trees are Graphs, but not all graphs are trees...
  • Trees are linear, they have a single root node and flow in a single direction.
  • Can connect to other leaf nodes or more subtrees, but connections happen in a specific order.

Trees vs. Graphs

  • Graphs are omnidirectional
  • They have no defined end or beginning, they have multiple "entrypoints"
  • Connections to nodes within a graph can be 

Multiple Entrypoints

Relational vs. Graph

  • Relational model uses foreign keys to relate data together.
  • Relational focuses on storing tabular data for people, places, and things.
  • Graphs make it easier to create richer data connections with edges.

What does a healthy data graph look like?

  • Many connections on each node, and many paths to each node through various entrypoints.
  • Common entities referenced throughout the graph, enriched with relationship-specific data via edges.
  • Few if-any "dead ends" within the graph where nodes are only accessible via a single entrypoint.

©2021 Copyright - Confidential and Proprietary

Edges

©2021 Copyright - Confidential and Proprietary

Edges

  • Edges are the connections between nodes within a graph
  • They often contain data that can be attributed to the relationship of the nodes
  • You can have directed or bidirectional edges within a graph

©2021 Copyright - Confidential and Proprietary

Bidirectional Edges

  • Bidirectional edges represent connections to nodes within a graph regardless of direction.
  • In this example, the relationship between me and my dad can always be considered "family".

©2021 Copyright - Confidential and Proprietary

Directional Edges

  • Directional edges represent connections to nodes where directionality does matter.
  • In this example we are looking at a graph of twitter followers. Me and Elon Musk are followed by Russian bots, and I follow Elon musk, but Elon doesn't follow me and neither of us follow the Russian bots.

©2021 Copyright - Confidential and Proprietary

The value of a data graph

  • Allows us to enrich connections from disparate data sources with highly valuable information.
  • We can use edge data to personalize experiences for the user.
  • Personalized experiences can lead to better customer engagement & ultimately revenue.

©2021 Copyright - Confidential and Proprietary

How we leverage data graphs at NerdWallet

{
  review {
    title
    authors {
      name
    }
    categories {
      id
      articles {
        title
        authors {
          name
        }
      }
    }
    marketplaceEntity {
      id
      name
      review {
        id
        title
      }
    }
  }
}

©2021 Copyright - Confidential and Proprietary

When to leverage a data graph

  • Relationships within your data help you understand your problem better.
  • A lot of the data you need is derived from the relationship between entities.
  • Most of the complexity within your implementation will be around creating relationships between entities.
  • Your entity models change often, and are highly connected to other models.

©2021 Copyright - Confidential and Proprietary

Takeaways

  • Data graphs can be an effective tool for extracting more value from your data.
  • Data graphs can help create more meaningful connections by enriching them with edge data.
  • When working with data graphs we need to stop thinking about data linearly, and embrace graph thinking when modeling nodes and edges for a data graph.

©2021 Copyright - Confidential and Proprietary

Thanks for coming! Questions?

Thinking in Graphs

By Ryan Kanner

Thinking in Graphs

  • 305