- From: Frans Knibbe <frans.knibbe@geodan.nl>
- Date: Thu, 24 Dec 2015 16:57:11 +0100
- To: public-lod@w3.org
- Message-ID: <CAFVDz43HQu03UFvN=FpWfc0cywJkfP3X3OxAQB97yHvyj681XA@mail.gmail.com>
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