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:
parent
3fdc267806
commit
ca08343379
27 changed files with 8950 additions and 163 deletions
|
@ -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.
|
||||
* */
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue