Publications related to rPref
- P. Roocks. Computing Pareto Frontiers and Database Preferences with the rPref Package. In The R Journal, 8(2):393-404, 2016.
(First paper giving a comprehensive introduction to rPref) - P. Roocks. Relational and Algebraic Calculi for Database Preferences. PhD thesis, University of Augsburg, 2016.
(Mainly theoretical aspects of preferences, including some concepts for the implementation) - P. Roocks. Preference Decomposition and the Expressiveness of Preference Query Languages. In Mathematics of Program Construction (MPC 2015).
(Theoretical research about the expressiveness of the preference query language of rPref) - M. Endres, P. Roocks, W. Kießling. Scalagon: An Efficient Skyline Algorithm for all Seasons. In Database Systems for Advanced Applications (DASFAA 2015).
(The Scalagon algorithm is the default method for processing Pareto preferences in rPref) - P. Roocks, W. Kießling. R-Pref: Rapid Prototyping of Database Preference Queries in R In DATA '13. (First prototype of this package; all algorithms were implemented in R and hence quite slow)
Resources on Skylines/preferenes
- S. Börzsönyi, D. Kossmann, K. Stocker - The Skyline Operator (ICDE '01)
- W. Kießling - Foundations of preferences in database systems (VLDB '02)
- J. Chomicki - Preference formulas in relational queries (TODS)
Related R resources
- dplyr for quick and easy access to the most important data manipulation functions. Used in rPref for the grouping functionality.
- Rgraphviz (only on Bioconductor) and igraph for drawing and manipulating graphs. Both are used in rPref for the plotting Better-Than-Graphs.
- lazyeval for lazy evaluation used for the base preferences in rPref.
- R6 for the R6 reference classes used to implement the preference objects.
If you are interested to use rPref for Skyline calculation on SQL databases I recommend the RJDBC Package for JDBC access from R.
For more information about package development and/or implementing C++ algorithms for R have a look at:
- The Rcpp package offering a very neat interface between R and C++. Typical R classes like data frames and vectors can be directly accessed in C++ and converted to the corresponding STL classes.
- The "Advanced R" site from Hadley Wickham offering an excellent tutorial on advanced R practices and on the R/C++ interface. Additionally, he published a very recommendable "R Packages" tutorial on package development. rPref was written according to the guidelines of this tutorial and by using the developer packages devtools, testthat and roxygen2.