The Berlin SPARQL Benchmark evaluates the performance of query engines in an e-commerce use case: searching products and navigating through related information. Randomized 'query mixes (each consisting of 25 queries) are evaluated continuously through a client application that communicates with the repository through a SPARQL end-point. The benchmark can be executed using datasets of various sizes as well as different numbers of clients each issuing simultaneous query requests. Recent evaluation results for some of the most popular engines are published here.
Although created for benchmarking SPARQL engines, the design of BSBM favors relational databases and other raw-store-based implementations, because it deals with a single fixed data schema and a uniformly dense data representation. Generally speaking, RDF databases are designed to deal efficiently with diverse data, integrated from multiple data sources, encoded against different data schema, resulting in sparse data tables in relational databases.
BSBM also allows for benchmarking relational engines, as there is a SQL-based version of the dataset and queries. However, one should note that the semantics of some of the queries in the SQL version is simpler than those of their SPARQL equivalents, i.e. the SQL versions are less powerful and return different results. The evaluation results published in here show that relational databases are really more suitable for such loads - even though the results are not truly comparable, it is nonetheless significant that relational engines are one order of magnitude faster.
Unlike LUBM, BSBM does not require any inference - an engine can answer the queries correctly without any interpretation of the semantics of the data. Still, the benchmark is useful for evaluating the level of SPARQL support by the engines and their efficiency in handling of multiple client loads.
The table below provides query evaluation results for a growing number of simultaneous clients (1, 4, 8, 16) against the 25M and 100M BSBM dataset versions (containing 25 million and 100 million explicit statements respectively). The values in the table give the total number of query mixes per hour (QMpH) executed by all connected clients.
| Run | OWLIM version | Scale | 1 client | 4 clients | 8 clients | 16 clients | test environment |
| b31bs25os | BigOWLIM 3.1 | 25M | 2,584 | 7,602 | 8,235 | 7,531 | ontosol |
| b31bs100os | BigOWLIM 3.1 | 100M | 1,181 | 2,998 | 2,341 | 2,367 | ontosol |
| b33bs100os | BigOWLIM 3.3 | 100M | 620 | 2,213 | 2,496 | 4,474 | ontosol |
| b33bs200os | BigOWLIM 3.3 | 200M | 331 | 1,091 | 1,366 | 1,366 | ontosol |
Performance highlights: