mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-06-11 07:45:13 +02:00
Implements all three changes from the knowledge-core-completeness tech spec: 1. Named graph field preserved through Cassandra storage (7-element tuple), enabling provenance triples to retain their graph URIs on round-trip. 2. Provenance triples already arrive on triples-input — no routing change needed; Change 1 was sufficient. 3. Source material (library documents) streamed alongside triples and embeddings during core download/upload. The knowledge manager fetches the document hierarchy from the librarian on download and recreates it on upload, preserving the full provenance chain across instances.
78 lines
1.9 KiB
Python
78 lines
1.9 KiB
Python
from dataclasses import dataclass, field
|
|
from ..core.primitives import Triple, Error
|
|
from ..core.topic import queue
|
|
from ..core.metadata import Metadata
|
|
from .document import Document, TextDocument
|
|
from .graph import Triples
|
|
from .embeddings import GraphEmbeddings, DocumentEmbeddings
|
|
|
|
# get-kg-core
|
|
# -> (???)
|
|
# <- ()
|
|
# <- (error)
|
|
|
|
# delete-kg-core
|
|
# -> (???)
|
|
# <- ()
|
|
# <- (error)
|
|
|
|
# list-kg-cores
|
|
# -> ()
|
|
# <- ()
|
|
# <- (error)
|
|
|
|
@dataclass
|
|
class LibraryMetadata:
|
|
id: str = ""
|
|
kind: str = ""
|
|
title: str = ""
|
|
parent_id: str = ""
|
|
document_type: str = ""
|
|
comments: str = ""
|
|
tags: list[str] = field(default_factory=list)
|
|
|
|
@dataclass
|
|
class LibraryBlob:
|
|
id: str = ""
|
|
data: bytes = b""
|
|
|
|
@dataclass
|
|
class KnowledgeRequest:
|
|
# get-kg-core, delete-kg-core, list-kg-cores, put-kg-core
|
|
# load-kg-core, unload-kg-core
|
|
operation: str = ""
|
|
|
|
# get-kg-core, list-kg-cores, delete-kg-core, put-kg-core,
|
|
# load-kg-core, unload-kg-core
|
|
id: str = ""
|
|
|
|
# load-kg-core
|
|
flow: str = ""
|
|
|
|
# load-kg-core
|
|
collection: str = ""
|
|
|
|
# put-kg-core
|
|
triples: Triples | None = None
|
|
graph_embeddings: GraphEmbeddings | None = None
|
|
|
|
# put-de-core
|
|
document_embeddings: DocumentEmbeddings | None = None
|
|
|
|
# put-kg-core (source material)
|
|
library_metadata: LibraryMetadata | None = None
|
|
library_blob: LibraryBlob | None = None
|
|
|
|
@dataclass
|
|
class KnowledgeResponse:
|
|
error: Error | None = None
|
|
ids: list[str] = field(default_factory=list)
|
|
eos: bool = False # Indicates end of knowledge core stream
|
|
triples: Triples | None = None
|
|
graph_embeddings: GraphEmbeddings | None = None
|
|
document_embeddings: DocumentEmbeddings | None = None
|
|
library_metadata: LibraryMetadata | None = None
|
|
library_blob: LibraryBlob | None = None
|
|
|
|
knowledge_request_queue = queue('knowledge', cls='request')
|
|
knowledge_response_queue = queue('knowledge', cls='response')
|