WebComposition/DGS Update

After some discussion about the WebComposition/DGS configuration this week, we changed the usage of schema validation with the Web.config file. The validation scope is now not bound anymore to data adapters directly. Rather we introduced a default validation defined in the Web.config such as

 <webComposition> <dataGridService> <defaultValidationscope="None"/> ...

Valid values are ‘None’, ‘List’ and ‘Element’.This schema scope represents the default schema validation scope whenever an information store is created and data is added. If set to ‘None’ no validation is performed at all. Using ‘Element’ the added XML is validated against the schema (a-priori validation) before the element is added to the information store while the usage of ‘List’ causes the data to be validated against the schema after being added to the information store (a posteriori validation).

The settings can be easily overwritten by using RDF meta data e.g. when using the N3 filter on a information store http://www.foo.bar/myStore:

<http://www.foo.bar/myStore>
http://www.webcomposition.net/2008/02/dgs/meta/validation
"Element".

That way, the default value can be always adapted to the specific need for a single information store.

Distributed Version Control at the DSS Evaluation Phase

This post will give some insight into the distributed version control ad the Distributed and Self-organizing Systems Group. Usually, I am keen about trying out new things, e.g. distributed version control systems such as GIT, Mercurial or Bazaar. However, currently the group’s infrastructure is set up with Subversion as internal revision control system.

For the next few months we will start an evaluation phase with the students, working on the WebComposition/DGS approach, based on a distributed version control concept. Core components of the WebComposition project are branched into a dedicated student branch where all students can commit changes. Based on this branch each student creates his or her private branch for local changes.

The coordinator (usually some DSS staff) takes care of regular forward integration of the core components into the student branch. Each student in turn is responsible for forward integration into his or her own branch.

Changes can be submitted after testing and evaluation back into the central student branch by each student performing backward integration. The group working on the project has to agree in the LAKS meeting on the change before backward integrating the updates.

The coordinator finally takes care if these changes are also backward integrated into the original project trunk.

Distributed Version Control at the DSS

Step 1: Create a local working copy

First, look for a place where to checkout the working copy. Create a folder, e.g. branchesstudents and use Tortoise to checkout a working copy.

Initial Checkout

Select the student branch and the local folder where to store the working copy to start the checkout.

Branch

After the checkout is finished, you should will have a local working copy of the student branch.

Checkout Complete

Step 2. Create a private branch

Select ‘Branch/tag’ from the context menu of your working copy.

Branch

Use the path of your private project within the repository to create the branch.

Copy (Branch/Tag)

Step 3: Forward integrate changes from the student branch

When the student branch was updated you might be interested in getting these updates into your private branch. To forward integrate these changes into your private branch, select the folder where your local working copy lives, and use the Tortoise context menu to select ‘Merge…’.

Merge Branches

Select the repository folder you want to forward integrate Probably this will be the student branch – the paths in the screenshot below will thus differ from yours. Select the revision from where the forward integration should start. Now select the revision where it should end. Usually, this will be the head revision. After merging submit the changes of your working copy to the repository and you are done.

Merge

To get some more information on Subversion, or to learn how to perform the steps above on command line, refer the Subversion book.

Working on the WebComposition/DGS Documentation

These days I won’t have much time for blogging since I am working on the refresh for the WebComposition/DGS web site. The final site is not online, yet. However, I can give you a first glance how the new site will look like. Stay tuned.

WebComposition Refresh

The documentation will cover the most vital design aspects of the WebComposition/DGS approach as well as all necessary information to write your own extension for the service. I am working hard to make the live demos available as soon as possible as part of the site.