semantica.explorer is a browser-based dashboard for exploring knowledge graphs, managing ontologies, and running visual analyses:
  • Indexed search: 0.004ms on 118k nodes: no full scans
  • Ontology Hub: visual editor, SHACL Studio, alignment authoring, and health dashboard
  • Bidirectional path finding between any two nodes
  • WebSocket progress streaming for live pipeline monitoring
  • No code required after launch: full graph exploration in the browser

Getting Started

Install, export your graph to JSON, and launch:
The browser opens automatically at http://127.0.0.1:8000. The interactive API docs are at /docs.
semantica.explorer is a server process, not an importable Python library. Use the CLI or python -m semantica.explorer to launch. The app.py module exposes a module-level app instance for use with uvicorn or Docker.

Launch

1

Save your graph and launch Explorer

2

Custom host and port

3

Import new data without restarting

4

Use via Python module

CLI Reference

The semantica-explorer command accepts exactly four flags:
There are no flags for authentication, CORS, or log level in the CLI. CORS allowed origins are configured via the EXPLORER_CORS_ORIGINS environment variable (comma-separated, default: http://localhost:5173,http://127.0.0.1:5173).
CORS origins are configured via environment variable. Set EXPLORER_CORS_ORIGINS to a comma-separated list of allowed origins before launching (e.g. EXPLORER_CORS_ORIGINS="http://myapp.example.com").

What You Get

  • Graph Explorer — Interactive node/edge search, path finding, and neighborhood expansion. Indexed search at 0.004ms on 118k-node graphs.
  • Ontology Hub — SKOS vocabulary management, SHACL shape generation and validation, ontology alignment, health dashboard, and versioning.
  • Analytics — Degree centrality, community detection, connectivity analysis, graph validation, and distance matrices.
  • REST API — All features available as a REST API: fully documented at /docs.
  • WebSocket Updates — Real-time graph mutation events streamed over WebSocket at /ws/graph-updates.
  • CLI Launchersemantica-explorer --graph my_graph.json for instant local startup.

Features

Core dashboard for navigating knowledge graphs:
  • Indexed search: POST to /api/graph/search with a query; 0.004ms on 118k-node graphs
  • Path finding: BFS or Dijkstra between any two nodes via GET /api/graph/path?source=&target=
  • Neighbor expansion: GET /api/graph/node/{id}/neighbors?depth=2
  • Filter by entity type: GET /api/graph/nodes?type=Person
  • Semantic neighborhood: GET /api/graph/semantic-neighborhood?node_id=&top_k=20
  • Distance matrix: POST /api/graph/distance-matrix
Filter large graphs before saving to JSON. The CLI loads the entire JSON file into memory. For graphs > 10k nodes, filter to the relevant subgraph before exporting: the force-directed layout becomes unusable on very large graphs.

API Endpoints

Full interactive docs at http://localhost:8000/docs. All endpoints accept and return JSON.
Analytics:Enrich:Temporal:
Ontology:Vocabulary:SKOS hierarchy writes reject cycles in both skos:broader and skos:narrower relationships. Vocabulary imports validate the complete batch before adding nodes, while direct graph/session edge writes apply the same invariant at the graph storage boundary.SPARQL:
Decisions:Provenance:Annotations:Export / Import:

WebSocket Graph Updates

Real-time graph mutation events are streamed over WebSocket at ws://localhost:8000/ws/graph-updates:
WebSocket message schema:
Event types broadcast over the WebSocket include: connection_ack, pong, and graph_mutation (fired when nodes or edges are added/updated/removed via import or enrichment). Send the text "ping" to receive a pong response.
Session state is lost on server restart. There is no auto-save. Call POST /api/export with body {"format": "json"} to download the current state before shutting down.

Performance

The node search index is built on startup. For graphs > 500k nodes, allow extra startup time before connecting. Distance matrix is capped at 50 node pairs per request. Semantic distance requires nodes to have embeddings stored in their properties.

Troubleshooting

Browser tab does not open The browser is launched 1.5 seconds after the server starts. Use --no-browser and open http://127.0.0.1:8000 manually if the auto-open fails. Error: graph file not found The --graph path must be an existing file. Check the path and ensure the file exists before launching. Error: uvicorn is required Install the explorer extras: pip install "semantica[explorer]". Connection refused on API calls The server only binds to 127.0.0.1 by default. To access Explorer from another machine or container, launch with --host 0.0.0.0. Empty graph after import The import endpoint (/api/import) only parses .json and .csv files. Other formats return HTTP 422. JSON files must contain a top-level entities/nodes array or relationships/edges array. PathFinder not available error from /api/graph/path Path finding requires the semantica[kg] extras. Install with pip install "semantica[all]". Semantic neighborhood returns 503 Semantic neighborhood requires node embeddings stored in node properties (keys embedding, vector, or node2vec_embedding). Graphs without embeddings return 503. Session state lost after restart Session state is in-memory only. Use POST /api/export to save a JSON snapshot before shutting down.
  • Context — Build and save the ContextGraph that Explorer loads.
  • Ontology — Programmatic ontology management and SHACL generation.
  • Visualization — Programmatic graph rendering without the Explorer server.
  • Export — Export to RDF, Parquet, and other formats without launching a server.