The most important preference composition operator is the Pareto operator (p1 * p2) to formulate a Skyline query.
A tuple t1 is better than t2 w.r.t. p1 * p2 if it is strictly better w.r.t. one of the preferences p1, p2 and is better or equal w.r.t. the other preference.The syntactical translation from other query languages supporting skylines/Preferences to rPref is as follows:
- A query in the syntax from Borzsonyi et. al (2001) like
"... SKYLINE OF a MAX, b MIN, c MAX"
corresponds in rPref to the preferencehigh(a) * low(b) * high(c).
A query in the syntax from Kiessling (2002) like"... PREFERRING a LOWEST AND (b HIGHEST PRIOR TO c LOWEST)"
corresponds in rPref tolow(a) * (high(b) & low(c)).
A query in the syntax of the "Skyline" feature of the commercial database "EXASOL EXASolution 5" like"... PREFERRING LOW a PLUS (b = 1 PRIOR TO LOW c))"
corresponds in rPref tolow(a) * (true(b == 1) & low(c)).
Note that these query conversions can be done by show.query.