SemVersion/Concepts
From semanticweb.org
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.
