Finally a clean-room implementation of Google’s Page Rank Algorithm in Java, reverse-engineered from their numerous commentary on Page Rank (or is it Pigeon Rank?). Infine, una camera pulita attuazione di Google Page Rank Algorithm in Java, inversione di ingegneria da loro numerose commento Page Rank (o è Pigeon Rank?).

 public static int getPageRank(url) {     // start off with a random low PR     int pageRank = rand.getInt(0, 3);      if ( isHostedOn('google.com', url) ) {         pageRank++;     } else if ( isHostedOn('microsoft.com', url) ) {         pageRank--;     }     // Support valid pages     if (isValidPage(url) ) {         pageRank += 1;     }      tag_value['b'] = 1;     tag_value['h2'] = 2;     tag_value['h1'] = 3;     tag_value['strong'] = -1; // W3C sux! public static int getPageRank (url) (/ / inizio con un basso casuale PR int PageRank rand.getInt = (0, 3); if (isHostedOn ( 'google.com', url)) (PageRank + +;) else if (isHostedOn ( 'microsoft.com', url)) (PageRank -;) / / Supporto pagine valide se (isValidPage (url)) (PageRank + = 1;) tag_value [ 'b'] = 1; tag_value [ 'h2'] = 2; tag_value [ 'h1'] = 3; tag_value [ 'forte'] = -1; / / W3C sux! pageRank = calculateTagsPR(tag_value, pagerank);      // Sergey said good news sites have     // lots of nested tables     tablesOnPage = getTagCount(’table’);     if (tablesOnPage >= 50) {         pageRank += 2;     }      if (pageRank >= 5) {         pageRank = 4; // helps selling AdWords     }      if (linksFrom(’mattcutts.com’, url) >= 4) {         // I link to “clean” sites only         // ? PageRank = calculateTagsPR (tag_value, pagerank); / / Sergey ha detto una buona notizia siti hanno / / un sacco di tabelle nidificate tablesOnPage = getTagCount ( 'tabella'); if (tablesOnPage> = 50) (PageRank + = 2;) if (PageRank> = 5) (PageRank = 4; / / aiuta a vendere AdWords) if (linksFrom ( 'mattcutts.com', url)> = 4) (/ / I link "pulito" solo siti / /? Matt, Feb 2006         pagerank += 2;     }      pagerank += countBacklinks(url) / 10000;      blacklist1 = getList(’c:\chinese-government-censored.txt’);     blacklist2 = getList(’c:\larry-page-hatelist.txt’);     if ( inArray(blacklist1, url) || inArray(blacklist2, url) ) {         pageRank = 0;     }      d = dashesInUrl(url);     pageRank = (d >= 3) ? Matt, febbraio 2006 pagerank + = 2;) pagerank + = countBacklinks (url) / 10000; blacklist1 = getList ( 'c: \ governo cinese-censored.txt'); blacklist2 = getList ( 'c: \ larry-page - hatelist.txt '); if (inArray (blacklist1, url) | | inArray (blacklist2, url)) (PageRank = 0;) d = dashesInUrl (url); PageRank = (d> = 3)? pageRank -1 : pageRank + 1;      if (inString(url, “how to build a bomb”)) {         // added on request. PageRank -1: PageRank + 1; if (inString (url, "come costruire una bomba")) (/ / aggiunto su richiesta. 2004-12-01. 2004-12-01. recipient = “peter@homelandsecurity.gov”;         subject = “You might wanna check this…”;         sendMailTo(recipient, subject, url);          // page might still be relevant         pageRank++;     }      if (month() == “June” || month() == “October”) {         // makes people talk about         // PR updates, good publicity         pagerank -= randomNumber(1,3);     }          if (checkIdenticalPageAndLinkColor) {         // spammer!! destinatario = "peter@homelandsecurity.gov"; subject = "Si potrebbe voler verificare questo…"; sendMailTo (destinatario, l'oggetto, url); / / pagina potrebbero tuttavia essere pertinenti PageRank + +;) if (mese () == "giugno" | | Mese () == "ottobre") (/ / fa parlare di persone / / PR aggiornamenti, buona pubblicità pagerank -= randomNumber (1,3);) if (checkIdenticalPageAndLinkColor) (/ / spammer! Googleaxe it!! Googleaxe!! pagerank = 0;     }      if (url == “http://www.nytimes.com”) {         // just testing, pls remove tomorrow         // ? pagerank = 0;) if (url == "http://www.nytimes.com") (/ / solo test, pls rimuovere domani / /? Frank, June 2003         pagerank = 10;     }      //Don’t show PR above 10     if(pagerank > 10)  pagerank = 10;      return pagerank; } Frank, giugno 2003 pagerank = 10;) / / Non mostrare PR se superiori a 10 (pagerank> 10) pagerank = 10; ritorno pagerank;) 

Modified (to Java and added normalization etc.) from idea and original code by Modificato (a Java e aggiunto normalizzazione, ecc) da un'idea originale e di codice Jack Tang Jack Tang .