SemVersion/Concepts

From semanticweb.org

Jump to: navigation, search

Here we briefly explain the main concepts in SemVersion.

Contents

[edit] SemVersion

Is used to obtain a session. Everything is done through a session, to allow the system to know who does what.

[edit] Session

A session allows to create or get VersionedModels. It also gives you a blank model, which you can use to prepare commits to a version.

[edit] VersionedModel

This represents a version tree for a model, that is versioned. In the beginning, a VersionedModel is empty. Once you commit a root version to it (which is just an RDF model, commited as the first version), you can start using the thing.

[edit] Version

A version is like a snapshot in time of an RDF model. You can get the contents of it, but never change it. Ok, you can change it, but it will be a change to an in-memory-copy of the data. You can commit such a changed model as a new version.

Each version has:

  • the RDF data
  • optional: a comment
  • optional: a label
  • a URI
  • a branch label
  • a flag, if it is a suggestion or not
  • a number of child versions

There are a few basic operations that can be done with versions:

  • Commit a new RDF model as a child-version. The new version will be created, ignoring the existing content, using the new content as the state. You can also indicate, if your commit is only a suggestion or a 'real' version. Suggestions cannot have real versions commited to it, but any kind of version can have a suggestion as a child.
  • Commit as branch: Same as above, but using a different branch label. Normally, children inherit the branch labels form the parents. So different from SVN, a single version can have MULTIPLE children IN THE SAME BRANCH. If that doesn't make sense, I can change it. Branches are really only labels.
  • Merge: This creates a new version as the union of two existing versions. The new version is a child of both parents. Much like in real life.

[edit] VersionedItem

Is an internal super-interface for Versions and VersionedModels, as they share both many commonalities (both have a URI, a comment, a provenance URI, ...).

[edit] Model =

Refers to an RDF2Go model.

Personal tools