Integrating logic and probability has a long story in Artificial Intelligence and Machine Learning. This book attempts the challenge of exploring and developing high performing algorithms for a state-of-the-art model that integrates first-order logic and probability. However, much remains to be done until AI systems will reach human intelligence. A powerful language to achieve this is Markov Logic which embodies the experience and successes of various subfields of AI and Statistics. It allows to express complexity and uncertainty, just as humans would do in complex environments. Moreover, complex models that reflect real-world phenomena can be learned efficiently from examples and powerful inference algorithms can be used to answer queries about the world. This book makes an effort towards building powerful algorithms for these two tasks. Thus it is hoped that it will constitute another step forward in our attempt to better understand and build intelligent systems.