Learning rule representations from Boolean data