Elsevier

Science of Computer Programming

Volume 155, 1 April 2018, Pages 173-197
Science of Computer Programming

Higher-order logic programming: An expressive language for representing qualitative preferences

https://doi.org/10.1016/j.scico.2017.09.002Get rights and content
Under an Elsevier user license
open archive

Highlights

  • A unifying approach for representing qualitative preferences is introduced.

  • The proposed approach uses a simple fragment of higher-order logic programming.

  • The new approach can represent a broad class of preference relations and operators.

  • Apart from tuple-preferences, the framework can represent preferences over sets.

Abstract

We consider the problem of concisely representing and handling preferences in logic programming and relational databases. Our starting point is the well-known proposal developed in [2] which advocates the embedding of first-order preference formulas into relational algebra through a winnow operator that is parameterized by a database relation and a preference formula. We argue that despite its elegance, the above proposal has certain shortcomings: only intrinsic preference formulas are supported, the preference relations and the preference queries are expressed in two different languages, and there is no direct way to define alternative operators beyond winnow. We propose the use of higher-order logic programming as a logical framework that remedies the above deficiencies. In particular, the proposed framework supports both intrinsic and extrinsic preference formulas, it can represent both preference relations as-well-as queries, and it can be used to define a variety of interesting alternative operators beyond winnow. We demonstrate the feasibility of our approach by presenting an implementation and an experimental evaluation of all the proposed concepts in the higher-order logic programming language Hilog.

Keywords

Preferences
Higher-order logic programming
Hilog

Cited by (0)