From 5e1770ba0dcff1ffe14dece949c582817cd6a039 Mon Sep 17 00:00:00 2001 From: Cyber MacGeddon Date: Tue, 26 Nov 2024 16:45:29 +0000 Subject: [PATCH] Changes, entity-aware API is complete --- trustgraph-base/trustgraph/api/api.py | 24 +++++++------------ .../trustgraph/knowledge/__init__.py | 1 + trustgraph-base/trustgraph/knowledge/defs.py | 8 +++++++ .../trustgraph/knowledge/document.py | 7 +++--- .../trustgraph/knowledge/organization.py | 7 +++--- .../trustgraph/knowledge/publication.py | 7 +++--- 6 files changed, 29 insertions(+), 25 deletions(-) diff --git a/trustgraph-base/trustgraph/api/api.py b/trustgraph-base/trustgraph/api/api.py index 809288a7..7942e081 100644 --- a/trustgraph-base/trustgraph/api/api.py +++ b/trustgraph-base/trustgraph/api/api.py @@ -4,7 +4,7 @@ import json import dataclasses import base64 -from trustgraph.knowledge import hash +from trustgraph.knowledge import hash, Uri, Literal class ProtocolException(Exception): pass @@ -12,14 +12,6 @@ class ProtocolException(Exception): class ApplicationException(Exception): pass -class Uri(str): - def is_uri(self): return True - def is_literal(self): return False - -class Literal(str): - def is_uri(self): return False - def is_literal(self): return True - @dataclasses.dataclass class Triple: s : str @@ -279,10 +271,10 @@ class Api: if metadata: metadata.emit( - lambda t: triples.append( - "s": { "v": t.s, "e": isinstance(t.s, Uri) } - "p": { "v": t.p, "e": isinstance(t.p, Uri) } - "o": { "v": t.o, "e": isinstance(t.o, Uri) } + lambda t: triples.append({ + "s": { "v": t["s"], "e": isinstance(t["s"], Uri) }, + "p": { "v": t["p"], "e": isinstance(t["p"], Uri) }, + "o": { "v": t["o"], "e": isinstance(t["o"], Uri) } }) ) @@ -319,9 +311,9 @@ class Api: if metadata: metadata.emit( lambda t: triples.append({ - "s": { "v": t.s, "e": isinstance(t.s, Uri), - "p": { "v": t.p, "e": isinstance(t.p, Uri), - "o": { "v": t.o, "e": isinstance(t.o, Uri), + "s": { "v": t["s"], "e": isinstance(t["s"], Uri) }, + "p": { "v": t["p"], "e": isinstance(t["p"], Uri) }, + "o": { "v": t["o"], "e": isinstance(t["o"], Uri) } }) ) diff --git a/trustgraph-base/trustgraph/knowledge/__init__.py b/trustgraph-base/trustgraph/knowledge/__init__.py index 0ab6b5db..8349abf0 100644 --- a/trustgraph-base/trustgraph/knowledge/__init__.py +++ b/trustgraph-base/trustgraph/knowledge/__init__.py @@ -1,4 +1,5 @@ +from . defs import * from . identifier import * from . publication import * from . document import * diff --git a/trustgraph-base/trustgraph/knowledge/defs.py b/trustgraph-base/trustgraph/knowledge/defs.py index b95863c6..d6290930 100644 --- a/trustgraph-base/trustgraph/knowledge/defs.py +++ b/trustgraph-base/trustgraph/knowledge/defs.py @@ -23,3 +23,11 @@ URL = 'https://schema.org/url' IDENTIFIER = 'https://schema.org/identifier' KEYWORD = 'https://schema.org/keywords' +class Uri(str): + def is_uri(self): return True + def is_literal(self): return False + +class Literal(str): + def is_uri(self): return False + def is_literal(self): return True + diff --git a/trustgraph-base/trustgraph/knowledge/document.py b/trustgraph-base/trustgraph/knowledge/document.py index 606727bb..99d06c72 100644 --- a/trustgraph-base/trustgraph/knowledge/document.py +++ b/trustgraph-base/trustgraph/knowledge/document.py @@ -2,9 +2,10 @@ from . defs import * def Value(value, is_uri): - return { - "v": value, "e": is_uri, - } + if is_uri: + return Uri(value) + else: + return Literal(value) def Triple(s, p, o): return { diff --git a/trustgraph-base/trustgraph/knowledge/organization.py b/trustgraph-base/trustgraph/knowledge/organization.py index 381ad8ad..5653aa97 100644 --- a/trustgraph-base/trustgraph/knowledge/organization.py +++ b/trustgraph-base/trustgraph/knowledge/organization.py @@ -2,9 +2,10 @@ from . defs import * def Value(value, is_uri): - return { - "v": value, "e": is_uri, - } + if is_uri: + return Uri(value) + else: + return Literal(value) def Triple(s, p, o): return { diff --git a/trustgraph-base/trustgraph/knowledge/publication.py b/trustgraph-base/trustgraph/knowledge/publication.py index f124a004..d197df93 100644 --- a/trustgraph-base/trustgraph/knowledge/publication.py +++ b/trustgraph-base/trustgraph/knowledge/publication.py @@ -2,9 +2,10 @@ from . defs import * def Value(value, is_uri): - return { - "v": value, "e": is_uri, - } + if is_uri: + return Uri(value) + else: + return Literal(value) def Triple(s, p, o): return {