mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-09-10 04:00:35 +00:00
8.3 KiB
8.3 KiB
In [ ]:
from semantica.visualization import (
KGVisualizer,
EmbeddingVisualizer,
QualityVisualizer,
AnalyticsVisualizer,
TemporalVisualizer
)
from semantica.kg import GraphBuilder, GraphAnalyzer
from semantica.embeddings import EmbeddingGenerator
from semantica.kg_qa import KGQualityAssessor
import numpy as np
In [ ]:
builder = GraphBuilder()
entities = [
{"id": "e1", "type": "Person", "name": "Alice", "properties": {"age": 30}},
{"id": "e2", "type": "Person", "name": "Bob", "properties": {"age": 35}},
{"id": "e3", "type": "Organization", "name": "Tech Corp", "properties": {"founded": 2010}},
{"id": "e4", "type": "Location", "name": "San Francisco", "properties": {"country": "USA"}},
]
relationships = [
{"source": "e1", "target": "e2", "type": "knows", "properties": {"since": 2020}},
{"source": "e1", "target": "e3", "type": "works_for", "properties": {"role": "Engineer"}},
{"source": "e3", "target": "e4", "type": "located_in", "properties": {}},
]
knowledge_graph = builder.build(entities, relationships)
In [ ]:
kg_visualizer = KGVisualizer()
kg_visualizer.visualize(knowledge_graph, layout="spring", show_labels=True)
In [ ]:
embedding_generator = EmbeddingGenerator()
texts = [entity.get("name", "") for entity in entities]
embeddings = embedding_generator.generate(texts)
labels = [entity.get("type", "Unknown") for entity in entities]
embedding_visualizer = EmbeddingVisualizer()
embedding_visualizer.visualize_tsne(embeddings, labels, title="Entity Embeddings Visualization")
In [ ]:
quality_assessor = KGQualityAssessor()
quality_metrics = quality_assessor.assess(knowledge_graph)
quality_visualizer = QualityVisualizer()
quality_visualizer.visualize_metrics(quality_metrics, title="Knowledge Graph Quality Metrics")
In [ ]:
graph_analyzer = GraphAnalyzer()
centrality_results = graph_analyzer.calculate_centrality(
knowledge_graph,
centrality_type="degree"
)
centrality_scores = {}
if centrality_results and "centrality_measures" in centrality_results:
degree_centrality = centrality_results["centrality_measures"].get("degree", {})
if isinstance(degree_centrality, dict) and "centrality" in degree_centrality:
centrality_scores = degree_centrality["centrality"]
elif isinstance(degree_centrality, dict):
centrality_scores = degree_centrality
communities_result = graph_analyzer.detect_communities(
knowledge_graph,
algorithm="louvain"
)
communities = []
community_dict = {}
if communities_result and "communities" in communities_result:
communities_data = communities_result["communities"]
if isinstance(communities_data, list):
communities = communities_data
for idx, community in enumerate(communities):
if isinstance(community, list):
for node in community:
community_dict[node] = idx
elif isinstance(community, dict) and "nodes" in community:
for node in community["nodes"]:
community_dict[node] = idx
analytics_visualizer = AnalyticsVisualizer()
analytics_visualizer.visualize_centrality(centrality_scores, title="Node Centrality Scores")
if community_dict:
analytics_visualizer.visualize_communities(
knowledge_graph,
community_dict,
title="Community Detection"
)
In [ ]:
temporal_kg = {
"entities": entities,
"relationships": relationships,
"timestamps": {
"e1": [2020, 2021, 2022],
"e2": [2020, 2021],
"e3": [2010, 2015, 2020, 2022],
}
}
entity_history = {
"e1": [
{"timestamp": 2020, "properties": {"age": 28}},
{"timestamp": 2021, "properties": {"age": 29}},
{"timestamp": 2022, "properties": {"age": 30}},
]
}
temporal_visualizer = TemporalVisualizer()
temporal_visualizer.visualize_timeline(temporal_kg, title="Temporal Knowledge Graph Timeline")
temporal_visualizer.visualize_evolution(entity_history, entity_id="e1", title="Entity Evolution")
In [ ]:
print("Complete Visualization Suite")
print("All visualizations generated successfully")