Combining First-Order Logic and Logic Programming Using Fol-programs by Michael Felderer