This first general textbook An introduction to ontology engineering has as main aim to provide the reader with a comprehensive introductory overview of ontology engineering. A secondary aim is to provide hands-on experience in ontology development that illustrate the theory. The book is divided into three blocks: Block I: logic foundations for ontologies both regarding the languages (mainly First Order predicate Logic, Description Logics, and OWL) and automated reasoning. Block II: developing good ontologies with methods and methodologies, the top-down approach with foundational ontologies, and the bottom-up approach to extract as much useful content as possible from legacy material. Block III: advanced topics with a selection of areas of specialisation, including Ontology-Based Data Access, the interaction between ontologies and natural languages (multilingual ontologies, controlled natural language), and advanced modelling with additional language features (fuzzy and temporal ontologies).