Institute for Informatics
Georg-August-Universität Göttingen

Databases and Information Systems

Logic Programming
in XML
Uni Göttingen

XPath-Logic, XPathLog, and LoPiX: a Logical Approach to XML and XML Data Integration (2000-2004)

The XPathLog/LoPiX project (2000-2003) is the continuation and migration of the F-Logic/Florid project to XML. Due to many similarities between the F-Logic and XPath languages, F-Logic is a natural candidate for a migration to XML/XPath: The XPathLog language is a crossbreed between XPath and F-Logic, i.e., it extends XPath with variable bindings to an XML querying and data manipulation language. XPathLog assigns a declarative constructive semantics to XPath expressions for specifying database updates. The LoPiX system which implements XPathLog is based on the Florid system. The research on data integration is now continued with LoPiX.

One of the main results --apart from the fact that XPathLog/LoPiX is the first implementation of updates in an XML database language-- is that the DOM/XML Query Data Model is not suitable for updating and integrating XML data. Instead, XPathLog/LoPiX use the XTreeGraph data model which allows for representing multiple, overlapping XML trees in an internal database. Result trees are then defined as views over the XTreeGraph database.

XPath-Logic and XPathLog

XPathLogic is a logic which is interpreted wrt. XML documents. Its Horn fragment, XPathLog, provides a logic-based language for manipulating and integrating XML data.

XPathLog and LoPiX have been used in 2002/03 for a first prototype for evaluating XLinks in the LinXIS project.

LoPiX: Logic Programming in XML

The LoPiX system is an implementation of the XML querying and data manipulation language XPathLog. It is free for evaluation, research and teaching purposes, but not in the public domain.

The .tar-file comes along with the executable (for different operating systems, currently solaris, SuSe Linux, and RedHat Linux), documentation, and examples.

  • Download lopix.tar.gz (Version 3.0)
    Note that this version 3.0 required gcc and glibc in the 2000-2003 versions.
  • The successor, Florid 4.x, still optionally supports the complete LoPiX behavior. Its homepage can be found at Freiburg University (maintenance ended about 2007).


LoPiX Manual
First unpack the compressed archive with the command
gunzip lopix.tar.gz
Then you get the file lopix.tar which is extracted with
tar xf lopix.tar
After this you get the following directory structure


The directory lopix/bin contains binaries for solaris and linux. Rename the one you intend to use to lopix. The directory lopix/lopix-doc contains a postscript version of the user manual (

Instructions for installing LoPiX on your system can be found in the user manual.

  • A perl script for producing a LaTeX documentation from LoPiX programs.