Skip to content
FEASIBLE: A Feature-Based SPARQL Benchmark Generation Framework
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

An extended version of the FEASIBLE is coming soon where we used KMean++, Aglomerative, and Hybrid of DBSCAN+KMean++ techniques. Stay tuned!

FEASIBLE: A Feature-Based SPARQL Benchmark Generation Framework

FEASIBLE is a customized SPARQL benchmark generation framework based on query logs of the RDF datasets. Complete details can be found in our ISWC 2015 paper.

Running FEASIBLE from command line

Download the feasible zip and extract to a directory. The command line input format is given below.

java -jar feasible.jar  -f <queriesFile> -n <no of Queries> -cf <optional clause filter> -ff <optional feature filter> -tf <otional query type filter>

For example,
java -jar feasible.jar -f DBpedia3.5.1-CleanQueries.txt -n 5 

will generate a benchmark of 5 qeuries from DBpedia log. The queries can be of form SELECT, CONSTRUCT, ASK, or DESCRIBE. 

java -jar feasible.jar -f DBpedia3.5.1-CleanQueries.txt -n 5 -tf "SELECT"

will generate only SELECT queries benchmark of size 5 from DBpedia log. 

java -Xmx16g -jar feasible.jar -f SWDF-CleanQueries.txt -n 15 -cf "(OPTIONAL AND DISTINCT) OR (UNION)" -ff "(ResultSize >= 100 AND TriplePatternsCount >= 2 AND TriplePatternsCount <= 5)" -tf "SELECT OR CONSTRUCT"

will generate a benchmark of 15 queries from SWDF queries log. The queries will be only SELECT or CONSTRUCT and must either include both OPTIONAL and DISTINCT or contains UNION. Furthermore, the resultsize should be greater than 100 and Triple patterns should be greater or equal to 2 and less of equal to 5. 

The set of SPARQL clauses which can be used in the clause filter conditions (i.e., argument no. 3) are UNION, FILTER, OPTIONAL, DISTINCT, ORDERBY, GROUPBY, LIMIT, REGEX, and OFFSET. The set of SPARQL features that you can use in the feature filter condition (i.e., argument no. 4) are triplePatternCount, resultSize, meanJoinVerticesDegreee, meanTriplePatternSelectivity, BGPs, and runTime. Note the runTime is in milliseconeds.

Online Demo

The online demo of FEASIBLE is available here along with usage examples. The demo may take some time to load, so please be patient.

Local Demo

If for any reason the online demo is not working, you can start it locally on your computer machine by following the procedure given below.

Download FEASIBLE-online from here. Unzip the file and go to feasible-beckend folder. Start the start-feasible-jetty.jar from command prompt or shell. You can start the server by using the command (java -jar start-feasible-jetty.jar). Once the server is started, you can start the demo by clicking index.html file in feasible folder.

Local Demo Docker

To deploy the Container the following steps are required:

clone the folder
go into the folder build the image
sudo docker build -t feasible .
run the image
sudo docker run -d -p 9898:80 --name feasible feasible
go into the image for debugging
sudo docker exec -it feasible-test /bin/bash


Here you can download all the data required for our evaluation setup and results.

FEASIBLE Benchmarks DBpedia 3.5.1 Dump SWDF Dump DBpedia 3.5.1 Logs SWDF Logs DBpedia 3.5.1 Clean Queries SWDF Clean Queries
Download Download Download Download Download Download Download

SWDF = Semantic Web Dog Food

Source Code, Startup Information

You can checkout the source code from

Generating FEASIBLE Benchmarks

  • Package org.aksw.simba.benchmark.startup
  • Class QuerySelecter

Select query log, the number of queries and your custom filters and execute. See the startup file for examples and detailed description.

Triple Stores Evaluation
  • Package org.aksw.simba.benchmark.startup
  • Class QueryEvaluation
FEASIBLE Clean Queries File Generation
  • Package org.aksw.simba.benchmark.log.operations
  • Class VirtuosoLogReader, SesameLogReader
Query Log RDFization

This you can use to convert query logs into RDF. The query log data can be queried from SPARQL endpoint given at This is yet not part of FEASIBLE. In future, FEASIBLE will directly query this endpoint to get the list of clean queries instead of first cleaning the log and taking the resulting clean queries file as input.

  • Package org.aksw.simba.benchmark.log.operations
  • Class LogRDFizer

Evaluation Results and Timeouts Queries

Our complete evaluation results can be downloaded from here. The timeouts queries for each of the triple store is given here.

Benchmark Contributors

You can’t perform that action at this time.