A real-time visual interface for exploring knowledge graphs, decision intelligence, entity resolution, ontologies, and graph analytics built on top of the Semantica library.
| Dependency | Minimum Version |
|---|---|
| Node.js | 18.x or higher (20.x recommended) |
| npm | 9.x or higher |
| Python | 3.8+ |
| Semantica backend | running on http://127.0.0.1:8000 |
Check your versions:
node --version
npm --version
python --versiongit clone https://github.com/Hawksight-AI/semantica.git
cd semanticapip install semanticaOr install from source if you have the repo:
pip install -e .The Explorer proxies all /api and /ws requests to http://127.0.0.1:8000. The backend must be running before you open the UI.
# From the repo root
python -m semantica.serverThe backend starts on port 8000 by default. Keep this terminal open.
Open a second terminal:
cd explorer
npm installNote: This project uses Vite 5 and requires Node 18+. If you are on Node 16 or earlier, upgrade first.
npm run devVite starts on http://localhost:5173 by default. Open that URL in your browser.
The Explorer opens with a persistent left sidebar and six workspace tabs:
| Tab | What it shows |
|---|---|
| Knowledge Graph | Interactive Sigma.js canvas β nodes, edges, zoom, ForceAtlas2 layout |
| Timeline | Temporal event scrubber over the graph |
| Decisions | Causal chain viewer with outcome badges and decision filter |
| Registry | Live audit log of every graph mutation (add-node, add-edge, etc.) |
| Entity Resolution | Duplicate detection and entity merge workflow |
| KG Overview | Aggregate stats, community breakdown, centrality heatmap |
| Ontology | SKOS/OWL vocabulary hierarchy and schema summary |
explorer/
βββ src/
β βββ App.tsx # Root layout, tab routing, workspace wiring
β βββ index.css # Global resets, fonts, keyframe animations
β βββ store/
β β βββ registryStore.ts # Pub/sub audit registry (no external state lib)
β βββ workspaces/
β βββ GraphWorkspace/ # Sigma.js graph canvas + inspector panel
β βββ DecisionWorkspace/ # Causal flow diagram + decision list
β βββ TimelineWorkspace/ # vis-timeline temporal scrubber
β βββ ManageWorkspace/ # Registry, KG Overview, Ontology tabs
β βββ EnrichWorkspace/ # Entity resolution tab
βββ index.html
βββ vite.config.ts # Dev proxy β 127.0.0.1:8000, build β ../semantica/static
βββ package.json
Run these from inside the explorer/ directory:
# Start the dev server with hot module replacement
npm run dev
# Type-check and build a production bundle into ../semantica/static
npm run build
# Preview the production build locally
npm run preview
# Run ESLint over all source files
npm run lint
# Run the graph store multi-edge unit tests
npm run test:graph-storeDuring development, Vite forwards requests automatically β no CORS configuration needed:
| Pattern | Forwarded to |
|---|---|
/api/* |
http://127.0.0.1:8000/api/* |
/ws |
ws://127.0.0.1:8000/ws |
If you run the backend on a different port, update server.proxy in vite.config.ts.
cd explorer
npm run buildThe compiled assets are written to ../semantica/static/. The Semantica Python server serves this folder automatically at its root URL β no separate web server needed.
Blank graph / no data loads
- Make sure the Semantica backend is running (
python -m semantica.server) before opening the UI. - Check the browser console for failed
/api/graphrequests β the proxy target may need updating invite.config.ts.
npm install fails or hangs
- Ensure you are using Node 18 or 20. Node 16 and Vite 5 are incompatible.
- Delete
node_modules/andpackage-lock.json, then re-runnpm install.
Port 5173 already in use
- Vite will automatically try the next available port and print it in the terminal. Use that URL instead.
WebSocket not connecting (real-time mutations not appearing)
- Confirm the backend exposes a
/wsWebSocket endpoint. - Check browser DevTools β Network β WS tab for the connection status.
- React 19 + TypeScript (strict
noUnusedLocals) - Vite 5 with
babel-plugin-react-compiler - Sigma.js 3 + Graphology β graph rendering and in-memory graph store
- ForceAtlas2 β physics-based layout worker
- @tanstack/react-query β data fetching for ontology and vocab tabs
- vis-timeline β temporal event visualization
- lucide-react β icon set
See the root CONTRIBUTING.md and open issues on the main Semantica repository.