You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a first-class Person entity to the Knowledge Bank, enabling person profiles with aggregated credibility, alias management, source attachment, and merge/dedup capabilities. Persons are stored in a SQLite registry alongside ChromaDB sources.
Architecture
Storage:
SQLite database at /var/lib/knowledge-bank-tools/persons.db (managed via StateDirectory)
Three tables: persons, person_aliases, person_sources
ChromaDB sources gain person_ids_str field for filtering
Schema:
CREATETABLEpersons (
id TEXTPRIMARY KEY,
canonical_name TEXTNOT NULL,
bio TEXT,
date_created TEXTNOT NULL,
date_updated TEXTNOT NULL
);
CREATETABLEperson_aliases (
person_id TEXTNOT NULLREFERENCES persons(id) ON DELETE CASCADE,
alias TEXTNOT NULL,
PRIMARY KEY (person_id, alias)
);
CREATETABLEperson_sources (
person_id TEXTNOT NULLREFERENCES persons(id) ON DELETE CASCADE,
source_id TEXTNOT NULL,
role TEXTNOT NULL DEFAULT 'contributor',
PRIMARY KEY (person_id, source_id)
);
Credibility: Weighted average across attached sources. Weights: expert=4, practitioner=3, general=2, unverified=1. Thresholds: >=3.5=expert, >=2.5=practitioner, >=1.5=general, else unverified.
Auto-resolution at ingest: When a source with person_entity is ingested, exact match → auto-attach. Fuzzy match (Levenshtein ratio >= 0.9) → auto-attach. No match → create new person record.
Overview
Add a first-class Person entity to the Knowledge Bank, enabling person profiles with aggregated credibility, alias management, source attachment, and merge/dedup capabilities. Persons are stored in a SQLite registry alongside ChromaDB sources.
Architecture
Storage:
/var/lib/knowledge-bank-tools/persons.db(managed via StateDirectory)persons,person_aliases,person_sourcesperson_ids_strfield for filteringSchema:
Credibility: Weighted average across attached sources. Weights: expert=4, practitioner=3, general=2, unverified=1. Thresholds: >=3.5=expert, >=2.5=practitioner, >=1.5=general, else unverified.
Auto-resolution at ingest: When a source with
person_entityis ingested, exact match → auto-attach. Fuzzy match (Levenshtein ratio >= 0.9) → auto-attach. No match → create new person record.Sub-Issues
Acceptance Criteria
Auto-Close: PR should include
Closes krisoye/knowledge-bank-tools#92in description.