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.
I have been just using a single function `org-roam-find-file` to insert or read an existing note.
I'm pretty sure there are various other functionalities, but this seems to be enough for me as of now. If I have to search something with it, I just fall back to deadgrep's [0] interface. So, I don't think you need to read the entire manual to be productive! Infact, I would say that starting small and slowing forming the habit is a good way to use this effectively.
For the past couple of months I have been using org-roam [0] for this and I find it quite effective. Just found out that I have 87 different notes lying around:
The whole interactive experience of evaluating awk script and tinkering with it in a single place, greatly helped while learning it.