Re: How do you go about versioning ?

On 22 September 2014 12:59, Andrea Splendiani
<andrea.splendiani@iscb.org> wrote:
> Ho,
> a related question:
> hasPreviousVersion: what does it have for domain/range ?
> I would use this relations as a predicate on versions only. Leaving
> relations among versions independent from the versioned object.

Note that there is no "has" in the previous version relationship -
pav:previousVersion does not indicate any kind of hierarchical
ownership, it just points to the previous version.


http://pav-ontology.googlecode.com/svn/trunk/images/pav-overview.svg

has the picture :)



We say:

> Note that PAV does not define any explicit classes or domain/ranges, as every property is meant to be used directly on the described online resource.

You can interpret "online resource" as you wish - but the intention is
that the links would be resolvable - so

<http://example.com/>
 pav:hasCurrentVersion <urn:uuid:33d2fd62-20b6-43e4-a0a1-06144ad86f25> .

would be slightly counter-productive - but at least you have
identified the current version :).



>From the parents in PROV the domain would generally be prov:Entity,
and range usually prov:Entity or prov:Agent.

The pav:hasCurrentVersion definition hints that you SHOULD provide
pav:version on the range and not on the domain.


Specifically there is no "Version" or "Versioned" class - we don't see
versioned resources as any different from other resources. Introducing
such a class would easily make people think that a Version is a
free-standing conceptual thing (like a "version number") rather than
an equivalent snapshot of the resource.




-- 
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester
http://soiland-reyes.com/stian/work/ http://orcid.org/0000-0001-9842-9718

Received on Monday, 22 September 2014 12:46:11 UTC