Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:getting_started [2014/06/05 11:38] – external edit 127.0.0.1doc:getting_started [2021/02/18 07:58] (current) daniel86
Line 1: Line 1:
 ====== Getting started ====== ====== Getting started ======
 ~~NOTOC~~ ~~NOTOC~~
-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. We try to give some hints on how to go beyond the basic tutorials below.+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 ===== ===== Install the system =====
 Follow the [[/installation|installation guide]] to set up the system on your computer and follow the [[tutorial/knowrob_basics|KnowRob basics]] tutorial to learn how to start it, how to send queries, and how to visualize their results. Follow the [[/installation|installation guide]] to set up the system on your computer and follow the [[tutorial/knowrob_basics|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 to dig deeper into the systemThere are no tutorials for every possible adapation and extension, but often it helps to know which predicate shall be called with which arguments, to look at the code of that predicate and start exploring from there.+===== Read the documentation on GitHub ===== 
 +There is a number of README files formatted in markup description that are part of the [[https://github.com/knowrob/knowrob/blob/master/README.md|KnowRob repository]]. 
 +They document the organization of KnowRob into different sub-components, and what interfaces they provide.
  
 ===== Read about the concepts behind KnowRob ===== ===== 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 [[http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:bvb:91-diss-20111125-1079930-1-7|PhD thesis by Moritz Tenorth]] is currently the most comprehensive description of the concepts that underlie the KnowRob system. There is also a [[http://ijr.sagepub.com/content/32/5/566.abstract|recent article]] in the IJRR journal about 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 [[http://knowrob.org/publications|here]]. 
 ===== Learn OWL and Prolog ===== ===== 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.
-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 ==== ==== OWL tutorials ====
-Download the [[http://protege.stanford.edu/download/protege/4.1/installanywhere/|Protege OWL editor]] (version 4.x) which makes exploring and editing OWL files much easier and have a look at the [[http://protegewiki.stanford.edu/index.php/Protege4GettingStarted|documentation]]. The [[http://owl.cs.manchester.ac.uk/tutorials/protegeowltutorial/resources/ProtegeOWLTutorialP4_v1_2.pdf|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 now only to understand how things look in the editor, but also how they are encoded in the lower-level data structures.+Download the [[http://protege.stanford.edu/download/protege/4.1/installanywhere/|Protege OWL editor]] (version 4.x) which makes exploring and editing OWL files much easier and have a look at the [[http://protegewiki.stanford.edu/index.php/Protege4GettingStarted|documentation]]. The [[http://130.88.198.11/tutorials/protegeowltutorial/resources/ProtegeOWLTutorialP4_v1_3.pdf|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 ==== ==== Prolog tutorials ====
-Though you probably won't need very sophisticated Prolog skills in the beginning, you should have a rough understanding of how a Prolog program looks like and what the basic concepts are to implement your own queries and (later) modules. The tutorials at http://www.learnprolognow.org/ are a very good introduction -- try to follow them at least until Lesson 6. +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 http://www.learnprolognow.org/ are a very good introduction -- try to follow them at least until Lesson 6. The [[http://swi-prolog.org/pldoc/doc_for?object=manual|SWI Prolog Reference Manual]] provides a comprehensive overview of the available predicates.
  
 ===== Write your own modules ===== ===== 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 [[faq#Which programming language should I use for what purpose|which language]] and then then proceed to [[create your own KnowRob package]].
  
-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 [[faq#Which programming language should I use for what purpose|which language]] and then then proceed to [[create your own KnowRob package]].