#!/usr/bin/ruby require "mysql.so" host = nil user = nil passwd = "***" db = "wikipedia" my = Mysql.new(host, user, passwd) my.select_db db res = my.query("select cur_title from cur") order = {} linked={} while row = res.fetch_row order[row[0]] = -1 linked[row[0]] = [] end res = my.query("select * from linked") rows=[] while row = res.fetch_row rows.push row end rows.uniq! rows.each {|t,f| linked[f].push t } cur_order = 0 cur_set = ["Polska_Wikipedia"] begin cur_linked = [] cur_set.each {|title| order[title] = cur_order cur_linked += linked[title] } cur_linked.uniq! new_set = [] cur_linked.each {|title| if order[title] == -1 new_set.push title order[title] = cur_order end } cur_set = new_set cur_order += 1 end while cur_set.size != 0 group_by_order = {} order.each {|k,v| group_by_order[v] = [] unless group_by_order[v] group_by_order[v].push k } group_by_order.sort.each {|k,v| print k," ",v.size," (#{v.size*100.0/order.size}%)\n" } print "Total #{order.size}\n"