2024-12-06 13:37:44 +00:00
|
|
|
from .. schema import Value, Triple
|
2024-12-02 17:41:30 +00:00
|
|
|
|
|
|
|
|
def to_value(x):
|
|
|
|
|
return Value(value=x["v"], is_uri=x["e"])
|
|
|
|
|
|
|
|
|
|
def to_subgraph(x):
|
|
|
|
|
return [
|
|
|
|
|
Triple(
|
|
|
|
|
s=to_value(t["s"]),
|
|
|
|
|
p=to_value(t["p"]),
|
|
|
|
|
o=to_value(t["o"])
|
|
|
|
|
)
|
|
|
|
|
for t in x
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
def serialize_value(v):
|
|
|
|
|
return {
|
|
|
|
|
"v": v.value,
|
|
|
|
|
"e": v.is_uri,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def serialize_triple(t):
|
|
|
|
|
return {
|
|
|
|
|
"s": serialize_value(t.s),
|
|
|
|
|
"p": serialize_value(t.p),
|
|
|
|
|
"o": serialize_value(t.o)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def serialize_subgraph(sg):
|
|
|
|
|
return [
|
|
|
|
|
serialize_triple(t)
|
|
|
|
|
for t in sg
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
def serialize_triples(message):
|
|
|
|
|
return {
|
|
|
|
|
"metadata": {
|
|
|
|
|
"id": message.metadata.id,
|
|
|
|
|
"metadata": serialize_subgraph(message.metadata.metadata),
|
|
|
|
|
"user": message.metadata.user,
|
|
|
|
|
"collection": message.metadata.collection,
|
|
|
|
|
},
|
|
|
|
|
"triples": serialize_subgraph(message.triples),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def serialize_graph_embeddings(message):
|
|
|
|
|
return {
|
|
|
|
|
"metadata": {
|
|
|
|
|
"id": message.metadata.id,
|
|
|
|
|
"metadata": serialize_subgraph(message.metadata.metadata),
|
|
|
|
|
"user": message.metadata.user,
|
|
|
|
|
"collection": message.metadata.collection,
|
|
|
|
|
},
|
2025-01-13 14:42:33 +00:00
|
|
|
"entities": [
|
|
|
|
|
{
|
|
|
|
|
"vectors": entity.vectors,
|
|
|
|
|
"entity": serialize_value(entity.entity),
|
|
|
|
|
}
|
|
|
|
|
for entity in message.entities
|
|
|
|
|
],
|
2024-12-02 17:41:30 +00:00
|
|
|
}
|
|
|
|
|
|