Can you please share the details of such.
IMHO that would be quite hard as there is no one correct way.
To put the thought into a different perspective I think of Prolog as not another programming language but a language that allows one to create various models for solving problems. While many of the models simulate a procedural process, others make use of the logic variables to give multiple answers, or generate multiple values for testing, or use constraints to solve a problem, etc. While I do use pure predicates from time to time, as I noted in another post (which I can’t find at the moment), I also view Prolog as being able to cover the gambit from fully imperative (how) to fully pure (what) and degrees of variation in between.
For more pure predicates see the info section in these StackOverflow users