Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fuseki to send ETag response headers #2305

Open
namedgraph opened this issue Mar 3, 2024 · 5 comments
Open

Fuseki to send ETag response headers #2305

namedgraph opened this issue Mar 3, 2024 · 5 comments
Labels
enhancement Incrementally add new feature

Comments

@namedgraph
Copy link
Contributor

Version

4.7.0

Feature

Graphs without bnodes can be safely hashed and the hash can be used as a strong ETag value.
Graphs with bnodes can be hashed and the hash could be used as a weak ETag value?

Are you interested in contributing a solution yourself?

Perhaps?

@namedgraph namedgraph added the enhancement Incrementally add new feature label Mar 3, 2024
@namedgraph
Copy link
Contributor Author

@afs
Copy link
Member

afs commented Mar 4, 2024

Hashing as a general solution doesn't extend to large graphs.

Transactions are serializable.

One way to generate a unique fingerprint would be to have UUID per database version.

Another way, with more information, is to have a UUID per dataset (fixed) then create the etag from that id+version and increment the version each write-commit.

Blank nodes don't matter. These tags are independent of content but unique to the version per server.

(does not work for replication with RDF Delta)

@rvesse
Copy link
Member

rvesse commented Mar 5, 2024

Presumably this might require some new interface/API for Dataset implementations to allow them to expose this version information ?

With the variety of implementations that users use in the wild eg Text Indexing, General purpose datasets this would also need to carry through wrappers in some form

@namedgraph
Copy link
Contributor Author

namedgraph commented Mar 5, 2024

I was thinking ETag per graph as well.
In other words, conditional requests supported by the Graph Store Protocol.

@afs
Copy link
Member

afs commented Mar 5, 2024

Presumably this might require some new interface/API for Dataset implementations to allow them to expose this version information ?

ETags would be applied by Fuseki, possibly via the data service at the endpoint.

A UUID per (storage) dataset would be useful generally as being global and temporal unique.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Incrementally add new feature
Projects
None yet
Development

No branches or pull requests

3 participants