Xcerpt Code
Status: Beta
Brought to you by:
wastl
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