Skip to content

Query workbench architecture

Status: SQL/SPARQL editor + schema browser shipped v0.13

Scope

Query Workspace: editor → LSP execution → results table → history/saved queries → schema browser.

Flow

User edits SQL or SPARQL
    ↓
ontocore/query or ontocore/sparql (LSP)
    ↓
Result rows + truncated flag
    ↓
Results table + export
    ↓
QueryExecuted event → WorkspaceStore

Current implementation

  • extension/webview-ui/src/panels/QueryWorkbench.tsx
  • extension/webview-ui/src/components/SchemaBrowser.tsx
  • LSP ontocore/listSqlSchema — table/column metadata
  • LSP methods in lsp-api.md
  • SQL subset: sql-reference.md

Store shape (v0.13)

interface QueryState {
  language: "sql" | "sparql"
  text: string
  lastResult: QueryResult | null
  history: QueryHistoryEntry[]
  saved: SavedQuery[]
  schemaBrowserExpanded: boolean
}

Schema browser (v0.13)

  • Virtual table list from ontocore/listSqlSchema (includes Horned-OWL axiom tables)
  • Column names and types per table
  • Insert column — appends column name to editor
  • Insert table querySELECT * FROM <table>
  • Collapsible sidebar; state in query.schemaBrowserExpanded

Example axiom tables: domain_axioms, range_axioms, restrictions, equivalent_class_axioms, disjoint_class_axioms. See sql-reference.md.

Evolution

UX spec: ui/QUERY_WORKBENCH.md. SQL JOIN / GROUP BY deferred to v1.0.