1. notes on the single-process k model of the 1010 query language. 2. 1010 has a simple and elegant semantics: a query is a sequence of "ops". an op is a function which maps an input table T to an output table T'. state is maintained from op to op. 3. our 1010 model consists of five ops: base sel sort willbe link tabu 4. all queries begin with a 'base' op: base`T 5. tables are *inverted*. that is, a table is stored as a set of vectors, each of which constitutes a column. e.g. t has two columns f and g and three rows: t.f:10 20 30 t.g:`a`b`c 6. the basic operations one may perform on a table are: sel - select a subtable of t sort - sort t willbe - define a calculated column c link - link t to u tabu - tabulate t (select from t group by ret - return specified columns of t 7. 'sel' doesn't actually select the subtable of t. rather, it modifies a vector of row-indices I. if c is a column of t, then c I (i.e. c[I]) is a subcolumn of c. subsequent selects modify I. Similarly, 'sort' doesn't actually sort t. rather, it permutes the current state of I. 8. 'willbe' doesn't actually add a new column to t. e.g. if w is defined to be c+10 where c is a column of t, then the definition "c+10" is stored and computed when required. a cache W is used to store the result. this avoids recalculation of the column. 9. 'link' doesn't actually join the foreign table to the base table. rather, it stores the information required to compute the join (i.e. the permutation of the foreign table which aligns it with rows of the base table) until such time as a column in the foreign table is referenced. a cache L is used to store the link-index vector. this avoids recalculation of the link. 10. 'tabu' *does* compute the tabulation, while 'get' returns some or all of the columns of the current state of the base table. 11. in our model, 'tabu' and 'get' do not modify the base table or make any changes in state (I, C, L, W). rather, they return the tables which they compute, at which point one may either continue querying the current base table and state or reset both. 12. 1010_0.k is a simple implementation of the 1010 model. it performs no optimizations: 'sel' selects a subtable, 'sort' sorts the table, 'willbe' adds the defined column directly to the base table, and 'link' joins the foreign table to the base table.