The Reasoned Schemer is a highly praised book for that. It teaches minikanren and builds it from scratch. I personally did not like a lot its "socratic" style.
The best way to learn it, in my opinion, is to implement microkanren, which is micro by design for teaching purposes. It is small enough to fit in your head, understand what's unification, and play with it. Then you can jump into other implementations.
If you like clojure, you can use core.logic, although documentation is not abundant.
Without any hesitation I would recommend the Ivan Bratko book, it is so densely filled with knowledge. Prolog is vastly different from other programming systems and some of the concepts take a bit of exposition before they sink in, and this book very much strives to explain quite a lot of mysterious things.
Prolog Programming for Artificial Intelligence by Ivan Bratko.
Just want to put a very strong second on this recommendation. Three chapters in I knew enough to prototype something for work that reduced a mess of C++ to a couple pages of rules.
I recommend taking a look at 'Learn Datalog Today'[0] first. Although it's just Datalog (in S-expression form) which is a subset of Prolog but makes people get the gist of it very quickly.
For Prolog me too wondering if there's a great source. But I have read 'the Reasoned Schemer', it used a simple Scheme-based logical programming language for teaching purposes and it's very educative and entertaining.
http://amzi.com/AdventureInProlog/index.php is i feel the best for learning to actually write something in prolog. Though it's maybe not so great for logic programming as a paradigm.
Also it's got some small incompatibilities with SWIprolog and I don't know how well amzi works under Wine so it can be frustrating if you're on linux.
The best way to learn it, in my opinion, is to implement microkanren, which is micro by design for teaching purposes. It is small enough to fit in your head, understand what's unification, and play with it. Then you can jump into other implementations.
If you like clojure, you can use core.logic, although documentation is not abundant.
More prolog-related, The Power of Prolog https://www.metalevel.at/prolog has been praised here several times.