apache / apache/geaflow

[geaflow/ai-memory] Add `EntityResolver` for aliases and canonical IDs

Open
#841 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
808
Forks
188
Avg merge
3d 22h
Merged PRs (30d)
2

Description

Priority: P0
Difficulty: Intermediate

Context: Extracted entities can mention the same real-world object under different names. Phase 1 needs deterministic canonicalization before graph writes.

Scope:

- Add resolver interface and a rule-based resolver.
- Support exact alias, normalized text alias, and schema-scoped entity type matching.
- Produce `canonical_id`, `alias_used`, `confidence`, and `resolution_reason`.

Constraints:

- No embedding-based resolver in this issue.
- Do not merge entities across tenants or schemas.
- Low-confidence matches must stay unresolved.

Acceptance Criteria:

- Same alias maps to same canonical ID.
- Ambiguous alias returns an explicit ambiguous result.
- Cross-type alias collision is rejected or scoped correctly.

Suggested paths:

- `geaflow-ai/src/main/java/org/apache/geaflow/ai/resolve`

Contributor guide

Open the contributing guide

Research direction

Start by inspecting geaflow-ai/src/main/java/org/apache/geaflow/ai/resolve and tracing the existing entity and graph-write models. Define how aliases, entity types, tenants, schemas, and confidence are represented before implementing the interface and rule-based resolver. Done means deterministic canonical IDs, explicit ambiguous results, and no cross-tenant, cross-schema, or cross-type collisions.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, data
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
61/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.