mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-24 04:31:02 +02:00
Fixing tests
This commit is contained in:
parent
c071f35563
commit
d69a266a18
1 changed files with 35 additions and 13 deletions
|
|
@ -22,6 +22,20 @@ logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
default_ident = "triples-write"
|
default_ident = "triples-write"
|
||||||
|
|
||||||
|
|
||||||
|
def get_term_value(term):
|
||||||
|
"""Extract the string value from a Term"""
|
||||||
|
if term is None:
|
||||||
|
return None
|
||||||
|
if term.type == IRI:
|
||||||
|
return term.iri
|
||||||
|
elif term.type == LITERAL:
|
||||||
|
return term.value
|
||||||
|
else:
|
||||||
|
# For blank nodes or other types, use id or value
|
||||||
|
return term.id or term.value
|
||||||
|
|
||||||
|
|
||||||
default_graph_host = 'bolt://memgraph:7687'
|
default_graph_host = 'bolt://memgraph:7687'
|
||||||
default_username = 'memgraph'
|
default_username = 'memgraph'
|
||||||
default_password = 'password'
|
default_password = 'password'
|
||||||
|
|
@ -205,25 +219,29 @@ class Processor(CollectionConfigHandler, TriplesStoreService):
|
||||||
|
|
||||||
def create_triple(self, tx, t, user, collection):
|
def create_triple(self, tx, t, user, collection):
|
||||||
|
|
||||||
|
s_val = get_term_value(t.s)
|
||||||
|
p_val = get_term_value(t.p)
|
||||||
|
o_val = get_term_value(t.o)
|
||||||
|
|
||||||
# Create new s node with given uri, if not exists
|
# Create new s node with given uri, if not exists
|
||||||
result = tx.run(
|
result = tx.run(
|
||||||
"MERGE (n:Node {uri: $uri, user: $user, collection: $collection})",
|
"MERGE (n:Node {uri: $uri, user: $user, collection: $collection})",
|
||||||
uri=t.s.value, user=user, collection=collection
|
uri=s_val, user=user, collection=collection
|
||||||
)
|
)
|
||||||
|
|
||||||
if t.o.is_uri:
|
if t.o.type == IRI:
|
||||||
|
|
||||||
# Create new o node with given uri, if not exists
|
# Create new o node with given uri, if not exists
|
||||||
result = tx.run(
|
result = tx.run(
|
||||||
"MERGE (n:Node {uri: $uri, user: $user, collection: $collection})",
|
"MERGE (n:Node {uri: $uri, user: $user, collection: $collection})",
|
||||||
uri=t.o.value, user=user, collection=collection
|
uri=o_val, user=user, collection=collection
|
||||||
)
|
)
|
||||||
|
|
||||||
result = tx.run(
|
result = tx.run(
|
||||||
"MATCH (src:Node {uri: $src, user: $user, collection: $collection}) "
|
"MATCH (src:Node {uri: $src, user: $user, collection: $collection}) "
|
||||||
"MATCH (dest:Node {uri: $dest, user: $user, collection: $collection}) "
|
"MATCH (dest:Node {uri: $dest, user: $user, collection: $collection}) "
|
||||||
"MERGE (src)-[:Rel {uri: $uri, user: $user, collection: $collection}]->(dest)",
|
"MERGE (src)-[:Rel {uri: $uri, user: $user, collection: $collection}]->(dest)",
|
||||||
src=t.s.value, dest=t.o.value, uri=t.p.value, user=user, collection=collection,
|
src=s_val, dest=o_val, uri=p_val, user=user, collection=collection,
|
||||||
)
|
)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
@ -231,14 +249,14 @@ class Processor(CollectionConfigHandler, TriplesStoreService):
|
||||||
# Create new o literal with given uri, if not exists
|
# Create new o literal with given uri, if not exists
|
||||||
result = tx.run(
|
result = tx.run(
|
||||||
"MERGE (n:Literal {value: $value, user: $user, collection: $collection})",
|
"MERGE (n:Literal {value: $value, user: $user, collection: $collection})",
|
||||||
value=t.o.value, user=user, collection=collection
|
value=o_val, user=user, collection=collection
|
||||||
)
|
)
|
||||||
|
|
||||||
result = tx.run(
|
result = tx.run(
|
||||||
"MATCH (src:Node {uri: $src, user: $user, collection: $collection}) "
|
"MATCH (src:Node {uri: $src, user: $user, collection: $collection}) "
|
||||||
"MATCH (dest:Literal {value: $dest, user: $user, collection: $collection}) "
|
"MATCH (dest:Literal {value: $dest, user: $user, collection: $collection}) "
|
||||||
"MERGE (src)-[:Rel {uri: $uri, user: $user, collection: $collection}]->(dest)",
|
"MERGE (src)-[:Rel {uri: $uri, user: $user, collection: $collection}]->(dest)",
|
||||||
src=t.s.value, dest=t.o.value, uri=t.p.value, user=user, collection=collection,
|
src=s_val, dest=o_val, uri=p_val, user=user, collection=collection,
|
||||||
)
|
)
|
||||||
|
|
||||||
async def store_triples(self, message):
|
async def store_triples(self, message):
|
||||||
|
|
@ -258,14 +276,18 @@ class Processor(CollectionConfigHandler, TriplesStoreService):
|
||||||
|
|
||||||
for t in message.triples:
|
for t in message.triples:
|
||||||
|
|
||||||
self.create_node(t.s.value, user, collection)
|
s_val = get_term_value(t.s)
|
||||||
|
p_val = get_term_value(t.p)
|
||||||
|
o_val = get_term_value(t.o)
|
||||||
|
|
||||||
if t.o.is_uri:
|
self.create_node(s_val, user, collection)
|
||||||
self.create_node(t.o.value, user, collection)
|
|
||||||
self.relate_node(t.s.value, t.p.value, t.o.value, user, collection)
|
if t.o.type == IRI:
|
||||||
|
self.create_node(o_val, user, collection)
|
||||||
|
self.relate_node(s_val, p_val, o_val, user, collection)
|
||||||
else:
|
else:
|
||||||
self.create_literal(t.o.value, user, collection)
|
self.create_literal(o_val, user, collection)
|
||||||
self.relate_literal(t.s.value, t.p.value, t.o.value, user, collection)
|
self.relate_literal(s_val, p_val, o_val, user, collection)
|
||||||
|
|
||||||
# Alternative implementation using transactions
|
# Alternative implementation using transactions
|
||||||
# with self.io.session(database=self.db) as session:
|
# with self.io.session(database=self.db) as session:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue