Re: How to model valid time of resource properties?

On 10/16/14 3:33 AM, John Walker wrote:
> Hi Kingsley,
>> On October 15, 2014 at 2:59 PM Kingsley Idehen 
>> <kidehen@openlinksw.com> wrote:
>>
>> On 10/15/14 8:36 AM, Frans Knibbe | Geodan wrote:
>>> On 2014-10-13 14:14, John Walker wrote:
>>>> Hi Frans,
>>>> See this example:
>>>> http://patterns.dataincubator.org/book/qualified-relation.html
>>>
>>> Thank you John! Strangely enough, I had not come across the Linked 
>>> Data Patterns book before. But I can see it is a valuable resource 
>>> with solutions for many common problems. And it looks pretty too! I 
>>> am sure it will come in handy for problems that I haven't stumbled 
>>> upon yet.
>>>
>>> A nice thing about this solution is that it doesn't need any 
>>> extensions of core technologies. I do see some downsides, though:
>>>
>>> Let's assume I want to publish data about people, as in the 
>>> examples. A person can have common properties defined by the FOAF 
>>> vocabulary, like foaf:age or foaf:based_near. Properties like these 
>>> are likely to change. If I want to record the time in which a 
>>> statement is valid I would have to create a class for that 
>>> relationship and add properties to that class that will allow me to 
>>> associate a start time and an end time with the class. But by doing 
>>> that I would not only be forced to create my own vocabulary, I would 
>>> also replace common web wide semantics with my own semantics. Or 
>>> would it still be possible to relate the original property with the 
>>> custom class somehow?
>>>
>>> In the cases known to me that require the recording of history of 
>>> resources, /all/ resource properties (except for the identifier) are 
>>> things that can change in time. If this pattern would be applied, it 
>>> would have to be applied to all properties, leading to vocabularies 
>>> exploding and becoming unwieldy, as described in the Discussion 
>>> paragraph.
>>>
>>> I think that the desire to annotate statements with things like 
>>> valid time is very common. Wouldn't it be funny if the best solution 
>>> to a such a common and relatively straightforward requirement is to 
>>> create large custom vocabularies?
>>>
>>> Regards,
>>> Frans 
>>
>> Frans,
>>
>> How about reified RDF statements?
>>
>> I think discounting RDF reification vocabulary is yet another act of 
>> premature optimization, in regards to the Semantic Web meme :) 
>
> Just wondering if the semantics of RDF reification would accurately 
> capture the semantics of what Frans wants to model.
>
> If the idea is to capture the start and end date of a relationship, 
> then is RDF reification the answer in this case?
>

Yes, since an RDF statement represents a relationship [1]. Thus, using 
reification (as per my example) you can refer to utterances (statements) 
made at a specific time.

> As the reified statement has rdf:type rdf:Statement, wouldn't we that 
> be making the additional statements about the statement, not about the 
> relationship it represents. If so, what does it mean to indicate a 
> start and end date of a statement?
>
> To use a real life example discussed during Pilod [3] we have multiple 
> conflicting source of information:
>
> Tax office records show Alice and Bob were married from 2010-03-01 to 
> 2014-01-01.
>

The Tax Office statements (recording this event) exist in a document 
created at a point in time. The document in question is comprised of RDF 
statements. Each statement was also made at a point in time. 
Collectively they provide a temporal "context lens" relating to the 
observations (RDF statements) captured in the aformentioned document.

> Local council records show Alice and Bob were married from 2001-03-01 
> to 2014-10-10.
>

Local Council statements (recording this event) exist in a document 
created at a point in time. This document is independent of the Tax 
Office document.

> This probably requires a mix of different modelling techniques and 
> there's no right or wrong way to do it.
>

What would you do in the real-world today? You (the relevant offices, or 
the marriage relation participants) would reconcile these two documents.

RDF Reification provides a good foundation for these issues, you can 
extend the vocabulary to enhance context-fidelity (across various axis), 
if need be [1][2].


[1] http://www.openlinksw.com/c/9DQD6HLX -- OpenLink Statement
[2] http://www.openlinksw.com/c/9HWIJM -- Statement (which extends 
rdf:Statement)

Kingsley
>
> [3] http://www.pilod.nl/
>
>>
>> Some examples:
>>
>> [1] http://bit.ly/utterances-since-sept-11-2014 -- List of statements 
>> made from a point in time.
>> [2] http://linkeddata.uriburner.com/c/8EPG33 -- About Connotation 
> These are great examples of using RDF reification, good stuff!
> It's really clear that here you are capturing additonal (meta)data 
> about who made the statement, when, etc.
> John
>>
>> -- 
>> Regards,
>>
>> Kingsley Idehen
>> Founder & CEO
>> OpenLink Software
>> Company Web:http://www.openlinksw.com
>> Personal Weblog 1:http://kidehen.blogspot.com
>> Personal Weblog 2:http://www.openlinksw.com/blog/~kidehen  <http://www.openlinksw.com/blog/%7Ekidehen>
>> Twitter Profile:https://twitter.com/kidehen
>> Google+ Profile:https://plus.google.com/+KingsleyIdehen/about
>> LinkedIn Profile:http://www.linkedin.com/in/kidehen
>> Personal WebID:http://kingsley.idehen.net/dataspace/person/kidehen#this
>


-- 
Regards,

Kingsley Idehen 
Founder & CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog 1: http://kidehen.blogspot.com
Personal Weblog 2: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen
Personal WebID: http://kingsley.idehen.net/dataspace/person/kidehen#this

Received on Thursday, 16 October 2014 12:01:19 UTC