diff src/wikigraph/LinkToNode.java @ 26:cfbab7d87188 draft

Page Rank in ascendiang order in ReadWikiLin.java
author one
date Fri, 31 Aug 2012 20:17:49 +0900
parents fbf0cf550b06
children 4c0b10bb5192
line wrap: on
line diff
--- a/src/wikigraph/LinkToNode.java	Thu Aug 30 23:23:24 2012 +0900
+++ b/src/wikigraph/LinkToNode.java	Fri Aug 31 20:17:49 2012 +0900
@@ -14,8 +14,6 @@
 import org.neo4j.kernel.Traversal;
 import org.neo4j.tooling.GlobalGraphOperations;
 
-import wikigraph.Neo4jTest.RelTypes;
-
 public class LinkToNode {
 
 	GraphDatabaseService graphDb;
@@ -117,16 +115,13 @@
 	long searchAllNodes() {
 		AllNodeNumber = 0;
 		for (Node n : graphOpe.getAllNodes()) {
-
-			n.setProperty(PAGE_RANK,(double)0.0);
-
 			if (n.hasProperty(PAGE_TITLE) || n.hasProperty(PAGE_RANK)) {
 				WikiPage wiki = new WikiPage(n);
 				pageIdTable.put((String) n.getProperty(PAGE_TITLE), n.getId());
 				pageRankTable.put((String) n.getProperty(PAGE_TITLE),
 						(Double) n.getProperty(PAGE_RANK));
-				wiki.setInLink(computeInHasLink(n));
-				wiki.setOutLink(computeOutHasLink(n));
+				wiki.setInHasLink(computeInHasLink(n));
+				wiki.setOutHasLink(computeOutHasLink(n));
 				wikiPageHash.put((String) n.getProperty(PAGE_TITLE), wiki);
 				AllNodeNumber++;
 			}
@@ -141,8 +136,8 @@
 			pageIdTable.put((String) n.getProperty(PAGE_TITLE), n.getId());
 			pageRankTable.put((String) n.getProperty(PAGE_TITLE),
 					(Double) n.getProperty(PAGE_RANK));
-			wiki.setInLink(computeInHasLink(n));
-			wiki.setOutLink(computeOutHasLink(n));
+			wiki.setInHasLink(computeInHasLink(n));
+			wiki.setOutHasLink(computeOutHasLink(n));
 			wikiPageHash.put((String) n.getProperty(PAGE_TITLE), wiki);
 			AllNodeNumber++;
 		}
@@ -214,17 +209,36 @@
 		return count;
 	}
 
-	public void searchHasLinkOut(final Node node) {
+	public void printOutHasLink(final Node node, int depth) {
 		int numberOfLinkPages = 0;
-		String output = node.getProperty(PAGE_TITLE) + " have link pages:\n";
+		String output = node.getProperty(PAGE_TITLE) + " outHasLink pages:";
+		System.out.println(output);
 		Traverser hasLinkTraverser = getOutHasLinkTraverser(node);
 		for (Path hasLinkPath : hasLinkTraverser) {
-			output += "At depth " + hasLinkPath.length() + " => "
-					+ hasLinkPath.endNode().getProperty(PAGE_TITLE) + "\n";
+			if (depth < hasLinkPath.length()) break;
+			String depthOutput = "At depth " + hasLinkPath.length() + " => "
+					+ hasLinkPath.endNode().getProperty(PAGE_TITLE);
+			System.out.println(depthOutput);
 			numberOfLinkPages++;
 		}
-		output += "Number of link pages: " + numberOfLinkPages + "\n";
+		String numOutput = "Number of link pages: " + numberOfLinkPages;
+		System.out.println(numOutput);
+	}
+
+	public void printInHasLink(final Node node, int depth) {
+		int numberOfLinkPages = 0;
+		String output = node.getProperty(PAGE_TITLE) + " inHasLink pages:";
 		System.out.println(output);
+		Traverser hasLinkTraverser = getInHasLinkTraverser(node);
+		for (Path hasLinkPath : hasLinkTraverser) {
+			if (depth < hasLinkPath.length()) break;
+			String depthOutput = "At depth " + hasLinkPath.length() + " => "
+					+ hasLinkPath.endNode().getProperty(PAGE_TITLE);
+			System.out.println(depthOutput);
+			numberOfLinkPages++;
+		}
+		String numOutput = "Number of link pages: " + numberOfLinkPages + "\n";
+		System.out.println(numOutput);
 	}
 
 	public double computePageRank(Node node) {
@@ -240,10 +254,10 @@
 			Node n = hasLinkPath.endNode();
 			sum += (Double) n.getProperty(PAGE_RANK);
 		}
-		if (wiki.getOutLink() == 0) {
+		if (wiki.getOutHasLink() == 0) {
 			pageRank = (double) ((double) 1 / AllNodeNumber * weight2);
 		} else {
-			pageRank = (double) ((double)sum / wiki.getOutLink() * weight1)
+			pageRank = (double) ((double)sum / wiki.getOutHasLink() * weight1)
 					+ (double) ((double) 1 / AllNodeNumber * weight2);
 		}
 
@@ -251,5 +265,20 @@
 		node.setProperty(PAGE_RANK, pageRank);
 		return pageRank;
 	}
+	
+	public void printNodeInfo(int nodeId) {
+		Node node = graphDb.getNodeById(nodeId);
+		String title = getPageTitle(node);
+		double rank = getPageRank(node);
+		long inHasLink = computeInHasLink(node);
+		long outHasLink = computeOutHasLink(node);
+		
+		System.out.println("id:"+nodeId+" title:"+title+" rank:"+rank);
+		System.out.println("inHasLink:"+inHasLink+" outHasLink:"+outHasLink);
+
+		printInHasLink(node, 1);
+		printOutHasLink(node, 1);
+	
+	}
 
 }