Metadata-Version: 2.4
Name: kmds-ui
Version: 0.1.0
Summary: Enterprise single-page workbench to ingest, manipulate, and serialize KMDS ontology graphs
Requires-Python: >=3.13
Requires-Dist: dash-bootstrap-components>=1.5.0
Requires-Dist: dash>=2.14.0
Requires-Dist: rdflib>=7.0.0
Description-Content-Type: text/markdown

KMDS Workbench is a browser-native SPA designed to load, edit, and save OWL/XML knowledge bases, featuring prefix-agnostic ingestion and dynamic state synchronization. Utilizing a Python 3.13 backend and Dash interface, it enables direct semantic graph manipulation and node mutation without rigid namespace restrictions.

# KMDS Workbench

An enterprise single-page workbench designed to ingest, manipulate, and serialize Knowledge Management Data Schema (KMDS) ontology graphs without prefix corruption or structural degradation.

---

## 💡 What is this Tool?

The **KMDS Workbench** is a specialized semantic data engineering interface built with **Python 3.13**, **Dash**, and **rdflib**. It bridges the gap between raw semantic OWL/XML data graphs and human analysts. It provides an isolated runtime workspace to:

* **Ingest** complex OWL/XML ontology files via simple drag-and-drop actions.
* **Visualize** raw semantic triples instantly inside a proportional, word-wrapped data grid.
* **Mutate** specific observation type predicates and literal text elements on the fly.
* **Serialize** updated in-memory graph models back to disk while maintaining exact original filenames.

---

## 🚀 How to Use It

### 1. Installation & Environment Setup

This repository utilizes `uv` for isolated, reliable workspace package management.

Clone the repository and spin up the enterprise application server:

```bash
# Clone the repository
git clone https://github.com
cd kmds

# Install dependencies and start the Dash local server runtime entry point
uv run python src/kmds_ui/app.py
```

*The terminal will output a local network address (typically `http://127.0.0`). Open this URL in your web browser.*

### 2. Ingesting an OWL Knowledge Base

* Drag and drop your `.owl` or `.xml` target ontology file directly into the dotted **Upload Control Area**.
* The application decodes the base64 byte array in-memory via an internal `io.BytesIO` wrapper.
* The **Diagnostic Indicators** card updates instantly, revealing the total count of parsed RDF triples alongside the formatted observation table records.

### 3. Modifying Knowledge Base Elements

* Click the selection checkbox next to any row inside the **Observation Grid**.
* An enterprise transactional modal will slide into view, pre-populated with that node's structural data.
* Select a new sub-class configuration from the drop-down menu, or overwrite text elements within the **Literal Text Content Overwrite Narrative** text area.
* Click **OK**. The underlying `active_graph` immediately commits the changes using precise string data-type declarations.

### 4. Exporting the Mutated State

* Click the green **Export KMDS Graph State** button.
* The application automatically triggers your web browser's native download workflow.
* **Zero Overhead Configuration:** The output module automatically pairs your updated payload with the exact file name captured during step 2, eliminating manual renames or broken file associations.
