More on temporal relations in RDF

Temporal relations from Henry Story on 2006-03-23 ( from March 2006) is a post to the swig mailing list dealing with time in RDF.

The proposal in the email attempts to use N3's ability to declare metadata about graphs, in order to say when the graph was fetched. For instance:

{ :Oven :temp "22"^^t:celsius . } :fetched [ :at "2006-03-23T10:00:00Z"^^xsd:dateTime; ] .

Of course, the problem here is there's no formal RDF semantics for this, as there's no formal way to write triples about a graph. This is an N3 thing. I would guess the closest thing in RDF would be reification.

This is similar to how I've been thinking about the problem, which is marking the time the triples were retrieved from the source. The email, though, points out that it is difficult to merge those graphs together, as you'll end up with many values for an Oven's :temp. Once merged, how do you query for a particular temp at a particular time?

Another way to do it is to make the measurement a formal object. I've blogged on this before, and it's been heavily discussed in comments, but in short:

:Measurement :of :Oven ; :takenAt "2006-03-23T10:00:00Z"^^xsd:dateTime ; :valueRecorded "22"^^t:celcius.

A bit of OWL makes it slightly more interesting:

:TemperatureMeasurement owl:equivalentClass [ a owl:Restriction; owl:onProperty :valueRecorded; owl:someValuesFrom t:celcius ].

(Does that work? Will have to try...)
Post a Comment

Popular posts from this blog

Converting Array to List in Scala

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

Null-aware operators in Dart