Welcome to this tutorial! In this guide, we will walk you through the basics of using our FDM and FQL. For the code examples, we will use Python syntax. But note, that all these concepts apply to other programming languages as well. The ideas behind FDM and FQL are not bound to one particular programming language.
The Functional Data Model — attribute functions as a uniform replacement for tuples, relations, databases, and sets of databases.
- Attribute Functions — TF, RF, DBF, SDBF
- Accessing Data — bracket, dot, call syntax
- Computed Attribute Values —
computed= - Computed Attribute Functions —
default=/domain= - Frozen Attribute Functions — read-only AFs
- Rename — rename keys (ρ operator)
- Schemas & Constraints
- Composite Keys — RSF, Tensor
- Observers — reactive notifications
- Visualization — interactive schema graphs
Persistence for attribute functions — SQLite-backed key/blob store with automatic swizzling/unswizzling.
- Store — register, load, and lazy-load AFs
The Functional Query Language — unary operators that transform AFs.
- Filtering: filter, subset
- Projection: project
- Ranking: rank_by
- Transform: transform
- Grouping: partition, group_by
- Aggregation: aggregate, disaggregate
- Set operations: union, intersect / minus
- Join: join, subdatabase
- Predicates: structured predicates
- Plan inspection: explain() and plan IR
Listen to the podcast — an English-language dialogue summarizing the core ideas of the FDM/FQL paper (script). A good starting point before diving into the details above.
Note: Both the podcast audio and script were generated with AI assistance.