This book aims at providing an overview of probabilistic logic programming with a special emphasis on languages under the distribution semantics, and presents the main ideas for semantics, inference, and learning and highlights connections between the methods.