| | import json |
| |
|
| | |
| | data = { |
| | "primes": [ |
| | {"value": 2, "category": "prime"}, |
| | {"value": 3, "category": "prime"}, |
| | {"value": 5, "category": "prime"}, |
| | |
| | ], |
| | "perfect_numbers": [ |
| | {"value": 6, "category": "perfect_number"}, |
| | {"value": 28, "category": "perfect_number"}, |
| | |
| | ], |
| | "relationships": [ |
| | {"source": 2, "target": 3, "relationship": "generates_Mersenne_prime"}, |
| | |
| | ] |
| | } |
| |
|
| | |
| | def infer_relationships(nodes): |
| | inferred_relationships = [] |
| | node_values = {node['value']: node for node in nodes} |
| | |
| | |
| | for source in nodes: |
| | for target in nodes: |
| | if source == target: |
| | continue |
| | |
| | source_value = source['value'] |
| | target_value = target['value'] |
| | |
| | |
| | if target_value % source_value == 0: |
| | factor = target_value // source_value |
| | inferred_relationships.append({ |
| | "source": source_value, |
| | "target": target_value, |
| | "relationship": f"multiplied_by_{factor}" |
| | }) |
| | |
| | |
| | if target_value - source_value > 0: |
| | addend = target_value - source_value |
| | inferred_relationships.append({ |
| | "source": source_value, |
| | "target": target_value, |
| | "relationship": f"add_{addend}" |
| | }) |
| | |
| | return inferred_relationships |
| |
|
| | |
| | nodes = data["primes"] + data["perfect_numbers"] |
| | new_relationships = infer_relationships(nodes) |
| |
|
| | |
| | data["relationships"].extend(new_relationships) |
| |
|
| | |
| | with open("updated_graph_data.json", "w") as file: |
| | json.dump(data, file, indent=4) |