Graph Schema Validation#
Validate knowledge graph schemas and data against defined constraints.
This skill ensures graph data conforms to schema definitions, ontology rules, and consistency requirements.
Quick Start#
Use When#
- Validating graph data before ingestion
- Testing schema correctness
- Enforcing ontology constraints
- Checking graph consistency
- Verifying RDF/OWL compliance
- Validating property graph models
- RDF datasets (Turtle, RDF/XML)
- OWL ontologies
- Property graph schemas
- Cypher structures
- Graph data files
- Graph exports
Outputs#
- Validation report
- Detected violations
- Suggested corrections
- Conformance status
- Constraint violations
Example#
Input Schema:
text
Student: student_id (UNIQUE), name, email
Course: course_code (UNIQUE), title, credits
Relationship: (Student)-[:ENROLLED_IN]->(Course)
Input Data:
text
(Student {name: "Alice"}) # INVALID: missing student_id
(Student {student_id: "S001", name: "Bob"})-[:ENROLLED_IN]->(Course) # OK
Validation Report:
text
Violations: 1
- Node S002: Missing required property student_id
- Suggestion: Add student_id to Student node
Validation Types#
- Node labels match schema classes
- Relationships follow schema rules
- Property types are valid
2. Property Validation#
- Required properties present
- Data types correct
- Property names consistent
3. Relationship Validation#
- Relationships follow schema rules
- Direction correct
- Source/target types valid
4. Cardinality Constraints#
- Minimum/maximum occurrences
- Uniqueness constraints
- Collection sizes
5. Graph Integrity#
- No orphan nodes
- No broken references
- No duplicate identifiers
- Consistent relationships
RDF/OWL (SHACL Shapes)#
turtle
:StudentShape a sh:NodeShape ;
sh:targetClass :Student ;
sh:property [
sh:path :student_id ;
sh:datatype xsd:string ;
sh:minCount 1
] .
Property Graph (Cypher Constraints)#
cypher
CREATE CONSTRAINT student_id_unique ON (s:Student) REQUIRE s.student_id IS UNIQUE
CREATE INDEX ON (s:Student)(name)
Execution Steps#
- Load Schema – Load ontology, SHACL shapes, or schema definition
- Load Data – Load graph data to validate
- Define Rules – Specify validation constraints
- Execute Validation – Check data against rules
- Generate Report – Produce validation results
- Suggest Fixes – Recommend corrections
Recommended Libraries#
- RDF/OWL: rdflib, pyshacl, owlready2
- Property Graph: neo4j, py2neo, networkx
- Data Validation: pydantic, jsonschema
- Graph Analysis: networkx
Best Practices#
✓ Validate before production deployment
✓ Enforce constraints at database level
✓ Use consistent property naming
✓ Define validation rules early
✓ Maintain validation tests
✓ Document constraint rules
✓ Review violation reports carefully
References#
See validation-patterns.md for validation strategies and example-validations.md for domain validation examples.
Version: 1.0.0