ConstitutionAgent / validation /validate_graph.py
Meshyboi's picture
Upload 53 files
0cd3dc5 verified
import sys
import os
# Ensure project root is in sys.path
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from services.neo4j import get_neo4j_driver
def validate_graph():
print("Connecting to Neo4j...")
driver = get_neo4j_driver()
try:
with driver.session() as session:
print("\n--- Node Counts ---")
result = session.run("MATCH (n) RETURN labels(n)[0] as Label, count(n) as Count")
for record in result:
print(f"{record['Label']}: {record['Count']}")
print("\n--- Relationship Counts ---")
result = session.run("MATCH ()-[r]->() RETURN type(r) as Type, count(r) as Count")
for record in result:
print(f"{record['Type']}: {record['Count']}")
print("\n--- Sample Data ---")
# Sample Amendment -> Article
result = session.run("""
MATCH (am:Amendment)-[:MODIFIES]->(a:Article)
RETURN am.number, a.number
LIMIT 3
""")
print("MODIFIES samples:")
for r in result:
print(f"Amendment {r['am.number']} -> Article {r['a.number']}")
# Sample Article -> Article
result = session.run("""
MATCH (a1:Article)-[:REFERS_TO]->(a2:Article)
RETURN a1.number, a2.number
LIMIT 3
""")
print("\nREFERS_TO samples:")
for r in result:
print(f"Article {r['a1.number']} -> Article {r['a2.number']}")
except Exception as e:
print(f"Error validating graph: {e}")
finally:
driver.close()
if __name__ == "__main__":
validate_graph()