[geaflow/ai-memory] Add `EntityResolver` for aliases and canonical IDs
- 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
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