Skip to content

feat: GraphDB Client#3372

Merged
edmondchuc merged 121 commits into7.xfrom
v7/feat/graphdb
Feb 13, 2026
Merged

feat: GraphDB Client#3372
edmondchuc merged 121 commits into7.xfrom
v7/feat/graphdb

Conversation

@edmondchuc
Copy link
Contributor

@edmondchuc edmondchuc commented Jan 22, 2026

Summary of changes

This PR introduces a GraphDB Client in RDFLib. It wraps the GraphDB REST API and provides programmatic management and administration of GraphDB instances.

GraphDB's REST API endpoints are grouped by tags. The following is a list of tags currently implemented and supported by the RDFLib GraphDB Client.

  • Access Control List Management.
  • Authentication
  • Cluster Group Management
  • Data Import
  • Monitoring
  • Recovery Management
  • Repository Management
  • Security Management

The remaining GraphDB REST API tags are not yet implemented.

  • Custom Roles Management
  • Location Management
  • Report Management
  • SPARQL Templates
  • SQL Views Management
  • Saved Queries Management/Execution

See the API reference documentation preview on read the docs.

User-facing documentation will be added soon in a separate PR.
Update: The user docs can now be reviewed in PR #3383. The preview link is at: https://rdflib--3383.org.readthedocs.build/en/3383/graphdb/

Checklist

  • Checked that there aren't other open pull requests for
    the same change.
  • Checked that all tests and type checking passes.
  • If the change adds new features or changes the RDFLib public API:
    • Created an issue to discuss the change and get in-principle agreement.
    • Considered adding an example in ./examples.
  • If the change has a potential impact on users of this project:
    • Added or updated tests that fail without the change.
    • Updated relevant documentation to avoid inaccuracies.
    • Considered adding additional documentation.
  • Considered granting push permissions to the PR branch,
    so maintainers can fix minor issues and keep your PR up to date.

- parameterise e2e tests for RDF4JClient to include GraphDBClient
- delete e2e graphdb tests that are already part of paramterised tests
With additional refactorings:

- RDF4JError as base exception class
- Rename RepositoryFormatError to RepositoryResponseFormatError to align with naming convention of GraphDB's ResponseFormatError class
- Add handling for GraphDB specific health check in tests
- Add tests for graphdb client
- also refactor client namespacing
return self._graphdb_repository_manager

@property
def repos(self) -> RepositoryManagement:

This comment was marked as resolved.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is one aspect of the API design that I would like feedback on. Both RDF4J and GraphDB provide a set of repository level APIs. The repositories namespace is for RDF4J while repos is used here for GraphDB. I'm open to suggestions for better namespace naming to distinguish between the two.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it. My proposal then is to rename repos to graphdb_repositories for clarity.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renamed to graphdb_repositories in commit b0d1efc

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docs should be updated as well https://github.com/RDFLib/rdflib/pull/3383/changes

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the reminder! I've fixed it in the other PR in commit 74d8e98

@edmondchuc edmondchuc mentioned this pull request Jan 30, 2026
8 tasks
@@ -0,0 +1,4 @@
FROM ontotext/graphdb:10.8.12
Copy link

@nelly-hateva nelly-hateva Jan 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something to be discussed internally, the current version of GraphDB is 11, but we use here 10, because since version 11 the license is mandatory. We should consider issuing a license for testing purposes.

@edmondchuc
Copy link
Contributor Author

@nelly-hateva FYI, the user docs can be reviewed in this PR #3383

@edmondchuc edmondchuc merged commit 832c064 into 7.x Feb 13, 2026
29 checks passed
@edmondchuc edmondchuc deleted the v7/feat/graphdb branch February 13, 2026 01:40
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.

4 participants