<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OntoCast — The AI Toolchain</title>
    <link>https://aitoolchain.io/tools/ontocast</link>
    <description>New releases and features in OntoCast, tracked by The AI Toolchain.</description>
    <language>en</language>
    <lastBuildDate>Sat, 29 Aug 2026 10:44:28 GMT</lastBuildDate>
    <atom:link href="https://aitoolchain.io/tools/ontocast/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>OntoCast v0.6.2</title>
      <link>https://github.com/growgraph/ontocast/compare/v0.6.1...v0.6.2</link>
      <guid isPermaLink="true">https://github.com/growgraph/ontocast/compare/v0.6.1...v0.6.2</guid>
      <pubDate>Sat, 29 Aug 2026 10:44:28 GMT</pubDate>
      <description>OntoCast v0.6.2 adds a `/shapes` API, per-tenant SHACL shape storage, and a selective flush with `include_shapes`.
• Adds `/shapes` REST routes — `GET` (list stored documents), `POST` (upload Turtle), and `DELETE /{graph_uri}` — mirroring `/ontologies` and tenancy-scoped the same way; a document declaring `&lt;iri&gt; a owl:Ontology` is stored under that IRI so re-uploading replaces it.
• Adds `POST /flush?include_shapes=true` to optionally drop the shapes partition on flush; by default flush retains shapes, and later runs report `shacl_evaluated: null` instead of failing when shapes are absent.
• Adds `include_shapes` flag to TripleStoreManager.clean() and clean_tenancy() to control whether the SHACL shapes partition is cleared.
• SHACL shapes are now stored in the triple store in a dedicated `{tenant}--{project}--shapes` partition (`FUSEKI_SHAPES_DATASET`), enabling per-tenant shape catalogs and removing the need for a shapes directory in containerised workers.
• Changes `FACTS_SHAPES_DIR` from a live read directory to a read-only seed materialized into the shapes partition at startup; the validation gate now reads the partition rather than the directory.
• Adds `tool/shapes_catalog.py` and `api/shapes.py` as new modules supporting shape catalog discovery and the `/shapes` API.
• Replaces the two-valued `use_ontologies_dataset: bool` parameter on `aselect`, `aconstruct`, `drop_named_graph`, `drop_all_ontology_graphs_for_iri`, `serialize_graph`, and `serialize` with a `StoreKind` (`&quot;facts&quot; | &quot;ontologies&quot; | &quot;shapes&quot;`) partition selector.
• Updates the LangChain tools `ontocast_sparql_select` and `ontocast_sparql_construct` to expose a `store` parameter in place of `use_ontologies_dataset`.
• Flattens the ontology update wire: `GraphUpdateRenderReport` now carries `insert_graph` and `delete_graph` as sibling fields, and to_graph_update() compiles them delete-then-insert for apply(), the SPARQL compiler, and the LangChain tool.
Breaking changes:
• `GraphUpdateRenderReport` replaces `graph_update.triple_operations[]` with sibling fields `insert_graph` and `delete_graph`; interleaving inserts and deletes within a single render is no longer expressible, and cached ontology-render responses are invalidated. Touches `onto/model.py::GraphUpdateRenderReport`, `to_graph_update`, `prompt/graph_format.py`, `prompt/llm_json_schema.py`.
• `tool/facts_invariants.py` is removed; the previous module name no longer resolves. Replace all imports with `tool/facts_validation/` (public surface via package `__init__`).
• The `data/` top-level directory and its importable `data` package are removed. TTL fixtures are now in `test/data/ontologies/`; local-source entries in `run/fetch_schema_samples.py` resolve via `ONTOCAST_SCHEMA_SAMPLE_DIR` and are skipped when unset.
• `FACTS_SHAPES_DIR` changes meaning from a live read directory to a read-only seed; the validation gate now reads the `{tenant}--{project}--shapes` triple-store partition (`FUSEKI_SHAPES_DATASET`). A containerised worker that relied on the directory for validation must migrate shapes to the store.
• collect_shacl_shapes(ontology_graph, shapes_dir) signature changes to collect_shacl_shapes(ontology_graph, stored_shapes: RDFGraph | None); it no longer performs disk I/O.
• The `use_ontologies_dataset: bool` parameter is removed from `aselect`, `aconstruct`, `drop_named_graph`, `drop_all_ontology_graphs_for_iri`, `serialize_graph`, and `serialize`; callers must switch to the `store: StoreKind` (`&quot;facts&quot; | &quot;ontologies&quot; | &quot;shapes&quot;`) parameter. The LangChain tools `ontocast_sparql_select` and `ontocast_sparql_construct` likewise replace `use_ontologies_dataset` with `store`.
• aserialize(ontology) previously hard-coded the ontologies dataset and silently overwrote a caller&apos;s `graph_uri`; it now honours a `store=` override, so callers relying on the silent override must pass `store=&apos;ontologies&apos;` explicitly.</description>
    </item>
    <item>
      <title>OntoCast v0.6.1</title>
      <link>https://github.com/growgraph/ontocast/compare/v0.6.0...v0.6.1</link>
      <guid isPermaLink="true">https://github.com/growgraph/ontocast/compare/v0.6.0...v0.6.1</guid>
      <pubDate>Mon, 10 Aug 2026 21:56:31 GMT</pubDate>
      <description>OntoCast v0.6.1 adds `ONTOLOGY_CONTEXT_MAX_TRIPLES` prompt cap, changes `LLM_GRAPH_FORMAT` default to `jsonld`, and introduces seed-free graph pruning in `graph_prune.py`.
• Adds `ONTOLOGY_CONTEXT_MAX_TRIPLES` (default `4000`) to bound ontology context size in every prompt mode — `selected_single_ontology`, `fixed_single_ontology`, and facts fan-out — enforced at `format_ontology_chapter`; over budget, `onto/ontology_condense.py` drops triples in increasing order of harm (header/list noise first, redundant structure second, glosses third) and never drops labels, types, hierarchy, or domain/range.
• Changes `LLM_GRAPH_FORMAT` default from Turtle to `jsonld` across `ServerConfig`, `AgentState`, `UnitState`, and the `llm_graph_format_ctx` ContextVar; Turtle remains supported via explicit configuration.
• Changes `ONTOLOGY_MAX_TRIPLES` default to unlimited; the variable is still available as a runaway-growth backstop on the per-unit working graph — use `ONTOLOGY_CONTEXT_MAX_TRIPLES` to cap prompt size instead.
• Adds `ONTOLOGY_SNAPSHOT_TRIPLES` retrieval metric, now written for every context mode (previously only the vector resolver recorded a size under `patch_retrieval`).
• Moves seed-free graph pruners and predicate vocabularies (`NOISY_EXPANSION_PREDICATES`, `GENERIC_INDIVIDUAL_TYPES`, `MIN_MEANINGFUL_RESTRICTION_PREDICATES`, `OWL_RESTRICTION_MEANINGFUL_PREDICATES`, `bfs_triple_rank`, `count_meaningful_restriction_predicates`, `prune_degenerate_restriction_bnodes`, `prune_orphaned_bnode_subjects`, `remove_bnode_subgraph`) into the new shared module `onto/graph_prune.py`, reusable by both induced-subgraph retrieval and the prompt condenser.
• The `ontocast_extract` LangChain/MCP tool now reads its `render_mode` default from the `RENDER_MODE` environment variable (via `parse_render_mode_param`) instead of hardcoding `ontology_and_facts`.
Breaking changes:
• `LLM_GRAPH_FORMAT` now defaults to `jsonld`; any deployment that never set this variable will switch wire format on upgrade. Set `LLM_GRAPH_FORMAT=turtle` explicitly to preserve the previous behaviour.
• `ONTOLOGY_MAX_TRIPLES` now defaults to unlimited (was `50000`); workloads relying on the old cap to bound working-graph growth must set the variable explicitly.</description>
    </item>
    <item>
      <title>OntoCast v0.6.0</title>
      <link>https://github.com/growgraph/ontocast/compare/v0.4.3...v0.6.0</link>
      <guid isPermaLink="true">https://github.com/growgraph/ontocast/compare/v0.4.3...v0.6.0</guid>
      <pubDate>Sun, 09 Aug 2026 23:03:12 GMT</pubDate>
      <description>OntoCast v0.6.0 adds a LangChain integration module and first PyPI publication since v0.4.3.
• Adds `ontocast.integrations.langchain` module exposing ontocast_tools(tools), which returns a list of `BaseTool` objects any LangChain or LangGraph agent can call, with capability-gated tool inclusion and opt-in mutation via `mutating=True`.
• Adds `ontocast_tool_diagnostics` function to explain which tools were omitted from the LangChain toolset and why, making missing-backend failures visible.
• Introduces `ExternalEvidenceCacheEntry` as the supported replacement for UnitState external-evidence mirrors.
• Introduces `ontocast.onto.constants.PROVENANCE_METADATA_TERMS`, a module-level `frozenset` naming the classes and predicates the pipeline mints on provenance nodes, replacing the former class attribute `TripleStoreManager._PROVENANCE_METADATA_PREDICATES`.
• First release published to PyPI since v0.4.3; v0.5.0 and v0.5.1 were in-tree version bumps never tagged or published.
Breaking changes:
• Removed in-memory vector store: `VECTOR_STORE_BACKEND=memory`, `VectorStoreBackend.MEMORY`, and `tool/vector_store/in_memory.py` are gone; retrieval now requires Qdrant or LanceDB. Config.in_memory() is triple-store only (pyoxigraph).
• `AtomicToolBox` now takes `WebSearchConfig` and `EmbeddingBasedAggregator` now takes `AggregationConfig`; flat kwargs are removed from both.
• Removed `test-api` console script and `cli/test_api.py`; `requests` is dropped from the `server` extra.
• Removed `cmp-states` console script and `ontocast/cli/cmp_states.py`.
• A provenance unit node is now typed `schema:Text` (the class) instead of `schema:text` (a property IRI); graphs already in a triple store keep the old type until re-extracted, and any query filtering on `schema:text` must be updated.
• `TripleStoreManager._PROVENANCE_METADATA_PREDICATES` is removed; use `ontocast.onto.constants.PROVENANCE_METADATA_TERMS` instead.
• Removed dead modules `onto/context.py`, `tool/graph_version_manager.py`, and `tool/graph_diff.py` (~1,222 lines).
• Removed numerous previously import-visible symbols including `route_after_convert`, `route_after_ontology_consolidation`, `WorkflowNode.AGGREGATE_FACTS`, `WorkflowNode.PARALLEL_MAP_UNITS`, `aggregate_anchor_metrics`, `URIPromoter`, `OntologyDecision`, `FactsDecision`, `CHUNK_NULL_IRI`, `render_ontology_rank_diagnostics`, `set_failure` (no longer takes `success_score`), `graph_uri_override`, `ToolBox._unlink_ttl_files_if_ontology_iri`, and others; anything importing them out-of-tree breaks.
• `ontology_directory` is now strictly read-only: `ingest_ontology_ttl` no longer requires or touches it, and `delete_ontology_by_iri` no longer removes files from it. An ingested ontology lives only in the triple store and vector index and does not survive a rebuild from seeds.
• Dropped `AgentState` fields including UnitState shadows, never-read writers, and `graph_uri_override`; `graph_uri` is always `doc_namespace`.</description>
    </item>
  </channel>
</rss>
