Jump to: navigation, search

PrOWLog is a hybrid reasoning approach and system which allows to use OWL within Prolog. The interface between OWL and Prolog is realized by means of the any-world-assumption due to Umberto Straccia, and thus allows the treatment of queries to OWL in an open-world fashion within the Prolog system.

PrOWLog is available for download. The system is based on KAON2.


ReadMe for PrOWLog

 PrOWLog - A System for open-world access to OWL from Prolog
 Please see for detailed
 explanattions what PrOWLog is doing. In particular, PrOWLog accompanies the
 scientific paper 
 Tobias Matzner, Pascal Hitzler, Any-World Access to OWL from Prolog. Technical Report, AIFB, University of Karlsruhe, December 2006
 available from
 === Installation ===
 To use PrOWLog, you need the KAON22 reasoner as well as the declarativa
 interprolog library and a working installation of SWI Prolog.
 KAON2 is available from PrOWLog needs a
 running intance of KAON2 as server. For setting up KAON2 as server, see
 e.g. example 7 of the examples contained in the release.  Furthermore you
 need to have the file kaon2.jar in the same directory as prowlog.jar to run
 PrOWLog. Please refer to for the terms of use
 for the KAON2 software.
 The declarativa interprolog library is available at You only need to
 have the file interprolog.jar contained in the archive in the same directory
 as prowlog.jar. The other files are not needed. Please refer to for the terms of use of the
 declarativa interprolog library.
 To run PrOWLog type: java -jar prowlog.jar <path to SWI-Prolog executable>
 === Usage ===
 You will see a java window offering an SWI-Prolog user interface.
 Our library offering four-valued reasoning and dl-access is
 automatically consulted.
 === Four-valued reasoning === 
 We provide predicate reasoning based on the bilattice FOUR, namely
 predicates for the four bilattice operators and bilattice negation (see the
 paper mentioned above). In addition there is an equality predicate. The last
 variable always contains the truth value, denoted by the constants top,
 bottom, true and false. For example to evaluate true \oplus false
 we use 
 fv_sup(true, false, TV).
  As true\oplus false equals top, in this case TV contains top.
 The predicates are:
 fv_sup/3 join of the knowledge order
 fv_inf/3 meet of the knowledge order
 fv_or/3 join of the truh order
 fv_and/3 meet of the truth order
 fv_neg/2 bilattice negation (i.e. of the truth order)
 fv_equal/2 equality prediacate for the truth-values of FOUR
 === DL-access ===
 To query the KAON2 reasoner, we use the predicate 
 Server is the URL of the KAON2 reasoner in the form of <ip adress>[:<port>].
 When the port is omitted, the default of KAON2 (8080) is assumed.
 Ontology contains the physical URL of the ontology to use. For
 details, see example 1 provided with KAON2.
 Result contains 'Ok', if everything works, otherwise the error message
 provided by the reasoner.
 To access the reasoner we provide the predicates
 as described in the paper mentioned above.
 As for the four-valued reasoning predicates, the last variable always
 contains the truth-value.
 === Examples ===
 The package also contains two example xml files taken from the paper. 
 === Terms of use ===
 You may use PrOWLog for non-commercial purposes. You may redistribute it,
 provided you include all files contained in the original disribution and
 If you have any questions about PrOWLog, contact one of the following persons.
 Tobias Matzner,
 Pascal Hitzler,,


  • up: <ask>PrOWLog</ask>
Personal tools