We define XPathLog as a Datalog-style extension of XPath. XPathLog
provides a clear, declarative language for querying and manipulating
XML whose perspectives are especially in XML data integration.
In our characterization, the formal semantics is defined wrt. an
edge-labeled graph-based model which covers the XML data
model. We give a complete, logic-based characterization of XML data
and the main language concept for XML, XPath. XPath-Logic extends
the XPath language with variable bindings and embeds it into
first-order logic. XPathLog is then the Horn fragment of
XPath-Logic, providing a Datalog-style, rule-based language for
querying and manipulating XML data. The model-theoretic semantics
of XPath-Logic serves as the base of XPathLog as a
logic-programming language, whereas also an equivalent answer-set
semantics for evaluating XPathLog queries is given. In contrast to
other approaches, the XPath syntax and semantics is also used for a
declarative specification how the database should be updated:
when used in rule heads, XPath filters are interpreted as
specifications of elements and properties which should be added to
the database.
The paper is available online at
arXiv.org.
The paper is an excerpt of the Habilitation Thesis
A Logic-Based Approach to XML Data
Integration (2001).
XPathLog has been
implemented in the LoPiX project.