Skip to content

Xcerpt

Sections
Personal tools
You are here: Home » About » Introduction
Xcerpt Team
Researchers:
Sebastian Schaffert
François Bry
Sacha Berger
Tim Furche
Paula Patranjan
Michael Eckert

Students:
Mira Blazheva
Oliver Bolzer
Michael Brade
Raja Gigova
Clemens Ley
Inna Romanenko
Andreas Schroeder
Christoph Wieser
 

Xcerpt - Rule-Based Querying and Reasoning on the (Semantic) Web

Document Actions

What is Xcerpt?

Xcerpt is a deductive, rule-based query language for graph-structured data. It is capable of querying various sources including XML, RDF (via XML), and its own term syntax. Support for additional formalisms is planned. Xcerpt originates from the PhD project of Sebastian Schaffert, but is now actively supported by a broader community of researchers and developers.

You might argue that there are already enough query languages for XML, and that indeed, XSLT and XQuery are W3C recommendations. But Xcerpt is different, and in our opinion better suited to many tasks than other languages. Due to Xcerpt's deductive, rule-based nature, this is particularly true for Semantic Web applications, where reasoning is of major importance. In addition, we think that rule-based querying also simplifies many tasks on the "conventional" Web.

A major principle of Xcerpt, constrasting it with other query languages, is that it should be possible to query and reason with data both on the conventional Web and on the Semantic Web. As Semantic Web data aims at describing content ("meta-data"), this requirement is only natural, and it is surprising that few of the competing Web and Semantic Web query languages recognise it.

But decide yourself! On this Web site we provide numerous examples, and an OpenSource implementation of the language interpreter. Feel free to try it and play with it. And don't forget to tell us what you like and what you dislike about the language, make suggestions for improvement, send us further examples that you implemented, and contribute in any other way you like!

What does Xcerpt look like?

Xcerpt is a rule-based language. A rule is like a VIEW in database systems. In brief, this means that a result (XML document) is created in case some query against one or several sources succeeds. A particular advantage of the rule-based approach is the separation of query and construction, often simplifying programs considerably. For example, the following rule creates an HTML table out of an addressbook document (compare this with similar transformations in XQuery or XSLT!):

CONSTRUCT
  <table>
    <tr>
      <td>First Name</td>
      <td>Last Name </td>
      <td>Phone     </td>
    </tr>
    { all <tr> 
            <td>{$FIRST}</td> 
            <td>{$LAST} </td> 
            <td>{$PHONE}</td> 
          </tr> order by [$LAST,$FIRST] }
  </table>
FROM
  in {
    resource { "file:addressbook.xml" },

    <addressbook {partial}>
      <entry {partial} {unordered}>
        <first>{$FIRST}</first>
        <last> {$LAST} </last>
        <phone>{$PHONE}</phone>
      </>
    </>
  }
END

The part between CONSTRUCT and FROM is called the construct part, the part between FROM and END the query part. Both the construct part and the query part are XML-like structures, but augmented by special Xcerpt constructs (enclosed in curly braces), like variables (prefixed by $), so-called term specifications (ordered/unordered, total/partial), and collection constructs. If the query part matches with the source data by means of an algorithm we call simulation unification, we determine variable substitutions that are reassembled in the construct part.

Of course, Xcerpt is much more powerful than this small example illustrates. Instead of using only a single rule, a program can consist of an arbitrary number of rules that interact via querying each other, or recursively call themselves to produce more complex results, like transitive closure of a relation and so on. To learn more about Xcerpt's capabilities, see the Documentation section of this Web site.

Who would like to try Xcerpt?

At the current stage, Xcerpt is primarily aimed at interested software developers and researchers that want to try out our new approach, and possibly want to help us make our vision of a versatile, well designed query language for Web and Semantic Web data a reality. In its current implementation, Xcerpt is not well suited for production use (though it is constantly improving), but it should work well for many smaller, experimental projects.

Acknowledgements

Development of Xcerpt is partly funded by the EU Network of Excellence REWERSE in the 6th Framework Programme. It is the core of the working group I4 (Reasoning-Aware Querying).

Sebastian Schaffert, 2005-06-16

Created by wastl
Last modified 2005-06-17 10:27 AM
 

Powered by Plone

This site conforms to the following standards: