Files
semantica/cookbook/introduction/10_Graph_Analytics.ipynb
T
KaifAhmad1 7a6f1d0417 docs: add citation section and fix stale org references
Add a Cite Us section to the README with BibTeX citation info, and
align it with docs/citation.md (author/organization: Semantica, 2026).
Update LICENSE and docs/project-license.md copyright holder to
Semantica, and replace the stale Hawksight-AI GitHub org slug with
semantica-agi across READMEs, plugin manifests, cookbook notebooks,
and GitHub templates.
2026-08-24 16:07:22 +05:30

6.0 KiB

Open In Colab

Graph Analytics

Overview

This notebook demonstrates how to analyze knowledge graphs using Semantica's analytics modules. You'll learn to use GraphAnalyzer, CentralityCalculator, CommunityDetector, and ConnectivityAnalyzer to understand graph structure and properties.

Documentation: API Reference

Learning Objectives

  • Use GraphAnalyzer for comprehensive graph analysis
  • Use CentralityCalculator to compute centrality measures
  • Use CommunityDetector to find communities in graphs
  • Use ConnectivityAnalyzer to analyze graph connectivity

Installation

Install Semantica from PyPI:

pip install semantica
# Or with all optional dependencies:
pip install semantica[all]

Step 1: Graph Analysis

Analyze graph structure and properties.

In [ ]:
!pip install semantica
In [ ]:
from semantica.kg import GraphBuilder, GraphAnalyzer
from semantica.semantic_extract import NERExtractor, RelationExtractor

builder = GraphBuilder()
analyzer = GraphAnalyzer()

entities = [
    {"id": "e1", "type": "Organization", "name": "Apple Inc.", "properties": {}},
    {"id": "e2", "type": "Person", "name": "Tim Cook", "properties": {}},
    {"id": "e3", "type": "Location", "name": "Cupertino", "properties": {}}
]

relationships = [
    {"source": "e2", "target": "e1", "type": "CEO_of", "properties": {}},
    {"source": "e1", "target": "e3", "type": "located_in", "properties": {}}
]

kg = builder.build(entities, relationships)

metrics = analyzer.compute_metrics(kg)

print(f"Graph metrics:")
print(f"  Entities: {metrics.get('entity_count', 0)}")
print(f"  Relationships: {metrics.get('relationship_count', 0)}")
print(f"  Density: {metrics.get('density', 0):.3f}")

Step 2: Centrality Measures

Calculate centrality measures for entities.

In [ ]:
from semantica.kg import CentralityCalculator

centrality_calculator = CentralityCalculator()

centrality_result = centrality_calculator.calculate_degree_centrality(kg)
centrality_scores = centrality_result.get('centrality', {})

print(f"Centrality scores:")
for entity_id, score in list(centrality_scores.items())[:5]:
    print(f"  {entity_id}: {score:.3f}")

Step 3: Community Detection

Detect communities in the graph.

In [ ]:
from semantica.kg import CommunityDetector

community_detector = CommunityDetector()

# Get detection result
result = community_detector.detect_communities(kg)

# Extract communities list from result dictionary
communities = result.get("communities", [])

print(f"Detected {len(communities)} communities")
for i, community in enumerate(communities[:3], 1):
    print(f"  Community {i}: {len(community)} entities")

Step 4: Connectivity Analysis

Analyze graph connectivity.

In [ ]:
from semantica.kg import ConnectivityAnalyzer

connectivity_analyzer = ConnectivityAnalyzer()

connectivity = connectivity_analyzer.analyze_connectivity(kg)

print(f"Connectivity analysis:")
print(f"  Is connected: {connectivity.get('is_connected', False)}")
print(f"  Components: {len(connectivity.get('components', []))}")

Summary

You've learned how to analyze knowledge graphs:

  • GraphAnalyzer: Comprehensive graph analysis and metrics
  • CentralityCalculator: Calculate centrality measures
  • CommunityDetector: Detect communities in graphs
  • ConnectivityAnalyzer: Analyze graph connectivity

Next: Learn how to deduplicate entities in the Deduplication notebook.