| 
									
										
										
										
											2024-10-30 17:48:14 -04:00
										 |  |  | import networkx as nx | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-06 11:18:14 -05:00
										 |  |  | G = nx.read_graphml("./dickensTestEmbedcall/graph_chunk_entity_relation.graphml") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 17:48:14 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | def get_all_edges_and_nodes(G): | 
					
						
							|  |  |  |     # Get all edges and their properties | 
					
						
							|  |  |  |     edges_with_properties = [] | 
					
						
							|  |  |  |     for u, v, data in G.edges(data=True): | 
					
						
							| 
									
										
										
										
											2024-11-06 11:18:14 -05:00
										 |  |  |         edges_with_properties.append( | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 "start": u, | 
					
						
							|  |  |  |                 "end": v, | 
					
						
							|  |  |  |                 "label": data.get( | 
					
						
							|  |  |  |                     "label", "" | 
					
						
							|  |  |  |                 ),  # Assuming 'label' is used for edge type | 
					
						
							|  |  |  |                 "properties": data, | 
					
						
							|  |  |  |                 "start_node_properties": G.nodes[u], | 
					
						
							|  |  |  |                 "end_node_properties": G.nodes[v], | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2024-10-30 17:48:14 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return edges_with_properties | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-06 11:18:14 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 17:48:14 -04:00
										 |  |  | # Example usage | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							|  |  |  |     # Assume G is your NetworkX graph loaded from Neo4j | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     all_edges = get_all_edges_and_nodes(G) | 
					
						
							| 
									
										
										
										
											2024-11-06 11:18:14 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-30 17:48:14 -04:00
										 |  |  |     # Print all edges and node properties | 
					
						
							|  |  |  |     for edge in all_edges: | 
					
						
							|  |  |  |         print(f"Edge Label: {edge['label']}") | 
					
						
							|  |  |  |         print(f"Edge Properties: {edge['properties']}") | 
					
						
							|  |  |  |         print(f"Start Node: {edge['start']}") | 
					
						
							|  |  |  |         print(f"Start Node Properties: {edge['start_node_properties']}") | 
					
						
							|  |  |  |         print(f"End Node: {edge['end']}") | 
					
						
							|  |  |  |         print(f"End Node Properties: {edge['end_node_properties']}") | 
					
						
							| 
									
										
										
										
											2024-11-06 11:18:14 -05:00
										 |  |  |         print("---") |