Formal software contract, shared data models, sample messages, and compliance tests required for integrating new Entity Resolution Engines (EREs) into Entity Resolution System.
- UNIX-compatible environment (Linux/macOS/WSL2)
- Make
- Python 3.12+
- Poetry (for dependency management)
make install # install dependencies via Poetry
make all # generate all models, schemas, and documentationinstall: install dependencies via Poetryall: generate all models, schemas, and documentationgenerate-models: regenerate Pydantic models and JSON Schema from LinkMLgenerate-docs: regenerate documentationlint: run ruff linter on source codelint-schema: run LinkML linter on YAML schemasclean: remove all generated artifacts
To get started, you need a UNIX-compatible environment (Mac/Linux/WSL2) with Make, Python and Poetry. You can then use the following command to setup your environment:
make installThis will install the necessary user dependencies in a Poetry-managed virtual environment.
This repository follows the repository owner's requirements for project structure, which place the self-contained Python project (source code, dependencies, and build scripts) under src/. This layout is required for the repository owner's deployment tooling to locate and operate the project correctly.
The canonical Makefile lives at the repo root and runs all targets from there. All poetry commands are directed to the project in src/ via poetry --directory src.
This project uses principles of model-driven development (MDD) and domain-driven design (DDD). The core models are defined in the src/resources/schemas directory using LinkML, and the Python (Pydantic) models are generated from these specifications.
Generated Python models are in src/erspec/models. Regenerate them with:
make allThis regenerates both the LinkML-based models (Python, JSONSchema) and the navigable documentation. See the Makefile for more granular targets.
This repository contains Gherkin feature files under test/features/ that serve as a formal specification of the expected behaviour of the ERE. They describe the observable contract between ERS and ERE at specification level — independent of any particular ERE implementation — and may serve as the basis for implementing acceptance tests for a conformant ERE.
This repository contains manual deduplication for organizations and procedures from RDF tender notices. The duplication was done using fuzzy string matching with manual checking of the results.
Documentation resources for understanding the model, architecture, and interfaces:
See docs/schema/README.md — canonical data model and service schema documentation generated from the ERS–ERE definitions.
See docs/architecture/diagrams/README.md — prescribed architectural diagrams illustrating system structure and components.
See docs/architecture/sequence_diagrams/README.md — Mermaid-format sequence diagrams describing key system interactions.
See docs/ere-interface-seq-diag.md — informative sequence overview for ERS–ERE interactions. Note: the ERS–ERE contract is the normative specification; this file is provided for additional context.