This paper introduces a new algorithm called SIAO1 for learning first order logic rules with genetic algorithms. SIAO1 uses the covering principle developped in AQ where seed examples are generalized into rules using however a genetic search, as initially introduced in the SIA algorithm for attribute-based representation. The genetic algorithm uses a high level represention for learning rules in first order logic and may deal with numerical data as well as background knowledge such as hierarchies over the predicates or tree structured values. The genetic operators may for instance change a predicate into a more general one according to background knowledge, or change a constant into a variable. The evaluation function may take into account user preference biases.