January, 2010


25
Jan 10

DARQ – Federated SPARQL queries – status

There have been several request about DARQ during the past months, so I thought it’s time to post a short project status. DARQ (original website) is a query engine for federated SPARQL queries I worked on in the past. It provides transparent query access to multiple, distributed SPARQL endpoints as if querying a single RDF graph. In other words: It automatically splits an incoming query, sends  sub-queries to the relevant endpoints and merges the results into one resultset. The available endpoints need to be registered in the system using Service Descriptions. This works quiet  well if the vocabularies do not overlap very much, i.e. if two or services store the same properties for resources it can be very slow. However, if there is little overlap query answering can be done in a  reasonable time. Some results of the work were published at ESWC 2008 (paper), the source code is available at sourceforce.

DARQ started as a proof of concept system at HP Labs in 2006, it is in very early stage and I would not recommend to use it in any production environment. I worked on DARQ until early 2008, after that DARQ was continued by a diploma student who added query caching and a basic query translation mechanism, that allows to specify mappings between vocabularies, i.e. “Authors are a subclass of Persons” or “price in EUR can be converted to USD using exchange rare X”. Mappings are defined using SWRL. However, schema mapping support is even more a prototype than DARQ is and has not been tested extensively. He finished his work in Sept. 08, his changes can be found in the svn trunk. The version used for the benchmarks shown in the ESWC 2008 paper is tagged with ‘benchmarks2′ – all documentation writtten by me is for that version. It will likely not work with any of the recent Jena/ARQ releases, though i never tested it. There are currently no plans to continue the development.

If you have any questions related to DARQ feel free to post a comment or email me.

Update: The version in the svn trunk requires a mapping file. This file contains the mapping rules used for query translation. It  must use SWRLs Concrete Syntax representation.


12
Jan 10

Varnish on Ubuntu

“Varnish is a state-of-the-art, high-performance HTTP accelerator.” (varnish-cache.org). It’s configuration language VCL makes it very flexible – it even allows to use custom inline C code ;)

In the past I always build varnish from source myself and used checkinstall to create deb packages. A few days ago I came across a post by Trevor that simplifies the installation on Debian/Ubuntu:

  1. make sure you have all requires libs/tools installed:
    apt-get update
    apt-get install subversion autotools-dev automake1.9 libtool autoconf libncurses-dev xsltproc quilt
  2. checkout the varnish source code from svn (change version number as needed)
    svn co http://varnish-cache.org/svn/tags/varnish-2.0.6/
  3. build deb packages
    cd varnish-2.0.6/varnish-cache/
    dpkg-buildpackage
  4. install (package names may differ depending on the architecture, e.g. i386 instead of amd64)
    cd ..
    dpkg -i libvarnish1_2.0.4-6_amd64.deb
    dpkg -i varnish_2.0.4-6_amd64.deb
  5. you can now change the config in /etc/varnish/default.vcl and /etc/default/varnish