Sample docs loader (#365)

This commit is contained in:
cybermaggedon 2025-05-06 13:43:17 +01:00 committed by GitHub
parent 9e4eb634a4
commit 54e475fa3a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
34 changed files with 818 additions and 56 deletions

View file

@ -3,6 +3,7 @@ import json
import base64
from .. knowledge import hash, Uri, Literal
from . types import Triple
def to_value(x):
if x["e"]: return Uri(x["v"])

View file

@ -44,13 +44,25 @@ class Library:
triples.append(t)
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) }
})
)
if isinstance(metadata, list):
triples = [
{
"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) }
}
for t in metadata
]
elif hasattr(metadata, "emit"):
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) }
})
)
else:
raise RuntimeError("metadata should be a list of Triples or have an emit method")
input = {
"operation": "add-document",

View file

@ -2,6 +2,7 @@
import dataclasses
import datetime
from typing import List
from .. knowledge import hash, Uri, Literal
@dataclasses.dataclass
class Triple: