The focus of this textbook is the meaning of linguistic expressions, typically full sentences and longer texts. The author describes the conceptual and formal tools required for building semantic systems capable of understanding text, both for specific tasks such as information extraction and question answering and for broad undertakings such as the Semantic Web. The goal here is to present the fundamental ideas that working systems rest on, and this book is aimed primarily at Computer Science or Engineering students interested in developing semantic systems. The ideal reader is a hacker, a person who delights in having an intimate understanding of the internal workings of a system.