W3C home > Mailing lists > Public > www-rdf-interest@w3.org > October 2004

RE: Best way to assert that "s p o" was true at time t?

From: Charles McCathieNevile <charles@w3.org>
Date: Sat, 9 Oct 2004 19:55:07 -0400 (EDT)
To: Patrick.Stickler@nokia.com
Cc: jyasskin@gmail.com, pag@tucanatech.com, www-rdf-interest@w3.org
Message-ID: <Pine.LNX.4.55.0410091942350.3293@homer.w3.org>

[Bcc www-rdf-calendar@w3.org 'cause this touches on them.]

All of these suggestions seem to answer the actual question, not the one
hinted at in the subject line.

Two more ideas to consider:

One is that you make a bunch of statements in a document, and you then
describe when that document is "valid" (or just date it as a claim made at
time t). As well as the various approaches described already, you could use
the dublin core property valid to describe the particular range of time.
About which, see the contemporary discussion on ideas for encoding it :-)

This suggestion relies on being able to describe the RDF statements that are
contained in a particular document. You might think this is easy, and common
usage suggests that you just give the URI and be done with it. To all intents
and pruposes you can probably get away with that for your use case. But
technically I am not so sure if it is true. In which case you should think
about whether you want this stamtenet to last forever, or only until the
Semantic Wbe figures out how to deal with things that are untrue... if you
really want it to last forever as a useful statement you probabaly want to go
the path Patrick suggested:

<r:Statement>
  <r:subject rdf:resource="#JYasskin"/>
  <r:predicate rdf:resource="#lived"/>
  <r:object rdf:resource="#AddressA"/>
  <dc:valid>
    <ical:Vevent>
      <ical:start rdf:datatype="&xsdGdate">2004-04-03</ical:start>
      <ical:end rdf:datatype="&xsdGdate">2004-04-03</ical:end>
    </ical:Vevent>
  <dc:valid>
<r:Statement>

is how I would write it. (Well, I'd check the terms and make sure they are
used correctly first).

I've used dc and ical because they are likely to be easier to fit into other
information. They assume a period for before and after which is equal to the
accuracy of the date measurement -a day or so, or a month or so, or a year or
so. If you really want to have something that is not so well defined - a
"terminus ante quem" (time before which, but if you abbreviate it as foo:taq
you can seem classically educated to people who read too much source code :-)
you should define a property for that. It's an interesting question how that
fits into the icalendar modelling.

On Sat, 9 Oct 2004 Patrick.Stickler@nokia.com wrote:

>
>
>You could use reification to qualify the statement.
>
>E.g.
>
><Person rdf:about="#JYasskin">
>   <lived><Address rdf:about="#AddressA"/></lived>
></Person>
>
><rdf:Statement>
>   <rdf:subject rdf:resource="#JYasskin"/>
>   <rdf:predicate rdf:resource="#lived"/>
>   <rdf:object rdf:resource="#AddressA"/>
>   <notBefore rdf:datatype="xsd:date">yyyy-mm-dd</notBefore>
>   <notAfter rdf:datatype="xsd:date">yyyy-mm-dd</notAfter>
></rdf:Statement>
>
>Meaning that the assertion is valid between the specified
>dates, and thus meaning that the person lived at that
>address between the specified dates.
>
>Cheers,
>
>Patrick
>
>
>> -----Original Message-----
>> From: www-rdf-interest-request@w3.org
>> [mailto:www-rdf-interest-request@w3.org]On Behalf Of ext
>> Jeffrey Yasskin
>> Sent: 09 October, 2004 19:33
>> To: Paul Gearon
>> Cc: www-rdf-interest@w3.org
>> Subject: Re: Best way to assert that "s p o" was true at time t?
>>
>>
>>
>> You probably mean:
>> <Person rdf:about="#JYasskin">
>>   <lived rdf:parseType="Resource">
>>     <notBefore rdf:datatype="xsd:date">yyyy-mm-dd</notBefore>
>>     <notAfter rdf:datatype="xsd:date">yyyy-mm-dd</notAfter>
>>     <rdf:value><Address rdf:about="AddressA"/></rdf:value>
>>   </lived>
>> </Person>
>> since your example doesn't validate. I like that better than the ways
>> I'd thought of, but I'd still like to stay within relatively accepted
>> practice. Can anyone point me to other examples of rdf:value being
>> used for this purpose?
>>
>> Thanks.
>>
>>
>> On Sat, 9 Oct 2004 18:22:28 +1000, Paul Gearon
>> <pag@tucanatech.com> wrote:
>> > I'd create two predicates:  notBefore and notAfter
>> >
>> > So, you'd end up with something like:
>> > (this presumes the declaration of classes "Person" and
>> "Address", and
>> > the predicates "lived", "notBefore", and "notAfter")
>> >
>> > <Person rdf:about="#JYasskin">
>> >    <lived>
>> >      <rdf:Description rdf:nodeID="blankNode">
>> >        <notBefore rdf:datatype="xsd:date">mm-dd-yyyy</notBefore>
>> >        <notAfter rdf:datatype="xsd:date">mm-dd-yyyy</notAfter>
>> >        <Address rdf:about="AddressA"/>
>> >      </rdf:Description>
>> >    </lived>
>> > </Person>
>> >
>> > Regards,
>> > Paul Gearon
>>
>> --
>> Jeffrey Yasskin
>> http://jeffrey.yasskin.info/
>>
>>
>

Charles McCathieNevile  http://www.w3.org/People/Charles  tel: +61 409 134 136
SWAD-E http://www.w3.org/2001/sw/Europe         fax(france): +33 4 92 38 78 22
 Post:   21 Mitchell street, FOOTSCRAY Vic 3011, Australia    or
 W3C, 2004 Route des Lucioles, 06902 Sophia Antipolis Cedex, France
Received on Saturday, 9 October 2004 23:55:07 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:10 GMT