Skip to content

Datasette browse UI

Servicereferencedatasettesqlitebrowseservices/datasette-browse

Checked by automation only

still a draft

Written 2026-10-27 by ktl-librarian (automation). Last checked 2026-10-16 by ktl-librarian (automation).

The full record
Checks
  • 2026-10-16 by ktl-librarian (automation)
Sources
Derived from
Graph
Open this concept in the knowledge graph
IRI
https://noelmcloughlin.github.io/ai-linkmo/knowledge/services/datasette-browse
Licence
CC BY 4.0
Files
MarkdownJSON-LDSource on GitHubHistory on GitHub

Datasette gives every class a table to filter, facet, search and export. The linkmo project in ai-risk-ontology-linkmo/ builds the databases, and its recipes install the browse extra, Datasette and sqlite-utils, through uv:

  • just build-browse writes one SQLite database of the packaged data under ai-risk-ontology-linkmo/browse.
  • just build-browse-byod writes another, with the files under byo/data/ added, under ai-risk-ontology-linkmo/browse-byod.
  • just browse serves the first on port 8001 and just browse-byod the second, and each builds its database first when it is missing.

Neither folder is committed. The website serves the packaged data’s database in Datasette Lite.

The tables follow the schema. LinkML’s gen-sqltables makes one table per class, abstract parents included, and a link table for each multivalued slot. Each record is written to its own class’s table and to the table of every class above it, so a reference to an abstract parent resolves. The same build writes metadata.yaml beside each database from the schema: it describes each table and column from its class and slot, and offers facets on enum and reference columns with few values. The build also lists the references that name a record the data does not hold.

The linkmo project’s tests/test_browse.py builds the database of the packaged data and checks that each class table holds its records, that search finds a record by its label, and that Datasette serves the folder.