diff --git a/productMods/WEB-INF/visualization/visualizations-beans-injection-fm.xml b/productMods/WEB-INF/visualization/visualizations-beans-injection-fm.xml
index 6e3e9b5f..4f275f63 100644
--- a/productMods/WEB-INF/visualization/visualizations-beans-injection-fm.xml
+++ b/productMods/WEB-INF/visualization/visualizations-beans-injection-fm.xml
@@ -40,8 +40,11 @@
+
+
+ class="edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationInjector">
diff --git a/productMods/WEB-INF/web.xml b/productMods/WEB-INF/web.xml
index 6e8c325e..bfb2f9ce 100644
--- a/productMods/WEB-INF/web.xml
+++ b/productMods/WEB-INF/web.xml
@@ -1235,12 +1235,12 @@
StandardVisualizationController
- edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.StandardVisualizationController
+ edu.cornell.mannlib.vitro.webapp.controller.visualization.StandardVisualizationController
ShortURLVisualizationController
- edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.ShortURLVisualizationController
+ edu.cornell.mannlib.vitro.webapp.controller.visualization.ShortURLVisualizationController
@@ -1263,7 +1263,7 @@
AjaxVisualizationController
- edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.AjaxVisualizationController
+ edu.cornell.mannlib.vitro.webapp.controller.visualization.AjaxVisualizationController
@@ -1273,7 +1273,7 @@
DataVisualizationController
- edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController
+ edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController
diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/AjaxVisualizationController.java b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/AjaxVisualizationController.java
similarity index 99%
rename from src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/AjaxVisualizationController.java
rename to src/edu/cornell/mannlib/vitro/webapp/controller/visualization/AjaxVisualizationController.java
index d9499c48..cfc9e7c2 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/AjaxVisualizationController.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/AjaxVisualizationController.java
@@ -1,6 +1,6 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
-package edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker;
+package edu.cornell.mannlib.vitro.webapp.controller.visualization;
import java.io.IOException;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/DataVisualizationController.java b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/DataVisualizationController.java
similarity index 99%
rename from src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/DataVisualizationController.java
rename to src/edu/cornell/mannlib/vitro/webapp/controller/visualization/DataVisualizationController.java
index 534536b4..b032528b 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/DataVisualizationController.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/DataVisualizationController.java
@@ -1,6 +1,6 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
-package edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker;
+package edu.cornell.mannlib.vitro.webapp.controller.visualization;
import java.io.IOException;
import java.util.Map;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/ShortURLVisualizationController.java b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/ShortURLVisualizationController.java
similarity index 99%
rename from src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/ShortURLVisualizationController.java
rename to src/edu/cornell/mannlib/vitro/webapp/controller/visualization/ShortURLVisualizationController.java
index 20652bac..204c0b9d 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/ShortURLVisualizationController.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/ShortURLVisualizationController.java
@@ -1,6 +1,6 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
-package edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker;
+package edu.cornell.mannlib.vitro.webapp.controller.visualization;
import java.util.ArrayList;
import java.util.HashMap;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/StandardVisualizationController.java b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/StandardVisualizationController.java
similarity index 99%
rename from src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/StandardVisualizationController.java
rename to src/edu/cornell/mannlib/vitro/webapp/controller/visualization/StandardVisualizationController.java
index 4eeed864..d01a9e38 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/StandardVisualizationController.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/StandardVisualizationController.java
@@ -1,6 +1,6 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
-package edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker;
+package edu.cornell.mannlib.vitro.webapp.controller.visualization;
import javax.servlet.ServletContext;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/VisualizationFrameworkConstants.java b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationFrameworkConstants.java
similarity index 97%
rename from src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/VisualizationFrameworkConstants.java
rename to src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationFrameworkConstants.java
index f1f69366..8289d4be 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/VisualizationFrameworkConstants.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationFrameworkConstants.java
@@ -1,6 +1,6 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
-package edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker;
+package edu.cornell.mannlib.vitro.webapp.controller.visualization;
import java.util.regex.Pattern;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/VisualizationInjector.java b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationInjector.java
similarity index 95%
rename from src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/VisualizationInjector.java
rename to src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationInjector.java
index 19dd2423..afc7a557 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/VisualizationInjector.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationInjector.java
@@ -1,5 +1,5 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
-package edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker;
+package edu.cornell.mannlib.vitro.webapp.controller.visualization;
import java.util.Map;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/VisualizationsDependencyInjector.java b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationsDependencyInjector.java
similarity index 99%
rename from src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/VisualizationsDependencyInjector.java
rename to src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationsDependencyInjector.java
index 9fe4388f..d358e196 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/freemarker/VisualizationsDependencyInjector.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationsDependencyInjector.java
@@ -1,5 +1,5 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
-package edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker;
+package edu.cornell.mannlib.vitro.webapp.controller.visualization;
import java.util.Map;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipGraphMLWriter.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipGraphMLWriter.java
index 8dc3166c..0051fb69 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipGraphMLWriter.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipGraphMLWriter.java
@@ -10,7 +10,7 @@ import java.util.Set;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CollaborationComparator;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CollaborationData;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CollaboratorComparator;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipRequestHandler.java
index e497d1fd..5030b1d8 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipRequestHandler.java
@@ -16,8 +16,8 @@ import com.hp.hpl.jena.query.Dataset;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CollaborationData;
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Collaborator;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipVisCodeGenerator.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipVisCodeGenerator.java
index 27006e03..28423d1e 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipVisCodeGenerator.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/coauthorship/CoAuthorshipVisCodeGenerator.java
@@ -14,7 +14,7 @@ import java.util.Set;
import org.apache.commons.logging.Log;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Collaborator;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/constants/QueryFieldLabels.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/constants/QueryFieldLabels.java
index 9b98a9f0..c4de5630 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/constants/QueryFieldLabels.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/constants/QueryFieldLabels.java
@@ -27,6 +27,8 @@ public class QueryFieldLabels {
public static final String DOCUMENT_PUBLICATION_YEAR_USING_1_1_PROPERTY = "publicationYearOldLit";
public static final String DOCUMENT_PUBLICATION_YEAR_MONTH = "publicationYearMonthLit";
public static final String DOCUMENT_PUBLICATION_DATE = "publicationDateLit";
+ public static final String DOCUMENT_JOURNAL_LABEL = "journalLabelLit";
+
/*
* Image related field labels
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIGrantCountRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIGrantCountRequestHandler.java
index 79714a18..dfa8f7d5 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIGrantCountRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIGrantCountRequestHandler.java
@@ -15,8 +15,8 @@ import com.hp.hpl.jena.rdf.model.Model;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CollaborationData;
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Collaborator;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIGraphMLWriter.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIGraphMLWriter.java
index 666c9337..00d5c890 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIGraphMLWriter.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIGraphMLWriter.java
@@ -10,7 +10,7 @@ import java.util.Set;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CollaborationComparator;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CollaborationData;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CollaboratorComparator;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIVisCodeGenerator.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIVisCodeGenerator.java
index 10370ad1..73c38f47 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIVisCodeGenerator.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/coprincipalinvestigator/CoPIVisCodeGenerator.java
@@ -14,7 +14,7 @@ import java.util.Set;
import org.apache.commons.logging.Log;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Collaborator;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/EntityPublicationCountRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/EntityPublicationCountRequestHandler.java
index 276bda1f..2acf7fe5 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/EntityPublicationCountRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/EntityPublicationCountRequestHandler.java
@@ -20,13 +20,13 @@ import com.hp.hpl.jena.rdf.model.Model;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Entity;
-import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.JsonObject;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SubEntity;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json.JsonObject;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.ModelConstructor;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.QueryRunner;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/cached/TemporalGrantVisualizationRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/cached/TemporalGrantVisualizationRequestHandler.java
index f51e5ef8..cd0c2078 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/cached/TemporalGrantVisualizationRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/cached/TemporalGrantVisualizationRequestHandler.java
@@ -19,17 +19,17 @@ import com.hp.hpl.jena.query.Dataset;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.entitycomparison.OrganizationUtilityFunctions;
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Activity;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Entity;
-import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.JsonObject;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SubEntity;
-import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SubjectEntityJSON;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json.JsonObject;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json.SubjectEntityJSON;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.SelectOnModelUtilities;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequestHandler;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/cached/TemporalPublicationVisualizationRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/cached/TemporalPublicationVisualizationRequestHandler.java
index 36cf0d1c..25cb695a 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/cached/TemporalPublicationVisualizationRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/cached/TemporalPublicationVisualizationRequestHandler.java
@@ -19,17 +19,17 @@ import com.hp.hpl.jena.query.Dataset;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.entitycomparison.OrganizationUtilityFunctions;
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Activity;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Entity;
-import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.JsonObject;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SubEntity;
-import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SubjectEntityJSON;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json.JsonObject;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json.SubjectEntityJSON;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.SelectOnModelUtilities;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequestHandler;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/entitygrantcount/EntityGrantCountRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/entitygrantcount/EntityGrantCountRequestHandler.java
index ad2d4005..9006c401 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/entitygrantcount/EntityGrantCountRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/entitygrantcount/EntityGrantCountRequestHandler.java
@@ -20,14 +20,14 @@ import com.hp.hpl.jena.rdf.model.Model;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.entitycomparison.OrganizationUtilityFunctions;
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Entity;
-import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.JsonObject;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SubEntity;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json.JsonObject;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.ModelConstructor;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.QueryRunner;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java
index 454c465b..b4b2a00c 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java
@@ -19,17 +19,19 @@ import com.hp.hpl.jena.query.Dataset;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.entitycomparison.OrganizationUtilityFunctions;
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Activity;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Entity;
-import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.JsonObject;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.MapOfScienceActivity;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SubEntity;
-import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SubjectEntityJSON;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json.JsonObject;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json.MapOfScience;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json.SubjectEntityJSON;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.SelectOnModelUtilities;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequestHandler;
@@ -265,7 +267,7 @@ public class MapOfScienceVisualizationRequestHandler implements
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY,
"application/octet-stream");
fileData.put(DataVisualizationController.FILE_CONTENT_KEY,
- writePublicationsOverTimeJSON(vitroRequest,
+ writeMapOfScienceDataJSON(vitroRequest,
entity));
return fileData;
}
@@ -295,58 +297,53 @@ public class MapOfScienceVisualizationRequestHandler implements
* @param subentities
* @param subOrganizationTypesResult
*/
- private String writePublicationsOverTimeJSON(VitroRequest vreq,
- Entity subjectEntity) {
+ private String writeMapOfScienceDataJSON(VitroRequest vreq,
+ Entity subjectEntity) {
Gson json = new Gson();
- Set subEntitiesJson = new HashSet();
+ Set jsonContent = new HashSet();
for (SubEntity subentity : subjectEntity.getSubEntities()) {
- JsonObject entityJson = new JsonObject(
- subentity.getIndividualLabel());
-
- List> yearPubCount = new ArrayList>();
-
- for (Map.Entry pubEntry : UtilityFunctions
- .getYearToActivityCount(subentity.getActivities())
- .entrySet()) {
-
- List currentPubYear = new ArrayList();
- if (pubEntry.getKey().equals(VOConstants.DEFAULT_PUBLICATION_YEAR)) {
- currentPubYear.add(-1);
- } else {
- currentPubYear.add(Integer.parseInt(pubEntry.getKey()));
- }
-
- currentPubYear.add(pubEntry.getValue());
- yearPubCount.add(currentPubYear);
- }
+ MapOfScience entityJson = new MapOfScience(subentity.getIndividualURI());
- entityJson.setYearToActivityCount(yearPubCount);
-
- entityJson.setOrganizationTypes(subentity.getEntityTypeLabels());
-
- entityJson.setEntityURI(subentity.getIndividualURI());
+ entityJson.setLabel(subentity.getIndividualLabel());
entityJson.setLastCachedAtDateTime(subentity.getLastCachedAtDateTime());
if (subentity.getEntityClass().equals(VOConstants.EntityClassType.PERSON)) {
- entityJson.setVisMode("PERSON");
+ entityJson.setType("PERSON");
} else if (subentity.getEntityClass().equals(VOConstants.EntityClassType.ORGANIZATION)) {
- entityJson.setVisMode("ORGANIZATION");
+ entityJson.setType("ORGANIZATION");
}
- subEntitiesJson.add(entityJson);
+
+ Map journalToPublicationCount = new HashMap();
+ int i = 0;
+ for (Activity activity : subentity.getActivities()) {
+ System.out.println(i);
+ System.out.println(activity.getActivityURI());
+ System.out.println("------");
+
+ String journalName = ((MapOfScienceActivity) activity).getPublishedInJournal().trim();
+
+ if (journalToPublicationCount.containsKey(journalName)) {
+
+ journalToPublicationCount.put(journalName,
+ journalToPublicationCount.get(journalName) + 1);
+ } else {
+
+ journalToPublicationCount.put(journalName, 1);
+ }
+ i++;
+ }
+
+ entityJson.setSubdisciplineActivity(journalToPublicationCount);
+
+ jsonContent.add(entityJson);
}
- SubjectEntityJSON subjectEntityJSON = new SubjectEntityJSON(subjectEntity.getEntityLabel(),
- subjectEntity.getEntityURI(),
- subjectEntity.getParents());
-
- subEntitiesJson.add(subjectEntityJSON);
-
- return json.toJson(subEntitiesJson);
+ return json.toJson(jsonContent);
}
private String getEntityPublicationsPerYearCSVContent(Entity entity) {
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/OrganizationToPublicationsForSubOrganizationsModelConstructor.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/OrganizationToPublicationsForSubOrganizationsModelConstructor.java
index 25344e72..81082cb1 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/OrganizationToPublicationsForSubOrganizationsModelConstructor.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/OrganizationToPublicationsForSubOrganizationsModelConstructor.java
@@ -47,6 +47,8 @@ public class OrganizationToPublicationsForSubOrganizationsModelConstructor imple
+ " ?Document rdfs:label ?DocumentLabel . "
+ " ?Document core:dateTimeValue ?dateTimeValue . "
+ " ?dateTimeValue core:dateTime ?publicationDate . "
+ + " ?Document core:hasPublicationVenue ?journal ."
+ + " ?journal rdfs:label ?journalLabel . "
+ " } "
+ " WHERE { "
+ " <" + organizationURI + "> rdfs:label ?organizationLabel . "
@@ -62,6 +64,11 @@ public class OrganizationToPublicationsForSubOrganizationsModelConstructor imple
+ " ?dateTimeValue core:dateTime ?publicationDate . "
+ " } "
+ " "
+ + " OPTIONAL { "
+ + " ?Document core:hasPublicationVenue ?journal ."
+ + " ?journal rdfs:label ?journalLabel . "
+ + " } "
+ + " "
+ " LET(?now := afn:now()) "
+ " } ";
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/PeopleToPublicationsModelConstructor.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/PeopleToPublicationsModelConstructor.java
index bf87900b..d716054d 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/PeopleToPublicationsModelConstructor.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/PeopleToPublicationsModelConstructor.java
@@ -43,6 +43,8 @@ public class PeopleToPublicationsModelConstructor implements ModelConstructor {
+ " ?Document rdfs:label ?DocumentLabel . "
+ " ?Document core:dateTimeValue ?dateTimeValue . "
+ " ?dateTimeValue core:dateTime ?publicationDate . "
+ + " ?Document core:hasPublicationVenue ?journal ."
+ + " ?journal rdfs:label ?journalLabel . "
+ " } "
+ " WHERE { "
+ " ?person core:authorInAuthorship ?Resource . "
@@ -54,6 +56,11 @@ public class PeopleToPublicationsModelConstructor implements ModelConstructor {
+ " ?dateTimeValue core:dateTime ?publicationDate . "
+ " } "
+ " "
+ + " OPTIONAL { "
+ + " ?Document core:hasPublicationVenue ?journal ."
+ + " ?journal rdfs:label ?journalLabel . "
+ + " } "
+ + " "
+ " LET(?now := afn:now()) "
+ " } ";
}
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/PersonToPublicationsModelConstructor.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/PersonToPublicationsModelConstructor.java
index 19818ee1..fcfbbd29 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/PersonToPublicationsModelConstructor.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/PersonToPublicationsModelConstructor.java
@@ -46,6 +46,8 @@ public class PersonToPublicationsModelConstructor implements ModelConstructor {
+ " ?Document rdfs:label ?DocumentLabel . "
+ " ?Document core:dateTimeValue ?dateTimeValue . "
+ " ?dateTimeValue core:dateTime ?publicationDate . "
+ + " ?Document core:hasPublicationVenue ?journal ."
+ + " ?journal rdfs:label ?journalLabel . "
+ " } "
+ " WHERE { "
+ " <" + personURI + "> core:authorInAuthorship ?Resource . "
@@ -57,6 +59,11 @@ public class PersonToPublicationsModelConstructor implements ModelConstructor {
+ " ?dateTimeValue core:dateTime ?publicationDate . "
+ " } "
+ " "
+ + " OPTIONAL { "
+ + " ?Document core:hasPublicationVenue ?journal ."
+ + " ?journal rdfs:label ?journalLabel . "
+ + " } "
+ + " "
+ " LET(?now := afn:now()) "
+ " } ";
}
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/persongrantcount/PersonGrantCountRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/persongrantcount/PersonGrantCountRequestHandler.java
index 15cd9b8b..b491ffff 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/persongrantcount/PersonGrantCountRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/persongrantcount/PersonGrantCountRequestHandler.java
@@ -16,8 +16,8 @@ import com.hp.hpl.jena.query.Dataset;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Activity;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Individual;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/persongrantcount/PersonGrantCountVisCodeGenerator.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/persongrantcount/PersonGrantCountVisCodeGenerator.java
index 4d4ed129..9afbdb05 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/persongrantcount/PersonGrantCountVisCodeGenerator.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/persongrantcount/PersonGrantCountVisCodeGenerator.java
@@ -13,7 +13,7 @@ import java.util.Set;
import org.apache.commons.logging.Log;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SparklineData;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/personlevel/PersonLevelRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/personlevel/PersonLevelRequestHandler.java
index c12417be..a81ae922 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/personlevel/PersonLevelRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/personlevel/PersonLevelRequestHandler.java
@@ -15,7 +15,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.CoAuthorshipQueryRunner;
import edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.CoAuthorshipVisCodeGenerator;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CollaborationData;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountRequestHandler.java
index ed75910b..c6d3fc7f 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountRequestHandler.java
@@ -16,8 +16,8 @@ import com.hp.hpl.jena.query.Dataset;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Activity;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Individual;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountVisCodeGenerator.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountVisCodeGenerator.java
index bc1d70f5..46d6af8e 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountVisCodeGenerator.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/personpubcount/PersonPublicationCountVisCodeGenerator.java
@@ -13,7 +13,7 @@ import java.util.Set;
import org.apache.commons.logging.Log;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SparklineData;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java
index 9c2da768..95572651 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java
@@ -22,7 +22,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.filestorage.FileServingHelper;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryFieldLabels;
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/MapOfScienceActivity.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/MapOfScienceActivity.java
new file mode 100644
index 00000000..b66d3d8f
--- /dev/null
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/MapOfScienceActivity.java
@@ -0,0 +1,19 @@
+package edu.cornell.mannlib.vitro.webapp.visualization.valueobjects;
+
+public class MapOfScienceActivity extends Activity {
+
+ private String publishedInJournal = "NONE";
+
+ public MapOfScienceActivity(String activityURI) {
+ super(activityURI);
+ }
+
+ public void setPublishedInJournal(String publishedInJournal) {
+ this.publishedInJournal = publishedInJournal;
+ }
+
+ public String getPublishedInJournal() {
+ return publishedInJournal;
+ }
+
+}
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/JsonObject.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/JsonObject.java
similarity index 99%
rename from src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/JsonObject.java
rename to src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/JsonObject.java
index 017dabe6..ee00ab7a 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/JsonObject.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/JsonObject.java
@@ -1,5 +1,5 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
-package edu.cornell.mannlib.vitro.webapp.visualization.valueobjects;
+package edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/MapOfScience.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/MapOfScience.java
new file mode 100644
index 00000000..d4d8e720
--- /dev/null
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/MapOfScience.java
@@ -0,0 +1,66 @@
+package edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class MapOfScience {
+
+ private String uri;
+ private String label;
+ private String type;
+ private int pubsMapped;
+ private int pubsUnmapped;
+ private String lastCachedAtDateTime;
+ private Map subdisciplineActivity = new HashMap();
+
+ public MapOfScience(String uri) {
+ this.uri = uri;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+ public String getType() {
+ return type;
+ }
+ public void setUri(String uri) {
+ this.uri = uri;
+ }
+ public String getUri() {
+ return uri;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+ public String getLabel() {
+ return label;
+ }
+ public void setPubsMapped(int pubsMapped) {
+ this.pubsMapped = pubsMapped;
+ }
+ public int getPubsMapped() {
+ return pubsMapped;
+ }
+ public void setPubsUnmapped(int pubsUnmapped) {
+ this.pubsUnmapped = pubsUnmapped;
+ }
+ public int getPubsUnmapped() {
+ return pubsUnmapped;
+ }
+ public void setSubdisciplineActivity(Map subdisciplineActivity) {
+ this.subdisciplineActivity = subdisciplineActivity;
+ }
+ public Map getSubdisciplineActivity() {
+ return subdisciplineActivity;
+ }
+
+ public void setLastCachedAtDateTime(String lastCachedAtDateTime) {
+ this.lastCachedAtDateTime = lastCachedAtDateTime;
+ }
+
+ public String getLastCachedAtDateTime() {
+ return lastCachedAtDateTime;
+ }
+
+}
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/SubjectEntityJSON.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/SubjectEntityJSON.java
similarity index 93%
rename from src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/SubjectEntityJSON.java
rename to src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/SubjectEntityJSON.java
index e3bcd6fb..2c0e5a08 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/SubjectEntityJSON.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/SubjectEntityJSON.java
@@ -1,10 +1,12 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
-package edu.cornell.mannlib.vitro.webapp.visualization.valueobjects;
+package edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Individual;
+
public class SubjectEntityJSON {
private String subjectEntityLabel;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/SelectOnModelUtilities.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/SelectOnModelUtilities.java
index 53501679..8738f8ad 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/SelectOnModelUtilities.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/SelectOnModelUtilities.java
@@ -29,6 +29,7 @@ import edu.cornell.mannlib.vitro.webapp.visualization.modelconstructor.SubOrgani
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Activity;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Entity;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Individual;
+import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.MapOfScienceActivity;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SubEntity;
public class SelectOnModelUtilities {
@@ -317,6 +318,58 @@ public class SelectOnModelUtilities {
return allDocumentURIToVOs;
}
+ public static Map getPublicationsWithJournalForAllSubOrganizations(
+ Dataset dataset, Entity organizationEntity)
+ throws MalformedQueryParametersException {
+ Map allDocumentURIToVOs = new HashMap();
+
+ for (SubEntity subOrganization : organizationEntity.getSubEntities()) {
+
+ Model subOrganizationPublicationsModel = ModelConstructorUtilities
+ .getOrConstructModel(
+ subOrganization.getIndividualURI(),
+ OrganizationToPublicationsForSubOrganizationsModelConstructor.MODEL_TYPE,
+ dataset);
+
+// System.out.println("getting publications for " + subOrganization.getIndividualLabel());
+
+ Map fieldLabelToOutputFieldLabel = new HashMap();
+ fieldLabelToOutputFieldLabel.put("document", QueryFieldLabels.DOCUMENT_URL);
+ fieldLabelToOutputFieldLabel.put("documentLabel", QueryFieldLabels.DOCUMENT_LABEL);
+ fieldLabelToOutputFieldLabel.put("documentPublicationDate", QueryFieldLabels.DOCUMENT_PUBLICATION_DATE);
+ fieldLabelToOutputFieldLabel.put("journalLabel", QueryFieldLabels.DOCUMENT_JOURNAL_LABEL);
+
+ String whereClause = ""
+ + " <" + subOrganization.getIndividualURI() + "> vivosocnet:hasPersonWithPublication ?document . "
+ + " ?document rdfs:label ?documentLabel . "
+ + " OPTIONAL { "
+ + " ?document core:dateTimeValue ?dateTimeValue . "
+ + " ?dateTimeValue core:dateTime ?documentPublicationDate } . "
+ + " OPTIONAL { "
+ + " ?document core:hasPublicationVenue ?journal . "
+ + " ?journal rdfs:label ?journalLabel . } ";
+
+ QueryRunner subOrganizationPublicationsQuery =
+ new GenericQueryRunnerOnModel(fieldLabelToOutputFieldLabel,
+ "",
+ whereClause,
+ "",
+ subOrganizationPublicationsModel);
+
+ getPublicationWithJournalForEntity(subOrganizationPublicationsQuery.getQueryResult(),
+ subOrganization,
+ allDocumentURIToVOs);
+
+ String lastCachedAtForEntity = getLastCachedAtDateTimeForEntityInModel(
+ subOrganization,
+ subOrganizationPublicationsModel);
+
+ subOrganization.setLastCachedAtDateTime(lastCachedAtForEntity);
+
+ }
+ return allDocumentURIToVOs;
+ }
+
private static void getPublicationForEntity(
ResultSet queryResult,
SubEntity subEntity, Map allDocumentURIToVOs) {
@@ -357,6 +410,54 @@ public class SelectOnModelUtilities {
subEntity.addActivities(currentEntityPublications);
}
+ private static void getPublicationWithJournalForEntity(
+ ResultSet queryResult,
+ SubEntity subEntity,
+ Map allDocumentURIToVOs) {
+
+ Set currentEntityPublications = new HashSet();
+
+ while (queryResult.hasNext()) {
+
+ QuerySolution solution = queryResult.nextSolution();
+
+ if (StringUtils.isEmpty(subEntity.getLastCachedAtDateTime())) {
+
+ RDFNode lastCachedAtNode = solution.get(QueryFieldLabels.LAST_CACHED_AT_DATETIME);
+ if (lastCachedAtNode != null) {
+ subEntity.setLastCachedAtDateTime(lastCachedAtNode.toString());
+ }
+ }
+
+ RDFNode documentNode = solution.get(QueryFieldLabels.DOCUMENT_URL);
+ Activity biboDocument;
+
+ if (allDocumentURIToVOs.containsKey(documentNode.toString())) {
+ biboDocument = allDocumentURIToVOs.get(documentNode.toString());
+
+ } else {
+
+ biboDocument = new MapOfScienceActivity(documentNode.toString());
+ allDocumentURIToVOs.put(documentNode.toString(), biboDocument);
+
+ RDFNode publicationDateNode = solution.get(QueryFieldLabels
+ .DOCUMENT_PUBLICATION_DATE);
+ if (publicationDateNode != null) {
+ biboDocument.setActivityDate(publicationDateNode.toString());
+ }
+
+ RDFNode publicationJournalNode = solution.get(QueryFieldLabels
+ .DOCUMENT_JOURNAL_LABEL);
+
+ if (publicationJournalNode != null) {
+ ((MapOfScienceActivity) biboDocument).setPublishedInJournal(publicationJournalNode.toString());
+ }
+ }
+ currentEntityPublications.add(biboDocument);
+ }
+ subEntity.addActivities(currentEntityPublications);
+ }
+
public static String getLastCachedAtForEntity(ResultSet queryResult) {
String lastCachedAtDateTime = null;
@@ -638,5 +739,57 @@ public class SelectOnModelUtilities {
}
return allDocumentURIToVOs;
}
+
+ public static Map getPublicationsWithJournalForAssociatedPeople(
+ Dataset dataset, Collection people)
+ throws MalformedQueryParametersException {
+ Map allDocumentURIToVOs = new HashMap();
+
+ Model peoplePublicationsModel = ModelConstructorUtilities
+ .getOrConstructModel(
+ null,
+ PeopleToPublicationsModelConstructor.MODEL_TYPE,
+ dataset);
+
+ for (SubEntity person : people) {
+
+// System.out.println("getting publications for " + person.getIndividualLabel());
+
+ Map fieldLabelToOutputFieldLabel = new HashMap();
+ fieldLabelToOutputFieldLabel.put("document", QueryFieldLabels.DOCUMENT_URL);
+ fieldLabelToOutputFieldLabel.put("documentLabel", QueryFieldLabels.DOCUMENT_LABEL);
+ fieldLabelToOutputFieldLabel.put("documentPublicationDate", QueryFieldLabels.DOCUMENT_PUBLICATION_DATE);
+ fieldLabelToOutputFieldLabel.put("journalLabel", QueryFieldLabels.DOCUMENT_JOURNAL_LABEL);
+
+ String whereClause = ""
+ + " <" + person.getIndividualURI() + "> vivosocnet:hasPublication ?document . "
+ + " ?document rdfs:label ?documentLabel . "
+ + " OPTIONAL { "
+ + " ?document core:dateTimeValue ?dateTimeValue . "
+ + " ?dateTimeValue core:dateTime ?documentPublicationDate } . "
+ + " OPTIONAL { "
+ + " ?document core:hasPublicationVenue ?journal . "
+ + " ?journal rdfs:label ?journalLabel . } ";
+
+ QueryRunner personPublicationsQuery =
+ new GenericQueryRunnerOnModel(fieldLabelToOutputFieldLabel,
+ "",
+ whereClause,
+ "",
+ peoplePublicationsModel);
+
+ getPublicationWithJournalForEntity(personPublicationsQuery.getQueryResult(),
+ person,
+ allDocumentURIToVOs);
+
+ String lastCachedAtForEntity = getLastCachedAtDateTimeForEntityInModel(
+ person,
+ peoplePublicationsModel);
+
+ person.setLastCachedAtDateTime(lastCachedAtForEntity);
+
+ }
+ return allDocumentURIToVOs;
+ }
}
diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/UtilityFunctions.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/UtilityFunctions.java
index 00df4df7..4a555817 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/UtilityFunctions.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/UtilityFunctions.java
@@ -24,7 +24,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.collaborationutils.CollaborationData;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
diff --git a/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/IndividualTemplateModel.java b/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/IndividualTemplateModel.java
index f4e85460..4b02eb18 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/IndividualTemplateModel.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/IndividualTemplateModel.java
@@ -19,7 +19,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route;
-import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
+import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
public class IndividualTemplateModel extends BaseIndividualTemplateModel {