1. Added front-end for map of science vis.

2. Added Data tables for disciplines/sub-disciplines in the vis.
3. added support for different csv downloadables.
4. Added new updated libraries for DataTables plugin.
This commit is contained in:
tankchintan 2011-05-26 17:11:16 +00:00
parent 3fdc267806
commit ca08343379
27 changed files with 8950 additions and 163 deletions

View file

@ -87,6 +87,14 @@ public class VisualizationFrameworkConstants {
public static final String COPI_NETWORK_STREAM_VIS_MODE = "copi_network_stream";
public static final String COPI_NETWORK_DOWNLOAD_VIS_MODE = "copi_network_download";
/*
* Vis modes for Map of Science Handler
* */
public static final String DISCIPLINE_TO_ACTIVTY_VIS_MODE = "discipline";
public static final String SUBDISCIPLINE_TO_ACTIVTY_VIS_MODE = "subdiscipline";
/*
* These values represent possible utilities vis modes.
* */

View file

@ -14,9 +14,7 @@ import mapping.ScienceMappingResult;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.commons.logging.Log;
import org.jgrapht.util.MathUtil;
import com.google.gson.Gson;
import com.hp.hpl.jena.query.Dataset;
@ -163,18 +161,34 @@ public class MapOfScienceVisualizationRequestHandler implements
entityLabel = "no-organization";
}
String outputFileName = UtilityFunctions.slugify(entityLabel)
+ "_discipline-to-publications" + ".csv";
String outputFileName = UtilityFunctions.slugify(entityLabel);
Map<String, String> fileData = new HashMap<String, String>();
fileData.put(DataVisualizationController.FILE_NAME_KEY,
outputFileName);
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY,
"application/octet-stream");
if (VisualizationFrameworkConstants.SUBDISCIPLINE_TO_ACTIVTY_VIS_MODE
.equalsIgnoreCase(vitroRequest.getParameter(VisualizationFrameworkConstants.VIS_MODE_KEY))) {
fileData.put(DataVisualizationController.FILE_CONTENT_KEY,
getDisciplineToPublicationsCSVContent(entity));
getSubDisciplineToPublicationsCSVContent(entity));
outputFileName += "_subdiscipline-to-publications" + ".csv";
} else {
fileData.put(DataVisualizationController.FILE_CONTENT_KEY,
getDisciplineToPublicationsCSVContent(entity));
outputFileName += "_discipline-to-publications" + ".csv";
}
fileData.put(DataVisualizationController.FILE_NAME_KEY,
outputFileName);
return fileData;
}
@ -412,17 +426,7 @@ public class MapOfScienceVisualizationRequestHandler implements
csvFileContent.append("Discipline, Publication Count, % Activity\n");
Set<Activity> publicationsForEntity = new HashSet<Activity>();
for (SubEntity subEntity : subjectEntity.getSubEntities()) {
publicationsForEntity.addAll(subEntity.getActivities());
}
PublicationJournalStats publicationStats = getPublicationJournalStats(publicationsForEntity);
ScienceMappingResult result = getScienceMappingResult(publicationStats.journalToPublicationCount);
ScienceMappingResult result = extractScienceMappingResultFromActivities(subjectEntity);
Map<Integer, Float> disciplineToPublicationCount = new HashMap<Integer, Float>();
@ -469,6 +473,59 @@ public class MapOfScienceVisualizationRequestHandler implements
return csvFileContent.toString();
}
private String getSubDisciplineToPublicationsCSVContent(Entity subjectEntity) {
StringBuilder csvFileContent = new StringBuilder();
csvFileContent.append("Sub-Discipline, Publication Count, % Activity\n");
ScienceMappingResult result = extractScienceMappingResultFromActivities(subjectEntity);
Float totalMappedPublications = new Float(0);
if (result != null) {
DecimalFormat percentageActivityFormat = new DecimalFormat("#.#");
totalMappedPublications = result.getMappedPublications();
for (Map.Entry<Integer, Float> currentMappedSubdiscipline : result.getMappedResult().entrySet()) {
csvFileContent.append(StringEscapeUtils.escapeCsv(MapOfScienceConstants.SUB_DISCIPLINE_ID_TO_LABEL
.get(currentMappedSubdiscipline.getKey())));
csvFileContent.append(", ");
csvFileContent.append(percentageActivityFormat.format(currentMappedSubdiscipline.getValue()));
csvFileContent.append(", ");
if (totalMappedPublications > 0) {
csvFileContent.append(percentageActivityFormat.format(100 * currentMappedSubdiscipline.getValue() / totalMappedPublications));
} else {
csvFileContent.append("Not Available");
}
csvFileContent.append("\n");
}
}
return csvFileContent.toString();
}
private ScienceMappingResult extractScienceMappingResultFromActivities(
Entity subjectEntity) {
Set<Activity> publicationsForEntity = new HashSet<Activity>();
for (SubEntity subEntity : subjectEntity.getSubEntities()) {
publicationsForEntity.addAll(subEntity.getActivities());
}
PublicationJournalStats publicationStats = getPublicationJournalStats(publicationsForEntity);
ScienceMappingResult result = getScienceMappingResult(publicationStats.journalToPublicationCount);
return result;
}
private class PublicationJournalStats {
int noJournalCount;