Research - Knowledge-Based Systems and Logic Programming
Our research focuses on advanced database technology, logic programming, declarative programming techniques, and knowledge representation for intelligent systems. We apply modern data and knowledge engineering (verification, analysis, refactoring, visualization) as well as query processing and reasoning to various, hybrid formats of data (including relational, deductive (rule-based), XML, and Semantic Web).
Declare (DisLog Developers' Toolkit, DDK)
--> We are developing a general purpose software package Declare for the logic programming language SWI-Prolog; its functionality ranges from deductive databases (DDBase), (non-monotonic) reasoning in disjunctive deductive databases (DisLog) to querying XML databases (FnQuery), software engineering support for Prolog and Java (program analysis and visualization), and to applications such as the management of stock information.
For intelligent information systems and decision support systems, graphical web interfaces have been described with declarative markup languages, such as XUL, the XML User Interface Language from Mozilla, or HTML
Advanced applications of deductive databases require the extensive analysis of incomplete information in the form of disjunctions in the data, e.g. diagnostic or spatial reasoning. Within Declare, a deductive database system DDBase with a subsystem DisLog for efficient reasoning in disjunctive deductive databases has been developed in SWI-Prolog with graphical user interfaces in the object-oriented extension XPCE-Prolog.
Most practically interesting recursive queries in deductive databases are expressed by linear recursive Datalog programs with exactly one recursive rule, so-called linear sirups. A theoretical characterization and an efficient evaluation of general linear sirups was derived; transitive closure
Knowledge Base Management and Knowledge Engineering
We investigate knowledge bases for rule-based expert systems, ontologies with rule enhancements, and declarative programs, such as Prolog or ASP programs.
Firstly, we provide extensions to existing verification techniques to support the implementation of ontologies with rule enhancements, and we focus on the detection of anomalies that can especially occur due to the combined use of rules and ontological definitions.
Secondly, Visur/Rar is a Prolog tool for reasoning about rule-based systems, such as Prolog programs or knowledge bases containing diagnostic rules. Rar provides retrieval and update operations for a database storing the rules. The obtained results are graphically visualised or presented in tables using Visur. The tool Visur/Rar has been used for analysing Prolog/Java source code and diagnostic rule bases based on suitable dependency graphs. It can for instance be applied for computing certain software metrics and for supporting
Semantic Web, Semi-Structured Data, and XML
Semi-structured data, such as XML-data, can be managed in a deductive database or in a logic programming environment. We have developed a language called FnQuery (PL4XML) for processing XML-data. This language offers querying facilities such as the well-known languages XPath and XQuery, and it provides transformation and update capabilities in the style of XSLT and XUpdate.
In addition to standard retrieval, also the intelligent reasoning about the data should be supported. The developed techniques have been applied to various types of XML-data, such as mathematical knowledge in MathML, expert rules in XML, stock data in HTML, or XML/HTML