diff --git a/bds/source/java/ch/systemsx/cisd/bds/DataSet.java b/bds/source/java/ch/systemsx/cisd/bds/DataSet.java
index 7ba035b93199fbedbc027c740c34f13c2885ee4a..85d66a9a00b3775302103503e2f6400fecec9ba4 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/DataSet.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/DataSet.java
@@ -46,7 +46,7 @@ public final class DataSet implements IStorable
 
     public static final String PRODUCER_CODE = "producer_code";
 
-    public static final String OBSERVABLE_TYPE = "observable_type";
+    public static final String DATA_SET_TYPE = "data_set_type";
 
     public static final String IS_MEASURED = "is_measured";
 
@@ -61,7 +61,7 @@ public final class DataSet implements IStorable
     private final String producerCode;
 
     /** Is a code that describes the type of data that is stored in this standard. */
-    private final String observableTypeCode;
+    private final String dataSetTypeCode;
 
     /**
      * Specifies whether the data set has been measured from a sample or whether it has been derived
@@ -81,32 +81,32 @@ public final class DataSet implements IStorable
      * Creates an instance of data set.
      * 
      * @param code A non-empty string of the data set code. Can not be empty.
-     * @param observableType type of this data set. Can not be <code>null</code>.
+     * @param dataSetType type of this data set. Can not be <code>null</code>.
      */
-    public DataSet(final String code, final String observableType)
+    public DataSet(final String code, final String dataSetType)
     {
-        this(code, observableType, Boolean.TRUE, null, null, null);
+        this(code, dataSetType, Boolean.TRUE, null, null, null);
     }
 
     /**
      * Creates an instance of data set.
      * 
      * @param code A non-empty string of the data set code. Can not be empty.
-     * @param observableType type of this data set. Can not be <code>null</code>.
+     * @param dataSetType type of this data set. Can not be <code>null</code>.
      * @param isMeasured measured or derived.
      * @param productionTimestampOrNull production timestamp or <code>null</code> if unknown.
      * @param producerCodeOrNull producer code (aka "device id") or <code>null</code> if unknown.
      * @param parentCodesOrNull list of parent data sets. Must be <code>null</code> or empty for
      *            measured data (or not empty for derived data).
      */
-    public DataSet(final String code, final String observableType, final Boolean isMeasured,
+    public DataSet(final String code, final String dataSetType, final Boolean isMeasured,
             final Date productionTimestampOrNull, final String producerCodeOrNull,
             final List<String> parentCodesOrNull)
     {
         this.code = code == null ? "" : code;
         this.isMeasured = isMeasured;
-        assert StringUtils.isEmpty(observableType) == false : "Unspecified observable type.";
-        this.observableTypeCode = observableType;
+        assert StringUtils.isEmpty(dataSetType) == false : "Unspecified data set type.";
+        this.dataSetTypeCode = dataSetType;
         if (isMeasured.toBoolean() == true && parentCodesOrNull != null
                 && parentCodesOrNull.size() > 0)
         {
@@ -138,9 +138,9 @@ public final class DataSet implements IStorable
         return producerCode;
     }
 
-    public final String getObservableTypeCode()
+    public final String getDataSetTypeCode()
     {
-        return observableTypeCode;
+        return dataSetTypeCode;
     }
 
     public final Boolean isMeasured()
@@ -168,7 +168,7 @@ public final class DataSet implements IStorable
         assert directory != null : "Given directory can not be null.";
         final IDirectory idFolder = Utilities.getSubDirectory(directory, FOLDER);
         final String code = Utilities.getTrimmedString(idFolder, CODE);
-        final String observableTypeCode = Utilities.getTrimmedString(idFolder, OBSERVABLE_TYPE);
+        final String dataSetTypeCode = Utilities.getTrimmedString(idFolder, DATA_SET_TYPE);
         final Boolean isMeasured = Utilities.getBoolean(idFolder, IS_MEASURED);
         final Date productionTimestampOrNull = Utilities.tryGetDate(idFolder, PRODUCTION_TIMESTAMP);
         final String producerCode = Utilities.getTrimmedString(idFolder, PRODUCER_CODE);
@@ -184,7 +184,7 @@ public final class DataSet implements IStorable
         }
         assert completeFlag != null : "Complete flag not specified.";
         final DataSet dataSet =
-                new DataSet(code, observableTypeCode, isMeasured, productionTimestampOrNull,
+                new DataSet(code, dataSetTypeCode, isMeasured, productionTimestampOrNull,
                         (producerCode.length() == 0 ? null : producerCode), parentCodes);
         dataSet.isComplete = completeFlag;
         return dataSet;
@@ -203,7 +203,7 @@ public final class DataSet implements IStorable
                         .get().format(productionTimestamp));
         folder.addKeyValuePair(PRODUCER_CODE, StringUtils.emptyIfNull(producerCode));
         folder.addKeyValuePair(IS_MEASURED, isMeasured.toString());
-        folder.addKeyValuePair(OBSERVABLE_TYPE, observableTypeCode);
+        folder.addKeyValuePair(DATA_SET_TYPE, dataSetTypeCode);
         folder.addKeyValuePair(IS_COMPLETE, isComplete.getNiceRepresentation());
         final String value;
         if (parentCodes.size() > 0)
@@ -252,7 +252,7 @@ public final class DataSet implements IStorable
         builder.append(CODE, code);
         builder.append(IS_COMPLETE, isComplete);
         builder.append(IS_MEASURED, isMeasured);
-        builder.append(OBSERVABLE_TYPE, observableTypeCode);
+        builder.append(DATA_SET_TYPE, dataSetTypeCode);
         builder.append(PARENT_CODES, parentCodes);
         builder.append(PRODUCER_CODE, producerCode);
         builder.append(PRODUCTION_TIMESTAMP, productionTimestamp);
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataSetFileSystemTestCase.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataSetFileSystemTestCase.java
index d50db73393a764266a671b2699bb2c3c9c30dcc2..8b9c23b5d875281adddf730ffdcb12baf3bdb950 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataSetFileSystemTestCase.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataSetFileSystemTestCase.java
@@ -45,11 +45,11 @@ public final class DataSetFileSystemTestCase extends AbstractFileSystemTestCase
     {
         final IDirectory directory = NodeFactory.createDirectoryNode(workingDirectory);
         final String dataSetCode = "code";
-        final String observableType = "HCS_IMAGE";
-        final DataSet dataSet = new DataSet(dataSetCode, observableType);
+        final String dataSetType = "HCS_IMAGE";
+        final DataSet dataSet = new DataSet(dataSetCode, dataSetType);
         dataSet.saveTo(directory);
         final IDirectory folder = Utilities.getSubDirectory(directory, DataSet.FOLDER);
-        checkBasicDataSet(folder, dataSetCode, observableType, Boolean.TRUE);
+        checkBasicDataSet(folder, dataSetCode, dataSetType, Boolean.TRUE);
         assertEquals(0, Utilities.getStringList(folder, DataSet.PARENT_CODES).size());
         assertEquals(StringUtils.EMPTY_STRING, Utilities.getTrimmedString(folder,
                 DataSet.PRODUCER_CODE));
@@ -59,10 +59,10 @@ public final class DataSetFileSystemTestCase extends AbstractFileSystemTestCase
     }
 
     private final static void checkBasicDataSet(final IDirectory directory,
-            final String dataSetCode, final String observableType, final Boolean isMeasured)
+            final String dataSetCode, final String dataSetType, final Boolean isMeasured)
     {
         assertEquals(dataSetCode, Utilities.getTrimmedString(directory, DataSet.CODE));
-        assertEquals("HCS_IMAGE", Utilities.getTrimmedString(directory, DataSet.OBSERVABLE_TYPE));
+        assertEquals("HCS_IMAGE", Utilities.getTrimmedString(directory, DataSet.DATA_SET_TYPE));
         assertEquals(isMeasured, Utilities.getBoolean(directory, DataSet.IS_MEASURED));
     }
 
@@ -71,15 +71,15 @@ public final class DataSetFileSystemTestCase extends AbstractFileSystemTestCase
     {
         final IDirectory directory = NodeFactory.createDirectoryNode(workingDirectory);
         final String dataSetCode = "code";
-        final String observableType = "HCS_IMAGE";
+        final String dataSetType = "HCS_IMAGE";
         final String producerCode = "producerCode";
         final Date productionTimestamp = new Date(0L);
         final DataSet dataSet =
-                new DataSet(dataSetCode, observableType, Boolean.TRUE, productionTimestamp,
+                new DataSet(dataSetCode, dataSetType, Boolean.TRUE, productionTimestamp,
                         producerCode, null);
         dataSet.saveTo(directory);
         final IDirectory folder = Utilities.getSubDirectory(directory, DataSet.FOLDER);
-        checkBasicDataSet(folder, dataSetCode, observableType, Boolean.TRUE);
+        checkBasicDataSet(folder, dataSetCode, dataSetType, Boolean.TRUE);
         assertEquals(0, Utilities.getStringList(folder, DataSet.PARENT_CODES).size());
         assertEquals(producerCode, Utilities.getTrimmedString(folder, DataSet.PRODUCER_CODE));
         assertEquals(productionTimestamp, Utilities.tryGetDate(folder,
@@ -91,24 +91,24 @@ public final class DataSetFileSystemTestCase extends AbstractFileSystemTestCase
     {
         final IDirectory directory = NodeFactory.createDirectoryNode(workingDirectory);
         final String dataSetCode = "code";
-        final String observableType = "HCS_IMAGE";
+        final String dataSetType = "HCS_IMAGE";
         final List<String> parentCodes = new ArrayList<String>();
         final String parentCode = "parent1";
         parentCodes.add(parentCode);
         parentCodes.add("parent2");
         try
         {
-            new DataSet(dataSetCode, observableType, Boolean.TRUE, null, null, parentCodes);
+            new DataSet(dataSetCode, dataSetType, Boolean.TRUE, null, null, parentCodes);
             fail(DataSet.NO_PARENT_FOR_MEASURED_DATA);
         } catch (final IllegalArgumentException ex)
         {
             assertEquals(DataSet.NO_PARENT_FOR_MEASURED_DATA, ex.getMessage());
         }
         final DataSet dataSet =
-                new DataSet(dataSetCode, observableType, Boolean.FALSE, null, null, parentCodes);
+                new DataSet(dataSetCode, dataSetType, Boolean.FALSE, null, null, parentCodes);
         dataSet.saveTo(directory);
         final IDirectory folder = Utilities.getSubDirectory(directory, DataSet.FOLDER);
-        checkBasicDataSet(folder, dataSetCode, observableType, Boolean.FALSE);
+        checkBasicDataSet(folder, dataSetCode, dataSetType, Boolean.FALSE);
         final List<String> parentList = Utilities.getStringList(folder, DataSet.PARENT_CODES);
         assertEquals(2, parentList.size());
         assertEquals(parentCode, parentList.get(0));
@@ -134,17 +134,17 @@ public final class DataSetFileSystemTestCase extends AbstractFileSystemTestCase
     {
         final IDirectory directory = NodeFactory.createDirectoryNode(workingDirectory);
         final String dataSetCode = "code";
-        final String observableType = "HCS_IMAGE";
+        final String dataSetType = "HCS_IMAGE";
         final List<String> parentCodes = new ArrayList<String>();
         final String parentCode = "parent1";
         parentCodes.add(parentCode);
         parentCodes.add("parent2");
         final DataSet dataSet =
-                new DataSet(dataSetCode, observableType, Boolean.FALSE, productionTimestamp,
+                new DataSet(dataSetCode, dataSetType, Boolean.FALSE, productionTimestamp,
                         producerCode, parentCodes);
         dataSet.saveTo(directory);
         final DataSet newDataSet = DataSet.loadFrom(directory);
-        assertEquals(observableType, newDataSet.getObservableTypeCode());
+        assertEquals(dataSetType, newDataSet.getDataSetTypeCode());
         assertEquals(dataSetCode, newDataSet.getCode());
         assertEquals(parentCodes, newDataSet.getParentCodes());
         assertEquals(productionTimestamp, newDataSet.getProductionTimestamp());
diff --git a/integration-tests/run.sh b/integration-tests/run.sh
index e08150395717b16fd3d5c180dd0d1b272737dded..5cb13bd7dc9b9818fa0c27f3892454e3af07f52a 100755
--- a/integration-tests/run.sh
+++ b/integration-tests/run.sh
@@ -598,7 +598,7 @@ function assert_correct_content_of_processing_dir {
     assert_same_content $TEMPLATE/openBIS-client/testdata/register-experiments/processing-parameters.txt \
                         $DATA/processing-dir/processing-parameters-from-openbis
     local instance_dir=$DATA/main-store/`ls -1 $DATA/main-store/ | grep -i 'Instance_[0-9a-f]\{8\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{12\}'`
-    local bds_container=$instance_dir/Group_CISD/Project_NEMO/Experiment_EXP1/ObservableType_HCS_IMAGE/Sample_3VCP1/
+    local bds_container=$instance_dir/Group_CISD/Project_NEMO/Experiment_EXP1/DataSetType_HCS_IMAGE/Sample_3VCP1/
     bds_container=$bds_container`ls -1 $bds_container | head -1`
     assert_dir_exists $bds_container
     local data_set2=$bds_container/data/original/microX_200801011213_3VCP1
@@ -612,7 +612,7 @@ function assert_correct_content_of_plate_3VCP1_in_store {
     
     local instance_dir=$DATA/main-store/`ls -1 $DATA/main-store/ | grep -i 'Instance_[0-9a-f]\{8\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{12\}'`
     local main_dir=$instance_dir/Group_CISD/Project_NEMO/Experiment_EXP1
-    local raw_data_dir=$main_dir/ObservableType_HCS_IMAGE/Sample_3VCP1/
+    local raw_data_dir=$main_dir/DataSetType_HCS_IMAGE/Sample_3VCP1/
     assert_dir_exists $raw_data_dir
     # Picks up the first directory found
     raw_data_dir=$raw_data_dir`ls -1 $raw_data_dir | head -1`
@@ -650,7 +650,7 @@ function assert_correct_content_of_plate_3VCP1_in_store {
     assert_equals_as_in_file microX-3VCP1 $metadata_dir/data_set/code
     assert_equals_as_in_file TRUE $metadata_dir/data_set/is_measured
     assert_equals_as_in_file FALSE $metadata_dir/data_set/is_complete
-    assert_equals_as_in_file HCS_IMAGE $metadata_dir/data_set/observable_type
+    assert_equals_as_in_file HCS_IMAGE $metadata_dir/data_set/data_set_type
     assert_equals_as_in_file microX $metadata_dir/data_set/producer_code
     # Sample
     assert_equals_as_in_file 3VCP1 $metadata_dir/sample/code
@@ -695,13 +695,13 @@ function assert_correct_content_of_invalid_plate_in_store {
     local cell_plate=$1
     echo ==== assert correct content of invalid plate $cell_plate in store ====
     
-    local error_dir=$DATA/main-store/error/ObservableType_HCS_IMAGE
+    local error_dir=$DATA/main-store/error/DataSetType_HCS_IMAGE
     assert_dir_exists $error_dir
     local data_set=$error_dir/microX_200801011213_$cell_plate
     assert_same_content $TEST_DATA/$cell_plate $data_set
     assert_file_exists $data_set.exception
     local instance_dir=$DATA/main-store/`ls -1 $DATA/main-store/ | grep -i 'Instance_[0-9a-f]\{8\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{12\}'`
-    assert_dir_empty $instance_dir/Group_CISD/Project_NEMO/Experiment_EXP1/ObservableType_HCS_IMAGE/Sample_$cell_plate
+    assert_dir_empty $instance_dir/Group_CISD/Project_NEMO/Experiment_EXP1/DataSetType_HCS_IMAGE/Sample_$cell_plate
 }
     
 function assert_correct_content_of_image_analysis_data {
@@ -709,7 +709,7 @@ function assert_correct_content_of_image_analysis_data {
     
     echo ====  check image analysis data for cell plate $cell_plate ====
     local instance_dir=$DATA/main-store/`ls -1 $DATA/main-store/ | grep -i 'Instance_[0-9a-f]\{8\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{12\}'`
-    local img_analysis=$instance_dir/Group_CISD/Project_NEMO/Experiment_EXP1/ObservableType_HCS_IMAGE_ANALYSIS_DATA/Sample_$cell_plate/
+    local img_analysis=$instance_dir/Group_CISD/Project_NEMO/Experiment_EXP1/DataSetType_HCS_IMAGE_ANALYSIS_DATA/Sample_$cell_plate/
     assert_dir_exists $img_analysis
     # Picks up the first directory found
     img_analysis=$img_analysis`ls -1 $img_analysis | head -1`
@@ -723,8 +723,8 @@ function assert_correct_content_of_unidentified_plate_in_store {
     
     local unidentified_dir=$DATA/main-store/unidentified
     assert_dir_exists $unidentified_dir
-    assert_same_content $TEST_DATA/$cell_plate $unidentified_dir/ObservableType_HCS_IMAGE/microX_200801011213_$cell_plate
-    assert_same_content $TEST_DATA/$cell_plate $unidentified_dir/ObservableType_HCS_IMAGE_ANALYSIS_DATA/microX_200801011213_$cell_plate
+    assert_same_content $TEST_DATA/$cell_plate $unidentified_dir/DataSetType_HCS_IMAGE/microX_200801011213_$cell_plate
+    assert_same_content $TEST_DATA/$cell_plate $unidentified_dir/DataSetType_HCS_IMAGE_ANALYSIS_DATA/microX_200801011213_$cell_plate
 }
 
 function assert_correct_dataset_content_in_database {
diff --git a/integration-tests/templates/etlserver-all/etc/service.properties b/integration-tests/templates/etlserver-all/etc/service.properties
index 6338d2bdc22169b111466cdbf6fb43621795658b..c2a42b8c02443064a8660e0a5d5aeb746e4a62b3 100644
--- a/integration-tests/templates/etlserver-all/etc/service.properties
+++ b/integration-tests/templates/etlserver-all/etc/service.properties
@@ -75,7 +75,7 @@ raw-data.data-set-info-extractor.data-set-code-entities-glue = -
 raw-data.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
 raw-data.type-extractor.file-format-type = TIFF
 raw-data.type-extractor.locator-type = RELATIVE_LOCATION
-raw-data.type-extractor.observable-type = HCS_IMAGE
+raw-data.type-extractor.data-set-type = HCS_IMAGE
 raw-data.type-extractor.procedure-type = DATA_ACQUISITION
 
 # The storage processor plugin (IStorageProcessor implementation)
@@ -109,7 +109,7 @@ image-analysis.data-set-info-extractor.data-set-code-entities-glue = -
 image-analysis.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
 image-analysis.type-extractor.file-format-type = 3VPROPRIETARY
 image-analysis.type-extractor.locator-type = RELATIVE_LOCATION
-image-analysis.type-extractor.observable-type = HCS_IMAGE_ANALYSIS_DATA
+image-analysis.type-extractor.data-set-type = HCS_IMAGE_ANALYSIS_DATA
 image-analysis.type-extractor.procedure-type = IMAGE_ANALYSIS
 
 # The storage processor (IStorageProcessor implementation)