# HG changeset patch # User one # Date 1346816648 -32400 # Node ID dcd59917a2dd265df417b419dd9dad2c8ae8f1c0 # Parent b44abb9aa09fd747914a1e42c37e0ebee86552dc fix LinkToVertex diff -r b44abb9aa09f -r dcd59917a2dd src/pagerank/LinkConvertGraph.java --- a/src/pagerank/LinkConvertGraph.java Wed Sep 05 11:59:02 2012 +0900 +++ b/src/pagerank/LinkConvertGraph.java Wed Sep 05 12:44:08 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; @@ -101,17 +101,17 @@ lcg.parseXml(); // lcg.printHash(); - + FileOutputStream fos = new FileOutputStream("./resources/wikiLink.log"); lcg.printHash(fos); HashMap> hash = lcg.getHash(); - final String filenameD = "./resources/tinkerpopDB"; + final String fileDB = "./resources/tinkerpopDB"; Graph graph = new TinkerGraph(); - FileOutputStream out = new FileOutputStream(new File(filename)); + FileOutputStream out = new FileOutputStream(new File(fileDB)); LinkToVertex ltn = new LinkToVertex(graph); for (Map.Entry> map : hash.entrySet()) { diff -r b44abb9aa09f -r dcd59917a2dd src/pagerank/LinkToVertex.java --- a/src/pagerank/LinkToVertex.java Wed Sep 05 11:59:02 2012 +0900 +++ b/src/pagerank/LinkToVertex.java Wed Sep 05 12:44:08 2012 +0900 @@ -17,31 +17,31 @@ private HashMap pageIdTable = new HashMap(); private HashMap wikiPageHash = new HashMap(); - private long AllNodeNumber; + private long AllVertexNumber; private final double weight1 = 0.85; private final double weight2 = 0.15; public static final String HAS_LINK = "HasLink"; - LinkToVertex(Graph graph) { + public LinkToVertex(Graph graph) { this.graph = graph; - AllNodeNumber = 0; + AllVertexNumber = 0; } - Long getId(String pageTitle) { + public Long getId(String pageTitle) { return pageIdTable.get(pageTitle); } - boolean isHasLink(String label) { + public boolean isHasLink(String label) { return label.equals(HAS_LINK); } - private Vertex createVertex() { + public Vertex createVertex() { return graph.addVertex(null); } - private Vertex createVertex(Object id) { + public Vertex createVertex(Object id) { return graph.addVertex(id); } @@ -51,17 +51,18 @@ return v; } - String getPageTitle(Vertex v) { + public String getPageTitle(Vertex v) { return (String) v.getProperty(PAGE_TITLE); } - Double getPageRank(Vertex v) { + public Double getPageRank(Vertex v) { return (Double) v.getProperty(PAGE_RANK); } Vertex createVertexWithPageTitle(String pageTitle) { Vertex v = createVertexWithProperty(PAGE_TITLE, pageTitle); - pageIdTable.put(pageTitle, (Long) v.getId()); + String id = (String)v.getId(); + pageIdTable.put(pageTitle, Long.parseLong(id) ); return v; } @@ -88,8 +89,8 @@ return setRelationship(v1, v2, HAS_LINK); } - long searchAllNodes() { - AllNodeNumber = 0; + long searchAllVertices() { + AllVertexNumber = 0; for (Vertex v : graph.getVertices()) { if ( (v.getProperty(PAGE_TITLE) != null) && (v.getProperty(PAGE_RANK)) != null ) { @@ -98,10 +99,10 @@ wiki.setInHasLink(computeInHasLink(v)); wiki.setOutHasLink(computeOutHasLink(v)); wikiPageHash.put((String) v.getProperty(PAGE_TITLE), wiki); - AllNodeNumber++; + AllVertexNumber++; } } - return AllNodeNumber; + return AllVertexNumber; } void searchRegiNodes(Vertex v) { @@ -113,7 +114,7 @@ wiki.setInHasLink(computeInHasLink(v)); wiki.setOutHasLink(computeOutHasLink(v)); wikiPageHash.put((String) v.getProperty(PAGE_TITLE), wiki); - AllNodeNumber++; + AllVertexNumber++; } } @@ -125,11 +126,11 @@ return pageIdTable; } - public Iterable getAllNodes() { + public Iterable getAllVertices() { return graph.getVertices(); } - public void printAllNodes() { + public void printAllVertices() { for (Vertex v : graph.getVertices() ) { System.out.println("ID = "+ v.getId()); for (String key: v.getPropertyKeys()) { @@ -163,7 +164,7 @@ public void printOutHasLink(Vertex v, int depth) { int numberOfLinkPages = 0; - String output = v.getProperty(PAGE_TITLE) + " outHasLink pages:"; + String output = "title:"+v.getProperty(PAGE_TITLE) + " outHasLink pages:"; System.out.println(output); for (Edge edge : v.getEdges(Direction.OUT, HAS_LINK)) { Vertex outV = edge.getVertex(Direction.IN); @@ -177,7 +178,7 @@ public void printInHasLink(Vertex v, int depth) { int numberOfLinkPages = 0; - String output = v.getProperty(PAGE_TITLE) + " inHasLink pages:"; + String output = "title:" +v.getProperty(PAGE_TITLE) + " inHasLink pages:"; System.out.println(output); for (Edge edge : v.getEdges(Direction.IN, HAS_LINK)) { Vertex outV = edge.getVertex(Direction.OUT); @@ -202,17 +203,17 @@ if (computeOutHasLink(v) == 0) { pageRank = (double) sum * weight1 - + (double) ((double) 1 / AllNodeNumber * weight2); + + (double) ((double) 1 / AllVertexNumber * weight2); } else { pageRank = (double) ((double)sum / computeOutHasLink(v) * weight1) - + (double) ((double) 1 / AllNodeNumber * weight2); + + (double) ((double) 1 / AllVertexNumber * weight2); } wiki.setRank(pageRank); v.setProperty(PAGE_RANK, pageRank); return pageRank; } - public void printNodeInfo(int nodeId) { + public void printVertexInfo(int nodeId) { Vertex v = graph.getVertex(nodeId); printInHasLink(v, 1); printOutHasLink(v, 1); @@ -224,7 +225,7 @@ System.out.println("id:"+nodeId+" title:"+title+" rank:"+rank); System.out.println("inHasLink:"+inHasLink+" outHasLink:"+outHasLink); - + System.out.println(); } diff -r b44abb9aa09f -r dcd59917a2dd src/sample/CreateTinkerGraph.java --- a/src/sample/CreateTinkerGraph.java Wed Sep 05 11:59:02 2012 +0900 +++ b/src/sample/CreateTinkerGraph.java Wed Sep 05 12:44:08 2012 +0900 @@ -2,31 +2,31 @@ import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; +import pagerank.LinkToVertex; + import com.tinkerpop.blueprints.Direction; import com.tinkerpop.blueprints.Edge; import com.tinkerpop.blueprints.Graph; import com.tinkerpop.blueprints.Vertex; import com.tinkerpop.blueprints.impls.tg.TinkerGraph; -import com.tinkerpop.blueprints.impls.tg.TinkerGraphFactory; import com.tinkerpop.blueprints.util.io.graphml.GraphMLReader; import com.tinkerpop.blueprints.util.io.graphml.GraphMLWriter; public class CreateTinkerGraph { - public static final String filename = "./resources/tinkerpopDB"; + public static final String filename = "./resources/testTinkerpopDB"; public static void main(String[] args) { - try { - outputGraph(); - readGraph(); - +// outputGraph(); +// readGraph(); + readPageRankDB(); + } catch (IOException e) { e.printStackTrace(); } @@ -55,10 +55,7 @@ Vertex v =edge.getVertex(Direction.OUT); System.out.println(v.getProperty("name")); } - - GraphMLWriter.outputGraph(graph, out); - } public static void readGraph() throws IOException { @@ -76,5 +73,22 @@ } + public static void readPageRankDB() throws IOException { + final String pageRankDB = "./resources/tinkerpopDB"; + Graph graph = new TinkerGraph(); + FileInputStream in = new FileInputStream(new File(pageRankDB)); + GraphMLReader.inputGraph(graph, in); + + LinkToVertex ltn = new LinkToVertex(graph); + + System.out.println("print All Vertex "); + for (Vertex v : graph.getVertices() ) { + if ( (ltn.getPageTitle(v) == null ) || + (ltn.getPageRank(v) == null)) continue; + String id = (String) v.getId(); + int nodeId = Integer.parseInt(id); + ltn.printVertexInfo(nodeId); + } + } }