Re: RDF Reification

Neil Stansbury <[email protected]> Tue, 03 Jan 2006 17:58:59 +0000
Newsgroups gmane.comp.mozilla.devel.rdf
Organization Another Netscape Collabra Server User
Message-ID <[email protected]>
Harry, thanks for your thoughts. What's your thinking behind storing 
whether it's an assert/unassert/modify?

What I was thinking was:

For each reificated triple, a timestamp is used to uniquely identify the 
journaled triple itself:

urn:undo:utc-timestamp => rdf:subject => urn:abc
urn:undo:utc-timestamp => rdf:predicate => dc:Title
urn:undo:utc-timestamp => rdf:object => "current-value"
urn:undo:utc-timestamp => my:oldvalue => "old-value"

This allows me to identify any specific triple. A NULL value asserted in 
the "my:oldvalue" predicate could equate to an unassert of the triple.

A journalled action may comprise any number of actual underlying 
assertions therefore I also need to assert the journal action each entry 
belongs to:

urn:undo:utc-timestamp => my:journal => "unique-journal-id"

Then like you suggested the action string:

unique-journal-id => dc:Title => "insert"

Probably as a localisable string uri.

Then I can call GetSources( "my:journal", "unique-journal-id" ); which 
will give me all subjects that belong to that journalled action.

So I'd end up with:

unique-journal-id => dc:Title => "insert"
urn:undo:utc-timestamp => my:journal => "unique-journal-id"
urn:undo:utc-timestamp => rdf:subject => urn:abc
urn:undo:utc-timestamp => rdf:predicate => dc:Title
urn:undo:utc-timestamp => rdf:object => "current-value"
urn:undo:utc-timestamp => my:oldvalue => "old-value"


Though that's still 5 journalled triples for each underlying triple :¬(



Cheers,

N