From 2208ffd6c0c9a2fb8a939791e0bbdd87143330eb Mon Sep 17 00:00:00 2001 From: tankchintan Date: Tue, 31 May 2011 20:14:21 +0000 Subject: [PATCH] 1. Added scimap icon. 2. Made chanegs to scimap request handler to accept scimap requests for people as an entity. --- .../mapofscience/vivo_scimap_icon_v001.png | Bin 0 -> 2450 bytes .../OrganizationUtilityFunctions.java | 2 +- ...pOfScienceVisualizationRequestHandler.java | 76 ++++++++++++++---- .../utilities/UtilitiesRequestHandler.java | 8 +- .../visutils/GenericQueryRunner.java | 3 +- .../visutils/SelectOnModelUtilities.java | 47 +++++++++++ 6 files changed, 115 insertions(+), 21 deletions(-) create mode 100644 productMods/images/visualization/mapofscience/vivo_scimap_icon_v001.png diff --git a/productMods/images/visualization/mapofscience/vivo_scimap_icon_v001.png b/productMods/images/visualization/mapofscience/vivo_scimap_icon_v001.png new file mode 100644 index 0000000000000000000000000000000000000000..8b02295649f676f694212d4e15c6495f73d6d908 GIT binary patch literal 2450 zcmV;D32pX?P)pSD0-5|rrHt()o8sgrs1=#lB%xwBf*g8uN~ zLzD3+)4hB5lpZ~LV3h5xvaqxDMK52z%s6`Vs3%Y?nVXwyCQqImzK8W0zi81SGj-}z zgDa?@#K3_A?f2KOUmJ0i@H3PeK74pcESwrQU;(>YKK6=5tyR5*E#J0nn<*_VHJ2`3 zG7?axOP4NY@#4j1`t<46UnQ`b`7NT>e*gZxwXVwO(WCL}OfO#!L<3t}TU&JCzyWjn z_HAFKR;^lP!Ja*PHhd4zr%s)+-{;PqYXN%+E`fE$Z^JHua8Gt2#p^$b(ZKH5u_G#2 zwiZUfvR>j=!cV?@`C?wYcwq(%7+`}=-NIp*mV?gm*}c1V?XuAyO@<5^VuJ^ZdI|S= zE^%qc?|y4Wy2LL6G{Y~zA_c3V*t~i3Jf9PIu*KD@S510)y0xY|SpfFI zg9qXJ@U$cUZ4t0z-TY(6j>VPn7@wV;ZC0#UVJ)hbcey_^PnkF+d z)4B~bhYvgJ=R0`(X^q5CUS3`RE5s|&c-Wl*moHy#c{wpL(E`Rra07f?);8=c7c0)`m~Na_xf4g5_~!iruA#Uho6GIKYGiS~;*RNl10yeVnxpnK7 znK*Hx-32$`_3PK`&%7o+3~i8cqAjdjgw|Xrhzs!v;d>QHl%03)-gT#2PvJQ`fa~b| z3fd-$h*rtB9@ebHA1N{MGbuSOI26#*a^uF0c0A7kuRfTZoa}2^xAf}O%ZwX0&Zcwb zRDUKwogDEeR@UlG0awU?AYim<#DbKVUhJXwP=xeLM57>|yLa!lfMWqmWkz>FzXxE} zcdsV}{m-(pvf#31%Sr{f?WPs*J=t=r5_#M!a*i6w5JZ)gmFDZ$uXd4) zj0_v)Jfq4Y(gDj3MRvrIB8{f0s;V;Q&!0C-mMpPzMpE08Cr|454(RdY#}6DfY}jfA zT*d$v^#Y64u>jB9K?L}xPoJ9p{rj8z{Csoh&>=g9xlpb{hYr3$$A1EWfK?dfX-L%_ zG|@=R1m@45pM34wwOZ*LYXtC81)SrTJP0Z#CgS}B;4F$|aS;?(WY59_d{SPx2s zvXr*G{CMoxv0>lWR4(h)@7c5GqkyiFueB#no(xHVc7hymi8*>6KpTU0EQXcXQnou* zK{0}d{{aBzfLWLecHtRg@NI<8EnBvPlLTW~|M20%AuM|0#EEdykO1$ZfV0$h*;X$6 zmNSXghQ_|%ja0pb*gE10iP!sschP`2_P&W9ni>2xO?72F2~!Z=W)SiBy873I=M8asFHtQ5XalxMvF%b|C(lOGyG zCZ08GmL+deXRN|l>JqIjn8zs-Jq4>X_Q;VVX47ZBY>p5yu8${ zTetQTrua=8(gcpaZ{EDwY%(&L@Sgpo;=)y05=u$un92Un-R_V*BQ2~6N&NesQ$|L% zL?v?l>h9|R{6eawpxZ6nhaJ!wi&F+h0}T`O?Agj<#qa2Prqn)8~SO>+yweC6rH-MfX{>_^= zn`h6Sg`cfiv&Q=I@#DvBW-BNturcDaKq1F3{}WG)5OjZ}rlv*(48KBsBmwA2D=`90 zgL2)vbxpt`Sh%pT(0<3gu)5Q$l{qD2+;5HmTp|f$uUsk7wp=NX&?;RJ*d)EWsKS++s~j)U|5Y-w6rT88>qEW+s{ph*mFApu}fp()Qo zsV(B>;XGbBxw_SuMJ=mfaS!#~_LeYUheonxu@J1_KFe*XO2bD14GRDkw(xtefvfnv z4v5#n3OZ9LtPEa_#oDk3fu;N!4J;x7rwPHdI_RRj@+uHN4Pr$qEqvCU3Ax~5c7p)( z^4Uo1?%%)PIBz;D+7)obOByOV literal 0 HcmV?d00001 diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/OrganizationUtilityFunctions.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/OrganizationUtilityFunctions.java index ddc92f4b..72b68411 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/OrganizationUtilityFunctions.java +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/entitycomparison/OrganizationUtilityFunctions.java @@ -92,7 +92,7 @@ public class OrganizationUtilityFunctions { QueryRunner highestLevelOrganizationQueryHandler = new GenericQueryRunner( fieldLabelToOutputFieldLabel, aggregationRules, whereClause, - groupOrderClause, dataset, log); + groupOrderClause, dataset); String highestLevelOrgURI = OrganizationUtilityFunctions .getHighestLevelOrganizationURI( 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 33395aac..2e68c671 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java @@ -87,11 +87,48 @@ public class MapOfScienceVisualizationRequestHandler implements // return prepareStandaloneMarkupResponse(vitroRequest, entityURI); } + + + private Map getSubjectPersonEntityAndGenerateDataResponse( + VitroRequest vitroRequest, Log log, Dataset dataset, + String subjectEntityURI, VisConstants.DataVisMode dataOuputFormat) + throws MalformedQueryParametersException { + + Map documentURIForAssociatedPeopleTOVO = new HashMap(); + + + Entity personEntity = SelectOnModelUtilities + .getSubjectPersonEntity(dataset, subjectEntityURI); + + if (personEntity.getSubEntities() != null) { + + documentURIForAssociatedPeopleTOVO = SelectOnModelUtilities + .getPublicationsWithJournalForAssociatedPeople(dataset, personEntity.getSubEntities()); + + } + + if (documentURIForAssociatedPeopleTOVO.isEmpty()) { + + if (VisConstants.DataVisMode.JSON.equals(dataOuputFormat)) { + return prepareStandaloneDataErrorResponse(); + } else { + return prepareDataErrorResponse(); + } + + } else { + + if (VisConstants.DataVisMode.JSON.equals(dataOuputFormat)) { + return prepareStandaloneDataResponse(vitroRequest, personEntity); + } else { + return prepareDataResponse(vitroRequest, personEntity); + } + } + } private Map getSubjectEntityAndGenerateDataResponse( VitroRequest vitroRequest, Log log, Dataset dataset, String subjectEntityURI, VisConstants.DataVisMode dataOuputFormat) - throws MalformedQueryParametersException { + throws MalformedQueryParametersException { Entity organizationEntity = SelectOnModelUtilities .getSubjectOrganizationHierarchy(dataset, subjectEntityURI); @@ -187,15 +224,15 @@ public class MapOfScienceVisualizationRequestHandler implements if (VisualizationFrameworkConstants.SUBDISCIPLINE_TO_ACTIVTY_VIS_MODE .equalsIgnoreCase(vitroRequest.getParameter(VisualizationFrameworkConstants.VIS_MODE_KEY))) { - fileData.put(DataVisualizationController.FILE_CONTENT_KEY, - getSubDisciplineToPublicationsCSVContent(entity)); - - outputFileName += "_subdiscipline-to-publications" + ".csv"; - + fileData.put(DataVisualizationController.FILE_CONTENT_KEY, + getSubDisciplineToPublicationsCSVContent(entity)); + + outputFileName += "_subdiscipline-to-publications" + ".csv"; + } else { fileData.put(DataVisualizationController.FILE_CONTENT_KEY, - getDisciplineToPublicationsCSVContent(entity)); + getDisciplineToPublicationsCSVContent(entity)); outputFileName += "_discipline-to-publications" + ".csv"; @@ -257,14 +294,26 @@ public class MapOfScienceVisualizationRequestHandler implements currentDataVisMode = VisConstants.DataVisMode.JSON; } + if (UtilityFunctions.isEntityAPerson(vitroRequest, entityURI)) { + + return getSubjectPersonEntityAndGenerateDataResponse( + vitroRequest, + log, + dataset, + entityURI, + currentDataVisMode); + + } else { - return getSubjectEntityAndGenerateDataResponse( - vitroRequest, - log, - dataset, - entityURI, - currentDataVisMode); + return getSubjectEntityAndGenerateDataResponse( + vitroRequest, + log, + dataset, + entityURI, + currentDataVisMode); + } + } @@ -304,7 +353,6 @@ public class MapOfScienceVisualizationRequestHandler implements body.put("entityLabel", organizationLabel); body.put("vivoDefaultNamespace", vreq.getWebappDaoFactory().getDefaultNamespace()); - return new TemplateResponseValues(standaloneTemplate, body); } 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 95572651..750a30ec 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java @@ -106,7 +106,7 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler { "", whereClause, "", - dataset, log); + dataset); return getThumbnailInformation(imageQueryHandler.getQueryResult(), fieldLabelToOutputFieldLabel, vitroRequest); @@ -131,7 +131,7 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler { aggregationRules, whereClause, groupOrderClause, - dataset, log); + dataset); Gson publicationsInformation = new Gson(); @@ -162,7 +162,7 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler { aggregationRules, whereClause, "", - dataset, log); + dataset); Gson grantsInformation = new Gson(); @@ -309,7 +309,7 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler { aggregationRules, whereClause, groupOrderClause, - dataset, log); + dataset); return getHighestLevelOrganizationTemporalGraphVisURL( highestLevelOrganizationQueryHandler.getQueryResult(), diff --git a/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/GenericQueryRunner.java b/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/GenericQueryRunner.java index 25ac9a57..11fa1e13 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/GenericQueryRunner.java +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/GenericQueryRunner.java @@ -4,7 +4,6 @@ package edu.cornell.mannlib.vitro.webapp.visualization.visutils; import java.util.Map; -import org.apache.commons.logging.Log; import com.hp.hpl.jena.query.Dataset; import com.hp.hpl.jena.query.Query; @@ -42,7 +41,7 @@ public class GenericQueryRunner implements QueryRunner { String aggregationRules, String whereClause, String groupOrderClause, - Dataset dataset, Log log) { + Dataset dataset) { this.fieldLabelToOutputFieldLabel = fieldLabelToOutputFieldLabel; this.aggregationRules = aggregationRules; 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 cbc6e297..a3c3b049 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/SelectOnModelUtilities.java +++ b/src/edu/cornell/mannlib/vitro/webapp/visualization/visutils/SelectOnModelUtilities.java @@ -72,6 +72,53 @@ public class SelectOnModelUtilities { return entityWithSubOrganizations; } + public static Entity getSubjectPersonEntity(Dataset dataset, + String subjectEntityURI) throws MalformedQueryParametersException { + + Map fieldLabelToOutputFieldLabel = new HashMap(); + fieldLabelToOutputFieldLabel.put("authorLabel", QueryFieldLabels.AUTHOR_LABEL); + + String whereClause = "" + + " <" + subjectEntityURI + "> rdfs:label ?authorLabel . "; + + QueryRunner personQuery = + new GenericQueryRunner(fieldLabelToOutputFieldLabel, + "", + whereClause, + "", + dataset); + + Entity personEntity = new Entity(subjectEntityURI); + + ResultSet queryResult = personQuery.getQueryResult(); + + while (queryResult.hasNext()) { + + QuerySolution solution = queryResult.nextSolution(); + + RDFNode personLabelNode = solution.get(QueryFieldLabels.AUTHOR_LABEL); + if (personLabelNode != null) { + personEntity.setEntityLabel(personLabelNode.toString()); + } + + } + + /* + * We are adding A person as it's own subentity in order to make our code for geenrating csv, json + * & other data as streamlined as possible between entities of type Organization & Person. + * */ + SubEntity subEntity = new SubEntity(subjectEntityURI, personEntity.getEntityLabel()); + subEntity.setEntityClass(VOConstants.EntityClassType.PERSON); + + personEntity.addSubEntity(subEntity); + +// Entity entityWithParentOrganizations = getAllParentOrganizations(dataset, subjectEntityURI); +// +// personEntity.addParents(entityWithParentOrganizations.getParents()); + + return personEntity; + } + public static Entity getAllParentOrganizations(Dataset dataset, String subjectEntityURI) throws MalformedQueryParametersException { Model organizationModel = ModelConstructorUtilities