Spaces:
Running
Running
File size: 1,808 Bytes
0cd3dc5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 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()
|