This page describes some of the main concepts behind the KnowRob system. For an introductory paper, please have a look at KnowRob -- A Knowledge Processing Infrastructure for Cognition-enabled Robots (Moritz Tenorth, Michael Beetz), In International Journal of Robotics Research (IJRR), volume 32, 2013.
In KnowRob, knowledge is represented in the Web Ontology Language (OWL). OWL has a XML-based concrete syntax, and allows to formally describe relational knowledge in a Description Logics (DL) dialect.
For formally modeling knowledge, it is very useful to distinguish between general relations and environment-specific information. In OWL, this is reflected by the distinction between classes and instances. Class knowledge is described in the so-called TBOX (terminological box); knowledge about instances of these classes is contained in the ABOX (assertional box). The relation between classes and instances is similar to object-oriented programming.
When OWL files are loaded into the system, they are internally stored as triples
triple(Subject, Predicate, Object)
and can be accessed with special predicates, e.g. holds(S, P, O). These predicates operate on the internal representation that is created from the OWL files and handle properties like transitivity of properties etc. On the other hand, Prolog is used as a programming language to implement specialized reasoning modules and to interface the knowledge base with external data.
It is important to understand that KnowRob separates knowledge about the world (which is, as far as possible, represented in OWL) from implementation issues and deduction rules (which can be implemented in Prolog). OWL's strict formal semantics, its typing and the existing reasoning methods are the main reasons for this separation. In order to profit from these properties, it is thus necessary that information which is read from external sources is transformed into a representation that is compatible to the OWL knowledge.