diff --git a/ontocast/agent/check_chunks.py b/ontocast/agent/check_chunks.py index 4d1059c..779b29d 100644 --- a/ontocast/agent/check_chunks.py +++ b/ontocast/agent/check_chunks.py @@ -60,6 +60,7 @@ def check_chunks_empty(state: AgentState) -> AgentState: state.current_chunk = state.chunks.pop(0) state.node_visits = defaultdict(int) state.status = Status.FAILED + # TODO use method for easier tracing else: state.current_chunk = Chunk( text="", diff --git a/ontocast/onto/state.py b/ontocast/onto/state.py index ace523b..8bf4289 100644 --- a/ontocast/onto/state.py +++ b/ontocast/onto/state.py @@ -5,11 +5,7 @@ from pydantic import ConfigDict, Field from ontocast.onto.chunk import Chunk -from ontocast.onto.constants import ( - CHUNK_NULL_IRI, - DEFAULT_DOMAIN, - ONTOLOGY_NULL_IRI, -) +from ontocast.onto.constants import CHUNK_NULL_IRI, DEFAULT_DOMAIN, ONTOLOGY_NULL_IRI from ontocast.onto.context import AgentContext, AgentType, ContextManager from ontocast.onto.enum import FailureStage, Status, WorkflowNode from ontocast.onto.model import BasePydanticModel, Suggestions @@ -167,6 +163,8 @@ class AgentState(BasePydanticModel): default=None, ) + graph_uri_override: str | None = Field(default=None) + source_url: str | None = Field( description="Source URL from JSON input file (for provenance tracking)", default=None, @@ -578,6 +576,12 @@ def doc_namespace(self): """ return iri2namespace(self.doc_iri, ontology=False) + @property + def graph_uri(self): + if self.graph_uri_override is not None: + return self.graph_uri_override + return self.doc_namespace + @property def ontology_id(self): """Get the document namespace. diff --git a/ontocast/toolbox.py b/ontocast/toolbox.py index c82b364..15ed991 100644 --- a/ontocast/toolbox.py +++ b/ontocast/toolbox.py @@ -22,9 +22,7 @@ from ontocast.tool.llm import LLMTool from ontocast.tool.ontology_manager import OntologyManager from ontocast.tool.sparql import SPARQLTool -from ontocast.tool.triple_manager.core import ( - TripleStoreManager, -) +from ontocast.tool.triple_manager.core import TripleStoreManager logger = logging.getLogger(__name__) @@ -193,7 +191,7 @@ def serialize(self, state: AgentState) -> None: self.filesystem_manager.serialize(state.current_ontology) self.filesystem_manager.serialize( state.aggregated_facts, - graph_uri=state.doc_namespace, + graph_uri=state.graph_uri, ) if ( self.triple_store_manager is not None @@ -203,7 +201,7 @@ def serialize(self, state: AgentState) -> None: self.triple_store_manager.serialize(state.current_ontology) self.triple_store_manager.serialize( state.aggregated_facts, - graph_uri=state.doc_namespace, + graph_uri=state.graph_uri, ) async def initialize(self) -> None: