Differences

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

Link to this comparison view

faq [2013/02/12 18:41]
127.0.0.1 external edit
faq [2014/06/05 13:38] (current)
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...) +