Files
semantica/docs/cookbook/introduction/Graph_Quality.ipynb
T

4.8 KiB

Graph Quality

Overview

This notebook demonstrates how to assess and improve knowledge graph quality using Semantica's quality assurance modules. You'll learn to use KGQualityAssessor, ConsistencyChecker, CompletenessValidator, and QualityMetrics.

Learning Objectives

  • Use KGQualityAssessor for overall quality assessment
  • Use ConsistencyChecker to validate consistency
  • Use CompletenessValidator to check completeness
  • Use QualityMetrics to calculate quality metrics

Step 1: Quality Assessment

Assess overall graph quality.

In [ ]:
from semantica.kg_qa import KGQualityAssessor
from semantica.kg import GraphBuilder

builder = GraphBuilder()
assessor = KGQualityAssessor()

entities = [
    {"id": "e1", "type": "Organization", "name": "Apple Inc.", "properties": {}}
]

relationships = []

kg = builder.build(entities, relationships)

quality_score = assessor.assess_overall_quality(kg)

print(f"Overall quality score: {quality_score.get('overall_score', 0):.3f}")
print(f"Completeness: {quality_score.get('completeness', 0):.3f}")
print(f"Consistency: {quality_score.get('consistency', 0):.3f}")

Step 2: Consistency Checking

Check graph consistency.

In [ ]:
from semantica.kg_qa import ConsistencyChecker

consistency_checker = ConsistencyChecker()

consistency_result = consistency_checker.check_consistency(kg)

print(f"Consistency check:")
print(f"  Is consistent: {consistency_result.get('is_consistent', False)}")
print(f"  Issues: {len(consistency_result.get('issues', []))}")

Step 3: Completeness Validation

Validate graph completeness.

In [ ]:
from semantica.kg_qa import CompletenessValidator

completeness_validator = CompletenessValidator()

completeness_result = completeness_validator.validate_completeness(kg)

print(f"Completeness validation:")
print(f"  Is complete: {completeness_result.get('is_complete', False)}")
print(f"  Missing properties: {len(completeness_result.get('missing_properties', []))}")

Step 4: Quality Metrics

Calculate detailed quality metrics.

In [ ]:
from semantica.kg_qa import QualityMetrics

quality_metrics = QualityMetrics()

metrics = quality_metrics.calculate_metrics(kg)

print(f"Quality metrics:")
print(f"  Entity coverage: {metrics.get('entity_coverage', 0):.3f}")
print(f"  Relationship coverage: {metrics.get('relationship_coverage', 0):.3f}")

Summary

You've learned how to assess graph quality:

  • KGQualityAssessor: Overall quality assessment
  • ConsistencyChecker: Consistency validation
  • CompletenessValidator: Completeness validation
  • QualityMetrics: Detailed quality metrics

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