Relational and Algebraic Calculi
for Database Preferences

PhD Thesis and Additional Material

About this page

This page offers a collection of additional material for my PhD thesis "Relational and Algebraic Calculi for Database Preferences", which was done at the department of computer science at the University of Augsburg under supervision of Prof. Dr. Bernhard Möller.

Related resources:

R scripts for preference decomposition

The following scripts require the rPref package and the Shiny package. Both have to installed once by:

install.packages("rPref")
install.packages("shiny")

The file pref_decomp.zip contains all relevant R source files for the (power set) preference decomposition. This zip archive contains the following files:

  • decomposition_framework.r: All preference decomposition algorithms and some helper functions.
  • decomposition_examples.r: A comprehensive collection of examples, covering the most figures, remarks and examples from Chapter 5 of my PhD thesis. This script is subdivided in:
    • the standard decomposition (Section 5.1-5.2 of my thesis),
    • the optimized (power set) decomposition (Section 5.3-5.4), and
    • the decomposition of the triangle preference (Section 5.5).
    Note that you have to adapt the path to the decomposition_framework.r in the first line of this script. Then, the script can be run line by line.
  • ui.r and server.r: A Shiny application offering an interactive (power set) preference decomposition.
You can directly run the Shiny app within RStudio with installed Shiny package via:
library(shiny)
runUrl("http://p-roocks.de/phd/pref_decomp.zip")
Figure:
Shiny app demonstrating the preference decomposition.

The file decomposition_examples.r contains revised versions of the decomposition algorithms which have been originally encoded in the following scripts:

Prover inputs for proving the distributive law

The first version of this automated proof (pdf document) has been published together with the publication An Algebraic Calculus of Database Preferences.

The revised version of this automated proof from the PhD thesis is available in the zip archive prover_input.zip.

Contact

If you have remarks or want to report bugs, feel free to write a mail to me.