This shows you the differences between two versions of the page.

Link to this comparison view

doc:faq [2013/04/22 08:32]
admin created
doc:faq [2013/12/04 14:26] (current)
Line 1: Line 1:
 ====== FAQ ====== ====== FAQ ======
-===== How can I debug Prolog programs? ===== 
-There is a [[http://​www.swi-prolog.org/​pldoc/​doc_for?​object=section%282,​%273.5%27,​swi%28%27/​doc/​Manual/​guitracer.html%27%29%29|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. 
-===== Which programming language should I use for what purpose? ===== 
-KnowRob is implemented in a combination of OWL, Prolog and Java. When creating extensions, it is worth considering which language to implement them in: 
-== OWL: == 
-  * Description language, no programming language 
-  * Class taxonomy of objects, actions, events,... 
-  * Instances of these classes (e.g. environment models, experiences) 
-  * Robot capabilities/​action requirements 
-== Prolog: == 
-  * Logical programming language: conceptually close to the knowledge representation,​ good at searching and pattern matching 
-  * Useful for functionality interacting closely with the internal representation (OWL gets parsed into Prolog triples) 
-  * Wrapper predicates to simplify commonly used queries, inference predicates (DL inference, computables,​...) 
-  * Functionality involving (recursive) search, graph matching, reasoning about ontological structure, ... 
-== Java: == 
-  * Object-oriented programming language that can interact with Prolog via the [[http://​www.swi-prolog.org/​packages/​jpl/​|JPL interface]] 
-  * Conceptually further away from the internal knowledge representation 
-  * Good library support, therefore useful for external interfaces (WWW, ROS,...) and for integrating libraries (ProbCog, Weka, Visualization...)