diff src/pagerank/LinkToVertex.java @ 7:c7b139ff27e2 draft

compute PageRank. initial value is 1/ AllVertexNumber
author one
date Wed, 05 Sep 2012 16:34:47 +0900
parents 140272228818
children 4d1885a2fa36
line wrap: on
line diff
--- a/src/pagerank/LinkToVertex.java	Wed Sep 05 15:39:26 2012 +0900
+++ b/src/pagerank/LinkToVertex.java	Wed Sep 05 16:34:47 2012 +0900
@@ -14,8 +14,12 @@
 	Graph graph;
 	public final static String PAGE_TITLE = "pageTitle";
 	public final static String PAGE_RANK = "pageRank";
+	// pageIdTable
+	// key: pageTitle value: Vertex ID
 	private HashMap<String, Object> pageIdTable = new HashMap<String, Object>();
 
+	// wikiPageHash 
+	// key: pageTitle  value: wikiPage(class)
 	private HashMap<String, WikiPage> wikiPageHash = new HashMap<String, WikiPage>();
 	private long AllVertexNumber;
 
@@ -86,8 +90,8 @@
 		return graph.getVertex(id);
 	}
 	
-	Vertex getNode(String nodeId) {
-		return graph.getVertex(nodeId);
+	Vertex getVertexById(String id) {
+		return graph.getVertex(id);
 	}
 
 	Edge setRelationship(Vertex v1, Vertex v2, String label) {
@@ -201,23 +205,23 @@
 	}
 
 	public double computePageRank(Vertex v) {
-		double sum = 0;
-		double pageRank = 0;
+		double sum = 0.0;
+		double pageRank = 0.0;
 		String title = getPageTitle(v);
 		WikiPage wiki = wikiPageHash.get(title);
 
 		for (Edge edge : v.getEdges(Direction.IN, HAS_LINK) ) {
 			Vertex linkV = edge.getVertex(Direction.OUT); 
-			sum += (double) ((Double) linkV.getProperty(PAGE_RANK)) / computeInHasLink(linkV) ;
+			if (computeInHasLink(linkV) == 0) {
+				sum += (Double) linkV.getProperty(PAGE_RANK);
+			} else {
+				sum += ((Double) linkV.getProperty(PAGE_RANK)) / computeInHasLink(linkV) ;
+			}
 		}
-		
-		if (computeOutHasLink(v) == 0) {
-			pageRank = (double) sum * weight1
-					+ (double) ((double) 1 / AllVertexNumber * weight2);
-		} else {
-			pageRank = (double) ((double)sum / computeOutHasLink(v) * weight1)
-					+ (double) ((double) 1 / AllVertexNumber * weight2);
-		}
+	
+		pageRank = (double) sum * weight1
+				+ (double) ((double) 1 / AllVertexNumber * weight2);
+
 		wiki.setRank(pageRank);
 		v.setProperty(PAGE_RANK, pageRank);
 		return pageRank;