Relational Operations in FOLE
This paper discusses relational operations in the first-order logical environment FOLE. Here we demonstrate how FOLE expresses the relational operations of database theory in a clear and implementable representation. An analysis of the representation of database tables/relations in FOLE reveals a principled way to express the relational operations. This representation is expressed in terms of a distinction between basic components versus composite relational operations. The 9 basic components fall into three categories: reflection (2), Booleans or basic operations (3), and adjoint flow (4). Adjoint flow is given for signatures (2) and for type domains (2), which are then combined into full adjoint flow. The basic components are used to express various composite operations, where we illustrate each of these with a flowchart. Implementation of the composite operations is then expressed in an input/output table containing four parts: constraint, construction, input, and output. We explain how limits and colimits are constructed from diagrams of tables, and then classify composite relational operations into three categories: limit-like, colimit-like and unorthodox.
READ FULL TEXT