Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| faq [2012/12/01 12:41] – [FAQ] tenorth | faq [2014/06/05 11:38] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== FAQ ====== | + | # |
| - | + | ||
| - | ===== How can I debug Prolog programs? ===== | + | |
| - | There is a [[http:// | + | |
| - | + | ||
| - | + | ||
| - | ===== 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/ | + | |
| - | + | ||
| - | == Prolog: == | + | |
| - | * Logical programming language: conceptually close to the knowledge representation, | + | |
| - | * 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:// | + | |
| - | * 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...) | + | |

