Temporal validity: alternative for dcterms:valid?

Hello again,

The DCMI Metadata Terms vocabulary
<http://dublincore.org/documents/2012/06/14/dcmi-terms/> seems to have all
the basic ingredients for building a versioning mechanism in to a dataset
(which is or should be a very common requirement). Objects in a dataset can
have life spans (temporal validity), be versions (dcterms:hasVersion
<http://dublincore.org/documents/2012/06/14/dcmi-terms/#terms-hasVersion>/
dcterms:isVersionOf
<http://dublincore.org/documents/2012/06/14/dcmi-terms/#terms-isVersionOf>)
of another resource and replace each other (dcterms:replaces
<http://dublincore.org/documents/2012/06/14/dcmi-terms/#terms-replaces>/
dcterms:isReplacedBy
<http://dublincore.org/documents/2012/06/14/dcmi-terms/#terms-isReplacedBy>
).

But as Jeni Tennison has noted some time ago
<http://www.jenitennison.com/2010/02/27/versioning-uk-government-linked-data.html>
(see
final section 'Unanswered Questions'), a versioning scheme based on DCMI
has a weak spot: the property for denoting temporal validity (dcterms:valid
<http://dublincore.org/documents/2012/06/14/dcmi-terms/#terms-valid>) is
impractical to the point of being unusable. Dcterms:valid only takes
literals (rdfs:Literal) as value, which makes it hard to use it for
practical expressions of time intervals. Time intervals should be compound
objects that are based on useful datatypes. For instance, xsd:dateTime (for
dates) or xsd:integer (for years or seconds (e.g. in UNIX time)) could be
used in SPARQL queries to filter or order temporal data. In a versioned
dataset queries like 'give me all changes between time T1 and time T2' or
'give me the state of the dataset at time T3' should be easy to create and
to resolve. It seems to me that this requires proper and well supported
data types. A text string notation for time intervals is recommended by
DCMI: dcmi-period <http://dublincore.org/documents/dcmi-period/>. It is
easy and versatile enough, but the average triple store probably does not
recognize this notation as temporal or numerical data. So I wonder if there
is a good alternative for dcterms:valid somewhere that can be used to
indicate temporal validity.

I did find http://www.w3.org/ns/prov#invalidatedAtTime in PROV-O, which
could be considered applicable, but a matching property to indicate the
start of the time period of validity does not seem to exist in PROV-O.
Also, its range is xsd:dateTime, which I think is too restrictive because
the time needs to be known up to the level of seconds.

Does this gap still need to be plugged? Or is the solution out there?

Greetings,

Frans

Received on Thursday, 24 December 2015 15:57:41 UTC