author | Alan Dipert
<alan@dipert.org> 2021-03-26 16:03:16 UTC |
committer | Alan Dipert
<alan@dipert.org> 2021-03-26 16:03:16 UTC |
parent | 71d57f3a17986f9f201a32f0c7a6466e6562a8ce |
README.org | +6 | -6 |
diff --git a/README.org b/README.org index 39f65d9..b0a95f0 100644 --- a/README.org +++ b/README.org @@ -6,8 +6,8 @@ Hoplite is a JavaScript framework for building single-page web applications in t The Hoplite data model (data elements that participate in reactivity and are used to encode continuous program behaviors) consists of: -- **atoms**: set of immutable primitive types in JavaScript (and encodable as JSON) that participate in ~===~ such as numbers, booleans, and strings. -- **databases**: mutable sets of immutable **tuples** each containing one or more **atoms**. Despite their mutability, databases maintain have an identity given by contained tuples. +- *atoms*: set of immutable primitive types in JavaScript (and encodable as JSON) that participate in ~===~ such as numbers, booleans, and strings. +- *databases*: mutable sets of immutable *tuples* each containing one or more *atoms*. Despite their mutability, databases maintain have an identity given by contained tuples. =datalog.mjs= defines the data model and a Datalog engine for querying it. @@ -15,10 +15,10 @@ The Hoplite data model (data elements that participate in reactivity and are use The following reference types facilitate reactive programming. Together, they transactionally mediate mutation and observation of networks of atoms and databases: -- **Input**: a mutable atom. -- **Formula**: an immutable atom. The value of the atom is given by a function, and the continuous application of that function to one or more atom (Input or Formula) dependencies. -- **Database**: a mutable set of tuples. Tuples may be transactionally added and removed in batch. Databases also participate in transactions with other databases, such that all may appear consistent from the perspective of dependencies. -- **Views**: an immutable set of tuples. The value of the view is given by a Datalog query. The =source= parameters of the query may consist of any other databases or views and the =argument= parameters of the query may consist of any other inputs or formulas. +- *Input*: a mutable atom. +- *Formula*: an immutable atom. The value of the atom is given by a function, and the continuous application of that function to one or more atom (Input or Formula) dependencies. +- *Database*: a mutable set of tuples. Tuples may be transactionally added and removed in batch. Databases also participate in transactions with other databases, such that all may appear consistent from the perspective of dependencies. +- *Views*: an immutable set of tuples. The value of the view is given by a Datalog query. The =source= parameters of the query may consist of any other databases or views and the =argument= parameters of the query may consist of any other inputs or formulas. Relationships between reference types are maintained in =window.depGraph=, a global 2-place relation (bag; =Map= of reference object to =Set= of dependencies) that associates dependencies with dependers.