Skip to content

Add shared commands for the graph databases in qeval [ADD TEST, THEN MERGE WHEN ALL GREEN] - #356

Open
tanmay-9 wants to merge 15 commits into
qlever-dev:mainfrom
tanmay-9:qeval-base-commands
Open

tanmay-9 wants to merge 15 commits into
qlever-dev:mainfrom
tanmay-9:qeval-base-commands

Conversation

@tanmay-9

@tanmay-9 tanmay-9 commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

So far, qeval could only run QLever. Several commands work the same way for every graph database: status and stop find the server's processes by a regex, query and benchmark-queries send SPARQL queries to an HTTP endpoint, index-stats reports the time and space of the index build, and setup-config derives a Qleverfile from one of QLever's pre-configured ones. QLever's versions of these commands already do almost all of the work, so every new graph database would otherwise copy them with small changes, and a fix in one copy would not reach the others. Commands like index and start are not part of this, because each graph database builds its index and runs its server with its own binaries, options and logs, so there is little to share.

With this change, qeval/base_commands has one shared version of each of these commands, built on QLever's. A graph database only provides what differs, such as the regex for its processes, its container image and settings, which files hold its index, and how its index log reports the duration of each phase. Where QLever's command needs a different value for another graph database, such as the path of the SPARQL endpoint or the default regex of status, it now gets that value from a small method that the shared version overrides, so that no code is copied.

On the side, Qleverfile.filter now keeps all options of a section for None instead of an empty list, and the qeval help mentions graph databases instead of engines.

NOTE: No graph database uses the shared commands yet, Oxigraph will follow in a separate change (#328). QLever's commands behave as before.

tanmay-9 and others added 15 commits October 10, 2026 17:30
…ad of copying QLever's code in `qeval` and use clearer description texts
…` is offered in the shared `query` command
So far, `BaseStopCommand` returned `False` without a message when the
Qleverfile says that the server runs in a container and no container with
the configured name exists, so `qeval <engine> stop` exited with status 1
after the line "Checking for container with name ..." and nothing else.
Now it reports the missing container, like QLever's `stop` reports a
missing process or container.
@hannahbast hannahbast changed the title Add shared commands for the graph databases in qeval Add shared commands for the graph databases in qeval [ADD TEST, THEN MERGE WHEN ALL GREEN] Oct 22, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants