Skip to content

Commit

Permalink
Merge pull request #1979 from moj-analytical-services/graph_definition
Browse files Browse the repository at this point in the history
Add graph definition to docs
  • Loading branch information
zslade authored Mar 28, 2024
2 parents d1acc1d + 7347fe6 commit ae85c13
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 0 deletions.
Binary file added docs/img/clusters/basic_graph.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/clusters/basic_graph_cluster.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/clusters/basic_graph_records.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/clusters/graph.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions docs/topic_guides/theory/linked_data_as_graphs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Linked data as graphs

A graph is a collection of points (often referred to as nodes or vertices) connected by lines (often referred to as edges).

![Basic Graph](../../img/clusters/basic_graph.drawio.png){:width="80%"}

Then a group of interconnected nodes is referred to as a **cluster**.

![Basic Cluster](../../img/clusters/basic_graph_cluster.drawio.png){:width="80%"}

Graphs provide a natural way to represent linked data, where the nodes of a graph represent records being linked and the edges represent the links between them. So, if we have 5 records (A-E) in our dataset(s), with links between them, this can be represented as a graph like so:

![Basic Graph - Records](../../img/clusters/basic_graph_records.drawio.png){:width="80%"}

When linking people together, a cluster represents the all of the records in our dataset(s) that refer to the same person. We can give this cluster a new identifier (F) as a way of referring to this single person.

![Basic Person Cluster](../../img/clusters/basic_graph_cluster_person.drawio.png){:width="80%"}

!!! note

For clusters produced with Splink, every edge comes with an associated Splink score (the probability of two records being a match). The clustering threshold (`match_probability_threshold`) supplied by the user determines which records are included in a cluster, as any links (edges) between records with a match probability below this threshold are excluded.

Clusters, specifically cluster IDs, are the ultimate output of a Splink pipeline.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ nav:
- Why do we need record linkage?: "topic_guides/theory/record_linkage.md"
- Probabilistic vs Deterministic linkage: "topic_guides/theory/probabilistic_vs_deterministic.md"
- The Fellegi-Sunter Model: "topic_guides/theory/fellegi_sunter.md"
- Linked data as graphs: "topic_guides/theory/linked_data_as_graphs.md"
- Linkage Models in Splink:
- Splink's SQL backends - Spark, DuckDB etc:
- Backends overview: "topic_guides/splink_fundamentals/backends/backends.md"
Expand Down

0 comments on commit ae85c13

Please sign in to comment.