diff --git a/vipra-cmd/runcfg/CMD.launch b/vipra-cmd/runcfg/CMD.launch
index aa82fd1f18579b76af999f8f01e357b7932fcc3e..71cb4113257478b1a2d245d7ecb8cf2380b160e2 100644
--- a/vipra-cmd/runcfg/CMD.launch
+++ b/vipra-cmd/runcfg/CMD.launch
@@ -11,7 +11,7 @@
 </listAttribute>
 <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="de.vipra.cmd.Main"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-cS test -I /home/eike/repos/master/ma-impl/docker/data/test-1.json"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-eS test -CI /home/eike/repos/master/ma-impl/docker/data/test-1.json"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="vipra-cmd"/>
 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/EditModelCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/EditModelCommand.java
index ec0a84a265cedda0f96ccc5cf5c69d8e456984e5..83f9d5f72e0ef27be4addf645083807117be0201 100644
--- a/vipra-cmd/src/main/java/de/vipra/cmd/option/EditModelCommand.java
+++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/EditModelCommand.java
@@ -1,6 +1,8 @@
 package de.vipra.cmd.option;
 
 import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
 
 import org.bson.types.ObjectId;
 
@@ -27,9 +29,11 @@ public class EditModelCommand implements Command {
 		this.names = names;
 	}
 
-	private void editModel(final TopicModelConfig topicModelConfig)
+	private void editModel(final TopicModelFull topicModel)
 			throws DatabaseException, JsonGenerationException, JsonMappingException, IOException, ConfigException {
-		ConsoleUtils.info("editing model: " + topicModelConfig.getName());
+		ConsoleUtils.info("editing model: " + topicModel.getName());
+
+		final TopicModelConfig topicModelConfig = topicModel.getModelConfig();
 		topicModelConfig.setDescription(ConsoleUtils.readString("description (↲ to skip)", topicModelConfig.getDescription(), true));
 		topicModelConfig.setkTopics(ConsoleUtils.readInt("k topics", topicModelConfig.getkTopics(), 1, null, true));
 		topicModelConfig
@@ -63,8 +67,6 @@ public class EditModelCommand implements Command {
 		topicModelConfig
 				.setWindowResolution(ConsoleUtils.readEnum(WindowResolution.class, "window resolution", topicModelConfig.getWindowResolution()));
 
-		final TopicModelFull topicModel = dbTopicModels.getSingle(QueryBuilder.builder().eq("name", topicModelConfig.getName()));
-		topicModel.setModelConfig(topicModelConfig);
 		dbTopicModels.updateSingle(topicModel, "modelConfig");
 		topicModelConfig.saveToFile(topicModelConfig.getModelDir(config.getDataDirectory()));
 	}
@@ -74,8 +76,10 @@ public class EditModelCommand implements Command {
 		config = Config.getConfig();
 		dbTopicModels = MongoService.getDatabaseService(config, TopicModelFull.class);
 
-		for (final String name : names) {
-			editModel(config.getTopicModelConfig(name));
+		final List<TopicModelFull> topicModels = dbTopicModels.getMultiple(QueryBuilder.builder().in("name", Arrays.asList(names)));
+
+		for (final TopicModelFull topicModel : topicModels) {
+			editModel(topicModel);
 		}
 	}
 
diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java
index 007db4ea6edf4a7a537af7eaee9bda3e933b9272..1ac3556a896244da31a2ccc87d45cd3dbb68709d 100644
--- a/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java
+++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java
@@ -196,6 +196,10 @@ public class ImportCommand implements Command {
 							final TextEntityFull newTextEntity = new TextEntityFull(textEntityCount.getEntity(), topicModel);
 							if (newTextEntity.getEntity() == null || newTextEntity.getEntity().isEmpty())
 								continue;
+
+							// get descriptions from dbpedia
+							// newTextEntity.setDescription(DBPediaAnalyzer.getAbstract(newTextEntity.getUrl()));
+
 							newTextEntities.add(newTextEntity);
 
 							// insert entity into text
diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/text/DBPediaAnalyzer.java b/vipra-cmd/src/main/java/de/vipra/cmd/text/DBPediaAnalyzer.java
new file mode 100644
index 0000000000000000000000000000000000000000..604e26d26be50518bfb1e952bd02840e5e774977
--- /dev/null
+++ b/vipra-cmd/src/main/java/de/vipra/cmd/text/DBPediaAnalyzer.java
@@ -0,0 +1,62 @@
+package de.vipra.cmd.text;
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.io.IOUtils;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class DBPediaAnalyzer {
+
+	public static final String DBPEDIA_SPARQL_ENDPOINT = "http://dbpedia.org/sparql";
+
+	@SuppressWarnings({ "unchecked", "rawtypes" })
+	public static String getAbstract(final String resourceURL) throws IOException {
+
+		final String query = "select ?abstract where {<" + resourceURL
+				+ "> <http://dbpedia.org/ontology/abstract> ?abstract filter(langMatches(lang(?abstract),\"en\"))}";
+		final String strUrl = DBPEDIA_SPARQL_ENDPOINT + "?default-graph-uri=" + URLEncoder.encode("http://dbpedia.org", "UTF-8")
+				+ "&format=application%2Fsparql-results%2Bjson&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000&debug=on&query="
+				+ URLEncoder.encode(query, "UTF-8");
+
+		final URL url = new URL(strUrl);
+		final String result = IOUtils.toString(url.openStream());
+
+		if (result != null) {
+			final ObjectMapper mapper = new ObjectMapper();
+			final Map<String, Object> map = mapper.readValue(result, new TypeReference<HashMap>() {});
+
+			Object o = map.get("results");
+			if (o != null && o instanceof Map) {
+				o = ((Map<String, Object>) o).get("bindings");
+				if (o != null && o instanceof List) {
+					final List<Object> l = (List<Object>) o;
+					for (int i = 0; i < l.size(); i++) {
+						o = l.get(i);
+						if (o != null && o instanceof Map) {
+							o = ((Map<String, Object>) o).get("abstract");
+							if (o != null && o instanceof Map) {
+								o = ((Map<String, Object>) o).get("value");
+								if (o != null && o instanceof String)
+									return (String) o;
+							}
+						}
+					}
+				}
+			}
+		}
+
+		return null;
+	}
+
+	public static void main(final String[] args) throws IOException {
+		getAbstract("http://dbpedia.org/resource/Actor");
+	}
+
+}
diff --git a/vipra-ui/app/html/entities/show.html b/vipra-ui/app/html/entities/show.html
index bca31168e72758656b611a6fdcc052e67958ec61..f0b43c4560a6c0f16ef585cb43fba0b301e09046 100644
--- a/vipra-ui/app/html/entities/show.html
+++ b/vipra-ui/app/html/entities/show.html
@@ -37,8 +37,8 @@
               <td ng-bind-template="{{entity.types.join(', ') || 'No types'}}" ng-class="{'text-muted':!entity.types}"></td>
             </tr>
             <tr>
-              <th class="infocol">Abstract</th>
-              <td ng-bind-template="{{abstract || 'No abstract'}}" ng-class="{'text-muted':!abstract}"></td>
+              <th class="infocol">Description</th>
+              <td ng-bind-template="{{entity.description || 'No description'}}" ng-class="{'text-muted':!entity.description}"></td>
             </tr>
           </tbody>
         </table>
diff --git a/vipra-ui/app/js/controllers.js b/vipra-ui/app/js/controllers.js
index 4eb3300887bade0140534a312885c708e9ea99ed..d6c071070e42a7aae1a372c59cfbfa3dfb29f1b2 100644
--- a/vipra-ui/app/js/controllers.js
+++ b/vipra-ui/app/js/controllers.js
@@ -1651,8 +1651,8 @@
     }
   ]);
 
-  app.controller('EntitiesShowController', ['$scope', '$state', '$stateParams', 'EntityFactory', 'DBPediaFactory',
-    function($scope, $state, $stateParams, EntityFactory, DBPediaFactory) {
+  app.controller('EntitiesShowController', ['$scope', '$state', '$stateParams', 'EntityFactory',
+    function($scope, $state, $stateParams, EntityFactory) {
       $scope.rootModels.title = 'Entity';
 
       $scope.checkTopicModel('entities.show', function() {
@@ -1664,11 +1664,6 @@
           $scope.entityCreated = Vipra.formatDateTime($scope.entity.created);
           $scope.entityModified = Vipra.formatDateTime($scope.entity.modified);
           $scope.rootModels.title = $scope.entity.entity;
-          DBPediaFactory.get($scope.entity.url, function(data) {
-            try {
-              $scope.abstract = data.results.bindings[0].abstract.value;
-            } catch(e) {}
-          });
         }, function(e) {
           $scope.error(e.status);
         });
diff --git a/vipra-ui/app/js/factories.js b/vipra-ui/app/js/factories.js
index 485c747d28b9eb9f0926e8563b5a3d3ced0a8d28..49c0546dfed7b99b76585eaadc8bad979e37b5df 100644
--- a/vipra-ui/app/js/factories.js
+++ b/vipra-ui/app/js/factories.js
@@ -88,15 +88,4 @@
     return $myResource(Vipra.config.restUrl + '/windows/:id');
   }]);
 
-  app.factory('DBPediaFactory', ['$myResource', function($myResource) {
-    var q1 = 'http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=select+%3Fabstract+where+%7B+%3C';
-    var q2 = '%3E+%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2Fabstract%3E+%3Fabstract+filter%28langMatches%28lang%28%3Fabstract%29%2C%22en%22%29%29+%7D';
-    return {
-      get: function(url, success, error) {
-        url = q1 + encodeURIComponent(url) + q2;
-        return $myResource(url).get({}, success, error);
-      }
-    };
-  }]);
-
 })();
\ No newline at end of file
diff --git a/vipra-util/src/main/java/de/vipra/util/model/TextEntityFull.java b/vipra-util/src/main/java/de/vipra/util/model/TextEntityFull.java
index 277d9a6ec1c4b3468e74ffa60814c0f9d3c5309f..2b5c7d729027b4de8046e20fb1e1a8b97ee70a88 100644
--- a/vipra-util/src/main/java/de/vipra/util/model/TextEntityFull.java
+++ b/vipra-util/src/main/java/de/vipra/util/model/TextEntityFull.java
@@ -31,6 +31,9 @@ public class TextEntityFull implements Model<String>, Serializable, Comparable<T
 
 	private String entity;
 
+	@QueryIgnore(multi = true)
+	private String description;
+
 	@QueryIgnore(multi = true)
 	private Boolean isHypernym;
 
@@ -78,6 +81,14 @@ public class TextEntityFull implements Model<String>, Serializable, Comparable<T
 		this.entity = entity;
 	}
 
+	public String getDescription() {
+		return description;
+	}
+
+	public void setDescription(final String description) {
+		this.description = description;
+	}
+
 	public Boolean getIsHypernym() {
 		return isHypernym;
 	}