targets_rowslist = py`import csv
import io
pd= ${pd}
subgraph_people = ${subgraph_people}
kg = ${kg}
psl = ${psl}
targets = []
rows_list = []
with io.open('knows_targets.txt','wb') as f:
f.write(${await kgzip
.file("kglab-main/dat/psl/knows_targets.txt")
.arrayBuffer()}.tobytes())
with open("knows_targets.txt", "r") as f:
reader = csv.reader(f, delimiter="\t")
for i, row in enumerate(reader):
p1 = int(row[0])
p2 = int(row[1])
targets.append((p1, p2))
p1_node = subgraph_people.inverse_transform(p1)
p2_node = subgraph_people.inverse_transform(p2)
if (p1_node, kg.get_ns("foaf").knows, p2_node) in kg.rdf_graph():
truth = 1.0
rows_list.append({ 0: p1, 1: p2, "truth": truth})
psl.add_data_row("Knows", [p1, p2], partition="truth", truth_value=truth)
psl.add_data_row("Knows", [p1, p2], partition="targets")
elif (p1_node, kg.get_ns("acq").wantsIntro, p2_node) in kg.rdf_graph():
truth = 0.0
rows_list.append({ 0: p1, 1: p2, "truth": truth})
psl.add_data_row("Knows", [p1, p2], partition="truth", truth_value=truth)
psl.add_data_row("Knows", [p1, p2], partition="targets")
else:
print("UNKNOWN", p1, p2)
targets, rows_list
`