Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Operationalising Entity Resolved Graphs

Workshop material for the GraphAware Bridge Meetup, Prague — June 4th, 2026.

Presenters


What this workshop covers

A hands-on walkthrough of how to build, operate, and consume an entity-resolved graph in production — combining Senzing's entity resolution engine with Neo4j and GraphAware Hume. We cover the full operational arc: ingesting raw records, understanding how Senzing resolves (and separates) entities, keeping the graph live as records update, and surfacing explainability to end users through Hume.

The dataset used throughout is a subset of the min_aml corpus: UK beneficial-ownership records (Open Ownership) cross-referenced with sanctioned entities (OpenSanctions).


Repository structure

notes/            Speaker notes and section prose (primary content workspace)
  sections/       13 section .md files, one per workshop phase
  assets/         Data files, Mermaid diagrams, Senzing JSON snippets
  TODOS.md        Open questions and missing assets, owner-tagged

how/              Senzing WHY / HOW API examples
  explain_how.py  Convert a HOW response JSON → HTML report
  explain_why.py  Convert a WHY response JSON → HTML report

mappings/         Python mapping code: raw graph records → Senzing JSON
slides/           Marp slide deck — see slides/README.md for build instructions
references/       Data references and prior talks
screenshots/      Screenshots used in this README and slides

Getting started

Prerequisites

  • Python 3.9+ (for how/ and mappings/ scripts)
  • Node.js 18+ and npm (for slides/)
  • A Senzing installation if you want to run the ER pipeline live

Content (notes)

The notes/sections/ directory is the primary workspace. Each file maps to one workshop phase. Start with notes/sections/00-running-order.md for the full agenda and per-section time budget.

Open questions and pending decisions are tracked in notes/TODOS.md, grouped by section and tagged by owner (Paco / Christophe / Joint).

Senzing WHY / HOW reports

These scripts render Senzing API responses to self-contained HTML pages — useful for demos and slide prep.

# WHY report: why are these records in the same entity?
cd how
python explain_why.py senzing-why-response.json why-report.html

# HOW report: step-by-step resolution trace
python explain_how.py senzing-how-response.json how-report.html

Record mappings

The mappings/ scripts show how raw person and organisation records from a Hume graph are translated into Senzing's JSON input format.

# Inspect the base mapping template
cat mappings/mapping.py

Slides

cd slides
npm install
make dev      # live preview at http://localhost:8080
make build    # export to slides/dist/

See slides/README.md for full instructions.


Screenshots

Graph before entity resolution — disconnected records

min_aml before resolution

After resolution — entities merged

min_aml resolved, view 1

min_aml resolved, view 2

Senzing WHY explanation in Hume

Senzing WHY panel in Hume

Senzing Pipeline

Hume Orchestra Senzing Pipeline

About

A workshop by Paco Nathan and Christophe Willemsen at the GraphAware's Bridge Meetup Prague 2026

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages