RDF-star for git-like versioning of a repository? #4614
fkleedorfer
started this conversation in
Ideas
Replies: 2 comments 6 replies
-
We have what's called a NotifyingSail which is an interface that our storage layers implement to push notifications of which statements are added and which are removed. We use it in the ShaclSail and in the reasoners. |
Beta Was this translation helpful? Give feedback.
1 reply
-
Our data platform enilink also uses a comparable approach to implement a change tracker: |
Beta Was this translation helpful? Give feedback.
5 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I am looking for a good solution for versioning an RDF repository, ideally supporting git-like commit histories, branches/forks, merging, tagging, and materializing versions at a given commit. It has been proposed to use RDF-star for annotating triples in such a way as to allow versioning of a dataset.
Part of the solution would be to use RDF-star for a given repository and instead of adding/deleting triples: For any modification, one would add RDF-star triples which each quote a triple, state whether it is added or removed, and refer to an IRI representing the 'commit'. The commit IRI can in turn be linked to some commit metadata. (Let's call such RDF-star triples 'versioned triples')
In contemplating such a system, I hit a first roadblock at the location of the logic for it: With
INSERT/DELETE WHERE
, the client can manipulate triples without ever learning what difference is caused to the dataset in terms of triples added/removed. Thus, it is not possible that the client generates these versioned triples. Unless we want to limit the kinds of queries a client can make, the versioning system would have to be implemented by the repository.Thus, if I took a stab at this: what would be the appropriate point in the RDF4J Repository stack to introduce this functionality? It would have to be at a point where deletions and additions have been determined but not yet written to the store. At that point, the triples would have to be converted into versioned triples and written to the store.
In addition to this rather specific question, any comments, pointers and ideas regarding versioning are appreciated!
Beta Was this translation helpful? Give feedback.
All reactions