How do you go about versioning ?

Hi,

I'm posting here a question I have posted in some other forums.
How do you go about versioning ?

I tend to think at the URI as pointing to the endurant, and this
leaves to the "version" the meaning of "what was known/true about an
entity at a given time". The latter is conveniently packed in a graph,
whose URIs can be conveniently linked to the endurant URI.


So http://example/ <http://purl.uniprot.org/uniprot/>P04637 is the
protein URI that returns what is currently known about this protein.

http:// <http://purl.uniprot.org/uniprot/>example
<http://purl.uniprot.org/uniprot/>/
<http://purl.uniprot.org/uniprot/>P04637/V2 is the URI of a version (a
set of statements) that return what is known for http://
<http://purl.uniprot.org/uniprot/>example
<http://purl.uniprot.org/uniprot/>/
<http://purl.uniprot.org/uniprot/>P04637 at a given time.

Note that http://example/ <http://purl.uniprot.org/uniprot/>P04637/V2
doesn't appear in results (except in predicates linking different
versions, like "replaces")


Basically I never have an assertion as:

http:// <http://purl.uniprot.org/uniprot/>example
<http://purl.uniprot.org/uniprot/>/
<http://purl.uniprot.org/uniprot/>P04637 hasVersion 2, but version is
only used to filter which pack of information is relevant. So if I mix
results from different versions (e.g. quads) I can filter what is
relevant and where to me.


Is this a common way of doing things ?

If not, have you thought about it and if you took alternatives, why ?


best,

Andrea

Received on Friday, 19 September 2014 15:39:05 UTC