Skip to content

Latest commit

Β 

History

History

README.md

Semantica Knowledge Explorer

A real-time visual interface for exploring knowledge graphs, decision intelligence, entity resolution, ontologies, and graph analytics built on top of the Semantica library.


Requirements

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 --version

Quick Start (Local Development)

1. Clone the repository

git clone https://github.com/Hawksight-AI/semantica.git
cd semantica

2. Install the Semantica Python package

pip install semantica

Or install from source if you have the repo:

pip install -e .

3. Start the Semantica backend

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.server

The backend starts on port 8000 by default. Keep this terminal open.

4. Install frontend dependencies

Open a second terminal:

cd explorer
npm install

Note: This project uses Vite 5 and requires Node 18+. If you are on Node 16 or earlier, upgrade first.

5. Start the dev server

npm run dev

Vite starts on http://localhost:5173 by default. Open that URL in your browser.


What you should see

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

Project structure

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

Available scripts

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-store

API & WebSocket proxy

During 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.


Production build

cd explorer
npm run build

The compiled assets are written to ../semantica/static/. The Semantica Python server serves this folder automatically at its root URL β€” no separate web server needed.


Troubleshooting

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/graph requests β€” the proxy target may need updating in vite.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/ and package-lock.json, then re-run npm 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 /ws WebSocket endpoint.
  • Check browser DevTools β†’ Network β†’ WS tab for the connection status.

Tech stack

  • 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

Contributing

See the root CONTRIBUTING.md and open issues on the main Semantica repository.