  The dream of building machines that can do science has inspired scientists
for decades. Remarkable advances have been made recently; however, we are still
far from achieving this goal. In this paper, we focus on the scientific
discovery process where a high level of reasoning and remarkable
problem-solving ability are required. We review different machine learning
techniques used in scientific discovery with their limitations. We survey and
discuss the main principles driving the scientific discovery process. These
principles are used in different fields and by different scientists to solve
problems and discover new knowledge. We provide many examples of the use of
these principles in different fields such as physics, mathematics, and biology.
We also review AI systems that attempt to implement some of these principles.
We argue that building science discovery machines should be guided by these
principles as an alternative to the dominant approach of current AI systems
that focuses on narrow objectives. Building machines that fully incorporate
these principles in an automated way might open the doors for many
advancements.
