<commit_before># A very simple and incomplete overview of Eve

Eve is currently written in JavaScript with a couple of sweet.js macros that are degined in src/macros.sjs. To start the server and get going you'll need node and npm installed, and then run:

```shell
npm install
npm run dev
```

Then open http://localhost:3000 in a browser.

# Vocabulary

* **System** - The structure that holds all the views in the database and is resonsible for turning code into a plan for execution.
* **Memory** - The structure that holds the values of a view in the database. These are copy-on-write.

* **View** - A table in the database that may either be constant or built from queries.
* **Field** - A column in a view
* **Query** - A view can be populated by a query (a set of relational algebra operations) or even multiple queries (this is how recursion works). Queries are what "code" in Eve is attached to.

* **ConstantConstraint** - Ensures that the value of a column is the given constant. This is how you would create a column with a constant value, as well as create a filter for a column that is populated by something else.

* **ViewConstraint** - You can think of this as a "FROM" in SQL. It defines that a query is going to pull from some other view.
* **ViewConstraintBinding** - These define the fields of the ViewConstraint that you want to pull into this view and what local fields should be populated with their values.

* **FunctionConstraint** - Defines a fuction that will be computed and which field that value should be placed in.
* **FunctionConstraintInput** - Defines the fields that should be passed to the given function and what their names should be.

* **AggregateConstraint** - Defines a function that will aggregate over the given view and what field the result should be placed in.
* **AggregatConstraintBinding** - Allows you to bind local fields to fields in the table that is being aggregated over. This is how groups work.
* **AggregateConstraintSolverInput** - Allows you to reference local fields in the aggregate function
* **AggregateConstraintAggregateInput** - Defines the fields of the view currently being aggregated over that should be available in the aggregate function.

# Code breakdown
<commit_msg>more formatting<commit_after># A very simple and incomplete overview of Eve

Eve is currently written in JavaScript with a couple of sweet.js macros that are degined in src/macros.sjs. To start the server and get going you'll need node and npm installed, and then run:

```shell
npm install
npm run dev
```

Then open http://localhost:3000 in a browser.

# Vocabulary

* **System** - The structure that holds all the views in the database and is resonsible for turning code into a plan for execution.
* **Memory** - The structure that holds the values of a view in the database. These are copy-on-write.
* **View** - A table in the database that may either be constant or built from queries.
* **Field** - A column in a view
* **Query** - A view can be populated by a query (a set of relational algebra operations) or even multiple queries (this is how recursion works). Queries are what "code" in Eve is attached to.
* **ConstantConstraint** - Ensures that the value of a column is the given constant. This is how you would create a column with a constant value, as well as create a filter for a column that is populated by something else.
* **ViewConstraint** - You can think of this as a "FROM" in SQL. It defines that a query is going to pull from some other view.
* **ViewConstraintBinding** - These define the fields of the ViewConstraint that you want to pull into this view and what local fields should be populated with their values.
* **FunctionConstraint** - Defines a fuction that will be computed and which field that value should be placed in.
* **FunctionConstraintInput** - Defines the fields that should be passed to the given function and what their names should be.
* **AggregateConstraint** - Defines a function that will aggregate over the given view and what field the result should be placed in.
* **AggregatConstraintBinding** - Allows you to bind local fields to fields in the table that is being aggregated over. This is how groups work.
* **AggregateConstraintSolverInput** - Allows you to reference local fields in the aggregate function
* **AggregateConstraintAggregateInput** - Defines the fields of the view currently being aggregated over that should be available in the aggregate function.

# Code breakdown

{'fraction_non_alphanumeric': 0.06064659977703456, 'fraction_numerical': 0.0017837235228539577, 'mean_word_length': 4.2714453584018806, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4068899', 'n_tokens_mistral': 1098, 'n_tokens_neox': 1068, 'n_words': 691}