goldenmatch-kg
Drop-in goldenmatch entity resolution for knowledge-graph frameworks.
What this is: goldenmatch is an entity-resolution engine, not a KG builder. KG pipelines (neo4j-graphrag, LlamaIndex, Graphiti, ...) ingest text, extract entities and relationships, resolve/dedupe the entities, and write a graph. This package drops goldenmatch in as that resolve stage, where each framework exposes a seam:
- neo4j-graphrag -- a real
GoldenMatchResolveryou pass into the pipeline (true in-pipeline plugin; replaces the built-inFuzzyMatchResolver). - LlamaIndex PropertyGraphIndex -- a
GoldenMatchEntityResolvertransform that canonicalizes entity names before upsert. LlamaIndex ships no fuzzy resolver of its own (its default is exact name+label upsert), so this is additive: exact-only to real ER. - Graphiti -- a post-ingestion
propose_entity_mergespass over the graph's existing entity nodes (Graphiti exposes no public resolver seam, so this runs as a maintenance step, not in-line).
One framework-agnostic core (resolve_entities) does all the goldenmatch work; each
adapter just marshals its framework's entities in and the merge decision out.
Install
pip install goldenmatch-kg # core only
pip install "goldenmatch-kg[neo4j-graphrag]" # + neo4j-graphrag adapter
pip install "goldenmatch-kg[llamaindex]" # + LlamaIndex adapter
pip install "goldenmatch-kg[graphiti]" # + Graphiti adapter
The lift (measured, not asserted)
These adapters deliver goldenmatch's resolution through each framework's pipeline. The
size of the win is measured by ER-KG-Bench,
which scores each framework's own default entity resolution against goldenmatch on real
corpora. On the self-sourced ghsuite corpus (RESULTS_ghsuite.md):
| Framework | its default ER (F1) | goldenmatch (F1) |
|---|---|---|
| neo4j-graphrag | 0.322 (fuzzy resolver, real-inproc) | 0.969 |
| LlamaIndex PGI | exact upsert only (exact-match family scores 0.0 to 0.24) | 0.969 |
| Graphiti | 0.379 (deterministic floor, real-inproc) | 0.969 |
goldenmatch (F1) is the goldenmatch(auto+fields) row (P 0.963 / R 0.975 / F1 0.969),
deterministic, zero LLM calls. The lift is the resolution you get by swapping goldenmatch
in as the ER stage; it is read off the existing bench board, not re-scored here. The
same shape holds on the external Wikidata/RxNorm corpus (RESULTS.md).
This is an ER-stage win, not "goldenmatch builds your KG": you still run the rest of your pipeline (extraction, relationship building, graph store). goldenmatch resolves the entities.
Per-framework guides
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file goldenmatch_kg-0.1.0.tar.gz.
File metadata
- Download URL: goldenmatch_kg-0.1.0.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e755562e68c83f4f7aa2f41b961c1417ab933e101e09e4729071733c08265e8
|
|
| MD5 |
372fd5151956576029786843f98e3036
|
|
| BLAKE2b-256 |
4b5f61142cea4271166d5f55f081334fe20407e91839336459fdbb9d7345d555
|
File details
Details for the file goldenmatch_kg-0.1.0-py3-none-any.whl.
File metadata
- Download URL: goldenmatch_kg-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2be799df90a264ac90e1d74f920fd32ab670243df9f4ac4ac62615caa1684945
|
|
| MD5 |
bb1a79b7abaca9f90b402ff4adc6e047
|
|
| BLAKE2b-256 |
4dd3e081b69b48b1aee8e6ba0ea670444042457e529e7cb9775735d504110459
|