Does RDF’s Model Need to Include Explicit Support for Temporal Labelling?

John Barstow, in Visions of Aestia » Thinking about RDF-lite, requests that a RDF-lite type proposal include:

> Formally include provenance and temporal labelling in the model without requiring reification.

I agree that provenance should be a first class citizen in the RDF world. Assuming that RDF is used on the web, and many of the triples will come from some URI, why not include support for marking a triple with where it came from? From what I can see, this is required if you ever want to start working on the Trust layer. As pointed out, you can do this now with reification, but that's a difficult and round-about concept to teach and implement. Most RDF systems support quads under the covers anyway, so there's an obvious need to support Subject, Predicate, Object, Source (provenance).

I disagree that RDF needs to include some explicit support for temporal labelling. IMHO modeling events that need to be clarified by time is perfectly possible now, without crazy hacks.

Example: Let's say someone asks, "What is Seth doing now?" The answer would be, "Seth is currently running." OK, no problem.

A naive approach to modeling "Seth is currently running" would be to first create a triple like:

:Seth :is :running.

Hmm... is Seth always running? What about yesterday? I believe it's this type of thinking that makes people think they need time and date in the model. How would you clarify that the running is only "now", where "now" is some point in time?

Flip the triple around, and think in Nouns. The above triple doesn't work because it's modelling a verb (:running). Turning it around, you can model it like:

:ExerciseRun :performedBy :Seth ;
:startedAt "2006-01-03T12:23:45";
:endedAt "2006-01-03T13:21:20".

This says something to effect of, "Seth went for a run for exercise between 12:23 and 1:21 on the 3rd of Jan." I've made the verb an instance of a class here, in other words a Noun.

The question I have, what temporal events can't be modeled this way?

Popular posts from this blog

I ported a JavaScript app to Dart. Here's what I learned.

Converting Array to List in Scala

Minification is not enough, you need tree shaking