From 657b2801d31ba32f2701bf4e098fbe3a215fc2fb Mon Sep 17 00:00:00 2001 From: Cyber MacGeddon Date: Wed, 14 Aug 2024 00:10:19 +0100 Subject: [PATCH] All query cases seemt to be working --- tests/test-triples | 2 +- trustgraph/query/triples/neo4j/service.py | 90 ++++++++++++++++++++++- 2 files changed, 87 insertions(+), 5 deletions(-) diff --git a/tests/test-triples b/tests/test-triples index bdd781f9..1f486948 100755 --- a/tests/test-triples +++ b/tests/test-triples @@ -29,7 +29,7 @@ print("-- p ---------------------------") resp = tq.request(None, "http://trustgraph.ai/e/landed", None, limit) dump(resp) -print("-- p ---------------------------") +print("-- o ---------------------------") resp = tq.request(None, None, "President", limit) dump(resp) diff --git a/trustgraph/query/triples/neo4j/service.py b/trustgraph/query/triples/neo4j/service.py index 19d060fc..c43ad629 100755 --- a/trustgraph/query/triples/neo4j/service.py +++ b/trustgraph/query/triples/neo4j/service.py @@ -180,24 +180,106 @@ class Processor(ConsumerProducer): if v.o is not None: # PO - pass + + records, summary, keys = self.io.execute_query( + "MATCH (src:Node)-[rel:Rel {uri: $uri}]->(dest:Literal {value: $value}) " + "RETURN src.uri as src", + uri=v.p.value, value=v.o.value, + database_=self.db, + ) + + for rec in records: + data = rec.data() + triples.append((data["src"], v.p.value, v.o.value)) + + records, summary, keys = self.io.execute_query( + "MATCH (src:Node)-[rel:Rel {uri: $uri}]->(dest:Node {uri: $uri}) " + "RETURN src.uri as src", + uri=v.p.value, dest=v.o.value, + database_=self.db, + ) + + for rec in records: + data = rec.data() + triples.append((data["src"], v.p.value, v.o.value)) else: # P - pass + + records, summary, keys = self.io.execute_query( + "MATCH (src:Node)-[rel:Rel {uri: $uri}]->(dest:Literal) " + "RETURN src.uri as src, dest.value as dest", + uri=v.p.value, + database_=self.db, + ) + + for rec in records: + data = rec.data() + triples.append((data["src"], v.p.value, data["dest"])) + + records, summary, keys = self.io.execute_query( + "MATCH (src:Node)-[rel:Rel {uri: $uri}]->(dest:Node) " + "RETURN src.uri as src, dest.uri as dest", + uri=v.p.value, + database_=self.db, + ) + + for rec in records: + data = rec.data() + triples.append((data["src"], v.p.value, data["dest"])) else: if v.o is not None: # O - pass + + records, summary, keys = self.io.execute_query( + "MATCH (src:Node)-[rel:Rel]->(dest:Literal {value: $value}) " + "RETURN src.uri as src, rel.uri as rel", + value=v.o.value, + database_=self.db, + ) + + for rec in records: + data = rec.data() + triples.append((data["src"], data["rel"], v.o.value)) + + records, summary, keys = self.io.execute_query( + "MATCH (src:Node)-[rel:Rel]->(dest:Node {uri: $uri}) " + "RETURN src.uri as src, rel.uri as rel", + uri=v.o.value, + database_=self.db, + ) + + for rec in records: + data = rec.data() + triples.append((data["src"], data["rel"], v.o.value)) else: # * - pass + + records, summary, keys = self.io.execute_query( + "MATCH (src:Node)-[rel:Rel]->(dest:Literal) " + "RETURN src.uri as src, rel.uri as rel, dest.value as dest", + database_=self.db, + ) + + for rec in records: + data = rec.data() + triples.append((data["src"], data["rel"], data["dest"])) + + records, summary, keys = self.io.execute_query( + "MATCH (src:Node)-[rel:Rel]->(dest:Node) " + "RETURN src.uri as src, rel.uri as rel, dest.uri as dest", + database_=self.db, + ) + + for rec in records: + data = rec.data() + triples.append((data["src"], data["rel"], data["dest"])) triples = [ Triple(