1. Made changes so that proper thumbnail image location can be retrieved
This commit is contained in:
parent
f275ba4444
commit
94d8de065e
6 changed files with 273 additions and 78 deletions
|
@ -24,6 +24,12 @@ public class QueryFieldLabels {
|
||||||
public static final String DOCUMENT_PUBLICATION_DATE = "publicationDateLit";
|
public static final String DOCUMENT_PUBLICATION_DATE = "publicationDateLit";
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Image related field labels
|
||||||
|
* */
|
||||||
|
public static final String THUMBNAIL_LOCATION_URL = "thumbnailDownloadLocationLit";
|
||||||
|
public static final String THUMBNAIL_FILENAME = "thumbnailFileNameLit";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Author related field labels
|
* Author related field labels
|
||||||
* */
|
* */
|
||||||
|
|
|
@ -84,21 +84,6 @@ public class VisualizationRequestHandler {
|
||||||
dataSource,
|
dataSource,
|
||||||
log);
|
log);
|
||||||
|
|
||||||
System.out.println("*****************************************");
|
|
||||||
|
|
||||||
String thumbNailLocation;
|
|
||||||
try {
|
|
||||||
thumbNailLocation = URLEncoder.encode("http://vivo-trunk.indiana.edu/individual/n2188",
|
|
||||||
VisualizationController.URL_ENCODING_SCHEME).toString();
|
|
||||||
System.out.println(FileServingHelper.getBytestreamAliasUrl(thumbNailLocation, "thumbnail_flyer-draft.jpg"));
|
|
||||||
} catch (UnsupportedEncodingException e2) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e2.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.VisVOContainer coAuthorshipVO =
|
edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.VisVOContainer coAuthorshipVO =
|
||||||
|
|
|
@ -7,6 +7,8 @@ import java.io.IOException;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.servlet.RequestDispatcher;
|
import javax.servlet.RequestDispatcher;
|
||||||
|
@ -18,15 +20,21 @@ import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.hp.hpl.jena.query.DataSource;
|
import com.hp.hpl.jena.query.DataSource;
|
||||||
|
import com.hp.hpl.jena.query.QuerySolution;
|
||||||
|
import com.hp.hpl.jena.query.ResultSet;
|
||||||
|
import com.hp.hpl.jena.rdf.model.RDFNode;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.beans.Portal;
|
import edu.cornell.mannlib.vitro.webapp.beans.Portal;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
|
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationController;
|
import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationController;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.visualization.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.QueryConstants;
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryFieldLabels;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.GenericQueryMap;
|
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.GenericQueryMap;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.AllPropertiesQueryHandler;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.GenericQueryHandler;
|
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.GenericQueryHandler;
|
||||||
|
|
||||||
public class VisualizationRequestHandler {
|
public class VisualizationRequestHandler {
|
||||||
|
@ -74,8 +82,8 @@ public class VisualizationRequestHandler {
|
||||||
if (profileInfoMode.equalsIgnoreCase(visMode)) {
|
if (profileInfoMode.equalsIgnoreCase(visMode)) {
|
||||||
|
|
||||||
|
|
||||||
String filterRule = "?predicate = vitro:imageThumb || ?predicate = vitro:moniker || ?predicate = rdfs:label";
|
String filterRule = "?predicate = j.2:mainImage || ?predicate = vitro:moniker || ?predicate = rdfs:label";
|
||||||
GenericQueryHandler imageQueryHandler = new GenericQueryHandler(individualURIParam,
|
AllPropertiesQueryHandler profileQueryHandler = new AllPropertiesQueryHandler(individualURIParam,
|
||||||
filterRule,
|
filterRule,
|
||||||
resultFormatParam,
|
resultFormatParam,
|
||||||
rdfResultFormatParam,
|
rdfResultFormatParam,
|
||||||
|
@ -84,9 +92,9 @@ public class VisualizationRequestHandler {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
GenericQueryMap profilePropertiesToValues = imageQueryHandler.getJavaValueObjects();
|
GenericQueryMap profilePropertiesToValues = profileQueryHandler.getJavaValueObjects();
|
||||||
|
|
||||||
profilePropertiesToValues.addEntry("imageContextPath", request.getContextPath() + "/images/");
|
profilePropertiesToValues.addEntry("imageContextPath", request.getContextPath());
|
||||||
|
|
||||||
Gson profileInformation = new Gson();
|
Gson profileInformation = new Gson();
|
||||||
|
|
||||||
|
@ -113,10 +121,18 @@ public class VisualizationRequestHandler {
|
||||||
* to render an image & other info for a co-author OR ego for that matter.
|
* to render an image & other info for a co-author OR ego for that matter.
|
||||||
* */
|
* */
|
||||||
|
|
||||||
|
Map<String, String> fieldLabelToOutputFieldLabel = new HashMap<String, String>();
|
||||||
|
fieldLabelToOutputFieldLabel.put("downloadLocation", QueryFieldLabels.THUMBNAIL_LOCATION_URL);
|
||||||
|
fieldLabelToOutputFieldLabel.put("fileName", QueryFieldLabels.THUMBNAIL_FILENAME);
|
||||||
|
|
||||||
|
String whereClause = "<" + individualURIParam + "> j.2:thumbnailImage ?thumbnailImage . "
|
||||||
|
+ "?thumbnailImage j.2:downloadLocation ?downloadLocation ; j.2:filename ?fileName .";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
String filterRule = "?predicate = vitro:imageThumb";
|
|
||||||
GenericQueryHandler imageQueryHandler = new GenericQueryHandler(individualURIParam,
|
GenericQueryHandler imageQueryHandler = new GenericQueryHandler(individualURIParam,
|
||||||
filterRule,
|
fieldLabelToOutputFieldLabel,
|
||||||
|
whereClause,
|
||||||
resultFormatParam,
|
resultFormatParam,
|
||||||
rdfResultFormatParam,
|
rdfResultFormatParam,
|
||||||
dataSource,
|
dataSource,
|
||||||
|
@ -124,27 +140,12 @@ public class VisualizationRequestHandler {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
GenericQueryMap imagePropertyToValues = imageQueryHandler.getJavaValueObjects();
|
String thumbnailAccessURL = getThumnailInformation(
|
||||||
|
imageQueryHandler.getResultSet(),
|
||||||
|
fieldLabelToOutputFieldLabel);
|
||||||
|
|
||||||
String imagePath = "";
|
System.out.println("thumnail access URL " + thumbnailAccessURL);
|
||||||
|
prepareVisualizationQueryResponse(thumbnailAccessURL);
|
||||||
if (imagePropertyToValues.size() > 0) {
|
|
||||||
|
|
||||||
String vitroSparqlNamespace = QueryConstants.PREFIX_TO_NAMESPACE.get("vitro");
|
|
||||||
String imageThumbProperty = vitroSparqlNamespace + "imageThumb";
|
|
||||||
|
|
||||||
Set<String> personImageThumbPaths = imagePropertyToValues.get(imageThumbProperty);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Although we know that there can be only one imagePath we are restricted by Java's
|
|
||||||
* expression power.
|
|
||||||
* */
|
|
||||||
for (String providedImagePath : personImageThumbPaths) {
|
|
||||||
imagePath = request.getContextPath() + "/images/" + providedImagePath;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
prepareVisualizationQueryResponse(imagePath);
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
@ -229,6 +230,29 @@ public class VisualizationRequestHandler {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getThumnailInformation(ResultSet resultSet,
|
||||||
|
Map<String, String> fieldLabelToOutputFieldLabel) {
|
||||||
|
|
||||||
|
String finalThumbNailLocation = "";
|
||||||
|
|
||||||
|
while (resultSet.hasNext()) {
|
||||||
|
QuerySolution solution = resultSet.nextSolution();
|
||||||
|
|
||||||
|
|
||||||
|
RDFNode downloadLocationNode = solution.get(fieldLabelToOutputFieldLabel.get("downloadLocation"));
|
||||||
|
RDFNode fileNameNode = solution.get(fieldLabelToOutputFieldLabel.get("fileName"));
|
||||||
|
|
||||||
|
if (downloadLocationNode != null && fileNameNode != null) {
|
||||||
|
finalThumbNailLocation = FileServingHelper
|
||||||
|
.getBytestreamAliasUrl(downloadLocationNode.toString(),
|
||||||
|
fileNameNode.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return finalThumbNailLocation;
|
||||||
|
}
|
||||||
|
|
||||||
private void prepareVisualizationQueryResponse(String preparedURL) {
|
private void prepareVisualizationQueryResponse(String preparedURL) {
|
||||||
|
|
||||||
response.setContentType("text/plain");
|
response.setContentType("text/plain");
|
||||||
|
|
|
@ -0,0 +1,160 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.visualization.visutils;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
|
import com.hp.hpl.jena.iri.IRI;
|
||||||
|
import com.hp.hpl.jena.iri.IRIFactory;
|
||||||
|
import com.hp.hpl.jena.iri.Violation;
|
||||||
|
import com.hp.hpl.jena.query.DataSource;
|
||||||
|
import com.hp.hpl.jena.query.Query;
|
||||||
|
import com.hp.hpl.jena.query.QueryExecution;
|
||||||
|
import com.hp.hpl.jena.query.QueryExecutionFactory;
|
||||||
|
import com.hp.hpl.jena.query.QueryFactory;
|
||||||
|
import com.hp.hpl.jena.query.QuerySolution;
|
||||||
|
import com.hp.hpl.jena.query.ResultSet;
|
||||||
|
import com.hp.hpl.jena.query.Syntax;
|
||||||
|
import com.hp.hpl.jena.rdf.model.RDFNode;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryFieldLabels;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.GenericQueryMap;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Very dumb name of the class. change it.
|
||||||
|
* @author cdtank
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class AllPropertiesQueryHandler {
|
||||||
|
|
||||||
|
protected static final Syntax SYNTAX = Syntax.syntaxARQ;
|
||||||
|
|
||||||
|
private String filterRule, individualURLParam, resultFormatParam, rdfResultFormatParam;
|
||||||
|
private DataSource dataSource;
|
||||||
|
|
||||||
|
private Log log;
|
||||||
|
|
||||||
|
public AllPropertiesQueryHandler(String individualURLParam,
|
||||||
|
String filterRule,
|
||||||
|
String resultFormatParam,
|
||||||
|
String rdfResultFormatParam,
|
||||||
|
DataSource dataSource,
|
||||||
|
Log log) {
|
||||||
|
|
||||||
|
this.individualURLParam = individualURLParam;
|
||||||
|
this.filterRule = filterRule;
|
||||||
|
this.resultFormatParam = resultFormatParam;
|
||||||
|
this.rdfResultFormatParam = rdfResultFormatParam;
|
||||||
|
this.dataSource = dataSource;
|
||||||
|
this.log = log;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private GenericQueryMap createJavaValueObjects(ResultSet resultSet) {
|
||||||
|
|
||||||
|
GenericQueryMap queryResultVO = new GenericQueryMap();
|
||||||
|
|
||||||
|
while (resultSet.hasNext()) {
|
||||||
|
QuerySolution solution = resultSet.nextSolution();
|
||||||
|
|
||||||
|
|
||||||
|
RDFNode predicateNode = solution.get(QueryFieldLabels.PREDICATE);
|
||||||
|
RDFNode objectNode = solution.get(QueryFieldLabels.OBJECT);
|
||||||
|
|
||||||
|
if (predicateNode != null && objectNode != null) {
|
||||||
|
queryResultVO.addEntry(predicateNode.toString(),
|
||||||
|
objectNode.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return queryResultVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private ResultSet executeQuery(String queryText,
|
||||||
|
String resultFormatParam,
|
||||||
|
String rdfResultFormatParam,
|
||||||
|
DataSource dataSource) {
|
||||||
|
|
||||||
|
QueryExecution queryExecution = null;
|
||||||
|
try{
|
||||||
|
Query query = QueryFactory.create(queryText, SYNTAX);
|
||||||
|
|
||||||
|
// QuerySolutionMap qs = new QuerySolutionMap();
|
||||||
|
// qs.add("authPerson", queryParam); // bind resource to s
|
||||||
|
|
||||||
|
queryExecution = QueryExecutionFactory.create(query, dataSource);
|
||||||
|
|
||||||
|
|
||||||
|
//remocve this if loop after knowing what is describe & construct sparql stuff.
|
||||||
|
if (query.isSelectType()){
|
||||||
|
return queryExecution.execSelect();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if(queryExecution != null) {
|
||||||
|
queryExecution.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String generateGenericSparqlQuery(String queryURI, String filterRule) {
|
||||||
|
// Resource uri1 = ResourceFactory.createResource(queryURI);
|
||||||
|
String filterClause;
|
||||||
|
|
||||||
|
if (filterRule == null || filterRule.trim().isEmpty()) {
|
||||||
|
filterClause = "";
|
||||||
|
} else {
|
||||||
|
filterClause = "FILTER ( " + filterRule + " ) . ";
|
||||||
|
}
|
||||||
|
|
||||||
|
String sparqlQuery = QueryConstants.getSparqlPrefixQuery()
|
||||||
|
+ "SELECT "
|
||||||
|
+ " (str(?predicate) as ?" + QueryFieldLabels.PREDICATE + ") "
|
||||||
|
+ " (str(?object) as ?" + QueryFieldLabels.OBJECT + ") "
|
||||||
|
+ "WHERE { "
|
||||||
|
+ "<" + queryURI + "> ?predicate ?object. "
|
||||||
|
+ filterClause
|
||||||
|
+ "}";
|
||||||
|
|
||||||
|
System.out.println(sparqlQuery);
|
||||||
|
|
||||||
|
return sparqlQuery;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public GenericQueryMap getJavaValueObjects()
|
||||||
|
throws MalformedQueryParametersException {
|
||||||
|
|
||||||
|
if (this.individualURLParam == null || "".equals(individualURLParam)) {
|
||||||
|
throw new MalformedQueryParametersException("URI parameter is either null or empty.");
|
||||||
|
} else {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* To test for the validity of the URI submitted.
|
||||||
|
* */
|
||||||
|
IRIFactory iRIFactory = IRIFactory.jenaImplementation();
|
||||||
|
IRI iri = iRIFactory.create(this.individualURLParam);
|
||||||
|
if (iri.hasViolation(false)) {
|
||||||
|
String errorMsg = ((Violation)iri.violations(false).next()).getShortMessage()+" ";
|
||||||
|
log.error("Generic Query " + errorMsg);
|
||||||
|
throw new MalformedQueryParametersException("URI provided for an individual is malformed.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ResultSet resultSet = executeQuery(generateGenericSparqlQuery(this.individualURLParam, this.filterRule),
|
||||||
|
this.resultFormatParam,
|
||||||
|
this.rdfResultFormatParam,
|
||||||
|
this.dataSource);
|
||||||
|
|
||||||
|
return createJavaValueObjects(resultSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
package edu.cornell.mannlib.vitro.webapp.visualization.visutils;
|
package edu.cornell.mannlib.vitro.webapp.visualization.visutils;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
import com.hp.hpl.jena.iri.IRI;
|
import com.hp.hpl.jena.iri.IRI;
|
||||||
|
@ -16,6 +18,7 @@ import com.hp.hpl.jena.query.QuerySolution;
|
||||||
import com.hp.hpl.jena.query.ResultSet;
|
import com.hp.hpl.jena.query.ResultSet;
|
||||||
import com.hp.hpl.jena.query.Syntax;
|
import com.hp.hpl.jena.query.Syntax;
|
||||||
import com.hp.hpl.jena.rdf.model.RDFNode;
|
import com.hp.hpl.jena.rdf.model.RDFNode;
|
||||||
|
import com.hp.hpl.jena.util.tuple.TupleSet;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryFieldLabels;
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryFieldLabels;
|
||||||
|
@ -25,7 +28,6 @@ import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.GenericQueryM
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Very dumb name of the class. change it.
|
|
||||||
* @author cdtank
|
* @author cdtank
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -33,27 +35,31 @@ public class GenericQueryHandler {
|
||||||
|
|
||||||
protected static final Syntax SYNTAX = Syntax.syntaxARQ;
|
protected static final Syntax SYNTAX = Syntax.syntaxARQ;
|
||||||
|
|
||||||
private String filterRule, individualURLParam, resultFormatParam, rdfResultFormatParam;
|
private String whereClause, individualURLParam, resultFormatParam, rdfResultFormatParam;
|
||||||
private DataSource dataSource;
|
private DataSource dataSource;
|
||||||
|
|
||||||
private Log log;
|
private Log log;
|
||||||
|
|
||||||
|
private Map<String, String> fieldLabelToOutputFieldLabel;
|
||||||
|
|
||||||
public GenericQueryHandler(String individualURLParam,
|
public GenericQueryHandler(String individualURLParam,
|
||||||
String filterRule,
|
Map<String, String> fieldLabelToOutputFieldLabel,
|
||||||
|
String whereClause,
|
||||||
String resultFormatParam,
|
String resultFormatParam,
|
||||||
String rdfResultFormatParam,
|
String rdfResultFormatParam,
|
||||||
DataSource dataSource,
|
DataSource dataSource,
|
||||||
Log log) {
|
Log log) {
|
||||||
|
|
||||||
this.individualURLParam = individualURLParam;
|
this.individualURLParam = individualURLParam;
|
||||||
this.filterRule = filterRule;
|
this.fieldLabelToOutputFieldLabel = fieldLabelToOutputFieldLabel;
|
||||||
|
this.whereClause = whereClause;
|
||||||
this.resultFormatParam = resultFormatParam;
|
this.resultFormatParam = resultFormatParam;
|
||||||
this.rdfResultFormatParam = rdfResultFormatParam;
|
this.rdfResultFormatParam = rdfResultFormatParam;
|
||||||
this.dataSource = dataSource;
|
this.dataSource = dataSource;
|
||||||
this.log = log;
|
this.log = log;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
private GenericQueryMap createJavaValueObjects(ResultSet resultSet) {
|
private GenericQueryMap createJavaValueObjects(ResultSet resultSet) {
|
||||||
|
|
||||||
GenericQueryMap queryResultVO = new GenericQueryMap();
|
GenericQueryMap queryResultVO = new GenericQueryMap();
|
||||||
|
@ -62,9 +68,6 @@ public class GenericQueryHandler {
|
||||||
QuerySolution solution = resultSet.nextSolution();
|
QuerySolution solution = resultSet.nextSolution();
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We only want to create only ONE ego node.
|
|
||||||
* */
|
|
||||||
RDFNode predicateNode = solution.get(QueryFieldLabels.PREDICATE);
|
RDFNode predicateNode = solution.get(QueryFieldLabels.PREDICATE);
|
||||||
RDFNode objectNode = solution.get(QueryFieldLabels.OBJECT);
|
RDFNode objectNode = solution.get(QueryFieldLabels.OBJECT);
|
||||||
|
|
||||||
|
@ -73,12 +76,24 @@ public class GenericQueryHandler {
|
||||||
objectNode.toString());
|
objectNode.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (String currentOutputFieldLabel : this.fieldLabelToOutputFieldLabel.values()) {
|
||||||
|
|
||||||
|
RDFNode currentFieldNode = solution.get(currentOutputFieldLabel);
|
||||||
|
if (currentFieldNode != null) {
|
||||||
|
// biboDocument.setDocumentBlurb(currentFieldNode.toString());
|
||||||
|
|
||||||
|
TupleSet
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return queryResultVO;
|
return queryResultVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
private ResultSet executeQuery(String queryText,
|
private ResultSet executeQuery(String queryText,
|
||||||
String resultFormatParam,
|
String resultFormatParam,
|
||||||
String rdfResultFormatParam,
|
String rdfResultFormatParam,
|
||||||
|
@ -107,32 +122,35 @@ public class GenericQueryHandler {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String generateGenericSparqlQuery(String queryURI, String filterRule) {
|
private String generateGenericSparqlQuery() {
|
||||||
// Resource uri1 = ResourceFactory.createResource(queryURI);
|
// Resource uri1 = ResourceFactory.createResource(queryURI);
|
||||||
String filterClause;
|
|
||||||
|
|
||||||
if (filterRule == null || filterRule.trim().isEmpty()) {
|
StringBuilder sparqlQuery = new StringBuilder();
|
||||||
filterClause = "";
|
sparqlQuery.append(QueryConstants.getSparqlPrefixQuery());
|
||||||
} else {
|
|
||||||
filterClause = "FILTER ( " + filterRule + " ) . ";
|
sparqlQuery.append("SELECT\n");
|
||||||
|
|
||||||
|
for (Map.Entry<String, String> currentfieldLabelToOutputFieldLabel
|
||||||
|
: this.fieldLabelToOutputFieldLabel.entrySet()) {
|
||||||
|
|
||||||
|
sparqlQuery.append("\t(str(?" + currentfieldLabelToOutputFieldLabel.getKey() + ") as ?"
|
||||||
|
+ currentfieldLabelToOutputFieldLabel.getValue() + ")\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String sparqlQuery = QueryConstants.getSparqlPrefixQuery()
|
sparqlQuery.append("WHERE {\n");
|
||||||
+ "SELECT "
|
|
||||||
+ " (str(?predicate) as ?" + QueryFieldLabels.PREDICATE + ") "
|
|
||||||
+ " (str(?object) as ?" + QueryFieldLabels.OBJECT + ") "
|
|
||||||
+ "WHERE { "
|
|
||||||
+ "<" + queryURI + "> ?predicate ?object. "
|
|
||||||
+ filterClause
|
|
||||||
+ "}";
|
|
||||||
|
|
||||||
System.out.println(sparqlQuery);
|
sparqlQuery.append(this.whereClause);
|
||||||
|
|
||||||
return sparqlQuery;
|
sparqlQuery.append("}\n");
|
||||||
|
|
||||||
|
System.out.println("GENERIC QEURY >>>>> " + sparqlQuery);
|
||||||
|
|
||||||
|
return sparqlQuery.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public GenericQueryMap getJavaValueObjects()
|
public ResultSet getResultSet()
|
||||||
throws MalformedQueryParametersException {
|
throws MalformedQueryParametersException {
|
||||||
|
|
||||||
if (this.individualURLParam == null || "".equals(individualURLParam)) {
|
if (this.individualURLParam == null || "".equals(individualURLParam)) {
|
||||||
|
@ -151,12 +169,12 @@ public class GenericQueryHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ResultSet resultSet = executeQuery(generateGenericSparqlQuery(this.individualURLParam, this.filterRule),
|
ResultSet resultSet = executeQuery(generateGenericSparqlQuery(),
|
||||||
this.resultFormatParam,
|
this.resultFormatParam,
|
||||||
this.rdfResultFormatParam,
|
this.rdfResultFormatParam,
|
||||||
this.dataSource);
|
this.dataSource);
|
||||||
|
|
||||||
return createJavaValueObjects(resultSet);
|
return resultSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -80,12 +80,14 @@ $.fn.image = function(src, successFunc, failureFunc){
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
function setProfileImage(imageContainerID, rawPath, contextPath) {
|
function setProfileImage(imageContainerID, mainImageURL, contextPath) {
|
||||||
|
|
||||||
if (imageContainerID == "") {
|
if (imageContainerID == "" || !mainImageURL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var rawPath = getWellFormedURLs(mainImageURL, "image");
|
||||||
|
|
||||||
var imageLink = contextPath + rawPath;
|
var imageLink = contextPath + rawPath;
|
||||||
|
|
||||||
var imageContainer = $("#" + imageContainerID);
|
var imageContainer = $("#" + imageContainerID);
|
||||||
|
@ -153,13 +155,13 @@ function processProfileInformation(nameContainerID,
|
||||||
doMonikerEllipsis) {
|
doMonikerEllipsis) {
|
||||||
|
|
||||||
|
|
||||||
var name, imageRawPath, imageContextPath, moniker;
|
var name, mainImageURL, imageContextPath, moniker;
|
||||||
|
|
||||||
$.each(profileInfoJSON, function(key, set){
|
$.each(profileInfoJSON, function(key, set){
|
||||||
|
|
||||||
if (key.search(/imageThumb/i) > -1) {
|
if (key.search(/mainImage/i) > -1) {
|
||||||
|
|
||||||
imageRawPath = set[0];
|
mainImageURL = set[0];
|
||||||
|
|
||||||
} else if (key.search(/imageContextPath/i) > -1) {
|
} else if (key.search(/imageContextPath/i) > -1) {
|
||||||
|
|
||||||
|
@ -179,7 +181,7 @@ function processProfileInformation(nameContainerID,
|
||||||
|
|
||||||
setProfileName(nameContainerID, name);
|
setProfileName(nameContainerID, name);
|
||||||
setProfileMoniker(monikerContainerID, moniker, doMonikerEllipsis);
|
setProfileMoniker(monikerContainerID, moniker, doMonikerEllipsis);
|
||||||
setProfileImage(imageContainerID, imageRawPath, imageContextPath);
|
setProfileImage(imageContainerID, mainImageURL, imageContextPath);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue