Changes, entity-aware API is complete

This commit is contained in:
Cyber MacGeddon 2024-11-26 16:45:29 +00:00
parent 6b478e9cc9
commit 5e1770ba0d
6 changed files with 29 additions and 25 deletions

View file

@ -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) }
})
)

View file

@ -1,4 +1,5 @@
from . defs import *
from . identifier import *
from . publication import *
from . document import *

View file

@ -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

View file

@ -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 {

View file

@ -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 {

View file

@ -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 {