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.

Read the documentation on GitHub

There is a number of README files formatted in markup description that are part of the KnowRob repository. They document the organization of KnowRob into different sub-components, and what interfaces they provide.

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. There is a growing collection of KnowRob related articles that are listed here.

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.