Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
faq [2013/02/12 17:41] – external edit 127.0.0.1faq [2013/04/22 08:32] (current) admin
Line 1: Line 1:
-====== FAQ ====== +#REDIRECT doc: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...) +