Best approach to version RDF in Stardog?

I'm looking for suggestions on how best to version my data in Stardog. I want to delta different time points and also obtain all triples from a graph that existed at a previous time point, either using a specified timestamp and/or a tag for an event, like "this data used for analysis X" or "Submitted to regulatory authority on 20-19-01-28", etc.

An obvious approach might be using named graphs that represent key time points, but this could quickly spiral out of control from both a space and management perspective.

What versioning strategies and procedures are available to me in Stardog?

RTFM links humbly accepted.


Stardog has built-in versioning support which computes and stores the deltas between every commit automatically. You can query the versioning history to find which triples were changed at what point. See this short tutorial for usage details:

You can add a message to your commits, tag versions and compute diffs between different versions. However, this does not directly give you the ability to obtain the triples that existed at a specific time point. The versioning history can be used to accomplish this but it requires extra work. In future versions of Stardog we will make significant changes to the versioning to support this functionality natively in the storage engine.


Thank you! I will work through the tutorial. Glad to see you folks already thought of this aspect.


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.