Differences
This shows you the differences between two versions of the page.
Last revisionBoth sides next revision | |||
doc:faq [2013/04/22 08:32] – created admin | doc:faq [2013/12/04 14:26] – admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== FAQ ====== | ====== 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...) | ||