How marat-kabirov/kg-evolution-explorer works
KG Evolution Explorer lets analysts search for an entity and inspect its change history, timeline, and graph neighbourhood without querying the knowledge graph directly. The React app coordinates search and selection with the FastAPI API; the API reads a normalized change log from SQLite and returns entity, history, and neighbourhood data. Dataset preparation is a separate route: Wikidata ingestion or generic CSV import produces data for the same schema. The README documents the major visualizations and source-agnostic import path; some ingestion internals were not sampled, so only documented, supported connections are shown.
Main entry points: App.jsx App state · ingest.py Wikidata ingestion · import_changelog.py CSV import · EntitySearch.jsx Entity search
Components 15
Explorer UI
- App state
frontend/src/App.jsx - Entity search
frontend/src/components/EntitySearch.jsx - Timeline
frontend/src/components/TimeLine.jsx - Change log
frontend/src/components/EntityDetail.jsx - Graph view
frontend/src/components/GraphView.jsx
API and Storage
- REST API
backend/main.py - Database queries
backend/db.py - Entity search index
backend/entity_index.py - Change log database
backend/data
Change Log Ingestion
- Wikidata ingestion
backend/ingest.py - CSV import
backend/import_changelog.py - Normalized schema
backend/changelog_schema.py
External Data
- Wikidata
Other components
- Data analyst
- Change-log CSV
Connections 20
- Data analyst → Entity search: searches
- Entity search → App state: selects entity
- App state → REST API: requests data
- Entity search → REST API: searches entities
- REST API → Database queries: queries
- Database queries → Change log database: reads
- Database queries → Entity search index: searches labels
- App state → Timeline: supplies history
- App state → Change log: supplies history
- App state → Graph view: supplies neighbours
- Timeline → App state: sets time range
- Graph view → App state: selects neighbour
- Data analyst → Wikidata ingestion: requests dataset
- Wikidata ingestion → Wikidata: fetches data
- Wikidata ingestion → Normalized schema: uses schema
- Wikidata ingestion → Change log database: writes events
- Change-log CSV → CSV import: provides rows
- CSV import → Normalized schema: validates rows
- CSV import → Entity search index: rebuilds index
- CSV import → Change log database: writes events