From c94e173547f0cc8006a66b960eea182a7798b021 Mon Sep 17 00:00:00 2001 From: Matteo Bongiovanni <40599507+MatBon01@users.noreply.github.com> Date: Tue, 25 Apr 2023 18:35:51 +0100 Subject: [PATCH] Add reference to paper supplementary (#36) * Add stand-in reference for supplementary file part B * Write introduction holding prototype citation --- report/bibs/combined.bib | 14 ++++++++++++++ report/project/benchmark/implementation.tex | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/report/bibs/combined.bib b/report/bibs/combined.bib index ac31f5e..664b0cd 100644 --- a/report/bibs/combined.bib +++ b/report/bibs/combined.bib @@ -12,6 +12,20 @@ @article{RelationalAlgebraByWayOfAdjunctions url={http://dl.acm.org/citation.cfm?id=3236781}, doi={10.1145/3236781} } +@article{RelationalAlgebraByWayOfAdjunctionsPrototypeImplementation, + author={Jeremy Gibbons and Fritz Henglein and Ralf Hinze and Nicolas Wu}, + year={2018}, + month={Jul 30,}, + title={Relational algebra by way of adjunctions}, + journal={Proceedings of ACM on programming languages}, + volume={2}, + number={ICFP}, + pages={1-28}, + abstract={Bulk types such as sets, bags, and lists are monads, and therefore support a notation for database queries based on comprehensions. This fact is the basis of much work on database query languages. The monadic structure easily explains most of standard relational algebra---specifically, selections and projections---allowing for an elegant mathematical foundation for those aspects of database query language design. Most, but not all: monads do not immediately offer an explanation of relational join or grouping, and hence important foundations for those crucial aspects of relational algebra are missing. The best they can offer is cartesian product followed by selection. Adjunctions come to the rescue: like any monad, bulk types also arise from certain adjunctions; we show that by paying due attention to other important adjunctions, we can elegantly explain the rest of standard relational algebra. In particular, graded monads provide a mathematical foundation for indexing and grouping, which leads directly to an efficient implementation, even of joins.}, + isbn={2475-1421}, + url={http://dl.acm.org/citation.cfm?id=3236781}, + doi={10.1145/3236781} +} @book{DatabaseSystems, author={Hector Garcia-Molina and Jeffrey Ullman and Jennifer Widom}, year={2013}, diff --git a/report/project/benchmark/implementation.tex b/report/project/benchmark/implementation.tex index 19aaaaf..628ca3a 100644 --- a/report/project/benchmark/implementation.tex +++ b/report/project/benchmark/implementation.tex @@ -1,4 +1,10 @@ \section{Implementation} +We structure our implementation as a library, usually a file in a \texttt{Data} +module per data structure. We base a lot of the content on an example +implementation given in +\cite{RelationalAlgebraByWayOfAdjunctionsPrototypeImplementation}. +\todo{Write what I contributed} + \subsection{Pointed sets} This section describes the types that declare instances of the \texttt{PointedSet} type class.