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:important_concepts [2021/02/18 08:05] – [System architecture] daniel86doc:important_concepts [2022/03/31 08:26] (current) – [Description Logics, Classes, Instances, OWL, Prolog] sasjonge
Line 6: Line 6:
 =====  Description Logics, Classes, Instances, OWL, Prolog  ===== =====  Description Logics, Classes, Instances, OWL, Prolog  =====
  
-In KnowRob, all knowledge is represented in the [[http://en.wikipedia.org/wiki/Web_Ontology_Language|Web Ontology Language (OWL)]]. This XML-based format allows to formally describe relational knowledge in a [[http://en.wikipedia.org/wiki/Description_Logic|Description Logics (DL)]] dialect.+In KnowRob, knowledge is represented in the [[http://en.wikipedia.org/wiki/Web_Ontology_Language|Web Ontology Language (OWL)]]. OWL has a XML-based concrete syntax, and allows to formally describe relational knowledge in a [[http://en.wikipedia.org/wiki/Description_Logic|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. 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.
Line 12: Line 12:
 KnowRob is implemented in [[http://www.swi-prolog.org|SWI Prolog]]. On the one hand, Prolog is used for loading, storing and reasoning on the knowledge which is represented in OWL. When OWL files are loaded into the system, they are internally stored as triples KnowRob is implemented in [[http://www.swi-prolog.org|SWI Prolog]]. On the one hand, Prolog is used for loading, storing and reasoning on the knowledge which is represented in OWL. When OWL files are loaded into the system, they are internally stored as triples
 <code> <code>
- rdf(Subject, Predicate, Object)+ triple(Subject, Predicate, Object)
 </code> </code>
  
-and can be accessed with special predicates, e.g. rdf_has(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.+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 are implemented in plain 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 by Prolog predicates is transformed into a representation that is compatible to the OWL knowledge. 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 are implemented in plain 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 by Prolog predicates is transformed into a representation that is compatible to the OWL knowledge.