Entity / Operators
Operators: questions an application names
A query body says which rows it wants with a small, fixed vocabulary: eq,
contains, in, comparisons, and, or, not. An operator is a word an
application adds to that vocabulary: a rule it asks in many places
(published), a test the kernel does not have (a prefix match, a distance), or
a value a write computes (a joined label). It is declared once, as data, and
then every place a body runs means the same thing by it: the server's SQL, the
client's judgement of the rows it holds, a guard's rule, an invariant, a form.
What this enables, in short:
- A rule named once. Write "published" as an operator and use it in a public query, a visitor's Read rule and an invariant, with nothing to keep in step.
- Search and order the kernel lacks.
Text.startsWithfor a code typed from its start; an application's owndistanceto order the nearest rows first, paged by keyset like any column. - Writes that compute. A field set from the row and the input where the write commits, shown on the client before the answer comes.
- One meaning, checked. Laws an operator keeps, tested for each implementation; the in-memory and SQL implementations run against each other; a description a server can publish.