SIOC/VersionTracking

From W3C Wiki

This page describes different options how to express information about different revisions of the same post in ["SIOC"].

You are very welcome to discuss pros/cons and add more suggestions.


Present solution:

 sioc:Post has properties sioc:previous_version, :next_version for linking versions and sioc:has_modifier (inverse = :modifier_of) for indicating who performed the changes.

Option 1: previous_ / next_version

If previous / next are transitive properties, and using created_at and has_creator /has_modifier for each versionned Post, I think we can get all relevant information about versions of the data. Yet, a version_comment attribute could be added to sioc:Post, so that each post may have a short description about its revision (eg: "initial version", "typo..." as we can do in some wikis, or in CVS). - AlexandrePassant

Option 2: versioning via events

Define events for post creation/modification/deletion (sioc:CreationEvent, ...). Let these events point to sioc:Post (part concept of post as a whole) and have properties describing the change.

This is similar to the wikis model - each event could describe 'diffs' between versions.

Related - Figure sioc-user_account.jpg

Option 3: new version class

Define sioc:Version or sioc:Revision objects that contain information about a particular revision. Have a property that described parent-child relationships between sioc:Posts and sioc:Revisions.

Modification: combine with option #2 - have events act as a link between revisions and parent post concept.

Pros: more precise model BR Cons: add complexity