33 lines
1.1 KiB
SQL
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)
|
|
);
|