mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-09-02 04:00:40 +00:00
5.9 KiB
5.9 KiB
In [ ]:
from semantica.kg import GraphBuilder, GraphAnalyzer, CentralityCalculator, CommunityDetector, ConnectivityAnalyzer, GraphValidator, Deduplicator
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}")
In [ ]:
centrality_calculator = CentralityCalculator()
degree_centrality = centrality_calculator.calculate_centrality(kg, measure="degree")
betweenness_centrality = centrality_calculator.calculate_centrality(kg, measure="betweenness")
print(f"Degree centrality: {len(degree_centrality)} entities")
print(f"Betweenness centrality: {len(betweenness_centrality)} entities")
In [ ]:
community_detector = CommunityDetector()
communities = community_detector.detect_communities(kg)
print(f"Detected {len(communities)} communities")
for i, community in enumerate(communities[:3], 1):
print(f" Community {i}: {len(community)} entities")
In [ ]:
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', []))}")
In [ ]:
graph_validator = GraphValidator()
deduplicator = Deduplicator()
validation_result = graph_validator.validate(kg)
deduplicated_kg = deduplicator.deduplicate(kg)
print(f"Graph validation: {validation_result.get('valid', False)}")
print(f"Deduplicated entities: {len(deduplicated_kg.get('entities', []))}")