Singularity / scripts /dev /3.13_get_perfect.py
SlappAI's picture
dev scripts
64ed965
import json
# Sample data structure based on your JSON
data = {
"primes": [
{"value": 2, "category": "prime"},
{"value": 3, "category": "prime"},
{"value": 5, "category": "prime"},
# add other nodes as needed
],
"perfect_numbers": [
{"value": 6, "category": "perfect_number"},
{"value": 28, "category": "perfect_number"},
# add other nodes as needed
],
"relationships": [
{"source": 2, "target": 3, "relationship": "generates_Mersenne_prime"},
# add other predefined relationships
]
}
# Inferred relationship function
def infer_relationships(nodes):
inferred_relationships = []
node_values = {node['value']: node for node in nodes}
# Iterate over node pairs to find possible relationships
for source in nodes:
for target in nodes:
if source == target:
continue
source_value = source['value']
target_value = target['value']
# Check for multiplication relationship
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}"
})
# Check for addition relationship
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
# Infer relationships
nodes = data["primes"] + data["perfect_numbers"]
new_relationships = infer_relationships(nodes)
# Append new relationships to the original data
data["relationships"].extend(new_relationships)
# Output the updated JSON
with open("updated_graph_data.json", "w") as file:
json.dump(data, file, indent=4)