Differences

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

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
faq [2012/12/01 09:50] – created tenorthfaq [2013/02/12 17:41] – external edit 127.0.0.1
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 language should I use for what purpose? =====+ 
 +===== 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: 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: == == OWL: ==
 +  * Description language, no programming language
   * Class taxonomy of objects, actions, events,...   * Class taxonomy of objects, actions, events,...
   * Instances of these classes (e.g. environment models, experiences)   * Instances of these classes (e.g. environment models, experiences)
-  * Robot capabilities/action requirements\+  * Robot capabilities/action requirements
  
 == Prolog: == == Prolog: ==
-  * Internal representation (OWL parsed into Prolog triples) +  * Logical programming language: conceptually close to the knowledge representation, good at searching and pattern matching 
-  * Query language +  * Useful for functionality interacting closely with the internal representation (OWL gets parsed into Prolog triples) 
-  * Inference predicates (DL inference, computables,...)+  * Wrapper predicates to simplify commonly used queries, inference predicates (DL inference, computables,...) 
 +  * Functionality involving (recursive) search, graph matching, reasoning about ontological structure, ...
  
 == Java: == == Java: ==
-  * External interfaces (WWW, ROS,...) +  * Object-oriented programming language that can interact with Prolog via the [[http://www.swi-prolog.org/packages/jpl/|JPL interface]] 
-  * Library integration (ProbCog, Weka,...)+  * 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...)