mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
Replace plain markdown in every docs/reference/ file and docs/concepts.md with rich Mintlify JSX components — CardGroup, Steps, Tabs, AccordionGroup, Tip, Warning, Note, and CodeGroup — for a consistent, navigable, production-grade developer experience.
10 KiB
10 KiB
title, description, icon
| title | description | icon |
|---|---|---|
| Visualization Module | Interactive and static knowledge graph, ontology, embedding, and temporal visualization. | chart-bar |
semantica.visualization renders knowledge graphs, ontologies, embedding spaces, and temporal data as interactive HTML or static images — without launching the full Explorer server.
What You Get
Interactive HTML (PyVis) and static image (Matplotlib) graph rendering with layout options. Class hierarchy and property relationship visualization from any OntologyManager. UMAP, t-SNE, and PCA dimensionality reduction plots for embedding cluster analysis. Timeline views, animated evolution, snapshot comparison, and temporal pattern highlights. Ego-mode neighborhood views and N×N distance matrix heatmaps from Distance Intelligence. Centrality rankings, community-colored graphs, and degree distribution histograms.Quick Start
```python from semantica.visualization import GraphVisualizerviz = GraphVisualizer()
# Interactive HTML — opens in browser, supports hover and click
viz.visualize(graph, output="graph.html")
```
# Vector SVG — for publications and scalable diagrams
viz.visualize(graph, output="graph.svg")
# PDF — for print or compliance reports
viz.visualize(graph, output="graph.pdf")
```
Visualizers
Interactive and static knowledge graph rendering:```python
from semantica.visualization import GraphVisualizer
viz = GraphVisualizer()
# Interactive HTML
viz.visualize(graph, output="graph.html")
# Static PNG with custom DPI
viz.visualize(graph, output="graph.png", backend="matplotlib", dpi=150)
# Display inline (Jupyter or default browser)
viz.show(graph)
```
**Layout options:**
| Layout | Description | Best For |
| ------ | ----------- | -------- |
| `force_directed` | Physics simulation — clusters emerge naturally | General graphs |
| `hierarchical` | Top-down tree layout | Taxonomies, org charts |
| `circular` | Nodes on a circle, edges as chords | Small dense graphs |
| `spring` | Spring-force layout (Fruchterman-Reingold) | Medium graphs |
```python
from semantica.visualization import OntologyVisualizer
viz = OntologyVisualizer()
# Full ontology graph — classes, properties, and constraints
viz.visualize(ontology, output="ontology.html")
# Class hierarchy only — cleaner for large ontologies
viz.visualize_hierarchy(ontology, output="hierarchy.html")
```
```python
from semantica.visualization import EmbeddingVisualizer
viz = EmbeddingVisualizer()
viz.visualize(
embeddings=embeddings,
labels=labels,
output="embeddings.html",
method="umap", # "umap" | "tsne" | "pca"
)
```
| Method | Speed | Preserves | Best For |
| ------ | ----- | --------- | -------- |
| `umap` | Fast | Global + local structure | Large datasets, cluster discovery |
| `tsne` | Medium | Local structure | Tight cluster separation |
| `pca` | Very fast | Variance | Quick overview, linear structure |
```python
from semantica.visualization import TemporalVisualizer
from datetime import datetime
viz = TemporalVisualizer()
# Static timeline of additions and removals
viz.visualize_timeline(temporal_kg, output="timeline.html")
# Animated evolution — one frame per time step
viz.animate(temporal_kg, output="evolution.html", fps=2)
# Side-by-side snapshot comparison
snap_a = temporal_kg.at(datetime(2020, 1, 1))
snap_b = temporal_kg.at(datetime(2023, 1, 1))
viz.compare_snapshots(snap_a, snap_b, output="snapshot_diff.html")
# Pattern visualization — highlight recurring temporal patterns
viz.visualize_patterns(temporal_kg, pattern_type="recurrence", output="patterns.html")
```
```python
from semantica.visualization import DistanceVisualizer
viz = DistanceVisualizer()
# Ego-mode: neighborhood of one node colored by distance band
viz.visualize_ego(
graph,
center_node="Apple Inc.",
output="ego.html",
radius=0.5, # semantic distance radius
)
# N×N distance matrix heatmap
viz.visualize_distance_matrix(
matrix=distance_matrix,
labels=node_labels,
output="distance_heatmap.html",
)
```
```python
from semantica.visualization import AnalyticsVisualizer
from semantica.kg import CentralityCalculator, CommunityDetector
calc = CentralityCalculator()
centrality = calc.calculate_all_centrality(kg)
detector = CommunityDetector()
communities = detector.detect_communities(kg, algorithm="louvain")
viz = AnalyticsVisualizer()
# Bar chart of top-N nodes by centrality measure
viz.visualize_centrality(centrality, metric="pagerank", top_k=20, output="centrality.html")
# Community-colored graph
viz.visualize_communities(kg, communities, output="communities.html")
# Degree distribution histogram
viz.visualize_degree_distribution(kg, output="degree_dist.html")
# Combined analytics dashboard
viz.visualize_analytics_dashboard(
kg, centrality=centrality, communities=communities,
output="analytics_dashboard.html",
)
```
Color Schemes
All visualizers accept a color_scheme parameter:
viz.visualize(graph, output="graph.html", color_scheme="vibrant")
| Scheme | Description | Best For |
|---|---|---|
default |
Blue-grey palette | General use |
vibrant |
High-contrast, saturated colours | Presentations |
pastel |
Soft, muted tones | Light backgrounds |
dark |
Dark background with bright nodes | Dark-mode dashboards |
light |
White background, thin edges | Publications, print |
colorblind |
Okabe-Ito safe palette | Accessibility |
Export Formats
| Format | Interactive | Scalable | Best For |
|---|---|---|---|
.html |
Yes | N/A | Web dashboards, exploratory analysis |
.png |
No | No | Reports, Jupyter notebooks |
.svg |
No | Yes | Publications, slide decks |
.pdf |
No | Yes | Print, compliance exports |
Graph Explorer (Full Dashboard)
For a full browser-based UI with search, path finding, and the Ontology Hub, use semantica.explorer:
from semantica.explorer import start_explorer
start_explorer(graph=kg, port=8080)
# Opens at http://localhost:8080
See the Explorer reference for the full feature set and REST API.