What is the best introduction in logic for the Semantic Web practitioners? The context is this: I have some experience with Linked Data, RDF, N3, ontologies, SPARQL, RDFLib and triplestores (Sesame, Virtuoso). I've read a lot of books / articles and also implemented some small projects, but now I want to be sure that I got the basics right and I want to be able to read the kind of articles written by: Frank van Harmelen, Ian Horrocks, Peter Patel Schneider, Marcelo Arenas, and Claudio Gutierrez which are full of mathematics and logics (take this for example: Semantics of SPARQL - I know it's old, but it's a good example). I know it's not just logic that I need to learn better in order to understand this, but also mathematics (Sets Theory, more Graph Theory). However currently logic is the part where I feel I need to work more (also due to my interest in reasoning). I do a lot of things related to graphs and sets anyway so I'm comfortable in that area.

An excellent introductory book is "Knowledge Representation and Reasoning", by Brachman and Levesque. It's a broad introduction to AI, so not specifically about logic, but does cover the basics of first order logic and how it's used in knowledge representation and reasoning.

For more in-depth material about logic, specifically description logics, the Description Logic Handbook by Baader is a good choice. Very thorough and in-depth.

I really liked (as described at http://www.snee.com/bobdc.blog/2007/10/the-dl-in-owl-dl.html) Nardi and Brachman's "An Introduction to Description Logics" at http://www.inf.unibz.it/~franconi/dl/course/dlhb/dlhb-01.pdf .

I've recently been reading The Foundations of Semantic Web by Pascal Hitzler et al.. Chapters 4,5 and 6 cover description logics and ontology and a large reference section for Logic in the appendices. I like how the book gets meaty without requiring you to have a PHD in the topic.