From 64e954b11587f7a046bede1b553ca4037795032f Mon Sep 17 00:00:00 2001 From: Guillaume Matheron Date: Wed, 4 Feb 2026 08:23:31 +0100 Subject: [PATCH 1/2] Add namespace_override --- ontocast/agent/check_chunks.py | 1 + ontocast/onto/state.py | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) 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..025b405 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, ) + namespace_override: str | None = Field(default=None) + source_url: str | None = Field( description="Source URL from JSON input file (for provenance tracking)", default=None, @@ -576,6 +574,8 @@ def doc_namespace(self): Returns: str: The document namespace. """ + if self.namespace_override is not None: + return self.namespace_override return iri2namespace(self.doc_iri, ontology=False) @property From b0ebbe7ec83dcd547a6bb513c8b957485eae43a0 Mon Sep 17 00:00:00 2001 From: Guillaume Matheron Date: Wed, 4 Feb 2026 10:02:27 +0100 Subject: [PATCH 2/2] graph uri override instead of namespace override --- ontocast/onto/state.py | 10 +++++++--- ontocast/toolbox.py | 8 +++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ontocast/onto/state.py b/ontocast/onto/state.py index 025b405..8bf4289 100644 --- a/ontocast/onto/state.py +++ b/ontocast/onto/state.py @@ -163,7 +163,7 @@ class AgentState(BasePydanticModel): default=None, ) - namespace_override: str | None = Field(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)", @@ -574,10 +574,14 @@ def doc_namespace(self): Returns: str: The document namespace. """ - if self.namespace_override is not None: - return self.namespace_override 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: