Skip to content

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

Latest commit

 

History

11 Commits

Folders and files

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