Tree [5c95e0] master /
History



File Date Author Commit
API 2013-10-04 Sebastian Schaffert Sebastian Schaffert [5c95e0] moved old Xcerpt repository to GIT
HXML 2013-10-04 Sebastian Schaffert Sebastian Schaffert [5c95e0] moved old Xcerpt repository to GIT
Text 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
Xcerpt 2013-10-04 Sebastian Schaffert Sebastian Schaffert [5c95e0] moved old Xcerpt repository to GIT
debian 2013-10-04 Sebastian Schaffert Sebastian Schaffert [5c95e0] moved old Xcerpt repository to GIT
doc 2013-10-04 Sebastian Schaffert Sebastian Schaffert [5c95e0] moved old Xcerpt repository to GIT
test 2013-10-04 Sebastian Schaffert Sebastian Schaffert [5c95e0] moved old Xcerpt repository to GIT
.htaccess 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
AUTHORS 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
COPYING 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
COPYRIGHT.HXML 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
COPYRIGHT.HaXml 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
INSTALL 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
Makefile 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
Observe.lhs 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
README 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
Xcerpt.hs 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
Xcerpt.py 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
XcerptCGI.hs 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
XcerptDaemon.hs 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
XcerptInteractive.hs 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
convert.hs 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
haskell-powered.png 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
haskell-powered.xcf 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
make.bat 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
restricted-xcerpt.c 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
small-lambda.gif 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT
xcerpt-powered.png 2013-10-04 Sebastian Schaffert Sebastian Schaffert [0ef335] moved old Xcerpt repository to GIT

Read Me

What is Xcerpt?
===============

Xcerpt is a declarative, rule-based query and transformation language for XML,
inspired by logic programming. Instead of the path-based navigational approach
taken by languages like XSLT and XQuery, Xcerpt uses pattern-based, positional
queries, where a pattern is an "example" of the database containing variables
for binding content.

Xcerpt is a research project at the Teaching and Research Unit for Programming
and Modelling Languages at the Ludwig-Maximilians University Munich. The core
language is developed by Sebastian Schaffert and François Bry, but the Xcerpt
Team consists of several other researchers working on related topics.

For more information, see http://www.xcerpt.org


Positional Selection 
--------------------

Widespread query languages for XML, like XQuery and XSLT, are based on a
navigational selection, in which the user needs to specify path navigations
through the data tree. In our opinion, this approach is rather well suited for
simple queries but tends to be very complicated for more complex queries. In
contrast, Xcerpt is based on a positional selection in which a user specifies an
incomplete pattern for the data tree in which the parts that are to be selected
are represented by variables. It is our conviction that such a pattern based
selection is more suitable to querying XML data.

Rule-based Querying
-------------------

Xcerpt programs in general consist of several rules. Each rule specifies a
transformation of a data tree (or graph) into a possibly different data tree
(graph). Like in logic programming, a rule may query the result of another rule
("rule chaining" or "inference").


About this Prototype
====================

This prototype serves as a testbed for experimenting with the Xcerpt language. As the
language is still in development, aspects may change, although the core syntax is more
or less fixed.

Feel free to use this prototype for experimenting with Xcerpt yourself. However, we
discourage the use of this software in a production environment and we do not make
guarantees that future versions of this prototype will be compatible with programs 
written for the current prototype.

The prototype is written in the functional, lazily evaluating programming language
Haskell, since it provides a high abstraction while still being reasonably efficient
with respect to speed and memory. Future versions of Xcerpt may be written in e.g. C,
but there is no schedule for this currently.



Now have fun,

Sebastian Schaffert, in the name of the Xcerpt Team