XRel home page

(XML Regular Expression Language)

Abstract

Welcome to the home page of XRel. XRel stands for XML Regular Expression Language - it is a tool for processing XML documents, and was created as part of the master's thesis of Fabrizio Bisi. It is basically a port from ML into Java of the XDuce algorithms. (XDuce is a programming language for XML processing; it was developed by Haruo Hosoya and Benjamin C. Pierce.)

XRel has a C/Java-like syntax and is implemented in Java. By contrast, XDuce has an ML-like syntax and it has been implemented in ML. However, XRel is not a real programming language - it lacks objects, iteration, functions &c. It's really only a test harness for the algorithms. An XRel program is little more of a list of type declarations followed by a single pattern matching statement, where the XML document to process is specified by the command line and output is on standard output.

Why write a partial porting of XDuce? Our future intention is to take the XML processing (in particular the tree regular expression patterns of XDuce), and integrate it with the pi calculus (in particular, the HiPi pi implementation created by Paolo Milazzo for his masters thesis). This will yield the best of two worlds - concurrency and XML - and could be used for instance to write Web Services, somewhat like MS Biztalk.

Both XRel and HiPi are two projects developed at the University of Bologna inside a bigger project called the Fusion Machine, under the supervision of Lucian Wischik and of the professor Cosimo Laneve. Please refer to the Fusion Machine home page for more information.

Master's Thesis

I've written a master's thesis titled XRel: Analysis of the XDuce Data Types and Implementation of the Related Algorithms. (or "Analisi dei Tipi di Dato di XDuce e Implementazione dei Relativi Algoritmi" in Italian).

@MastersThesis{bisi_thesis,
  author = "Fabrizio Bisi",
  title  = "XRel: Analysis of the XDuce Data Types and Implementation of the Related Algorithms",
  school = "University of Bologna",
  year   = 2003,
  url    = "http://www.cs.unibo.it/fusion/xrel/",
}

Related Links

Fusion machine

XDuce

Java, Eclipse, Xerces

Here some links to the technologies I've used to program XRel: