There is a graphical debugger in SWI Prolog that is very useful to go through your program step by step, inspect the variable bindings and the open choice points.
KnowRob is implemented in a combination of OWL, Prolog and Java. When creating extensions, it is worth considering which language to implement them in: