Skip to content

Cost-Based Query Optimization for SPARQL Endpoint Federation


Notifications You must be signed in to change notification settings


Repository files navigation

CostFed: Cost-Based Query Optimization for SPARQL Endpoint Federation

CostFed is an index-assisted federation engine for federated SPARQL query processing over multiple SPARQL endpoints. CostFed makes use of statistical information collected from endpoints to perform efficient source selection and cost-based query planning. In contrast to the state of the art, it relies on a non-linear model for the estimation of the selectivity of joins. Therewith, it is able to generate better plans than the state-of-the-art federation engines. In an experimental evaluation based on FedBench benchmark, we show that CostFed is 3 to 121 times faster than the state of the art SPARQL endpoint federation engines.


Saleem, M., Potocki, A., Soru, T., Hartig, O. and Ngomo, A.C.N., 2018. CostFed: Cost-based query optimization for SPARQL endpoint federation. Semantics 2018, Procedia Computer Science, 137, pp.163-174.

Live Demo

The CostFed live demo comprise the following two main applications:

  • The endpoint manager is is available here. Using endpoint manager you can select the endpoints to be included in the federation. Also it allows to create/update CostFed's indexes.
  • The query formulator/executer is availble here. This is the main interface which allows executing both federated and non-federated queries.

The start CostFed-web and create your own local demo, the Dockerfile can be downloaded from here

To help user, we provided some federated queries here from FedBench and LargeRDFBench which can be directly executed.

How to Run CostFed?

  • Checkout: the source code and import as new maven project. it will create three sub-projects, i.e, costfed, fex, and semagrow-bench.
  • Create Index: Since CostFed is an index-assisted appraoch, the first step is to generate an index for all the endpoints in hand. The index generation, updation is given costfed/src/main/java/org/aksw/simba/quetsal/util/ Note for FedBench, LargeRDFBench, the index is already given at costfed/summaries/sum-localhost.n3.
  • Configuration File: Set properties in /costfed/costfed.props or run with default
  • Query Execution: costfed/src/main/java/org/aksw/simba/start/ Here you need to specify the URLs of the SPARQL endpoints which you want the given query to be federated and provide the configuration file, i.e., costfed.props as argument.

Used Benchmarks

The queries used in the evaluation can be downloaded from FedBench and LargeRDFBech homepage.

Datasets Availability

All the datasets and corresponding virtuoso SPARQL endpoints can be downloaded from the links given below. You may start a SPARQL endpoint from bin/start.bat (for windows) and bin/ (for linux).

Dataset Data-dump Windows Endpoint Linux Endpoint Local Endpoint Url Live Endpoint Url
ChEBI Download Download Download your.system.ip.address:8890/sparql -
DBPedia-Subset Download Download Download your.system.ip.address:8891/sparql
DrugBank Download Download Download your.system.ip.address:8892/sparql
Geo Names Download Download Download your.system.ip.address:8893/sparql
Jamendo Download Download Download your.system.ip.address:8894/sparql
KEGG Download Download Download your.system.ip.address:8895/sparql
Linked MDB Download Download Download your.system.ip.address:8896/sparql
New York Times Download Download Download your.system.ip.address:8897/sparql -
Semantic Web Dog Food Download Download Download your.system.ip.address:8898/sparql
Affymetrix Download Download Download your.system.ip.address:8899/sparql

Evaluation Results and Runtime Errors

We have compared 5 - FedX, SPLENDID, ANAPSID, SemaGrow, HiBISUCuS - state-of-the-art SPARQL endpoint federation systems with CostFed. Our complete evaluation results can be downloaded from here.

SPARQL ASK queries Error with Virtuoso

Recent Virtuoso public SPARQL endpoints (version 7 and above ) do not support SPARQL ASK queries to be sent gia RDF4J api, if you encounter such error then please make the following changes in the code

package package com.fluidops.fedx.evaluation; We need to go to go public class SparqlTripleSource class and change the boolean to false private boolean useASKQueries = false;


We are especially thankful to Andreas Schwarte (fluid Operations, Germany), Olaf Görlitz (University Koblenz, Germany), and Angelos Charalambidis (Institute of Informatics and Telecommunication, Paraskevi, Greece) for all their email conversations, feedbacks, and explanations.


Cost-Based Query Optimization for SPARQL Endpoint Federation







No releases published


No packages published