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 dataclasses
import base64 import base64
from trustgraph.knowledge import hash from trustgraph.knowledge import hash, Uri, Literal
class ProtocolException(Exception): class ProtocolException(Exception):
pass pass
@ -12,14 +12,6 @@ class ProtocolException(Exception):
class ApplicationException(Exception): class ApplicationException(Exception):
pass 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 @dataclasses.dataclass
class Triple: class Triple:
s : str s : str
@ -279,10 +271,10 @@ class Api:
if metadata: if metadata:
metadata.emit( metadata.emit(
lambda t: triples.append( lambda t: triples.append({
"s": { "v": t.s, "e": isinstance(t.s, Uri) } "s": { "v": t["s"], "e": isinstance(t["s"], Uri) },
"p": { "v": t.p, "e": isinstance(t.p, Uri) } "p": { "v": t["p"], "e": isinstance(t["p"], Uri) },
"o": { "v": t.o, "e": isinstance(t.o, Uri) } "o": { "v": t["o"], "e": isinstance(t["o"], Uri) }
}) })
) )
@ -319,9 +311,9 @@ class Api:
if metadata: if metadata:
metadata.emit( metadata.emit(
lambda t: triples.append({ lambda t: triples.append({
"s": { "v": t.s, "e": isinstance(t.s, Uri), "s": { "v": t["s"], "e": isinstance(t["s"], Uri) },
"p": { "v": t.p, "e": isinstance(t.p, Uri), "p": { "v": t["p"], "e": isinstance(t["p"], Uri) },
"o": { "v": t.o, "e": isinstance(t.o, Uri), "o": { "v": t["o"], "e": isinstance(t["o"], Uri) }
}) })
) )

View file

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

View file

@ -23,3 +23,11 @@ URL = 'https://schema.org/url'
IDENTIFIER = 'https://schema.org/identifier' IDENTIFIER = 'https://schema.org/identifier'
KEYWORD = 'https://schema.org/keywords' 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 * from . defs import *
def Value(value, is_uri): def Value(value, is_uri):
return { if is_uri:
"v": value, "e": is_uri, return Uri(value)
} else:
return Literal(value)
def Triple(s, p, o): def Triple(s, p, o):
return { return {

View file

@ -2,9 +2,10 @@
from . defs import * from . defs import *
def Value(value, is_uri): def Value(value, is_uri):
return { if is_uri:
"v": value, "e": is_uri, return Uri(value)
} else:
return Literal(value)
def Triple(s, p, o): def Triple(s, p, o):
return { return {

View file

@ -2,9 +2,10 @@
from . defs import * from . defs import *
def Value(value, is_uri): def Value(value, is_uri):
return { if is_uri:
"v": value, "e": is_uri, return Uri(value)
} else:
return Literal(value)
def Triple(s, p, o): def Triple(s, p, o):
return { return {