Virtuoso has any graph version control function?


I am using Virtuoso 7.x and evaluated 8.x and is there any graph version control function in these virtuoso version?

Graph version control function is that user could query some data at a past specific timestamp after doing some modification on the graph, that is something like git, a code version control.



What you describe is application level functionality.

Why? Due to the fact that in Virtuoso you can make statements about named graphs (as you can other entities), which enables you to add whatever metadata you need.

Ultimately, if you want to exploit the concept of temporality, e.g., "what was the description of dbpedia:Paris circa {date-time}", you can do so directly in SPARQL, or even use tools like Memento that move this concept to the HTTP layer via content-negotiation.

Let me know if this clarifies matters.

[1] links to some tweets about Memento and temporality


Yes, we could make statements to describe a graph or an entity, however there is some problem.

Assuming, there is a dataset below:

:Person ex:name "Bob"
:Person ex:name "John"

A person has a used name “Bob” and now is called John.

As the literal could not be a subject, so one way to distinguish names is making different predicates, like:

:Person ex:name_used_201808 “Bob”
:Person ex:name_now_201908 “John”

So more names, more predicate.

And yes we could describe the entire graph by timestamp, which would make much duplicate data, because only ex:name has many names.

My question is that virtuoso has any application-level solution to this problem?