rtc1 (2) [Avatar] Offline
I'm wondering if anyone can offer references to docs on how to model and store the RDF statement historical data as they change over time. The author is writing a high-level book and does not go into these real-world areas.

I've googled with keywords such as "rdf temporal databases" and found a few but would like to a find minimally complex approach before I roll my own. For example, [ john, phone, 123-4567] at t1, and [ john, phone, 132-5432 ] at t2. You have a statement that changes over time but you don't want to lose older statement states. Two approaches are 1) timestamp the RDF statement, or 2) keep a snapshot of an entire RDF graph. Neither work well for different types of applications nor is temporal-enabled querying simple either. Some relationships/predicates are sticky such as "spouse" such that [ john, spouse, mary ] at t1 and [ john, spouse, null ] at t2 and [ john, spouse, sally ] at t3. In this case you can assume John's spouse is Mary from t1 through t2, what I call "sticky" statements. But [ john, weight, 193 ] at t1 and [ john, weight, 198 ] at t2 does not provide any information about John's weight between t1 and t2. These are "snapshot" values. If t1 and t2 are closely spaced in time, John's weight could be interpolated/estimated for intermediate times, but if t1 and t2 are 12 months apart, then there is no accurate way to estimate John's weight between t1 and t2. So each RDF statement is a time-based snapshot/data point.