1. Refactored package structure for the java files to remove the work "freemarker".

2. Did more work for setting up the backend for the science map visualziation.
This commit is contained in:
cdtank 2011-05-12 20:51:47 +00:00
parent 8713552eb5
commit 5f8e6e4172
37 changed files with 355 additions and 88 deletions

View file

@ -40,8 +40,11 @@
<bean id="grant_temporal"
class="edu.cornell.mannlib.vitro.webapp.visualization.entitycomparison.cached.TemporalGrantVisualizationRequestHandler" />
<bean id="map_of_science"
class="edu.cornell.mannlib.vitro.webapp.visualization.mapofscience.MapOfScienceVisualizationRequestHandler" />
<bean id="visualizationInjector"
class="edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationInjector">
class="edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationInjector">
<property name="visualizations">
<map>
<entry key="person_pub_count">
@ -106,6 +109,10 @@
<ref bean="grant_temporal"></ref>
</entry>
<entry key="map-of-science">
<ref bean="map_of_science"></ref>
</entry>
</map>
</property>

View file

@ -1235,12 +1235,12 @@
<servlet>
<servlet-name>StandardVisualizationController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.StandardVisualizationController</servlet-class>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.StandardVisualizationController</servlet-class>
</servlet>
<servlet>
<servlet-name>ShortURLVisualizationController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.ShortURLVisualizationController</servlet-class>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.ShortURLVisualizationController</servlet-class>
</servlet>
<servlet-mapping>
@ -1263,7 +1263,7 @@
<servlet>
<servlet-name>AjaxVisualizationController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.AjaxVisualizationController</servlet-class>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.AjaxVisualizationController</servlet-class>
</servlet>
<servlet-mapping>
@ -1273,7 +1273,7 @@
<servlet>
<servlet-name>DataVisualizationController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController</servlet-class>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController</servlet-class>
</servlet>
<servlet-mapping>

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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());
MapOfScience entityJson = new MapOfScience(subentity.getIndividualURI());
List<List<Integer>> yearPubCount = new ArrayList<List<Integer>>();
for (Map.Entry<String, Integer> pubEntry : UtilityFunctions
.getYearToActivityCount(subentity.getActivities())
.entrySet()) {
List<Integer> currentPubYear = new ArrayList<Integer>();
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);
}
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<String, Integer> journalToPublicationCount = new HashMap<String, Integer>();
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) {

View file

@ -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()) "
+ " } ";

View file

@ -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()) "
+ " } ";
}

View file

@ -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()) "
+ " } ";
}

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;
}
}

View file

@ -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;

View file

@ -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<String, Integer> subdisciplineActivity = new HashMap<String, Integer>();
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<String, Integer> subdisciplineActivity) {
this.subdisciplineActivity = subdisciplineActivity;
}
public Map<String, Integer> getSubdisciplineActivity() {
return subdisciplineActivity;
}
public void setLastCachedAtDateTime(String lastCachedAtDateTime) {
this.lastCachedAtDateTime = lastCachedAtDateTime;
}
public String getLastCachedAtDateTime() {
return lastCachedAtDateTime;
}
}

View file

@ -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;

View file

@ -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<String, Activity> getPublicationsWithJournalForAllSubOrganizations(
Dataset dataset, Entity organizationEntity)
throws MalformedQueryParametersException {
Map<String, Activity> allDocumentURIToVOs = new HashMap<String, Activity>();
for (SubEntity subOrganization : organizationEntity.getSubEntities()) {
Model subOrganizationPublicationsModel = ModelConstructorUtilities
.getOrConstructModel(
subOrganization.getIndividualURI(),
OrganizationToPublicationsForSubOrganizationsModelConstructor.MODEL_TYPE,
dataset);
// System.out.println("getting publications for " + subOrganization.getIndividualLabel());
Map<String, String> fieldLabelToOutputFieldLabel = new HashMap<String, String>();
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<ResultSet> 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<String, Activity> allDocumentURIToVOs) {
@ -357,6 +410,54 @@ public class SelectOnModelUtilities {
subEntity.addActivities(currentEntityPublications);
}
private static void getPublicationWithJournalForEntity(
ResultSet queryResult,
SubEntity subEntity,
Map<String, Activity> allDocumentURIToVOs) {
Set<Activity> currentEntityPublications = new HashSet<Activity>();
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;
@ -639,4 +740,56 @@ public class SelectOnModelUtilities {
return allDocumentURIToVOs;
}
public static Map<String, Activity> getPublicationsWithJournalForAssociatedPeople(
Dataset dataset, Collection<SubEntity> people)
throws MalformedQueryParametersException {
Map<String, Activity> allDocumentURIToVOs = new HashMap<String, Activity>();
Model peoplePublicationsModel = ModelConstructorUtilities
.getOrConstructModel(
null,
PeopleToPublicationsModelConstructor.MODEL_TYPE,
dataset);
for (SubEntity person : people) {
// System.out.println("getting publications for " + person.getIndividualLabel());
Map<String, String> fieldLabelToOutputFieldLabel = new HashMap<String, String>();
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<ResultSet> personPublicationsQuery =
new GenericQueryRunnerOnModel(fieldLabelToOutputFieldLabel,
"",
whereClause,
"",
peoplePublicationsModel);
getPublicationWithJournalForEntity(personPublicationsQuery.getQueryResult(),
person,
allDocumentURIToVOs);
String lastCachedAtForEntity = getLastCachedAtDateTimeForEntityInModel(
person,
peoplePublicationsModel);
person.setLastCachedAtDateTime(lastCachedAtForEntity);
}
return allDocumentURIToVOs;
}
}

View file

@ -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;

View file

@ -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 {