Differences

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

Link to this comparison view

Last revisionBoth sides next revision
doc:faq [2013/04/22 08:32] – created admindoc:faq [2013/12/04 14:26] admin
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...)