Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
faq [2012/12/01 12:41] – [FAQ] tenorthfaq [2013/04/22 08:32] 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...) +