Files
semantica/cookbook/introduction/10_Graph_Analytics.ipynb
T
KaifAhmad1 3c00ffb019 fix(cookbook): correct mismatched Open in Colab badge links
Seven introduction notebooks linked to a different notebook's filename
in their Colab badge (off-by-one numbering), sending readers to the
wrong notebook or a 404. Point each badge back at its own file.
2026-08-24 16:13:47 +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.