Spaces:
Running
Running
| 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() | |