{"id":26190105,"url":"https://github.com/zazuko/triplestore-benchmark","last_synced_at":"2025-07-03T16:33:23.304Z","repository":{"id":244419369,"uuid":"813060288","full_name":"zazuko/triplestore-benchmark","owner":"zazuko","description":"Triplestore Benchmark using k6","archived":false,"fork":false,"pushed_at":"2024-09-11T16:32:02.000Z","size":2214,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-15T02:09:35.057Z","etag":null,"topics":["benchmark","k6","triplestore"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zazuko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-10T12:17:05.000Z","updated_at":"2024-09-11T16:32:05.000Z","dependencies_parsed_at":"2024-06-14T16:23:21.450Z","dependency_job_id":"494ab37c-4aec-43ea-b04d-e93e4df31ee9","html_url":"https://github.com/zazuko/triplestore-benchmark","commit_stats":null,"previous_names":["zazuko/lindas-benchmark"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Ftriplestore-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Ftriplestore-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Ftriplestore-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Ftriplestore-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zazuko","download_url":"https://codeload.github.com/zazuko/triplestore-benchmark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248991544,"owners_count":21194894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","k6","triplestore"],"created_at":"2025-03-12T00:52:32.979Z","updated_at":"2025-04-15T02:09:42.685Z","avatar_url":"https://github.com/zazuko.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Triplestore Benchmark\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/?autostart=true\u0026editor=code#https://github.com/zazuko/triplestore-benchmark)\n\nWelcome to the Triplestore Benchmark repository!\nHere, you can explore SPARQL queries extracted from the Swiss government SPARQL endpoint, LINDAS, to benchmark and compare other triplestores.\n\n## Baseline Comparison\n\nCurrently, we are in the process of preparing a baseline comparison of the LINDAS endpoint for future reference.\nStay tuned for updates on this section.\n\n## Requirements\n\nEnsure you have the following prerequisites ready:\n\n- [k6](https://k6.io/docs/get-started/installation/)\n- A snapshot of the LINDAS dataset, which you can download [here](https://download.zazukoians.org/lindas/lindas_2024-06-14.nq.gz).\n  The dataset is approximately 2.3 GB compressed and 60GB uncompressed.\n- A triplestore that you wish to test against.\n- The above referenced dataset uploaded into the triplestore.\n\nWe use [k6](https://k6.io/) to benchmark the queries.\nWe also provide a quick way to check if the triplestore is compliant with the queries that are run against LINDAS.\n\n## Quick Start\n\nAll SPARQL queries that are used in the differents tests are stored in the `queries` folder.\n\nIn case you add/remove/rename a query, you need to update the `query-files.json` file, by running the following command:\n\n```sh\n./scripts/update-query-list.sh\n```\n\nIn case you want to know the query file from an ID shown in the results, you can run the following command:\n\n```sh\njq -r '.[x,y,z]' query-files.json\n```\n\nby replacing `x`, `y`, and `z` by the IDs you want to know the query file.\nYou can specify as many IDs as you want.\n\n### Conformity Test\n\nCheck that your triplestore is able to support some common queries against the LINDAS dataset:\n\n```sh\nk6 run \\\n  -e SPARQL_ENDPOINT=https://example.com/query \\\n  -e SPARQL_USERNAME=user \\\n  -e SPARQL_PASSWORD=secret \\\n  lindas-conformity.js\n```\n\nThe query timeout is set to 5min.\nThe script has a limit of 1 day to run.\n\nThis will run the queries against the triplestore and check if they are able to return a result.\nThe results are stored in a file `./results/summary-conformity.json`.\n\nAnd to inspect results in a human-readable format, run the following command (`jq` is required):\n\n```sh\n./scripts/summary-conformity-simple.sh\n```\n\n### Benchmark\n\nRun the benchmark against your triplestore:\n\n```sh\nk6 run \\\n  -e SPARQL_ENDPOINT=https://example.com/query \\\n  -e SPARQL_USERNAME=user \\\n  -e SPARQL_PASSWORD=secret \\\n  lindas-benchmark.js\n```\n\nIn case you want to run the benchmark on some specific queries (it can be useful in order to check that it can hit your endpoint as expected), you can add those parameters:\n\n- `-e START=0`: The index of the first query to run (default: `0`)\n- `-e END=801`: The index of the last query to run (default: `801`)\n\nThe index starts at `0`.\n\nThe query timeout is set to 2min30s.\n\nIt will run 10 virtual users, that will run the maximum number of queries they can against the triplestore during 120s, and this for each query.\n\nThe results are stored in a file `./results/summary-benchmark-YYYY-MM-DDTHH-MM-SS.json`.\n\nTo inspect the results in a human-readable format, run the following command (`jq` is required):\n\n```sh\n./scripts/summary-benchmark.sh ./results/summary-benchmark-YYYY-MM-DDTHH-MM-SS.json\n```\n\nby updating the path to the JSON file you want to inspect.\n\nYou can analyse the results in a more detailed way by running the Jupiter Notebook [`benchmark-analysis.ipynb`](./benchmark-analysis.ipynb).\nJust update the path of the results file you want to analyse at the beginning of the notebook and run it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzazuko%2Ftriplestore-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzazuko%2Ftriplestore-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzazuko%2Ftriplestore-benchmark/lists"}