Getting started

The following list is intended as a guideline how to get started using KnowRob. The first steps aim at getting an overview of what is available and how to use the existing modules. At some point, you will likely want to implement your own components, for which you will need a better understanding of the techniques used, such as OWL and Prolog. We will give some hints on how to go beyond the basic tutorials below.

Install the system

Follow the installation guide to set up the system on your computer and follow the KnowRob basics tutorial to learn how to start it, how to send queries, and how to visualize their results.

Go through the beginner tutorials

There is a number of tutorials that showcase the functionality provided by the different KnowRob components. They can be used in two different ways: As a beginner, you can just copy the queries and paste them into your Prolog shell to explore the functionality. All the tutorials below work without programming and should give you a quick overview of what is available.

On the other hand, the provided queries are also intended as a starting point for exploring the system. There are no tutorials for every possible adapation and extension, but it often helps to know which predicate shall be called with which arguments, to look at the code of that predicate, and to go further from there.

Read about the concepts behind KnowRob

To understand the design decisions and capabilities of the system, read about the important concepts and have a look at the related publications. The PhD thesis by Moritz Tenorth is currently the most comprehensive description of the concepts that underlie the KnowRob system. There is also a recent article in the IJRR journal about KnowRob.

Learn OWL and Prolog

For effectively using the KnowRob system, some basic knowledge about the main languages, OWL and Prolog, is helpful. It becomes a definite MUST when you would like to do some advanced stuff and start to implement your own modules. Below are links to good tutorials that will get you started.

OWL tutorials

Download the Protege OWL editor (version 4.x) which makes exploring and editing OWL files much easier and have a look at the documentation. The tutorial is not only a good introduction to the Protege program, but to modeling with OWL in general. It will take you a day or two, but is worth the time. Also look at the XML/OWL code you just created in Protege with a text editor to see how the relations you created using the GUI are represented in OWL. It is important not only to understand how things look in the editor, but also how they are encoded in the lower-level data structures.

Prolog tutorials

While you don't need sophisticated Prolog skills in the beginning for asking simple queries, you should have a rough understanding of how a Prolog program looks like and what the basic concepts are. Once you start to implement your own queries and (later) your own modules, knowledge of Prolog becomes more and more important. The tutorials at are a very good introduction – try to follow them at least until Lesson 6. The SWI Prolog Reference Manual provides a comprehensive overview of the available predicates.

Write your own modules

Once you have an overview of what KnowRob provides and know how to write OWL and Prolog, you can start to create your own KnowRob extensions. You will first need to decide which parts to implement in which language and then then proceed to create your own KnowRob package.