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.tsxextension/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 query —
SELECT * 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.
Links¶
Evolution¶
UX spec: ui/QUERY_WORKBENCH.md. SQL JOIN / GROUP BY deferred to v1.0.