You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by dg...@apache.org on 2017/10/06 13:33:28 UTC

[04/15] incubator-unomi git commit: UNOMI-117 refactor tags as an open string, removed tags definitions, removed tags hierarchy and associated functions, add previously parent tag to children

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/samples/tweet-button-plugin/src/main/resources/META-INF/cxs/actions/incrementTweetNumberAction.json
----------------------------------------------------------------------
diff --git a/samples/tweet-button-plugin/src/main/resources/META-INF/cxs/actions/incrementTweetNumberAction.json b/samples/tweet-button-plugin/src/main/resources/META-INF/cxs/actions/incrementTweetNumberAction.json
index 473cda8..81c468a 100644
--- a/samples/tweet-button-plugin/src/main/resources/META-INF/cxs/actions/incrementTweetNumberAction.json
+++ b/samples/tweet-button-plugin/src/main/resources/META-INF/cxs/actions/incrementTweetNumberAction.json
@@ -4,6 +4,7 @@
     "name": "incrementTweetNumberAction",
     "description": "",
     "tags": [
+      "profileTags",
       "event"
     ],
     "readOnly": true

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/java/org/apache/unomi/services/services/DefinitionsServiceImpl.java
----------------------------------------------------------------------
diff --git a/services/src/main/java/org/apache/unomi/services/services/DefinitionsServiceImpl.java b/services/src/main/java/org/apache/unomi/services/services/DefinitionsServiceImpl.java
index 4771eee..98270c7 100644
--- a/services/src/main/java/org/apache/unomi/services/services/DefinitionsServiceImpl.java
+++ b/services/src/main/java/org/apache/unomi/services/services/DefinitionsServiceImpl.java
@@ -19,7 +19,6 @@ package org.apache.unomi.services.services;
 
 import org.apache.unomi.api.PluginType;
 import org.apache.unomi.api.PropertyMergeStrategyType;
-import org.apache.unomi.api.Tag;
 import org.apache.unomi.api.ValueType;
 import org.apache.unomi.api.actions.ActionType;
 import org.apache.unomi.api.conditions.Condition;
@@ -44,12 +43,10 @@ public class DefinitionsServiceImpl implements DefinitionsService, SynchronousBu
 
     private PersistenceService persistenceService;
 
-    private Map<String, Tag> tags = new HashMap<>();
-    private Set<Tag> rootTags = new LinkedHashSet<>();
     private Map<String, ConditionType> conditionTypeById = new HashMap<>();
     private Map<String, ActionType> actionTypeById = new HashMap<>();
     private Map<String, ValueType> valueTypeById = new HashMap<>();
-    private Map<Tag, Set<ValueType>> valueTypeByTag = new HashMap<>();
+    private Map<String, Set<ValueType>> valueTypeByTag = new HashMap<>();
     private Map<Long, List<PluginType>> pluginTypes = new HashMap<>();
     private Map<String, PropertyMergeStrategyType> propertyMergeStrategyTypeById = new HashMap<>();
 
@@ -89,8 +86,6 @@ public class DefinitionsServiceImpl implements DefinitionsService, SynchronousBu
 
         pluginTypes.put(bundleContext.getBundle().getBundleId(), new ArrayList<PluginType>());
 
-        loadPredefinedTags(bundleContext);
-
         loadPredefinedConditionTypes(bundleContext);
         loadPredefinedActionTypes(bundleContext);
         loadPredefinedValueTypes(bundleContext);
@@ -108,56 +103,21 @@ public class DefinitionsServiceImpl implements DefinitionsService, SynchronousBu
                 if (type instanceof ValueType) {
                     ValueType valueType = (ValueType) type;
                     valueTypeById.remove(valueType.getId());
-                    for (Tag tag : valueType.getTags()) {
-                        valueTypeByTag.get(tag).remove(valueType);
+                    for (String tag : valueType.getTags()) {
+                        if (valueTypeByTag.containsKey(tag)) {
+                            valueTypeByTag.get(tag).remove(valueType);
+                        }
                     }
                 }
             }
         }
     }
 
-
     public void preDestroy() {
         bundleContext.removeBundleListener(this);
         logger.info("Definitions service shutdown.");
     }
 
-    @Deprecated
-    private void loadPredefinedTags(BundleContext bundleContext) {
-        Enumeration<URL> predefinedTagEntries = bundleContext.getBundle().findEntries("META-INF/cxs/tags", "*.json", true);
-        if (predefinedTagEntries == null) {
-            return;
-        }
-        while (predefinedTagEntries.hasMoreElements()) {
-            URL predefinedTagURL = predefinedTagEntries.nextElement();
-            logger.debug("Found predefined tags at " + predefinedTagURL + ", loading... ");
-
-            try {
-                Tag tag = CustomObjectMapper.getObjectMapper().readValue(predefinedTagURL, Tag.class);
-                tag.setPluginId(bundleContext.getBundle().getBundleId());
-                tags.put(tag.getId(), tag);
-            } catch (IOException e) {
-                logger.error("Error while loading segment definition " + predefinedTagEntries, e);
-            }
-        }
-
-        // now let's resolve all the children.
-        resolveTagsChildren();
-    }
-
-    private void resolveTagsChildren() {
-        for (Tag tag : tags.values()) {
-            if (tag.getParentId() != null && tag.getParentId().length() > 0) {
-                Tag parentTag = tags.get(tag.getParentId());
-                if (parentTag != null) {
-                    parentTag.getSubTags().add(tag);
-                }
-            } else {
-                rootTags.add(tag);
-            }
-        }
-    }
-
     private void loadPredefinedConditionTypes(BundleContext bundleContext) {
         Enumeration<URL> predefinedConditionEntries = bundleContext.getBundle().findEntries("META-INF/cxs/conditions", "*.json", true);
         if (predefinedConditionEntries == null) {
@@ -212,8 +172,7 @@ public class DefinitionsServiceImpl implements DefinitionsService, SynchronousBu
                 valueType.setPluginId(bundleContext.getBundle().getBundleId());
                 valueTypeById.put(valueType.getId(), valueType);
                 pluginTypeArrayList.add(valueType);
-                for (String tagId : valueType.getTagIds()) {
-                    Tag tag = tags.get(tagId);
+                for (String tag : valueType.getTags()) {
                     if (tag != null) {
                         valueType.getTags().add(tag);
                         Set<ValueType> valueTypes = valueTypeByTag.get(tag);
@@ -224,7 +183,7 @@ public class DefinitionsServiceImpl implements DefinitionsService, SynchronousBu
                         valueTypeByTag.put(tag, valueTypes);
                     } else {
                         // we found a tag that is not defined, we will define it automatically
-                        logger.warn("Unknown tag " + tagId + " used in property type definition " + predefinedPropertyURL);
+                        logger.debug("Unknown tag " + tag + " used in property type definition " + predefinedPropertyURL);
                     }
                 }
             } catch (Exception e) {
@@ -234,30 +193,6 @@ public class DefinitionsServiceImpl implements DefinitionsService, SynchronousBu
 
     }
 
-    @Deprecated
-    public Set<Tag> getAllTags() {
-        return new HashSet<Tag>(tags.values());
-    }
-
-    @Deprecated
-    public Set<Tag> getRootTags() {
-        return rootTags;
-    }
-
-    @Deprecated
-    public Tag getTag(String tagId) {
-        Tag completeTag = tags.get(tagId);
-        return completeTag;
-    }
-
-    @Deprecated
-    public void addTag(Tag tag) {
-        tag.setPluginId(bundleContext.getBundle().getBundleId());
-        tags.put(tag.getId(), tag);
-        // now let's resolve all the children.
-        resolveTagsChildren();
-    }
-
     public Map<Long, List<PluginType>> getTypesByPlugin() {
         return pluginTypes;
     }
@@ -272,25 +207,6 @@ public class DefinitionsServiceImpl implements DefinitionsService, SynchronousBu
         return all;
     }
 
-    @Deprecated
-    public Set<ConditionType> getConditionTypesByTag(Tag tag, boolean includeFromSubtags) {
-        Set<ConditionType> conditionTypes = new LinkedHashSet<ConditionType>();
-        List<ConditionType> directConditionTypes = persistenceService.query("metadata.tags",tag.getId(),null, ConditionType.class);
-        for (ConditionType type : directConditionTypes) {
-            if (type.getParentCondition() != null) {
-                ParserHelper.resolveConditionType(this, type.getParentCondition());
-            }
-        }
-        conditionTypes.addAll(directConditionTypes);
-        if (includeFromSubtags) {
-            for (Tag subTag : tag.getSubTags()) {
-                Set<ConditionType> childConditionTypes = getConditionTypesByTag(subTag, true);
-                conditionTypes.addAll(childConditionTypes);
-            }
-        }
-        return conditionTypes;
-    }
-
     public Set<ConditionType> getConditionTypesByTag(String tag) {
         Set<ConditionType> conditionTypes = new LinkedHashSet<ConditionType>();
         List<ConditionType> directConditionTypes = persistenceService.query("metadata.tags", tag,null, ConditionType.class);
@@ -333,20 +249,6 @@ public class DefinitionsServiceImpl implements DefinitionsService, SynchronousBu
         return persistenceService.getAllItems(ActionType.class);
     }
 
-    @Deprecated
-    public Set<ActionType> getActionTypeByTag(Tag tag, boolean includeFromSubtags) {
-        Set<ActionType> actionTypes = new LinkedHashSet<ActionType>();
-        List<ActionType> directActionTypes = persistenceService.query("metadata.tags",tag.getId(),null, ActionType.class);
-        actionTypes.addAll(directActionTypes);
-        if (includeFromSubtags) {
-            for (Tag subTag : tag.getSubTags()) {
-                Set<ActionType> childActionTypes = getActionTypeByTag(subTag, true);
-                actionTypes.addAll(childActionTypes);
-            }
-        }
-        return actionTypes;
-    }
-
     public Set<ActionType> getActionTypeByTag(String tag) {
         Set<ActionType> actionTypes = new LinkedHashSet<ActionType>();
         List<ActionType> directActionTypes = persistenceService.query("metadata.tags", tag,null, ActionType.class);
@@ -378,28 +280,10 @@ public class DefinitionsServiceImpl implements DefinitionsService, SynchronousBu
         return valueTypeById.values();
     }
 
-    @Deprecated
-    public Set<ValueType> getValueTypeByTag(Tag tag, boolean includeFromSubtags) {
-        Set<ValueType> valueTypes = new LinkedHashSet<ValueType>();
-        Set<ValueType> directValueTypes = valueTypeByTag.get(tag);
-        if (directValueTypes != null) {
-            valueTypes.addAll(directValueTypes);
-        }
-        if (includeFromSubtags) {
-            for (Tag subTag : tag.getSubTags()) {
-                Set<ValueType> childValueTypes = getValueTypeByTag(subTag, true);
-                valueTypes.addAll(childValueTypes);
-            }
-        }
-        return valueTypes;
-    }
-
     public Set<ValueType> getValueTypeByTag(String tag) {
         Set<ValueType> valueTypes = new LinkedHashSet<ValueType>();
-        for (Tag legacyTag : valueTypeByTag.keySet()) {
-            if (legacyTag.getId().equals(tag)) {
-                valueTypes.addAll(valueTypeByTag.get(legacyTag));
-            }
+        if (valueTypeByTag.containsKey(tag)) {
+            valueTypes.addAll(valueTypeByTag.get(tag));
         }
 
         return valueTypes;
@@ -462,13 +346,13 @@ public class DefinitionsServiceImpl implements DefinitionsService, SynchronousBu
         }
     }
 
-    public Condition extractConditionByTag(Condition rootCondition, String tagId) {
+    public Condition extractConditionByTag(Condition rootCondition, String tag) {
         if (rootCondition.containsParameter("subConditions")) {
             @SuppressWarnings("unchecked")
             List<Condition> subConditions = (List<Condition>) rootCondition.getParameter("subConditions");
             List<Condition> matchingConditions = new ArrayList<Condition>();
             for (Condition condition : subConditions) {
-                Condition c = extractConditionByTag(condition, tagId);
+                Condition c = extractConditionByTag(condition, tag);
                 if (c != null) {
                     matchingConditions.add(c);
                 }
@@ -489,7 +373,7 @@ public class DefinitionsServiceImpl implements DefinitionsService, SynchronousBu
                 }
             }
             throw new IllegalArgumentException();
-        } else if (rootCondition.getConditionType() != null && rootCondition.getConditionType().getMetadata().getTags().contains(tagId)) {
+        } else if (rootCondition.getConditionType() != null && rootCondition.getConditionType().getMetadata().getTags().contains(tag)) {
             return rootCondition;
         } else {
             return null;

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/java/org/apache/unomi/services/services/GoalsServiceImpl.java
----------------------------------------------------------------------
diff --git a/services/src/main/java/org/apache/unomi/services/services/GoalsServiceImpl.java b/services/src/main/java/org/apache/unomi/services/services/GoalsServiceImpl.java
index e67d534..a12a768 100644
--- a/services/src/main/java/org/apache/unomi/services/services/GoalsServiceImpl.java
+++ b/services/src/main/java/org/apache/unomi/services/services/GoalsServiceImpl.java
@@ -57,7 +57,7 @@ public class GoalsServiceImpl implements GoalsService, SynchronousBundleListener
 
     private RulesService rulesService;
 
-    private Map<Tag, Set<Goal>> goalByTag = new HashMap<>();
+    private Map<String, Set<Goal>> goalByTag = new HashMap<>();
 
     public void setBundleContext(BundleContext bundleContext) {
         this.bundleContext = bundleContext;
@@ -121,9 +121,8 @@ public class GoalsServiceImpl implements GoalsService, SynchronousBundleListener
                     goal.getMetadata().setScope("systemscope");
                 }
                 if (getGoal(goal.getMetadata().getId()) == null) {
-                    for (String tagId : goal.getMetadata().getTags()) {
-                        Tag tag = definitionsService.getTag(tagId);
-                        if (tag != null) {
+                    for (String tag : goal.getMetadata().getTags()) {
+                        if (goalByTag.containsKey(tag)) {
                             Set<Goal> goals = goalByTag.get(tag);
                             if (goals == null) {
                                 goals = new LinkedHashSet<>();
@@ -132,7 +131,7 @@ public class GoalsServiceImpl implements GoalsService, SynchronousBundleListener
                             goalByTag.put(tag, goals);
                         } else {
                             // we found a tag that is not defined, we will define it automatically
-                            logger.warn("Unknown tag " + tagId + " used in goal definition " + predefinedGoalURL);
+                            logger.debug("Unknown tag " + tag + " used in goal definition " + predefinedGoalURL);
                         }
                     }
 
@@ -540,29 +539,12 @@ public class GoalsServiceImpl implements GoalsService, SynchronousBundleListener
         return report;
     }
 
-    @Deprecated
-    public Set<Goal> getGoalByTag(Tag tag, boolean recursive) {
+    public Set<Goal> getGoalByTag(String tag) {
         Set<Goal> goals = new LinkedHashSet<>();
         Set<Goal> directGoals = goalByTag.get(tag);
         if (directGoals != null) {
             goals.addAll(directGoals);
         }
-        if (recursive) {
-            for (Tag subTag : tag.getSubTags()) {
-                Set<Goal> childGoals = getGoalByTag(subTag, true);
-                goals.addAll(childGoals);
-            }
-        }
-        return goals;
-    }
-
-    public Set<Goal> getGoalByTag(String tag) {
-        Set<Goal> goals = new LinkedHashSet<>();
-        for (Tag legacyTag : goalByTag.keySet()) {
-            if (legacyTag.getId().equals(tag)) {
-                goals.addAll(goalByTag.get(legacyTag));
-            }
-        }
 
         return goals;
     }

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/java/org/apache/unomi/services/services/ProfileServiceImpl.java
----------------------------------------------------------------------
diff --git a/services/src/main/java/org/apache/unomi/services/services/ProfileServiceImpl.java b/services/src/main/java/org/apache/unomi/services/services/ProfileServiceImpl.java
index 0a45be9..273b64c 100644
--- a/services/src/main/java/org/apache/unomi/services/services/ProfileServiceImpl.java
+++ b/services/src/main/java/org/apache/unomi/services/services/ProfileServiceImpl.java
@@ -294,10 +294,10 @@ public class ProfileServiceImpl implements ProfileService, SynchronousBundleList
     }
 
     @Override
-    public Set<PropertyType> getExistingProperties(String tagId, String itemType) {
+    public Set<PropertyType> getExistingProperties(String tag, String itemType) {
         Set<PropertyType> filteredProperties = new LinkedHashSet<PropertyType>();
         // TODO: here we limit the result to the definition we have, but what if some properties haven't definition but exist in ES mapping ?
-        Set<PropertyType> profileProperties = getPropertyTypeByTag(tagId, true);
+        Set<PropertyType> profileProperties = getPropertyTypeByTag(tag);
         Map<String, Map<String, Object>> itemMapping = persistenceService.getPropertiesMapping(itemType);
 
         if (itemMapping == null || itemMapping.isEmpty() || itemMapping.get("properties") == null || itemMapping.get("properties").get("properties") == null) {
@@ -593,9 +593,6 @@ public class ProfileServiceImpl implements ProfileService, SynchronousBundleList
 
         for (Profile profile : profiles) {
             if (PropertyHelper.setProperty(profile, update.getPropertyName(), update.getPropertyValue(), update.getStrategy())) {
-//                Event profileUpdated = new Event("profileUpdated", null, profile, null, null, profile, new Date());
-//                profileUpdated.setPersistent(false);
-//                eventService.send(profileUpdated);
                 save(profile);
             }
         }
@@ -642,26 +639,6 @@ public class ProfileServiceImpl implements ProfileService, SynchronousBundleList
         return propertyTypes;
     }
 
-    @Deprecated
-    public Set<PropertyType> getPropertyTypeByTag(String tagId, boolean includeFromSubtags) {
-        Set<PropertyType> propertyTypes = new LinkedHashSet<PropertyType>();
-        Collection<PropertyType> directPropertyTypes = persistenceService.query("tags", tagId, "rank", PropertyType.class);
-
-        if (directPropertyTypes != null) {
-            propertyTypes.addAll(directPropertyTypes);
-        }
-        if (includeFromSubtags) {
-            Tag tag = definitionsService.getTag(tagId);
-            if (tag != null) {
-                for (Tag subTag : tag.getSubTags()) {
-                    Set<PropertyType> childPropertyTypes = getPropertyTypeByTag(subTag.getId(), true);
-                    propertyTypes.addAll(childPropertyTypes);
-                }
-            }
-        }
-        return propertyTypes;
-    }
-
     public Set<PropertyType> getPropertyTypeByTag(String tag) {
         Set<PropertyType> propertyTypes = new LinkedHashSet<PropertyType>();
         Collection<PropertyType> directPropertyTypes = persistenceService.query("tags", tag, "rank", PropertyType.class);

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/basic/firstName.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/basic/firstName.json b/services/src/main/resources/META-INF/cxs/properties/profiles/basic/firstName.json
index 6ed8836..a538e3e 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/basic/firstName.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/basic/firstName.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "firstName", "name": "First name"   },
     "type": "string",
-    "tags": [ "basicProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "basicProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "101.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/basic/gender.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/basic/gender.json b/services/src/main/resources/META-INF/cxs/properties/profiles/basic/gender.json
index 610a548..425b6bd 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/basic/gender.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/basic/gender.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "gender", "name": "Gender"   },
     "type": "string",
-    "tags": [ "basicProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "basicProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "104.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/basic/lastName.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/basic/lastName.json b/services/src/main/resources/META-INF/cxs/properties/profiles/basic/lastName.json
index 6468c17..ae43fc4 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/basic/lastName.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/basic/lastName.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "lastName", "name": "Last name"   },
     "type": "string",
-    "tags": [ "basicProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "basicProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "102.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/basic/nationality.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/basic/nationality.json b/services/src/main/resources/META-INF/cxs/properties/profiles/basic/nationality.json
index 66748bb..72f3dee 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/basic/nationality.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/basic/nationality.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "nationality", "name": "Nationality"   },
     "type": "string",
-    "tags": [ "basicProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "basicProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "103.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/contact/address.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/address.json b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/address.json
index 17791d0..ad1cac4 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/address.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/address.json
@@ -1,7 +1,11 @@
 {
   "metadata": {"id": "address", "name": "Address"},
   "type": "string",
-  "tags": ["contactProfileProperties"],
+  "tags": [
+    "properties",
+    "profileProperties",
+    "contactProfileProperties"
+  ],
   "defaultValue": "",
   "automaticMappingsFrom": [],
   "rank": "303.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/contact/city.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/city.json b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/city.json
index 4cd698d..e8bfe3a 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/city.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/city.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "city", "name": "City"   },
     "type": "string",
-    "tags": ["contactProfileProperties"],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "contactProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "304.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/contact/countryName.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/countryName.json b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/countryName.json
index 1d1fd6e..5c5b1ae 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/countryName.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/countryName.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "countryName", "name": "Country"   },
     "type": "string",
-    "tags": ["contactProfileProperties"],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "contactProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "305.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/contact/email.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/email.json b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/email.json
index aecd6af..3cd1d15 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/email.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/email.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "email", "name": "Email"   },
     "type": "email",
-    "tags": ["contactProfileProperties"],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "contactProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "301.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/contact/phoneNumber.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/phoneNumber.json b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/phoneNumber.json
index e8dc563..bd4319f 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/phoneNumber.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/phoneNumber.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "phoneNumber", "name": "Phone number"   },
     "type": "string",
-    "tags": ["contactProfileProperties"],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "contactProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "302.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/contact/zipCode.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/zipCode.json b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/zipCode.json
index 5d9d272..081313a 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/contact/zipCode.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/contact/zipCode.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "zipCode", "name": "ZIP Code"   },
     "type": "string",
-    "tags": ["contactProfileProperties"],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "contactProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "306.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/lead/leadAssignedTo.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/lead/leadAssignedTo.json b/services/src/main/resources/META-INF/cxs/properties/profiles/lead/leadAssignedTo.json
index 00c5c48..4e445bd 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/lead/leadAssignedTo.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/lead/leadAssignedTo.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "leadAssignedTo", "name": "Assigned to"   },
     "type": "string",
-    "tags": [ "leadProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "leadProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "201.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/personal/age.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/personal/age.json b/services/src/main/resources/META-INF/cxs/properties/profiles/personal/age.json
index fbed245..2f155f2 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/personal/age.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/personal/age.json
@@ -4,7 +4,11 @@
     "name": "Age"
   },
   "type": "integer",
-  "tags": ["personalProfileProperties"],
+  "tags": [
+    "properties",
+    "profileProperties",
+    "personalProfileProperties"
+  ],
   "defaultValue": "",
   "numericRanges": [
     {"key":"*_10", "to" : 10 },

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/personal/birthDate.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/personal/birthDate.json b/services/src/main/resources/META-INF/cxs/properties/profiles/personal/birthDate.json
index 203d48d..2d1101d 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/personal/birthDate.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/personal/birthDate.json
@@ -4,7 +4,11 @@
     "name": "Birth Date"
   },
   "type": "date",
-  "tags": ["personalProfileProperties"],
+  "tags": [
+    "properties",
+    "profileProperties",
+    "personalProfileProperties"
+  ],
   "defaultValue": "",
   "dateRanges": [
     {"key":"*_10", "from": "now-10y/y" },

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/personal/kids.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/personal/kids.json b/services/src/main/resources/META-INF/cxs/properties/profiles/personal/kids.json
index 0141d2e..0a58820 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/personal/kids.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/personal/kids.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "kids", "name": "Kids"   },
     "type": "integer",
-    "tags": ["personalProfileProperties"],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "personalProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "504.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/personal/maritalStatus.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/personal/maritalStatus.json b/services/src/main/resources/META-INF/cxs/properties/profiles/personal/maritalStatus.json
index 8e2e9c9..5bcd149 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/personal/maritalStatus.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/personal/maritalStatus.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "maritalStatus", "name": "Marital status"   },
     "type": "string",
-    "tags": ["personalProfileProperties"],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "personalProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "503.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/social/facebookId.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/social/facebookId.json b/services/src/main/resources/META-INF/cxs/properties/profiles/social/facebookId.json
index 2596440..b325f19 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/social/facebookId.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/social/facebookId.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "facebookId", "name": "Facebook ID"   },
     "type": "string",
-    "tags": [ "socialProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "socialProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "401.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/social/googleid.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/social/googleid.json b/services/src/main/resources/META-INF/cxs/properties/profiles/social/googleid.json
index a0fc1de..48d54b8 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/social/googleid.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/social/googleid.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "googleId", "name": "Google ID"   },
     "type": "string",
-    "tags": [ "socialProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "socialProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "403.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/social/linkedInId.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/social/linkedInId.json b/services/src/main/resources/META-INF/cxs/properties/profiles/social/linkedInId.json
index e57a8e5..a6947e1 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/social/linkedInId.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/social/linkedInId.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "linkedInId", "name": "LinkedIn ID"   },
     "type": "string",
-    "tags": [ "socialProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "socialProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "402.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/social/twitterId.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/social/twitterId.json b/services/src/main/resources/META-INF/cxs/properties/profiles/social/twitterId.json
index e47668f..40fad1d 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/social/twitterId.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/social/twitterId.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "twitterId", "name": "Twitter ID"   },
     "type": "string",
-    "tags": [ "socialProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "socialProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "404.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/system/firstVisit.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/system/firstVisit.json b/services/src/main/resources/META-INF/cxs/properties/profiles/system/firstVisit.json
index d5a4aab..e1f4f32 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/system/firstVisit.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/system/firstVisit.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "firstVisit", "name": "First visit"   },
     "type": "date",
-    "tags": [ "systemProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "systemProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "mergeStrategy": "oldestMergeStrategy",

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/system/lastVisit.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/system/lastVisit.json b/services/src/main/resources/META-INF/cxs/properties/profiles/system/lastVisit.json
index 3af2a94..db2ffb9 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/system/lastVisit.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/system/lastVisit.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "lastVisit", "name": "Last visit"   },
     "type": "date",
-    "tags": [ "systemProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "systemProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "mergeStrategy": "mostRecentMergeStrategy",

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/system/nbOfVisits.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/system/nbOfVisits.json b/services/src/main/resources/META-INF/cxs/properties/profiles/system/nbOfVisits.json
index 921fca9..94a9123 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/system/nbOfVisits.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/system/nbOfVisits.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "nbOfVisits", "name": "Number of visits"   },
     "type": "integer",
-    "tags": [ "systemProfileProperties" ],
+    "tags": [
+      "properties",
+      "profileProperties",
+      "systemProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "numericRanges": [

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/system/previousVisit.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/system/previousVisit.json b/services/src/main/resources/META-INF/cxs/properties/profiles/system/previousVisit.json
index 6094746..a06f26f 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/system/previousVisit.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/system/previousVisit.json
@@ -1,7 +1,11 @@
 {
   "metadata": {     "id": "previousVisit", "name": "Previous visit"   },
   "type": "date",
-  "tags": [ "systemProfileProperties" ],
+  "tags": [
+    "properties",
+    "profileProperties",
+    "systemProfileProperties"
+  ],
   "defaultValue": "",
   "automaticMappingsFrom": [ ],
   "mergeStrategy": "mostRecentMergeStrategy",

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/work/company.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/work/company.json b/services/src/main/resources/META-INF/cxs/properties/profiles/work/company.json
index d94c3eb..940792b 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/work/company.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/work/company.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "company", "name": "Company"   },
     "type": "string",
-    "tags": [ "workProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "workProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "601.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/work/income.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/work/income.json b/services/src/main/resources/META-INF/cxs/properties/profiles/work/income.json
index bebad96..47df006 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/work/income.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/work/income.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "income", "name": "Income"   },
     "type": "integer",
-    "tags": [ "workProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "workProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "603.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/profiles/work/jobTitle.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/profiles/work/jobTitle.json b/services/src/main/resources/META-INF/cxs/properties/profiles/work/jobTitle.json
index d23fad4..22cc39f 100644
--- a/services/src/main/resources/META-INF/cxs/properties/profiles/work/jobTitle.json
+++ b/services/src/main/resources/META-INF/cxs/properties/profiles/work/jobTitle.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "jobTitle", "name": "Job Title"   },
     "type": "string",
-    "tags": [ "workProfileProperties" ],
+    "tags": [
+        "properties",
+        "profileProperties",
+        "workProfileProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "602.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/latitude.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/latitude.json b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/latitude.json
index 2c1b078..1f8c92c 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/latitude.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/latitude.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "latitude", "name": "Latitude"   },
     "type": "string",
-    "tags": ["geographicSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "geographicSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "4.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/longitude.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/longitude.json b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/longitude.json
index 7ddca37..f983d52 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/longitude.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/longitude.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "longitude", "name": "Longitude"   },
     "type": "string",
-    "tags": ["geographicSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "geographicSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "5.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionAdminSubDiv1.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionAdminSubDiv1.json b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionAdminSubDiv1.json
index 5383fae..7591485 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionAdminSubDiv1.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionAdminSubDiv1.json
@@ -1,7 +1,11 @@
 {
   "metadata": {     "id": "sessionAdminSubDiv1", "name": "State/Region/Province"   },
   "type": "string",
-  "tags": ["geographicSessionProperties"],
+  "tags": [
+    "properties",
+    "sessionProperties",
+    "geographicSessionProperties"
+  ],
   "defaultValue": "",
   "automaticMappingsFrom": [ ],
   "rank": "2.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionAdminSubDiv2.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionAdminSubDiv2.json b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionAdminSubDiv2.json
index 816dc2e..2f7a7e2 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionAdminSubDiv2.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionAdminSubDiv2.json
@@ -1,7 +1,11 @@
 {
   "metadata": {     "id": "sessionAdminSubDiv2", "name": "SubRegion/County"   },
   "type": "string",
-  "tags": ["geographicSessionProperties"],
+  "tags": [
+    "properties",
+    "sessionProperties",
+    "geographicSessionProperties"
+  ],
   "defaultValue": "",
   "automaticMappingsFrom": [ ],
   "rank": "2.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCity.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCity.json b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCity.json
index 947a817..2f353e5 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCity.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCity.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "sessionCity", "name": "City"   },
     "type": "string",
-    "tags": ["geographicSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "geographicSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "3.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCountryCode.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCountryCode.json b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCountryCode.json
index 9ed3f89..47cbe2c 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCountryCode.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCountryCode.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "sessionCountryCode", "name": "Country code"   },
     "type": "string",
-    "tags": ["geographicSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "geographicSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ "j:country" ],
     "rank": "1.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCountryName.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCountryName.json b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCountryName.json
index 44bae0e..4198d30 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCountryName.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/geographic/sessionCountryName.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "sessionCountryName", "name": "Country"   },
     "type": "string",
-    "tags": ["geographicSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "geographicSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "2.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/technical/deviceCategory.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/deviceCategory.json b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/deviceCategory.json
index 508734e..3795e96 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/deviceCategory.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/deviceCategory.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "deviceCategory", "name": "Device category"   },
     "type": "string",
-    "tags": ["technicalSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "technicalSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "105.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/technical/operatingSystemFamily.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/operatingSystemFamily.json b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/operatingSystemFamily.json
index eff2d68..b1f9653 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/operatingSystemFamily.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/operatingSystemFamily.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "operatingSystemFamily", "name": "Operating system family"   },
     "type": "string",
-    "tags": ["technicalSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "technicalSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "101.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/technical/operatingSystemName.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/operatingSystemName.json b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/operatingSystemName.json
index a00aa94..bf08a07 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/operatingSystemName.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/operatingSystemName.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "operatingSystemName", "name": "Operating system name"   },
     "type": "string",
-    "tags": ["technicalSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "technicalSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "102.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/technical/pageReferringURL.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/pageReferringURL.json b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/pageReferringURL.json
index d19b808..c971bc9 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/pageReferringURL.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/pageReferringURL.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "pageReferringURL", "name": "Previous page URL"   },
     "type": "string",
-    "tags": ["technicalSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "technicalSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "108.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/technical/remoteAddr.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/remoteAddr.json b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/remoteAddr.json
index e255fda..71531de 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/remoteAddr.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/remoteAddr.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "remoteAddr", "name": "Remote IP address"   },
     "type": "string",
-    "tags": ["technicalSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "technicalSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "106.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/technical/remoteHost.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/remoteHost.json b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/remoteHost.json
index a12e948..1864348 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/remoteHost.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/remoteHost.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "remoteHost", "name": "Remote host address"   },
     "type": "string",
-    "tags": ["technicalSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "technicalSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "107.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/technical/userAgentName.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/userAgentName.json b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/userAgentName.json
index d48b042..8849081 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/userAgentName.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/userAgentName.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "userAgentName", "name": "Browser user agent name"   },
     "type": "string",
-    "tags": ["technicalSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "technicalSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "103.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/properties/sessions/technical/userAgentVersion.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/userAgentVersion.json b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/userAgentVersion.json
index 4b1177c..343f3bf 100644
--- a/services/src/main/resources/META-INF/cxs/properties/sessions/technical/userAgentVersion.json
+++ b/services/src/main/resources/META-INF/cxs/properties/sessions/technical/userAgentVersion.json
@@ -1,7 +1,11 @@
 {
     "metadata": {     "id": "userAgentVersion", "name": "Browser user agent version"   },
     "type": "string",
-    "tags": ["technicalSessionProperties"],
+    "tags": [
+        "properties",
+        "sessionProperties",
+        "technicalSessionProperties"
+    ],
     "defaultValue": "",
     "automaticMappingsFrom": [ ],
     "rank": "104.0"

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/aggregated.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/aggregated.json b/services/src/main/resources/META-INF/cxs/tags/aggregated.json
deleted file mode 100644
index 83f417c..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/aggregated.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "aggregated",
-    "parent": "profileTags"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/autocompleted.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/autocompleted.json b/services/src/main/resources/META-INF/cxs/tags/autocompleted.json
deleted file mode 100644
index 089bf12..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/autocompleted.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "id": "autocompleted",
-  "parent": "profileTags"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/campaign/campaign.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/campaign/campaign.json b/services/src/main/resources/META-INF/cxs/tags/campaign/campaign.json
deleted file mode 100644
index 8681c0e..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/campaign/campaign.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "campaign",
-    "parent": "root"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/campaign/landingCampaign.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/campaign/landingCampaign.json b/services/src/main/resources/META-INF/cxs/tags/campaign/landingCampaign.json
deleted file mode 100644
index d329ff0..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/campaign/landingCampaign.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "landing",
-    "parent": "campaign"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/campaign/parameterCampaign.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/campaign/parameterCampaign.json b/services/src/main/resources/META-INF/cxs/tags/campaign/parameterCampaign.json
deleted file mode 100644
index e9abade..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/campaign/parameterCampaign.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "parameter",
-    "parent": "campaign"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/campaign/referrerCampaign.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/campaign/referrerCampaign.json b/services/src/main/resources/META-INF/cxs/tags/campaign/referrerCampaign.json
deleted file mode 100644
index 50a2bee..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/campaign/referrerCampaign.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "referrer",
-    "parent": "campaign"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/conditions/condition.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/conditions/condition.json b/services/src/main/resources/META-INF/cxs/tags/conditions/condition.json
deleted file mode 100644
index e37ddc7..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/conditions/condition.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "condition",
-    "parent": "root"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/conditions/eventCondition.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/conditions/eventCondition.json b/services/src/main/resources/META-INF/cxs/tags/conditions/eventCondition.json
deleted file mode 100644
index 287678f..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/conditions/eventCondition.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "eventCondition",
-    "parent": "condition"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/conditions/profileCondition.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/conditions/profileCondition.json b/services/src/main/resources/META-INF/cxs/tags/conditions/profileCondition.json
deleted file mode 100644
index bade28c..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/conditions/profileCondition.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "profileCondition",
-    "parent": "condition"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/conditions/sessionCondition.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/conditions/sessionCondition.json b/services/src/main/resources/META-INF/cxs/tags/conditions/sessionCondition.json
deleted file mode 100644
index bca7a98..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/conditions/sessionCondition.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "sessionCondition",
-    "parent": "condition"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/conditions/sourceEventCondition.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/conditions/sourceEventCondition.json b/services/src/main/resources/META-INF/cxs/tags/conditions/sourceEventCondition.json
deleted file mode 100644
index ee72d19..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/conditions/sourceEventCondition.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "sourceEventCondition",
-    "parent": "condition"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/conditions/trackedCondition.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/conditions/trackedCondition.json b/services/src/main/resources/META-INF/cxs/tags/conditions/trackedCondition.json
deleted file mode 100644
index f4e0f66..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/conditions/trackedCondition.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "trackedCondition",
-    "parent": "condition"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/conditions/usableInPastEventCondition.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/conditions/usableInPastEventCondition.json b/services/src/main/resources/META-INF/cxs/tags/conditions/usableInPastEventCondition.json
deleted file mode 100644
index 428c3b1..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/conditions/usableInPastEventCondition.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "usableInPastEventCondition",
-    "parent": "condition"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/demographic.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/demographic.json b/services/src/main/resources/META-INF/cxs/tags/demographic.json
deleted file mode 100644
index cb7078d..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/demographic.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "demographic",
-    "parent": "profileTags"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/event.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/event.json b/services/src/main/resources/META-INF/cxs/tags/event.json
deleted file mode 100644
index 734540c..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/event.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "event",
-    "parent": "profileTags"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/geographic.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/geographic.json b/services/src/main/resources/META-INF/cxs/tags/geographic.json
deleted file mode 100644
index 5e5b03e..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/geographic.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "geographic",
-    "parent": "profileTags"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/goals/downloadGoal.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/goals/downloadGoal.json b/services/src/main/resources/META-INF/cxs/tags/goals/downloadGoal.json
deleted file mode 100644
index a7bd401..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/goals/downloadGoal.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "downloadGoal",
-    "parent": "goal"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/goals/formGoal.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/goals/formGoal.json b/services/src/main/resources/META-INF/cxs/tags/goals/formGoal.json
deleted file mode 100644
index c0628af..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/goals/formGoal.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "formGoal",
-    "parent": "goal"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/goals/funnelGoal.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/goals/funnelGoal.json b/services/src/main/resources/META-INF/cxs/tags/goals/funnelGoal.json
deleted file mode 100644
index a6bbc12..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/goals/funnelGoal.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "funnelGoal",
-    "parent": "goal"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/goals/goal.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/goals/goal.json b/services/src/main/resources/META-INF/cxs/tags/goals/goal.json
deleted file mode 100644
index fee565a..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/goals/goal.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "goal",
-    "parent": "root"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/goals/landingPageGoal.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/goals/landingPageGoal.json b/services/src/main/resources/META-INF/cxs/tags/goals/landingPageGoal.json
deleted file mode 100644
index 2f9fe9a..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/goals/landingPageGoal.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "landingPageGoal",
-    "parent": "goal"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/goals/pageVisitGoal.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/goals/pageVisitGoal.json b/services/src/main/resources/META-INF/cxs/tags/goals/pageVisitGoal.json
deleted file mode 100644
index eca6077..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/goals/pageVisitGoal.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "pageVisitGoal",
-    "parent": "goal"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/goals/videoGoal.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/goals/videoGoal.json b/services/src/main/resources/META-INF/cxs/tags/goals/videoGoal.json
deleted file mode 100644
index 1712367..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/goals/videoGoal.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "videoGoal",
-    "parent": "goal"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/logical.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/logical.json b/services/src/main/resources/META-INF/cxs/tags/logical.json
deleted file mode 100644
index 22ecec9..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/logical.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "logical",
-    "parent": "profileTags"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/profileTags.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/profileTags.json b/services/src/main/resources/META-INF/cxs/tags/profileTags.json
deleted file mode 100644
index 7b4e02f..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/profileTags.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "profileTags",
-    "parent": "root"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/profiles/basicProfileProperties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/basicProfileProperties.json b/services/src/main/resources/META-INF/cxs/tags/properties/profiles/basicProfileProperties.json
deleted file mode 100644
index a445b4f..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/basicProfileProperties.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "id": "basicProfileProperties",
-    "parent": "profileProperties",
-    "rank": "2.0",
-    "hidden": true
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/profiles/contactProfileProperties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/contactProfileProperties.json b/services/src/main/resources/META-INF/cxs/tags/properties/profiles/contactProfileProperties.json
deleted file mode 100644
index 9f5c9e9..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/contactProfileProperties.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "id": "contactProfileProperties",
-    "parent": "profileProperties",
-    "rank": "4.0"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/profiles/leadProfileProperties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/leadProfileProperties.json b/services/src/main/resources/META-INF/cxs/tags/properties/profiles/leadProfileProperties.json
deleted file mode 100644
index 37b0f0b..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/leadProfileProperties.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "id": "leadProfileProperties",
-    "parent": "profileProperties",
-    "rank": "3.0",
-    "hidden": true
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/profiles/personalProfileProperties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/personalProfileProperties.json b/services/src/main/resources/META-INF/cxs/tags/properties/profiles/personalProfileProperties.json
deleted file mode 100644
index 5fba6a0..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/personalProfileProperties.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "id": "personalProfileProperties",
-    "parent": "profileProperties",
-    "rank": "6.0"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/profiles/profileProperties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/profileProperties.json b/services/src/main/resources/META-INF/cxs/tags/properties/profiles/profileProperties.json
deleted file mode 100644
index b8eeeba..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/profileProperties.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "profileProperties",
-    "parent": "properties"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/profiles/socialProfileProperties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/socialProfileProperties.json b/services/src/main/resources/META-INF/cxs/tags/properties/profiles/socialProfileProperties.json
deleted file mode 100644
index 2469130..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/socialProfileProperties.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "id": "socialProfileProperties",
-    "parent": "profileProperties",
-    "rank": "5.0",
-    "hidden": true
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/profiles/systemProfileProperties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/systemProfileProperties.json b/services/src/main/resources/META-INF/cxs/tags/properties/profiles/systemProfileProperties.json
deleted file mode 100644
index 55c3d06..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/systemProfileProperties.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "id": "systemProfileProperties",
-    "parent": "profileProperties",
-    "rank": "1.0",
-    "hidden": true
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/profiles/workProfileProperties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/workProfileProperties.json b/services/src/main/resources/META-INF/cxs/tags/properties/profiles/workProfileProperties.json
deleted file mode 100644
index b6b3cd2..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/profiles/workProfileProperties.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "id": "workProfileProperties",
-    "parent": "profileProperties",
-    "rank": "7.0"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/properties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/properties.json b/services/src/main/resources/META-INF/cxs/tags/properties/properties.json
deleted file mode 100644
index b9fb703..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/properties.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "properties",
-    "parent": "root"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/sessions/geographicSessionProperties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/sessions/geographicSessionProperties.json b/services/src/main/resources/META-INF/cxs/tags/properties/sessions/geographicSessionProperties.json
deleted file mode 100644
index b2cf9e4..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/sessions/geographicSessionProperties.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "id": "geographicSessionProperties",
-    "parent": "sessionProperties",
-    "rank": "1.0"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/sessions/sessionProperties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/sessions/sessionProperties.json b/services/src/main/resources/META-INF/cxs/tags/properties/sessions/sessionProperties.json
deleted file mode 100644
index eea2e7e..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/sessions/sessionProperties.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "sessionProperties",
-    "parent": "properties"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/properties/sessions/technicalSessionProperties.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/properties/sessions/technicalSessionProperties.json b/services/src/main/resources/META-INF/cxs/tags/properties/sessions/technicalSessionProperties.json
deleted file mode 100644
index dc7a821..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/properties/sessions/technicalSessionProperties.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "id": "technicalSessionProperties",
-    "parent": "sessionProperties",
-    "rank": "2.0"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/root.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/root.json b/services/src/main/resources/META-INF/cxs/tags/root.json
deleted file mode 100644
index 47f108a..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/root.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "id": "root",
-    "parent": ""
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/services/src/main/resources/META-INF/cxs/tags/rules/formMappingRule.json
----------------------------------------------------------------------
diff --git a/services/src/main/resources/META-INF/cxs/tags/rules/formMappingRule.json b/services/src/main/resources/META-INF/cxs/tags/rules/formMappingRule.json
deleted file mode 100644
index aa42de4..0000000
--- a/services/src/main/resources/META-INF/cxs/tags/rules/formMappingRule.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "id": "formMappingRule",
-  "parent": "root"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/src/site/markdown/versions/1.1/concepts.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/versions/1.1/concepts.md b/src/site/markdown/versions/1.1/concepts.md
index 6947c5b..56a7e7c 100644
--- a/src/site/markdown/versions/1.1/concepts.md
+++ b/src/site/markdown/versions/1.1/concepts.md
@@ -142,7 +142,7 @@ Being built on top of Apache Karaf, Unomi leverages OSGi to support plugins. A U
 | Rule | rules |
 | Scoring | scorings |
 | Segment | segments |
-| Tag | tags then `<category name>` directory |
+| Tag | tags |
 | ValueType | values |
 
 [Blueprint](http://aries.apache.org/modules/blueprint.html) is used to declare what the plugin provides and inject any required dependency. The Blueprint file is located, as usual, at `OSGI-INF/blueprint/blueprint.xml` in the bundle JAR file.
@@ -188,7 +188,7 @@ Definition for a profile or session property, specifying how possible values are
 `Segment`s represent dynamically evaluated groups of similar profiles in order to categorize the associated users. To be considered part of a given segment, users must satisfies the segment’s condition. If they match, users are automatically added to the segment. Similarly, if at any given point during, they cease to satisfy the segment’s condition, they are automatically removed from it.
 
 ### Tag
-`Tag`s are simple labels that are used to classify all other objects inside Unomi. Tags can define sub-tags.
+`Tag`s are simple labels that are used to classify all other objects inside Unomi.
 
 ### ValueType
 Definition for values that can be assigned to properties ("primitive" types).

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/ebfd560d/src/site/markdown/versions/master/concepts.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/versions/master/concepts.md b/src/site/markdown/versions/master/concepts.md
index 6947c5b..57ef1e2 100644
--- a/src/site/markdown/versions/master/concepts.md
+++ b/src/site/markdown/versions/master/concepts.md
@@ -142,7 +142,7 @@ Being built on top of Apache Karaf, Unomi leverages OSGi to support plugins. A U
 | Rule | rules |
 | Scoring | scorings |
 | Segment | segments |
-| Tag | tags then `<category name>` directory |
+| Tag | tags |
 | ValueType | values |
 
 [Blueprint](http://aries.apache.org/modules/blueprint.html) is used to declare what the plugin provides and inject any required dependency. The Blueprint file is located, as usual, at `OSGI-INF/blueprint/blueprint.xml` in the bundle JAR file.
@@ -188,7 +188,7 @@ Definition for a profile or session property, specifying how possible values are
 `Segment`s represent dynamically evaluated groups of similar profiles in order to categorize the associated users. To be considered part of a given segment, users must satisfies the segment’s condition. If they match, users are automatically added to the segment. Similarly, if at any given point during, they cease to satisfy the segment’s condition, they are automatically removed from it.
 
 ### Tag
-`Tag`s are simple labels that are used to classify all other objects inside Unomi. Tags can define sub-tags.
+`Tag`s are simple labels that are used to classify all other objects inside Unomi. 
 
 ### ValueType
 Definition for values that can be assigned to properties ("primitive" types).