changeset 5:140272228818 draft

fix LinkToVertex.java
author one
date Wed, 05 Sep 2012 15:38:57 +0900
parents dcd59917a2dd
children 8ea2212eaee0
files src/pagerank/LinkConvertGraph.java src/pagerank/LinkToVertex.java src/pagerank/WikiPage.java
diffstat 3 files changed, 41 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/src/pagerank/LinkConvertGraph.java	Wed Sep 05 12:44:08 2012 +0900
+++ b/src/pagerank/LinkConvertGraph.java	Wed Sep 05 15:38:57 2012 +0900
@@ -90,8 +90,8 @@
 	
 	
 	public static void main(String[] args) {
-//		final String filename = "./resources/article.xml";
-		final String filename = "/Users/aotokage/testProgram/wiki/ja-pages_current.xml";
+		final String filename = "./resources/article.xml";
+//		final String filename = "/Users/aotokage/testProgram/wiki/ja-pages_current.xml";
 		
 		LinkConvertGraph lcg;
 
@@ -112,29 +112,32 @@
 			
 			Graph graph = new TinkerGraph();
 			FileOutputStream out = new FileOutputStream(new File(fileDB));
-			LinkToVertex ltn = new LinkToVertex(graph);
-			
+			LinkToVertex ltv = new LinkToVertex(graph);
+
+			long countId = 1;
 			for (Map.Entry<String, HashSet<String>> map : hash.entrySet()) {
 				String pageTitle = map.getKey();
 				
 				Vertex v;// = graph.addVertex(null);
 				
-				if ( ltn.getId(pageTitle) == null ) {
-					v = ltn.createVertexWithPageTitle(pageTitle);
-					
+				if ( ltv.getId(pageTitle) == null ) {
+					v = ltv.createVertexWithPageTitle(pageTitle,countId);
+					ltv.setPageRank(v, (Double)0.0);
+					countId++;
 				} else {
-					v = ltn.getVertex(pageTitle);
+					v = ltv.getVertex(pageTitle);
 				}
 
 				for (String linkPageTitle : map.getValue()) {
 					Vertex linkV;
-					if ( ltn.getId(linkPageTitle) == null) {
-						linkV = ltn.createVertexWithPageTitle(linkPageTitle);
-						ltn.setPageRank(linkV, (Double)0.0);
+					if ( ltv.getId(linkPageTitle) == null) {
+						linkV = ltv.createVertexWithPageTitle(linkPageTitle,countId);
+						countId++;
+						ltv.setPageRank(linkV, (Double)0.0);
 					} else {
-						linkV = ltn.getVertex(linkPageTitle);
+						linkV = ltv.getVertex(linkPageTitle);
 					}
-					ltn.setHasLink(v, linkV);
+					ltv.setHasLink(v, linkV);
 				}
 				
 			}
--- a/src/pagerank/LinkToVertex.java	Wed Sep 05 12:44:08 2012 +0900
+++ b/src/pagerank/LinkToVertex.java	Wed Sep 05 15:38:57 2012 +0900
@@ -14,7 +14,7 @@
 	Graph graph;
 	public final static String PAGE_TITLE = "pageTitle";
 	public final static String PAGE_RANK = "pageRank";
-	private HashMap<String, Long> pageIdTable = new HashMap<String, Long>();
+	private HashMap<String, Object> pageIdTable = new HashMap<String, Object>();
 
 	private HashMap<String, WikiPage> wikiPageHash = new HashMap<String, WikiPage>();
 	private long AllVertexNumber;
@@ -29,7 +29,7 @@
 		AllVertexNumber = 0;
 	}
 
-	public Long getId(String pageTitle) {
+	public Object getId(String pageTitle) {
 		return pageIdTable.get(pageTitle);
 	}
 
@@ -45,12 +45,17 @@
 		return graph.addVertex(id);
 	}
 
-	private Vertex createVertexWithProperty(String key, Object value) {
-		Vertex v = graph.addVertex(null);
+	
+	Vertex createVertexWithProperty(String key, Object value, Object id) {
+		Vertex v = createVertex(id);
 		v.setProperty(key,value);
 		return v;
 	}
 
+	Vertex createVertexWithProperty(String key, Object value) {
+		return createVertexWithProperty(key, value, null);
+	}
+
 	public String getPageTitle(Vertex v) {
 		return (String) v.getProperty(PAGE_TITLE);
 	}
@@ -59,11 +64,16 @@
 		return (Double) v.getProperty(PAGE_RANK);
 	}
 
+	
+	Vertex createVertexWithPageTitle(String pageTitle, Object id) {
+		Vertex v = createVertexWithProperty(PAGE_TITLE, pageTitle, id);
+		setPageRank(v, (Double)0.0);
+		pageIdTable.put(pageTitle, id );
+		return v;
+	}
+
 	Vertex createVertexWithPageTitle(String pageTitle) {
-		Vertex v = createVertexWithProperty(PAGE_TITLE, pageTitle);
-		String id = (String)v.getId();
-		pageIdTable.put(pageTitle, Long.parseLong(id) );
-		return v;
+		return createVertexWithPageTitle(pageTitle, null);
 	}
 
 	Vertex setPageRank(Vertex v, Double rank) {
@@ -72,11 +82,11 @@
 	}
 
 	Vertex getVertex(String name) {
-		long id = pageIdTable.get(name);
+		Object id = pageIdTable.get(name);
 		return graph.getVertex(id);
 	}
 	
-	Vertex getNode(int nodeId) {
+	Vertex getNode(String nodeId) {
 		return graph.getVertex(nodeId);
 	}
 
@@ -94,8 +104,8 @@
 		for (Vertex v : graph.getVertices()) {
 			if ( (v.getProperty(PAGE_TITLE) != null) && 
 					(v.getProperty(PAGE_RANK)) != null ) {
-			WikiPage wiki = new WikiPage(v);
-				pageIdTable.put((String) v.getProperty(PAGE_TITLE), (Long) v.getId());
+				WikiPage wiki = new WikiPage(v);
+				pageIdTable.put((String) v.getProperty(PAGE_TITLE), v.getId());
 				wiki.setInHasLink(computeInHasLink(v));
 				wiki.setOutHasLink(computeOutHasLink(v));
 				wikiPageHash.put((String) v.getProperty(PAGE_TITLE), wiki);
@@ -110,7 +120,7 @@
 		if ( (v.getProperty(PAGE_TITLE) != null) &&
 				(v.getProperty(PAGE_RANK) != null)) {
 			WikiPage wiki = new WikiPage(v);
-			pageIdTable.put((String) v.getProperty(PAGE_TITLE), (Long) v.getId());
+			pageIdTable.put((String) v.getProperty(PAGE_TITLE), v.getId());
 			wiki.setInHasLink(computeInHasLink(v));
 			wiki.setOutHasLink(computeOutHasLink(v));
 			wikiPageHash.put((String) v.getProperty(PAGE_TITLE), wiki);
@@ -122,7 +132,7 @@
 		return wikiPageHash;
 	}
 
-	HashMap<String, Long> getPageIdTable() {
+	HashMap<String, Object> getPageIdTable() {
 		return pageIdTable;
 	}
 
--- a/src/pagerank/WikiPage.java	Wed Sep 05 12:44:08 2012 +0900
+++ b/src/pagerank/WikiPage.java	Wed Sep 05 15:38:57 2012 +0900
@@ -25,7 +25,7 @@
 	
 	WikiPage(Vertex v) {
 		this.title = (String) v.getProperty(LinkToVertex.PAGE_TITLE);
-		this.id = (Long) v.getId();
+		this.id = Long.parseLong((String)v.getId());
 		this.rank = (Double)v.getProperty(LinkToVertex.PAGE_RANK);
 		this.outHasLink = 0;
 		this.inHasLink = 0;