Last commit not found
import os | |
import sys | |
import json | |
import networkx as nx | |
import matplotlib.pyplot as plt | |
domain_colors = { | |
"Legislation": "red", | |
"Healthcare Systems": "blue", | |
"Healthcare Policies": "green", | |
"Default": "grey" | |
} | |
# Path setup | |
sys.path.append(os.path.join(os.path.dirname(__file__), "../")) | |
from app.services.agn_service.build_graph import build_graph | |
from app.services.agn_service.visualize_graph import visualize_graph | |
# Paths to files | |
index_file_path = "graphs/index.json" | |
output_image = "expanded_graph_visualization.png" | |
# Load index data | |
def load_index_data(file_path): | |
with open(file_path, "r") as file: | |
return json.load(file) | |
# Build the graph with entities and relationships from the updated index | |
def build_expanded_graph(data): | |
G = nx.DiGraph() | |
for entity_id, entity_info in data["entities"].items(): | |
label = entity_info.get("label", entity_id) | |
domain = entity_info.get("inherits_from", "Default") | |
color = domain_colors.get(domain, "grey") | |
G.add_node(entity_id, label=label, color=color) | |
# Load additional relationships if specified in the entity data | |
file_path = entity_info.get("file_path") | |
if file_path and os.path.exists(file_path): | |
with open(file_path, "r") as f: | |
entity_data = json.load(f) | |
for rel in entity_data.get("relationships", []): | |
G.add_edge(rel["source"], rel["target"], label=rel["attributes"]["relationship"]) | |
# Add new relationships from index.json | |
for relationship in data["relationships"]: | |
G.add_edge(relationship["source"], relationship["target"], label=relationship["attributes"].get("relationship", "related_to")) | |
return G | |
# Main execution to build and visualize the expanded graph | |
if __name__ == "__main__": | |
data = load_index_data(index_file_path) | |
G = build_expanded_graph(data) | |
if G: | |
visualize_graph(G, output_file=output_image) | |
print(f"Expanded graph visualization saved as {output_image}") | |
else: | |
print("Failed to build expanded graph.") |