Files
paperspec/sql/bundle-sqlite.sql
T
alexm 4fa326dc76
check / check (push) Successful in 42s
site / site (push) Successful in 3m4s
First implementation (#1)
Reviewed-on: #1
2026-10-15 05:47:05 -04:00

33 lines
1.1 KiB
SQL

-- scienting-bundle/1: the SQLite file a reader or a server reads.
-- Normative: spec/13-database.md. SQLite only: it uses FTS5.
-- A bundle holds sql/doc.sql and sql/store.sql, then these tables.
-- License: CC0-1.0.
CREATE TABLE bundle_meta (
name VARCHAR(64) NOT NULL,
value TEXT NOT NULL,
PRIMARY KEY (name)
);
-- One row per searchable unit: a sentence, a cell, an equation outside a sentence, or a figure-text item.
-- `unit` is sentence, cell, equation or figure-text. `context` is the kind of the node's parent:
-- paragraph, heading, caption, footnote, row and so on. A figure-text item names its panel as `node`
-- and its role as `context`. `text` is the normalized plain projection; withheld text is never indexed.
CREATE VIRTUAL TABLE search USING fts5(
doc_key UNINDEXED,
node UNINDEXED,
unit UNINDEXED,
context UNINDEXED,
text,
tokenize = 'unicode61 remove_diacritics 2'
);
-- Reserved for embeddings with sqlite-vec; see spec/13-database.md.
CREATE TABLE embeddings_meta (
model VARCHAR(128) NOT NULL,
dimensions INTEGER NOT NULL,
rights_use VARCHAR(64) NOT NULL,
made_at VARCHAR(20) NOT NULL,
PRIMARY KEY (model)
);