no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
Previous revisionLast revision | |||
— | faq [2013/02/12 17:41] – 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...) | ||