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()