1. Fix to resolve this > http://issues.library.cornell.edu/browse/NIHVIVO-1007
2. Basically I forced orders whenever edges & nodes were created using custom comparator & collections.sort
This commit is contained in:
parent
e02666b8cd
commit
81f0ad89d6
3 changed files with 20 additions and 28 deletions
|
@ -107,6 +107,11 @@ public class CoAuthorshipGraphMLWriter {
|
|||
|
||||
private void getEdgeContent(StringBuilder graphMLContent, Edge currentEdge) {
|
||||
|
||||
/*
|
||||
System.out.print("EDGE_ID:" + currentEdge.getEdgeID() + "|");
|
||||
System.out.print("EDGE_SOURCE:" + currentEdge.getSourceNode().getNodeURL() + "|");
|
||||
System.out.println("EDGE_TARGET:" + currentEdge.getTargetNode().getNodeURL());
|
||||
*/
|
||||
graphMLContent.append("<edge "
|
||||
+ "id=\"" + currentEdge.getEdgeID() + "\" "
|
||||
+ "source=\"" + currentEdge.getSourceNode().getNodeID() + "\" "
|
||||
|
@ -223,10 +228,11 @@ public class CoAuthorshipGraphMLWriter {
|
|||
}
|
||||
|
||||
|
||||
|
||||
// System.out.print("NODE_ID:" + node.getNodeID() + "|");
|
||||
graphMLContent.append("<node id=\"" + node.getNodeID() + "\">\n");
|
||||
graphMLContent.append("\t<data key=\"url\">" + node.getNodeURL() + "</data>\n");
|
||||
// graphMLContent.append("\t<data key=\"name\">" + node.getNodeName() + "</data>\n");
|
||||
// System.out.println("NODE_NAME:" + node.getNodeURL());
|
||||
graphMLContent.append("\t<data key=\"label\">" + node.getNodeName() + "</data>\n");
|
||||
|
||||
if (profileURL != null) {
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
package edu.cornell.mannlib.vitro.webapp.visualization.coauthorship;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
@ -104,6 +105,7 @@ public class QueryHandler {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
RDFNode documentNode = solution.get(QueryFieldLabels.DOCUMENT_URL);
|
||||
BiboDocument biboDocument;
|
||||
|
||||
|
@ -144,7 +146,11 @@ public class QueryHandler {
|
|||
coAuthorNode.setNodeName(coAuthorLabelNode.toString());
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
System.out.print("PERSON_URL:" + egoAuthorURLNode.toString() + "|");
|
||||
System.out.print("DOCUMENT_URL:" + documentNode.toString() + "|");
|
||||
System.out.println("CO_AUTHOR_URL:" + coAuthorURLNode.toString());
|
||||
*/
|
||||
coAuthorNode.addAuthorDocument(biboDocument);
|
||||
|
||||
Set<Node> coAuthorsForCurrentBiboDocument;
|
||||
|
@ -193,19 +199,13 @@ public class QueryHandler {
|
|||
edges);
|
||||
|
||||
|
||||
/* System.out.println(collegeURLToVO);
|
||||
System.out.println("------------------------------------------------------------");
|
||||
System.out.println(departmentURLToVO);
|
||||
System.out.println("------------------------------------------------------------");
|
||||
System.out.println(employeeURLToVO);
|
||||
System.out.println("------------------------------------------------------------");
|
||||
*/
|
||||
return new VisVOContainer(egoNode, nodes, edges);
|
||||
}
|
||||
|
||||
private void createCoAuthorEdges(
|
||||
Map<String, BiboDocument> biboDocumentURLToVO,
|
||||
Map<String, Set<Node>> biboDocumentURLToCoAuthors, Set<Edge> edges) {
|
||||
|
||||
for (Map.Entry<String, Set<Node>> currentBiboDocumentEntry : biboDocumentURLToCoAuthors.entrySet()) {
|
||||
/*
|
||||
* If there was only one co-author (other than ego) then we dont have to create any edges. so
|
||||
|
@ -214,10 +214,11 @@ public class QueryHandler {
|
|||
if (currentBiboDocumentEntry.getValue().size() > 1) {
|
||||
|
||||
/*
|
||||
* In order to leverage the nested "for loop" for making edges between all the co=authors
|
||||
* In order to leverage the nested "for loop" for making edges between all the co-authors
|
||||
* we need to create a list out of the set first.
|
||||
* */
|
||||
List<Node> coAuthorNodes = new ArrayList<Node>(currentBiboDocumentEntry.getValue());
|
||||
Collections.sort(coAuthorNodes, new NodeComparator());
|
||||
|
||||
int numOfCoAuthors = coAuthorNodes.size();
|
||||
|
||||
|
@ -375,10 +376,10 @@ public class QueryHandler {
|
|||
+ "OPTIONAL { ?document vitro:moniker ?documentMoniker } . "
|
||||
+ "OPTIONAL { ?document vitro:blurb ?documentBlurb } . "
|
||||
+ "OPTIONAL { ?document vitro:description ?documentDescription } "
|
||||
// + "FILTER (<" + queryURI + "> != ?coAuthorPerson ) . "
|
||||
+ "}";
|
||||
+ "} "
|
||||
+ "ORDER BY ?document ?coAuthorPerson";
|
||||
|
||||
// System.out.println(sparqlQuery);
|
||||
System.out.println("COAUTHORSHIP QUERY - " + sparqlQuery);
|
||||
|
||||
return sparqlQuery;
|
||||
}
|
||||
|
|
|
@ -196,21 +196,6 @@ public class VisualizationRequestHandler {
|
|||
}
|
||||
|
||||
}
|
||||
/*
|
||||
private Map<String, Integer> getUniqueCoauthorsCountPerYear(
|
||||
edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.VisVOContainer coAuthorshipVO) {
|
||||
Map<String, Integer> yearToUniqueCoauthorCount = new TreeMap<String, Integer>();
|
||||
|
||||
Map<String, Set<Node>> yearToUniqueCoauthors = getUniqueCoAuthorsPerYear(coAuthorshipVO);
|
||||
|
||||
for (Entry<String, Set<Node>> currentEntry : yearToUniqueCoauthors.entrySet()) {
|
||||
|
||||
yearToUniqueCoauthorCount.put(currentEntry.getKey(), currentEntry.getValue().size());
|
||||
|
||||
}
|
||||
return yearToUniqueCoauthorCount;
|
||||
}
|
||||
*/
|
||||
|
||||
private Map<String, Set<Node>> getUniqueCoAuthorsPerYear(edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.VisVOContainer authorNodesAndEdges) {
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue