wukong 3.0.0.pre → 3.0.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (476) hide show
  1. data/.gitignore +46 -33
  2. data/.gitmodules +3 -0
  3. data/.rspec +1 -1
  4. data/.travis.yml +8 -1
  5. data/.yardopts +0 -13
  6. data/Guardfile +4 -6
  7. data/{LICENSE.textile → LICENSE.md} +43 -55
  8. data/README-old.md +422 -0
  9. data/README.md +279 -418
  10. data/Rakefile +21 -5
  11. data/TODO.md +6 -6
  12. data/bin/wu-clean-encoding +31 -0
  13. data/bin/wu-lign +2 -2
  14. data/bin/wu-local +69 -0
  15. data/bin/wu-server +70 -0
  16. data/examples/Gemfile +38 -0
  17. data/examples/README.md +9 -0
  18. data/examples/dataflow/apache_log_line.rb +64 -25
  19. data/examples/dataflow/fibonacci_series.rb +101 -0
  20. data/examples/dataflow/parse_apache_logs.rb +37 -7
  21. data/examples/{dataflow.rb → dataflow/scraper_macro_flow.rb} +0 -0
  22. data/examples/dataflow/simple.rb +4 -4
  23. data/examples/geo.rb +4 -0
  24. data/examples/geo/geo_grids.numbers +0 -0
  25. data/examples/geo/geolocated.rb +331 -0
  26. data/examples/geo/quadtile.rb +69 -0
  27. data/examples/geo/spec/geolocated_spec.rb +247 -0
  28. data/examples/geo/tile_fetcher.rb +77 -0
  29. data/examples/graph/minimum_spanning_tree.rb +61 -61
  30. data/examples/jabberwocky.txt +36 -0
  31. data/examples/models/wikipedia.rb +20 -0
  32. data/examples/munging/Gemfile +8 -0
  33. data/examples/munging/airline_flights/airline.rb +57 -0
  34. data/examples/munging/airline_flights/airline_flights.rake +83 -0
  35. data/{lib/wukong/settings.rb → examples/munging/airline_flights/airplane.rb} +0 -0
  36. data/examples/munging/airline_flights/airport.rb +211 -0
  37. data/examples/munging/airline_flights/airport_id_unification.rb +129 -0
  38. data/examples/munging/airline_flights/airport_ok_chars.rb +4 -0
  39. data/examples/munging/airline_flights/flight.rb +156 -0
  40. data/examples/munging/airline_flights/models.rb +4 -0
  41. data/examples/munging/airline_flights/parse.rb +26 -0
  42. data/examples/munging/airline_flights/reconcile_airports.rb +142 -0
  43. data/examples/munging/airline_flights/route.rb +35 -0
  44. data/examples/munging/airline_flights/tasks.rake +83 -0
  45. data/examples/munging/airline_flights/timezone_fixup.rb +62 -0
  46. data/examples/munging/airline_flights/topcities.rb +167 -0
  47. data/examples/munging/airports/40_wbans.txt +40 -0
  48. data/examples/munging/airports/filter_weather_reports.rb +37 -0
  49. data/examples/munging/airports/join.pig +31 -0
  50. data/examples/munging/airports/to_tsv.rb +33 -0
  51. data/examples/munging/airports/usa_wbans.pig +19 -0
  52. data/examples/munging/airports/usa_wbans.txt +2157 -0
  53. data/examples/munging/airports/wbans.pig +19 -0
  54. data/examples/munging/airports/wbans.txt +2310 -0
  55. data/examples/munging/geo/geo_json.rb +54 -0
  56. data/examples/munging/geo/geo_models.rb +69 -0
  57. data/examples/munging/geo/geonames_models.rb +78 -0
  58. data/examples/munging/geo/iso_codes.rb +172 -0
  59. data/examples/munging/geo/reconcile_countries.rb +124 -0
  60. data/examples/munging/geo/tasks.rake +71 -0
  61. data/examples/munging/rake_helper.rb +62 -0
  62. data/examples/munging/weather/.gitignore +1 -0
  63. data/examples/munging/weather/Gemfile +4 -0
  64. data/examples/munging/weather/Rakefile +28 -0
  65. data/examples/munging/weather/extract_ish.rb +13 -0
  66. data/examples/munging/weather/models/weather.rb +119 -0
  67. data/examples/munging/weather/utils/noaa_downloader.rb +46 -0
  68. data/examples/munging/wikipedia/README.md +34 -0
  69. data/examples/munging/wikipedia/Rakefile +193 -0
  70. data/examples/munging/wikipedia/articles/extract_articles-parsed.rb +79 -0
  71. data/examples/munging/wikipedia/articles/extract_articles-templated.rb +136 -0
  72. data/examples/munging/wikipedia/articles/textualize_articles.rb +54 -0
  73. data/examples/munging/wikipedia/articles/verify_structure.rb +43 -0
  74. data/examples/munging/wikipedia/articles/wp2txt-LICENSE.txt +22 -0
  75. data/examples/munging/wikipedia/articles/wp2txt_article.rb +259 -0
  76. data/examples/munging/wikipedia/articles/wp2txt_utils.rb +452 -0
  77. data/examples/munging/wikipedia/dbpedia/dbpedia_common.rb +4 -0
  78. data/examples/munging/wikipedia/dbpedia/dbpedia_extract_geocoordinates.rb +78 -0
  79. data/examples/munging/wikipedia/dbpedia/extract_links.rb +193 -0
  80. data/examples/munging/wikipedia/dbpedia/sameas_extractor.rb +20 -0
  81. data/examples/munging/wikipedia/n1_subuniverse/n1_nodes.pig +18 -0
  82. data/examples/munging/wikipedia/page_metadata/extract_page_metadata.rb +21 -0
  83. data/examples/munging/wikipedia/page_metadata/extract_page_metadata.rb.old +27 -0
  84. data/examples/munging/wikipedia/pagelinks/augment_pagelinks.pig +29 -0
  85. data/examples/munging/wikipedia/pagelinks/extract_pagelinks.rb +14 -0
  86. data/examples/munging/wikipedia/pagelinks/extract_pagelinks.rb.old +25 -0
  87. data/examples/munging/wikipedia/pagelinks/undirect_pagelinks.pig +29 -0
  88. data/examples/munging/wikipedia/pageviews/augment_pageviews.pig +32 -0
  89. data/examples/munging/wikipedia/pageviews/extract_pageviews.rb +85 -0
  90. data/examples/munging/wikipedia/pig_style_guide.md +25 -0
  91. data/examples/munging/wikipedia/redirects/redirects_page_metadata.pig +19 -0
  92. data/examples/munging/wikipedia/subuniverse/sub_articles.pig +23 -0
  93. data/examples/munging/wikipedia/subuniverse/sub_page_metadata.pig +24 -0
  94. data/examples/munging/wikipedia/subuniverse/sub_pagelinks_from.pig +22 -0
  95. data/examples/munging/wikipedia/subuniverse/sub_pagelinks_into.pig +22 -0
  96. data/examples/munging/wikipedia/subuniverse/sub_pagelinks_within.pig +26 -0
  97. data/examples/munging/wikipedia/subuniverse/sub_pageviews.pig +29 -0
  98. data/examples/munging/wikipedia/subuniverse/sub_undirected_pagelinks_within.pig +24 -0
  99. data/examples/munging/wikipedia/utils/get_namespaces.rb +86 -0
  100. data/examples/munging/wikipedia/utils/munging_utils.rb +68 -0
  101. data/examples/munging/wikipedia/utils/namespaces.json +1 -0
  102. data/examples/rake_helper.rb +85 -0
  103. data/examples/server_logs/geo_ip_mapping/munge_geolite.rb +82 -0
  104. data/examples/server_logs/logline.rb +95 -0
  105. data/examples/server_logs/models.rb +66 -0
  106. data/examples/server_logs/page_counts.pig +48 -0
  107. data/examples/server_logs/server_logs-01-parse-script.rb +13 -0
  108. data/examples/server_logs/server_logs-02-histograms-full.rb +33 -0
  109. data/examples/server_logs/server_logs-02-histograms-mapper.rb +14 -0
  110. data/{old/examples/server_logs/breadcrumbs.rb → examples/server_logs/server_logs-03-breadcrumbs-full.rb} +26 -30
  111. data/examples/server_logs/server_logs-04-page_page_edges-full.rb +40 -0
  112. data/examples/string_reverser.rb +26 -0
  113. data/examples/text/pig_latin.rb +2 -2
  114. data/examples/text/regional_flavor/README.md +14 -0
  115. data/examples/text/regional_flavor/article_wordbags.pig +39 -0
  116. data/examples/text/regional_flavor/j01-article_wordbags.rb +4 -0
  117. data/examples/text/regional_flavor/simple_pig_script.pig +27 -0
  118. data/examples/word_count/accumulator.rb +26 -0
  119. data/examples/word_count/tokenizer.rb +13 -0
  120. data/examples/word_count/word_count.rb +6 -0
  121. data/examples/workflow/cherry_pie.dot +97 -0
  122. data/examples/workflow/cherry_pie.png +0 -0
  123. data/examples/workflow/cherry_pie.rb +61 -26
  124. data/lib/hanuman.rb +34 -7
  125. data/lib/hanuman/graph.rb +55 -31
  126. data/lib/hanuman/graphvizzer.rb +199 -178
  127. data/lib/hanuman/graphvizzer/gv_models.rb +161 -0
  128. data/lib/hanuman/graphvizzer/gv_presenter.rb +97 -0
  129. data/lib/hanuman/link.rb +35 -0
  130. data/lib/hanuman/registry.rb +46 -0
  131. data/lib/hanuman/stage.rb +76 -32
  132. data/lib/wukong.rb +23 -24
  133. data/lib/wukong/boot.rb +87 -0
  134. data/lib/wukong/configuration.rb +8 -0
  135. data/lib/wukong/dataflow.rb +45 -78
  136. data/lib/wukong/driver.rb +99 -0
  137. data/lib/wukong/emitter.rb +22 -0
  138. data/lib/wukong/model/faker.rb +24 -24
  139. data/lib/wukong/model/flatpack_parser/flat.rb +60 -0
  140. data/lib/wukong/model/flatpack_parser/flatpack.rb +4 -0
  141. data/lib/wukong/model/flatpack_parser/lang.rb +46 -0
  142. data/lib/wukong/model/flatpack_parser/parser.rb +55 -0
  143. data/lib/wukong/model/flatpack_parser/tokens.rb +130 -0
  144. data/lib/wukong/processor.rb +60 -114
  145. data/lib/wukong/spec_helpers.rb +81 -0
  146. data/lib/wukong/spec_helpers/integration_driver.rb +144 -0
  147. data/lib/wukong/spec_helpers/integration_driver_matchers.rb +219 -0
  148. data/lib/wukong/spec_helpers/processor_helpers.rb +95 -0
  149. data/lib/wukong/spec_helpers/processor_methods.rb +108 -0
  150. data/lib/wukong/spec_helpers/shared_examples.rb +15 -0
  151. data/lib/wukong/spec_helpers/spec_driver.rb +28 -0
  152. data/lib/wukong/spec_helpers/spec_driver_matchers.rb +195 -0
  153. data/lib/wukong/version.rb +2 -1
  154. data/lib/wukong/widget/filters.rb +311 -0
  155. data/lib/wukong/widget/processors.rb +156 -0
  156. data/lib/wukong/widget/reducers.rb +7 -0
  157. data/lib/wukong/widget/reducers/accumulator.rb +73 -0
  158. data/lib/wukong/widget/reducers/bin.rb +318 -0
  159. data/lib/wukong/widget/reducers/count.rb +61 -0
  160. data/lib/wukong/widget/reducers/group.rb +85 -0
  161. data/lib/wukong/widget/reducers/group_concat.rb +70 -0
  162. data/lib/wukong/widget/reducers/moments.rb +72 -0
  163. data/lib/wukong/widget/reducers/sort.rb +130 -0
  164. data/lib/wukong/widget/serializers.rb +287 -0
  165. data/lib/wukong/widget/sink.rb +10 -52
  166. data/lib/wukong/widget/source.rb +7 -113
  167. data/lib/wukong/widget/utils.rb +46 -0
  168. data/lib/wukong/widgets.rb +6 -0
  169. data/spec/examples/dataflow/fibonacci_series_spec.rb +18 -0
  170. data/spec/examples/dataflow/parsing_spec.rb +12 -11
  171. data/spec/examples/dataflow/simple_spec.rb +32 -6
  172. data/spec/examples/dataflow/telegram_spec.rb +36 -36
  173. data/spec/examples/graph/minimum_spanning_tree_spec.rb +30 -31
  174. data/spec/examples/munging/airline_flights/identifiers_spec.rb +16 -0
  175. data/spec/examples/munging/airline_flights_spec.rb +202 -0
  176. data/spec/examples/text/pig_latin_spec.rb +13 -16
  177. data/spec/examples/workflow/cherry_pie_spec.rb +34 -4
  178. data/spec/hanuman/graph_spec.rb +27 -2
  179. data/spec/hanuman/hanuman_spec.rb +10 -0
  180. data/spec/hanuman/registry_spec.rb +123 -0
  181. data/spec/hanuman/stage_spec.rb +61 -7
  182. data/spec/spec_helper.rb +29 -19
  183. data/spec/support/hanuman_test_helpers.rb +14 -12
  184. data/spec/support/shared_context_for_reducers.rb +37 -0
  185. data/spec/support/shared_examples_for_builders.rb +101 -0
  186. data/spec/support/shared_examples_for_shortcuts.rb +57 -0
  187. data/spec/support/wukong_test_helpers.rb +37 -11
  188. data/spec/wukong/dataflow_spec.rb +77 -55
  189. data/spec/wukong/local_runner_spec.rb +24 -24
  190. data/spec/wukong/model/faker_spec.rb +132 -131
  191. data/spec/wukong/runner_spec.rb +8 -8
  192. data/spec/wukong/widget/filters_spec.rb +61 -0
  193. data/spec/wukong/widget/processors_spec.rb +126 -0
  194. data/spec/wukong/widget/reducers/bin_spec.rb +92 -0
  195. data/spec/wukong/widget/reducers/count_spec.rb +11 -0
  196. data/spec/wukong/widget/reducers/group_spec.rb +20 -0
  197. data/spec/wukong/widget/reducers/moments_spec.rb +36 -0
  198. data/spec/wukong/widget/reducers/sort_spec.rb +26 -0
  199. data/spec/wukong/widget/serializers_spec.rb +92 -0
  200. data/spec/wukong/widget/sink_spec.rb +15 -15
  201. data/spec/wukong/widget/source_spec.rb +65 -41
  202. data/spec/wukong/wukong_spec.rb +10 -0
  203. data/wukong.gemspec +17 -10
  204. metadata +359 -335
  205. data/.document +0 -5
  206. data/VERSION +0 -1
  207. data/bin/hdp-bin +0 -44
  208. data/bin/hdp-bzip +0 -23
  209. data/bin/hdp-cat +0 -3
  210. data/bin/hdp-catd +0 -3
  211. data/bin/hdp-cp +0 -3
  212. data/bin/hdp-du +0 -86
  213. data/bin/hdp-get +0 -3
  214. data/bin/hdp-kill +0 -3
  215. data/bin/hdp-kill-task +0 -3
  216. data/bin/hdp-ls +0 -11
  217. data/bin/hdp-mkdir +0 -2
  218. data/bin/hdp-mkdirp +0 -12
  219. data/bin/hdp-mv +0 -3
  220. data/bin/hdp-parts_to_keys.rb +0 -77
  221. data/bin/hdp-ps +0 -3
  222. data/bin/hdp-put +0 -3
  223. data/bin/hdp-rm +0 -32
  224. data/bin/hdp-sort +0 -40
  225. data/bin/hdp-stream +0 -40
  226. data/bin/hdp-stream-flat +0 -22
  227. data/bin/hdp-stream2 +0 -39
  228. data/bin/hdp-sync +0 -17
  229. data/bin/hdp-wc +0 -67
  230. data/bin/wu-flow +0 -10
  231. data/bin/wu-map +0 -17
  232. data/bin/wu-red +0 -17
  233. data/bin/wukong +0 -17
  234. data/data/CREDITS.md +0 -355
  235. data/data/graph/airfares.tsv +0 -2174
  236. data/data/text/gift_of_the_magi.txt +0 -225
  237. data/data/text/jabberwocky.txt +0 -36
  238. data/data/text/rectification_of_names.txt +0 -33
  239. data/data/twitter/a_atsigns_b.tsv +0 -64
  240. data/data/twitter/a_follows_b.tsv +0 -53
  241. data/data/twitter/tweet.tsv +0 -167
  242. data/data/twitter/twitter_user.tsv +0 -55
  243. data/data/wikipedia/dbpedia-sentences.tsv +0 -1000
  244. data/docpages/INSTALL.textile +0 -92
  245. data/docpages/LICENSE.textile +0 -107
  246. data/docpages/README-elastic_map_reduce.textile +0 -377
  247. data/docpages/README-performance.textile +0 -90
  248. data/docpages/README-wulign.textile +0 -65
  249. data/docpages/UsingWukong-part1-get_ready.textile +0 -17
  250. data/docpages/UsingWukong-part2-ThinkingBigData.textile +0 -75
  251. data/docpages/UsingWukong-part3-parsing.textile +0 -138
  252. data/docpages/_config.yml +0 -39
  253. data/docpages/avro/avro_notes.textile +0 -56
  254. data/docpages/avro/performance.textile +0 -36
  255. data/docpages/avro/tethering.textile +0 -19
  256. data/docpages/bigdata-tips.textile +0 -143
  257. data/docpages/code/api_response_example.txt +0 -20
  258. data/docpages/code/parser_skeleton.rb +0 -38
  259. data/docpages/diagrams/MapReduceDiagram.graffle +0 -0
  260. data/docpages/favicon.ico +0 -0
  261. data/docpages/gem.css +0 -16
  262. data/docpages/hadoop-tips.textile +0 -83
  263. data/docpages/index.textile +0 -92
  264. data/docpages/intro.textile +0 -8
  265. data/docpages/moreinfo.textile +0 -174
  266. data/docpages/news.html +0 -24
  267. data/docpages/pig/PigLatinExpressionsList.txt +0 -122
  268. data/docpages/pig/PigLatinReferenceManual.txt +0 -1640
  269. data/docpages/pig/commandline_params.txt +0 -26
  270. data/docpages/pig/cookbook.html +0 -481
  271. data/docpages/pig/images/hadoop-logo.jpg +0 -0
  272. data/docpages/pig/images/instruction_arrow.png +0 -0
  273. data/docpages/pig/images/pig-logo.gif +0 -0
  274. data/docpages/pig/piglatin_ref1.html +0 -1103
  275. data/docpages/pig/piglatin_ref2.html +0 -14340
  276. data/docpages/pig/setup.html +0 -505
  277. data/docpages/pig/skin/basic.css +0 -166
  278. data/docpages/pig/skin/breadcrumbs.js +0 -237
  279. data/docpages/pig/skin/fontsize.js +0 -166
  280. data/docpages/pig/skin/getBlank.js +0 -40
  281. data/docpages/pig/skin/getMenu.js +0 -45
  282. data/docpages/pig/skin/images/chapter.gif +0 -0
  283. data/docpages/pig/skin/images/chapter_open.gif +0 -0
  284. data/docpages/pig/skin/images/current.gif +0 -0
  285. data/docpages/pig/skin/images/external-link.gif +0 -0
  286. data/docpages/pig/skin/images/header_white_line.gif +0 -0
  287. data/docpages/pig/skin/images/page.gif +0 -0
  288. data/docpages/pig/skin/images/pdfdoc.gif +0 -0
  289. data/docpages/pig/skin/images/rc-b-l-15-1body-2menu-3menu.png +0 -0
  290. data/docpages/pig/skin/images/rc-b-r-15-1body-2menu-3menu.png +0 -0
  291. data/docpages/pig/skin/images/rc-b-r-5-1header-2tab-selected-3tab-selected.png +0 -0
  292. data/docpages/pig/skin/images/rc-t-l-5-1header-2searchbox-3searchbox.png +0 -0
  293. data/docpages/pig/skin/images/rc-t-l-5-1header-2tab-selected-3tab-selected.png +0 -0
  294. data/docpages/pig/skin/images/rc-t-l-5-1header-2tab-unselected-3tab-unselected.png +0 -0
  295. data/docpages/pig/skin/images/rc-t-r-15-1body-2menu-3menu.png +0 -0
  296. data/docpages/pig/skin/images/rc-t-r-5-1header-2searchbox-3searchbox.png +0 -0
  297. data/docpages/pig/skin/images/rc-t-r-5-1header-2tab-selected-3tab-selected.png +0 -0
  298. data/docpages/pig/skin/images/rc-t-r-5-1header-2tab-unselected-3tab-unselected.png +0 -0
  299. data/docpages/pig/skin/print.css +0 -54
  300. data/docpages/pig/skin/profile.css +0 -181
  301. data/docpages/pig/skin/screen.css +0 -587
  302. data/docpages/pig/tutorial.html +0 -1059
  303. data/docpages/pig/udf.html +0 -1509
  304. data/docpages/tutorial.textile +0 -283
  305. data/docpages/usage.textile +0 -195
  306. data/docpages/wutils.textile +0 -263
  307. data/examples/dataflow/complex.rb +0 -11
  308. data/examples/dataflow/donuts.rb +0 -13
  309. data/examples/tiny_count/jabberwocky_output.tsv +0 -92
  310. data/examples/word_count.rb +0 -48
  311. data/examples/workflow/fiddle.rb +0 -24
  312. data/lib/away/escapement.rb +0 -129
  313. data/lib/away/exe.rb +0 -11
  314. data/lib/away/experimental.rb +0 -5
  315. data/lib/away/from_file.rb +0 -52
  316. data/lib/away/job.rb +0 -56
  317. data/lib/away/job/rake_compat.rb +0 -17
  318. data/lib/away/registry.rb +0 -79
  319. data/lib/away/runner.rb +0 -276
  320. data/lib/away/runner/execute.rb +0 -121
  321. data/lib/away/script.rb +0 -161
  322. data/lib/away/script/hadoop_command.rb +0 -240
  323. data/lib/away/source/file_list_source.rb +0 -15
  324. data/lib/away/source/looper.rb +0 -18
  325. data/lib/away/task.rb +0 -219
  326. data/lib/hanuman/action.rb +0 -21
  327. data/lib/hanuman/chain.rb +0 -4
  328. data/lib/hanuman/graphviz.rb +0 -74
  329. data/lib/hanuman/resource.rb +0 -6
  330. data/lib/hanuman/slot.rb +0 -87
  331. data/lib/hanuman/slottable.rb +0 -220
  332. data/lib/wukong/bad_record.rb +0 -15
  333. data/lib/wukong/event.rb +0 -44
  334. data/lib/wukong/local_runner.rb +0 -55
  335. data/lib/wukong/mapred.rb +0 -3
  336. data/lib/wukong/universe.rb +0 -48
  337. data/lib/wukong/widget/filter.rb +0 -81
  338. data/lib/wukong/widget/gibberish.rb +0 -123
  339. data/lib/wukong/widget/monitor.rb +0 -26
  340. data/lib/wukong/widget/reducer.rb +0 -66
  341. data/lib/wukong/widget/stringifier.rb +0 -50
  342. data/lib/wukong/workflow.rb +0 -22
  343. data/lib/wukong/workflow/command.rb +0 -42
  344. data/old/config/emr-example.yaml +0 -48
  345. data/old/examples/README.txt +0 -17
  346. data/old/examples/contrib/jeans/README.markdown +0 -165
  347. data/old/examples/contrib/jeans/data/normalized_sizes +0 -3
  348. data/old/examples/contrib/jeans/data/orders.tsv +0 -1302
  349. data/old/examples/contrib/jeans/data/sizes +0 -3
  350. data/old/examples/contrib/jeans/normalize.rb +0 -20
  351. data/old/examples/contrib/jeans/sizes.rb +0 -55
  352. data/old/examples/corpus/bnc_word_freq.rb +0 -44
  353. data/old/examples/corpus/bucket_counter.rb +0 -47
  354. data/old/examples/corpus/dbpedia_abstract_to_sentences.rb +0 -86
  355. data/old/examples/corpus/sentence_bigrams.rb +0 -53
  356. data/old/examples/corpus/sentence_coocurrence.rb +0 -66
  357. data/old/examples/corpus/stopwords.rb +0 -138
  358. data/old/examples/corpus/words_to_bigrams.rb +0 -53
  359. data/old/examples/emr/README.textile +0 -110
  360. data/old/examples/emr/dot_wukong_dir/credentials.json +0 -7
  361. data/old/examples/emr/dot_wukong_dir/emr.yaml +0 -69
  362. data/old/examples/emr/dot_wukong_dir/emr_bootstrap.sh +0 -33
  363. data/old/examples/emr/elastic_mapreduce_example.rb +0 -28
  364. data/old/examples/network_graph/adjacency_list.rb +0 -74
  365. data/old/examples/network_graph/breadth_first_search.rb +0 -72
  366. data/old/examples/network_graph/gen_2paths.rb +0 -68
  367. data/old/examples/network_graph/gen_multi_edge.rb +0 -112
  368. data/old/examples/network_graph/gen_symmetric_links.rb +0 -64
  369. data/old/examples/pagerank/README.textile +0 -6
  370. data/old/examples/pagerank/gen_initial_pagerank_graph.pig +0 -57
  371. data/old/examples/pagerank/pagerank.rb +0 -72
  372. data/old/examples/pagerank/pagerank_initialize.rb +0 -42
  373. data/old/examples/pagerank/run_pagerank.sh +0 -21
  374. data/old/examples/sample_records.rb +0 -33
  375. data/old/examples/server_logs/apache_log_parser.rb +0 -15
  376. data/old/examples/server_logs/nook.rb +0 -48
  377. data/old/examples/server_logs/nook/faraday_dummy_adapter.rb +0 -94
  378. data/old/examples/server_logs/user_agent.rb +0 -40
  379. data/old/examples/simple_word_count.rb +0 -82
  380. data/old/examples/size.rb +0 -61
  381. data/old/examples/stats/avg_value_frequency.rb +0 -86
  382. data/old/examples/stats/binning_percentile_estimator.rb +0 -140
  383. data/old/examples/stats/data/avg_value_frequency.tsv +0 -3
  384. data/old/examples/stats/rank_and_bin.rb +0 -173
  385. data/old/examples/stupidly_simple_filter.rb +0 -40
  386. data/old/examples/word_count.rb +0 -75
  387. data/old/graph/graphviz_builder.rb +0 -580
  388. data/old/graph_easy/Attributes.pm +0 -4181
  389. data/old/graph_easy/Graphviz.pm +0 -2232
  390. data/old/wukong.rb +0 -18
  391. data/old/wukong/and_pig.rb +0 -38
  392. data/old/wukong/bad_record.rb +0 -18
  393. data/old/wukong/datatypes.rb +0 -24
  394. data/old/wukong/datatypes/enum.rb +0 -127
  395. data/old/wukong/datatypes/fake_types.rb +0 -17
  396. data/old/wukong/decorator.rb +0 -28
  397. data/old/wukong/encoding/asciize.rb +0 -108
  398. data/old/wukong/extensions.rb +0 -16
  399. data/old/wukong/extensions/array.rb +0 -18
  400. data/old/wukong/extensions/blank.rb +0 -93
  401. data/old/wukong/extensions/class.rb +0 -189
  402. data/old/wukong/extensions/date_time.rb +0 -53
  403. data/old/wukong/extensions/emittable.rb +0 -69
  404. data/old/wukong/extensions/enumerable.rb +0 -79
  405. data/old/wukong/extensions/hash.rb +0 -167
  406. data/old/wukong/extensions/hash_keys.rb +0 -16
  407. data/old/wukong/extensions/hash_like.rb +0 -150
  408. data/old/wukong/extensions/hashlike_class.rb +0 -47
  409. data/old/wukong/extensions/module.rb +0 -2
  410. data/old/wukong/extensions/pathname.rb +0 -27
  411. data/old/wukong/extensions/string.rb +0 -65
  412. data/old/wukong/extensions/struct.rb +0 -17
  413. data/old/wukong/extensions/symbol.rb +0 -11
  414. data/old/wukong/filename_pattern.rb +0 -74
  415. data/old/wukong/helper.rb +0 -7
  416. data/old/wukong/helper/stopwords.rb +0 -195
  417. data/old/wukong/helper/tokenize.rb +0 -35
  418. data/old/wukong/logger.rb +0 -38
  419. data/old/wukong/periodic_monitor.rb +0 -72
  420. data/old/wukong/schema.rb +0 -269
  421. data/old/wukong/script.rb +0 -286
  422. data/old/wukong/script/avro_command.rb +0 -5
  423. data/old/wukong/script/cassandra_loader_script.rb +0 -40
  424. data/old/wukong/script/emr_command.rb +0 -168
  425. data/old/wukong/script/hadoop_command.rb +0 -237
  426. data/old/wukong/script/local_command.rb +0 -41
  427. data/old/wukong/store.rb +0 -10
  428. data/old/wukong/store/base.rb +0 -27
  429. data/old/wukong/store/cassandra.rb +0 -10
  430. data/old/wukong/store/cassandra/streaming.rb +0 -75
  431. data/old/wukong/store/cassandra/struct_loader.rb +0 -21
  432. data/old/wukong/store/cassandra_model.rb +0 -91
  433. data/old/wukong/store/chh_chunked_flat_file_store.rb +0 -37
  434. data/old/wukong/store/chunked_flat_file_store.rb +0 -48
  435. data/old/wukong/store/conditional_store.rb +0 -57
  436. data/old/wukong/store/factory.rb +0 -8
  437. data/old/wukong/store/flat_file_store.rb +0 -89
  438. data/old/wukong/store/key_store.rb +0 -51
  439. data/old/wukong/store/null_store.rb +0 -15
  440. data/old/wukong/store/read_thru_store.rb +0 -22
  441. data/old/wukong/store/tokyo_tdb_key_store.rb +0 -33
  442. data/old/wukong/store/tyrant_rdb_key_store.rb +0 -57
  443. data/old/wukong/store/tyrant_tdb_key_store.rb +0 -20
  444. data/old/wukong/streamer.rb +0 -30
  445. data/old/wukong/streamer/accumulating_reducer.rb +0 -83
  446. data/old/wukong/streamer/base.rb +0 -126
  447. data/old/wukong/streamer/counting_reducer.rb +0 -25
  448. data/old/wukong/streamer/filter.rb +0 -20
  449. data/old/wukong/streamer/instance_streamer.rb +0 -15
  450. data/old/wukong/streamer/json_streamer.rb +0 -21
  451. data/old/wukong/streamer/line_streamer.rb +0 -12
  452. data/old/wukong/streamer/list_reducer.rb +0 -31
  453. data/old/wukong/streamer/rank_and_bin_reducer.rb +0 -145
  454. data/old/wukong/streamer/record_streamer.rb +0 -14
  455. data/old/wukong/streamer/reducer.rb +0 -11
  456. data/old/wukong/streamer/set_reducer.rb +0 -14
  457. data/old/wukong/streamer/struct_streamer.rb +0 -48
  458. data/old/wukong/streamer/summing_reducer.rb +0 -29
  459. data/old/wukong/streamer/uniq_by_last_reducer.rb +0 -51
  460. data/old/wukong/typed_struct.rb +0 -12
  461. data/spec/away/encoding_spec.rb +0 -32
  462. data/spec/away/exe_spec.rb +0 -20
  463. data/spec/away/flow_spec.rb +0 -82
  464. data/spec/away/graph_spec.rb +0 -6
  465. data/spec/away/job_spec.rb +0 -15
  466. data/spec/away/rake_compat_spec.rb +0 -9
  467. data/spec/away/script_spec.rb +0 -81
  468. data/spec/hanuman/graphviz_spec.rb +0 -29
  469. data/spec/hanuman/slot_spec.rb +0 -2
  470. data/spec/support/examples_helper.rb +0 -10
  471. data/spec/support/streamer_test_helpers.rb +0 -6
  472. data/spec/support/wukong_widget_helpers.rb +0 -66
  473. data/spec/wukong/processor_spec.rb +0 -109
  474. data/spec/wukong/widget/filter_spec.rb +0 -99
  475. data/spec/wukong/widget/stringifier_spec.rb +0 -51
  476. data/spec/wukong/workflow/command_spec.rb +0 -5
@@ -0,0 +1 @@
1
+ {"Phương tiện":-2,"Đặc biệt":-1,"Thảo luận":1,"Thành viên":2,"Thảo luận Thành viên":3,"Wikipedia":4,"Thảo luận Wikipedia":5,"Tập tin":6,"Thảo luận Tập tin":7,"MediaWiki":8,"Thảo luận MediaWiki":9,"Bản mẫu":10,"Thảo luận Bản mẫu":11,"Trợ giúp":12,"Thảo luận Trợ giúp":13,"Thể loại":14,"Thảo luận Thể loại":15,"Chủ đề":100,"Thảo luận Chủ đề":101,"Медіа":-2,"Спеціальна":-1,"Обговорення":1,"Користувач":2,"Обговорення користувача":3,"Вікіпедія":4,"Обговорення Вікіпедії":5,"Файл":6,"Обговорення файлу":7,"Обговорення MediaWiki":9,"Шаблон":10,"Обговорення шаблону":11,"Довідка":12,"Обговорення довідки":13,"Категорія":14,"Обговорення категорії":15,"Портал":100,"Обговорення порталу":101,"Média":-2,"Speciális":-1,"Vita":1,"Szerkesztő":2,"Szerkesztővita":3,"Wikipédia":4,"Wikipédia-vita":5,"Fájl":6,"Fájlvita":7,"MediaWiki-vita":9,"Sablon":10,"Sablonvita":11,"Segítség":12,"Segítségvita":13,"Kategória":14,"Kategóriavita":15,"Téma":90,"Témavita":91,"Összefoglaló":92,"Összefoglaló-vita":93,"Portál":100,"Portálvita":101,"Media":-2,"Khas":-1,"Perbincangan":1,"Pengguna":2,"Perbincangan pengguna":3,"Perbincangan Wikipedia":5,"Fail":6,"Perbincangan fail":7,"Perbincangan MediaWiki":9,"Templat":10,"Perbincangan templat":11,"Bantuan":12,"Perbincangan bantuan":13,"Kategori":14,"Perbincangan kategori":15,"Portal":100,"Perbualan Portal":101,"מעדיע":-2,"באַזונדער":-1,"רעדן":1,"באַניצער":2,"באַניצער רעדן":3,"װיקיפּעדיע":4,"װיקיפּעדיע רעדן":5,"טעקע":6,"טעקע רעדן":7,"מעדיעװיקי":8,"מעדיעװיקי רעדן":9,"מוסטער":10,"מוסטער רעדן":11,"הילף":12,"הילף רעדן":13,"קאַטעגאָריע":14,"קאַטעגאָריע רעדן":15,"פארטאל":100,"פארטאל רעדן":101,"Sipeciås":-1,"Copene":1,"Uzeu":2,"Uzeu copene":3,"Wikipedia copene":5,"Imådje":6,"Imådje copene":7,"MediaWiki copene":9,"Modele":10,"Modele copene":11,"Aidance":12,"Aidance copene":13,"Categoreye":14,"Categoreye copene":15,"Special":-1,"Talk":1,"User":2,"User talk":3,"Wikipedia talk":5,"File":6,"File talk":7,"MediaWiki talk":9,"Template":10,"Template talk":11,"Help":12,"Help talk":13,"Category":14,"Category talk":15,"ܡܝܕܝܐ":-2,"ܕܝܠܢܝܐ":-1,"ܡܡܠܠܐ":1,"ܡܦܠܚܢܐ":2,"ܡܡܠܠܐ ܕܡܦܠܚܢܐ":3,"ܘܝܩܝܦܕܝܐ":4,"ܡܡܠܠܐ ܕܘܝܩܝܦܕܝܐ":5,"ܠܦܦܐ":6,"ܡܡܠܠܐ ܕܠܦܦܐ":7,"ܡܝܕܝܐܘܝܩܝ":8,"ܡܡܠܠܐ ܕܡܝܕܝܐܘܝܩܝ":9,"ܩܠܒܐ":10,"ܡܡܠܠܐ ܕܩܠܒܐ":11,"ܥܘܕܪܢܐ":12,"ܡܡܠܠܐ ܕܥܘܕܪܢܐ":13,"ܣܕܪܐ":14,"ܡܡܠܠܐ ܕܣܕܪܐ":15,"Istimiwa":-1,"Pamandiran":1,"Pamakai":2,"Pamandiran Pamakai":3,"Wikipidia":4,"Pamandiran Wikipidia":5,"Barakas":6,"Pamandiran Barakas":7,"Pamandiran MediaWiki":9,"Citakan":10,"Pamandiran Citakan":11,"Patulung":12,"Pamandiran Patulung":13,"Tumbung":14,"Pamandiran Tumbung":15,"Медиа":-2,"Служебная":-1,"Обсуждение":1,"Участник":2,"Обсуждение участника":3,"Википедия":4,"Баитам Википедия йылiсь":5,"Обсуждение файла":7,"Обсуждение MediaWiki":9,"Обсуждение шаблона":11,"Справка":12,"Обсуждение справки":13,"Категория":14,"Обсуждение категории":15,"Спецӹлӹштӓш":-1,"Кӓнгӓшӹмӓш":1,"Сирӹшӹ":2,"Сирӹшӹм кӓнгӓшӹмӓш":3,"Википеди":4,"Википедим кӓнгӓшӹмӓш":5,"Файлым кӓнгӓшӹмӓш":7,"MediaWiki-м кӓнгӓшӹмӓш":9,"Шаблоным кӓнгӓшӹмӓш":11,"Палшык":12,"Палшыкым кӓнгӓшӹмӓш":13,"Категори":14,"Категорим кӓнгӓшӹмӓш":15,"Strategic Planning":4,"Strategic Planning talk":5,"Thread":90,"Thread talk":91,"Summary":92,"Summary talk":93,"Proposal":106,"Proposal talk":107,"მედია":-2,"სპეციალური":-1,"განხილვა":1,"მომხმარებელი":2,"მომხმარებლის განხილვა":3,"ვიკიპედია":4,"ვიკიპედია სხუნუა":5,"ფაილი":6,"ფაილის განხილვა":7,"მედიავიკი":8,"მედიავიკის განხილვა":9,"თარგი":10,"თარგის განხილვა":11,"დახმარება":12,"დახმარების განხილვა":13,"კატეგორია":14,"კატეგორიის განხილვა":15,"Project":4,"Project talk":5,"Manual":100,"Manual talk":101,"Extension":102,"Extension talk":103,"API":104,"API talk":105,"Skin":106,"Skin talk":107,"Module":828,"Module talk":829,"Translations":1198,"Translations talk":1199,"VisualEditor":2500,"VisualEditor talk":2501,"Bolediša":1,"Mošomi":2,"Boledišana le Mošomi":3,"Dipolelo tša Wikipedia":5,"Seswantšho":6,"Poledišano ya Seswantšho":7,"Poledišano ya MediaWiki":9,"Poledišano ya Template":11,"Thušo":12,"Poledišano ya Thušo":13,"Setensele":14,"Poledišano ya Setensele":15,"Speciaal":-1,"Euverlèk":1,"Gebroeker":2,"Euverlèk gebroeker":3,"Euverlèk Wikipedia":5,"Plaetje":6,"Euverlèk plaetje":7,"Euverlèk MediaWiki":9,"Sjabloon":10,"Euverlèk sjabloon":11,"Euverlèk help":13,"Categorie":14,"Euverlèk categorie":15,"Portaol":100,"Euverlèk portaol":101,"Güiquipeya":4,"Güiquipeya talk":5,"Prantilla":10,"Midia":-2,"Espesial":-1,"Tungtungan":1,"Agar-aramat":2,"Agar-aramat tungtungan":3,"Wikipedia tungtungan":5,"Papeles":6,"Papeles tungtungan":7,"MediaWiki tungtungan":9,"Plantilia":10,"Plantilia tungtungan":11,"Tulong":12,"Tulong tungtungan":13,"Kategoria":14,"Kategoria tungtungan":15,"Μέσον":-2,"Ειδικόν":-1,"Καλάτσεμαν":1,"Χρήστες":2,"Καλάτσεμαν χρήστε":3,"Βικιπαίδεια":4,"Βικιπαίδεια καλάτσεμαν":5,"Αρχείον":6,"Καλάτσεμαν αρχείονος":7,"Πρότυπον":10,"Καλάτσεμαν πρότυπι":11,"Βοήθειαν":12,"Καλάτσεμαν βοήθειας":13,"Κατηγορίαν":14,"Καλάτσεμαν κατηγορίας":15,"Medium":-2,"Spezial":-1,"Diskussion":1,"Benutzer":2,"Benutzer Diskussion":3,"Wikipedia Diskussion":5,"Datei":6,"Datei Diskussion":7,"MediaWiki Diskussion":9,"Vorlage":10,"Vorlage Diskussion":11,"Hilfe":12,"Hilfe Diskussion":13,"Kategorie":14,"Kategorie Diskussion":15,"Mediya":-2,"Maasus":-1,"Dartışma":1,"Kullanıcı":2,"Kullanıcı dartışma":3,"Vikipediya":4,"Vikipediyanın laflanması":5,"Dosye":6,"Dosye dartışma":7,"MediaWiki dartışma":9,"Şablon":10,"Şablon dartışma":11,"Yardım":12,"Yardım dartışma":13,"Kategoriya":14,"Kategoriya dartışma":15,"Dischbedutt":1,"Yuuser":2,"Yuuser Dischbedutt":3,"Wikipedia Dischbedutt":5,"Feil":6,"Feil Dischbedutt":7,"MediaWiki Dischbedutt":9,"Moddel":10,"Moddel Dischbedutt":11,"Hilf":12,"Hilf Dischbedutt":13,"Abdeeling":14,"Abdeeling Dischbedutt":15,"Уикипедиэ":4,"Уикипедиэм и тепсэлъыхьыгъуэ":5,"Medeja":-2,"Seviškuo":-1,"Sprīža":1,"Lītuotuojs":2,"Sprīža ap lītuotuoju":3,"Vikipedeja":4,"Vikipedejis sprīža":5,"Fails":6,"Sprīža ap failu":7,"Sprīža ap MediaWiki":9,"Taiss":10,"Sprīža ap taisu":11,"Paleigs":12,"Sprīža ap paleigu":13,"Kategoreja":14,"Sprīža ap kategoreju":15,"Mèdia":-2,"Spiciali":-1,"Discussioni":1,"Utenti":2,"Discussioni utenti":3,"Discussioni Wikipedia":5,"Discussioni file":7,"Discussioni MediaWiki":9,"Discussioni template":11,"Aiutu":12,"Discussioni aiutu":13,"Catigurìa":14,"Discussioni catigurìa":15,"Purtali":100,"Discussioni purtali":101,"Pruggettu":102,"Discussioni pruggettu":103,"Portal Diskussion":101,"Commons":4,"Commons talk":5,"Creator":100,"Creator talk":101,"TimedText":710,"TimedText talk":711,"Sequence":104,"Sequence talk":105,"Institution":106,"Institution talk":107,"ميديا":-2,"خاص":-1,"نقاش":1,"مستخدم":2,"نقاش المستخدم":3,"ويكيبيديا":4,"نقاش ويكيبيديا":5,"ملف":6,"نقاش الملف":7,"ميدياويكي":8,"نقاش ميدياويكي":9,"قالب":10,"نقاش القالب":11,"مساعدة":12,"نقاش المساعدة":13,"تصنيف":14,"نقاش التصنيف":15,"بوابة":100,"نقاش البوابة":101,"ملحق":104,"نقاش الملحق":105,"Medya":-2,"Özel":-1,"Tartışma":1,"Kullanıcı mesaj":3,"Vikipedi":4,"Vikipedi tartışma":5,"Dosya":6,"Dosya tartışma":7,"MediaWiki tartışma":9,"Şablon tartışma":11,"Yardım tartışma":13,"Kategori tartışma":15,"Portal tartışma":101,"मीडिया":-2,"विशेष":-1,"वार्तालाप":1,"प्रयोगकर्ता":2,"प्रयोगकर्ता वार्ता":3,"विकिपीडिया":4,"विकिपीडिया वार्ता":5,"चित्र":6,"चित्र वार्ता":7,"मीडियाविकि":8,"मीडियाविकि वार्ता":9,"टेम्पलेट":10,"टेम्पलेट वार्ता":11,"मदद":12,"मदद वार्ता":13,"श्रेणी":14,"श्रेणी वार्ता":15,"Aide":12,"Discussion Aide":103,"Hjælp":12,"Hjælp diskussion":105,"Helpo":12,"Helpa diskuto":107,"Hjälp":12,"Hjälp diskussion":109,"Ayuda":12,"Ayuda Discusión":111,"Aiuto":12,"Discussioni aiuto":13,"ヘルプ":114,"ヘルプ‐ノート":115,"NL Help":116,"Overleg help":13,"Pomoc":12,"Dyskusja pomocy":13,"Ajuda":12,"Ajuda Discussão":13,"CA Ajuda":122,"CA Ajuda Discussió":123,"Hjelp":12,"Hjelp diskusjon":125,"帮助":12,"帮助 对话":127,"Помощь":12,"Помощь Дискуссия":129,"Pomoč":12,"Pogovor o pomoči":13,"Medio":-2,"Especial":-1,"Discusión":1,"Usuario":2,"Usuario discusión":3,"Wikipidiya":4,"Wikipidiyan Aruskipäwi":5,"Archivo":6,"Archivo discusión":7,"MediaWiki discusión":9,"Plantilla":10,"Plantilla discusión":11,"Ayuda discusión":13,"Categoría":14,"Categoría discusión":15,"Conversa":1,"Conversa usuario":3,"Conversa Wikipedia":5,"Ficheiro":6,"Conversa ficheiro":7,"Conversa MediaWiki":9,"Modelo":10,"Conversa modelo":11,"Axuda":12,"Conversa axuda":13,"Conversa categoría":15,"Portal talk":101,"Libro":102,"Conversa libro":103,"माध्यमम्":-2,"विशेषम्":-1,"सम्भाषणम्":1,"योजकः":2,"योजकसम्भाषणम्":3,"विकिपीडियासम्भाषणम्":5,"चित्रम्":6,"चित्रसम्भाषणम्":7,"मिडीयाविकी":8,"मिडियाविकीसम्भाषणम्":9,"फलकम्":10,"फलकस्य सम्भाषणम्":11,"सहाय्यम्":12,"सहाय्यस्य सम्भाषणम्":13,"वर्गः":14,"वर्गसम्भाषणम्":15,"Uslig":-1,"Mmeslay":1,"Amseqdac":2,"Amyannan umsqedac":3,"Amyannan n Wikipedia":5,"Tugna":6,"Amyannan n tugna":7,"Amyannan n MediaWiki":9,"Talɣa":10,"Amyannan n talɣa":11,"Tallat":12,"Amyannan n tallat":13,"Taggayt":14,"Amyannan n taggayt":15,"Speciaol":-1,"Overleg":1,"Gebruker":2,"Overleg gebruker":3,"Overleg Wikipedia":5,"Overleg plaetje":7,"Overleg MediaWiki":9,"Overleg sjabloon":11,"Ulpe":12,"Overleg ulpe":13,"Overleg categorie":15,"Espesiál":-1,"Diskusaun":1,"Uza-na'in":2,"Diskusaun Uza-na'in":3,"Diskusaun Wikipedia":5,"Imajen":6,"Diskusaun Imajen":7,"Diskusaun MediaWiki":9,"Diskusaun Template":11,"Diskusaun Ajuda":13,"Diskusaun Kategoria":15,"Berezi":-1,"Eztabaida":1,"Lankide":2,"Lankide eztabaida":3,"Wikipedia eztabaida":5,"Fitxategi":6,"Fitxategi eztabaida":7,"MediaWiki eztabaida":9,"Txantiloi":10,"Txantiloi eztabaida":11,"Laguntza":12,"Laguntza eztabaida":13,"Kategoria eztabaida":15,"Atari":100,"Atari eztabaida":101,"Wikiproiektu":102,"Wikiproiektu eztabaida":103,"Spesial":-1,"Diskusjon":1,"Bruker":2,"Brukerdiskusjon":3,"Wikipedia-diskusjon":5,"Fil":6,"Fildiskusjon":7,"MediaWiki-diskusjon":9,"Mal":10,"Maldiskusjon":11,"Hjelpdiskusjon":13,"Kategoridiskusjon":15,"Portaldiskusjon":101,"미디어":-2,"특수기능":-1,"토론":1,"사용자":2,"사용자토론":3,"위키백과":4,"위키백과토론":5,"파일":6,"파일토론":7,"미디어위키":8,"미디어위키토론":9,"틀":10,"틀토론":11,"도움말":12,"도움말토론":13,"분류":14,"분류토론":15,"들머리":100,"들머리토론":101,"위키프로젝트":102,"위키프로젝트토론":103,"Meta":4,"Meta talk":5,"Grants":200,"Grants talk":201,"Research":202,"Research talk":203,"Participation":204,"Participation talk":205,"مدیا":-2,"ویژه":-1,"بحث":1,"کاربر":2,"بحث کاربر":3,"ویکی‌پدیا":4,"بحث ویکی‌پدیا":5,"پرونده":6,"بحث پرونده":7,"مدیاویکی":8,"بحث مدیاویکی":9,"الگو":10,"بحث الگو":11,"راهنما":12,"بحث راهنما":13,"رده":14,"بحث رده":15,"درگاه":100,"بحث درگاه":101,"کتاب":102,"بحث کتاب":103,"Ciciarada":1,"Druvadur":2,"Ciciarada Druvadur":3,"Wikipedia Ciciarada":5,"Archivi":6,"Ciciarada Archivi":7,"Ciciarada MediaWiki":9,"Mudel":10,"Ciciarada Mudel":11,"Jüt":12,"Ciciarada Jüt":13,"Categuria":14,"Ciciarada Categuria":15,"Descüssiú Portal":101,"Purtaal":102,"Descüssiun Purtaal":103,"මාධ්‍යය":-2,"විශේෂ":-1,"සාකච්ඡාව":1,"පරිශීලක":2,"පරිශීලක සාකච්ඡාව":3,"විකිපීඩියා":4,"විකිපීඩියා සාකච්ඡාව":5,"ගොනුව":6,"ගොනුව සාකච්ඡාව":7,"මාධ්‍යවිකි":8,"මාධ්‍යවිකි සාකච්ඡාව":9,"සැකිල්ල":10,"සැකිලි සාකච්ඡාව":11,"උදවු":12,"උදවු සාකච්ඡාව":13,"ප්‍රවර්ගය":14,"ප්‍රවර්ග සාකච්ඡාව":15,"ද්වාරය":100,"ද්වාරය සාකච්ඡාව":101,"Spécial":-1,"Discussion":1,"Utilisateur":2,"Discussion utilisateur":3,"Discussion Wikipédia":5,"Fichier":6,"Discussion fichier":7,"Discussion MediaWiki":9,"Modèle":10,"Discussion modèle":11,"Discussion aide":13,"Catégorie":14,"Discussion catégorie":15,"Portail":100,"Discussion Portail":101,"Projet":102,"Discussion Projet":103,"Référence":104,"Discussion Référence":105,"Toiminnot":-1,"Keskustelu":1,"Käyttäjä":2,"Keskustelu käyttäjästä":3,"Keskustelu Wikipediasta":5,"Tiedosto":6,"Keskustelu tiedostosta":7,"Järjestelmäviesti":8,"Keskustelu järjestelmäviestistä":9,"Malline":10,"Keskustelu mallineesta":11,"Ohje":12,"Keskustelu ohjeesta":13,"Luokka":14,"Keskustelu luokasta":15,"Teemasivu":100,"Keskustelu teemasivusta":101,"Metasivu":102,"Keskustelu metasivusta":103,"Kirja":104,"Keskustelu kirjasta":105,"Discussió":1,"Usuari":2,"Usuari Discussió":3,"Viquipèdia":4,"Viquipèdia Discussió":5,"Fitxer":6,"Fitxer Discussió":7,"MediaWiki Discussió":9,"Plantilla Discussió":11,"Ajuda Discussió":13,"Categoria":14,"Categoria Discussió":15,"Portal Discussió":101,"Viquiprojecte":102,"Viquiprojecte Discussió":103,"Медиј":-2,"Посебно":-1,"Разговор":1,"Корисник":2,"Разговор са корисником":3,"Википедија":4,"Разговор о Википедији":5,"Датотека":6,"Разговор о датотеци":7,"Медијавики":8,"Разговор о Медијавикију":9,"Разговор о шаблону":11,"Помоћ":12,"Разговор о помоћи":13,"Категорија":14,"Разговор о категорији":15,"Разговор о порталу":101,"वार्ता":1,"सदस्य":2,"सदस्य वार्ता":3,"साँचा":10,"साँचा वार्ता":11,"सहायता":12,"सहायता वार्ता":13,"प्रवेशद्वार":100,"प्रवेशद्वार वार्ता":101,"Mediji":-2,"Posebno":-1,"Razgovor":1,"Korisnik":2,"Razgovor sa korisnikom":3,"Razgovor s Wikipediom":5,"Datoteka":6,"Razgovor o datoteci":7,"MediaWiki razgovor":9,"Šablon":10,"Razgovor o šablonu":11,"Pomoć":12,"Razgovor o pomoći":13,"Kategorija":14,"Razgovor o kategoriji":15,"Razgovor o portalu":101,"Wikispecies":4,"Wikispecies talk":5,"شا":-1,"گپ":1,"کارور":2,"کارور گپ":3,"ویکی‌پدیا گپ":5,"پرونده گپ":7,"مدیاویکی گپ":9,"شابلون":10,"شابلون گپ":11,"رانما":12,"رانما گپ":13,"رج":14,"رج گپ":15,"پورتال":100,"پورتال گپ":101,"Обсуждение Wikipedia":5,"Discussion Wikipedia":5,"بحث Wikipedia":5,"Ihü kárírí":-1,"Okwu":1,"Ọbanife":2,"Okwu ọbanife":3,"Okwu Wikipedia":5,"Usòrò":6,"Okwu usòrò":7,"MidiaWiki":8,"Okwu MidiaWiki":9,"Àtụ":10,"Okwu àtụ":11,"Nkwadọ":12,"Okwu nkwadọ":13,"Òtù":14,"Okwu òtù":15,"Mba'echĩchĩ":-1,"Myangekõi":1,"Puruhára":2,"Puruhára myangekõi":3,"Vikipetã":4,"Vikipetã myangekõi":5,"Ta'ãnga":6,"Ta'ãnga myangekõi":7,"MediaWiki myangekõi":9,"Tembiecharã":10,"Tembiecharã myangekõi":11,"Pytyvõ":12,"Pytyvõ myangekõi":13,"Ñemohenda":14,"Ñemohenda myangekõi":15,"Ярҙамсы":-1,"Фекерләшеү":1,"Ҡатнашыусы":2,"Ҡатнашыусы менән һөйләшеү":3,"Wikipedia буйынса фекерләшеү":5,"Рәсем":6,"Рәсем буйынса фекерләшеү":7,"MediaWiki буйынса фекерләшеү":9,"Ҡалып":10,"Ҡалып буйынса фекерләшеү":11,"Белешмә":12,"Белешмә буйынса фекерләшеү":13,"Төркөм":14,"Төркөм буйынса фекерләшеү":15,"メディア":-2,"特別":-1,"ノート":1,"利用者":2,"利用者‐会話":3,"Wikipedia‐ノート":5,"ファイル":6,"ファイル‐ノート":7,"MediaWiki‐ノート":9,"Template‐ノート":11,"Help‐ノート":13,"Category‐ノート":15,"Portal‐ノート":101,"プロジェクト":102,"プロジェクト‐ノート":103,"Multimédia":-2,"Discussão":1,"Usuário(a)":2,"Usuário(a) Discussão":3,"Wikipédia Discussão":5,"Ficheiro Discussão":7,"MediaWiki Discussão":9,"Predefinição":10,"Predefinição Discussão":11,"Categoria Discussão":15,"Portal Discussão":101,"Anexo":104,"Anexo Discussão":103,"Livro":104,"Livro Discussão":105,"สื่อ":-2,"พิเศษ":-1,"พูดคุย":1,"ผู้ใช้":2,"คุยกับผู้ใช้":3,"วิกิพีเดีย":4,"คุยเรื่องวิกิพีเดีย":5,"ไฟล์":6,"คุยเรื่องไฟล์":7,"มีเดียวิกิ":8,"คุยเรื่องมีเดียวิกิ":9,"แม่แบบ":10,"คุยเรื่องแม่แบบ":11,"วิธีใช้":12,"คุยเรื่องวิธีใช้":13,"หมวดหมู่":14,"คุยเรื่องหมวดหมู่":15,"สถานีย่อย":100,"คุยเรื่องสถานีย่อย":101,"Speciální":-1,"Diskuse":1,"Wikipedista":2,"Diskuse s wikipedistou":3,"Wikipedie":4,"Diskuse k Wikipedii":5,"Soubor":6,"Diskuse k souboru":7,"Diskuse k MediaWiki":9,"Šablona":10,"Diskuse k šabloně":11,"Nápověda":12,"Diskuse k nápovědě":13,"Diskuse ke kategorii":15,"Diskuse k portálu":101,"Rejstřík":102,"Diskuse k rejstříku":103,"Discuție":1,"Utilizator":2,"Discuție Utilizator":3,"Discuție Wikipedia":5,"Fișier":6,"Discuție Fișier":7,"Discuție MediaWiki":9,"Format":10,"Discuție Format":11,"Ajutor":12,"Discuție Ajutor":13,"Discuție Categorie":15,"Discuție Portal":101,"Proiect":102,"Discuție Proiect":103,"Медия":-2,"Специални":-1,"Беседа":1,"Потребител":2,"Потребител беседа":3,"Уикипедия":4,"Уикипедия беседа":5,"Файл беседа":7,"МедияУики":8,"МедияУики беседа":9,"Шаблон беседа":11,"Помощ":12,"Помощ беседа":13,"Категория беседа":15,"Портал беседа":101,"Μέσο":-2,"Ειδικό":-1,"Συζήτηση":1,"Χρήστης":2,"Συζήτηση χρήστη":3,"Βικιπαίδεια συζήτηση":5,"Αρχείο":6,"Συζήτηση αρχείου":7,"Συζήτηση MediaWiki":9,"Πρότυπο":10,"Συζήτηση προτύπου":11,"Βοήθεια":12,"Συζήτηση βοήθειας":13,"Κατηγορία":14,"Συζήτηση κατηγορίας":15,"Πύλη":100,"Συζήτηση πύλης":101,"Nünamakanäd":-2,"Patikos":-1,"Bespik":1,"Geban":2,"Gebanibespik":3,"Vükiped":4,"Bespik dö Vükiped":5,"Ragiv":6,"Ragivibespik":7,"Sitanuns":8,"Bespik dö sitanuns":9,"Samafomot":10,"Samafomotibespik":11,"Yuf":12,"Yufibespik":13,"Klad":14,"Kladibespik":15,"Xibaarukaay":-2,"Jagleel":-1,"Waxtaan":1,"Jëfandikukat":2,"Waxtaani jëfandikukat":3,"Wikipedia waxtaan":5,"Dencukaay":6,"Waxtaani dencukaay":7,"Waxtaani MediaWiki":9,"Royuwaay":10,"Waxtaani royuwaay":11,"Ndimbal":12,"Waxtaani ndimbal":13,"Wàll":14,"Waxtaani wàll":15,"ສື່":-2,"ພິເສດ":-1,"ສົນທະນາ":1,"ຜູ້ໃຊ້":2,"ສົນທະນາຂອງຜູ້ໃຊ້":3,"ວິກິພີເດຍ":4,"ສົນທະນາກ່ຽວກັບວິກິພີເດຍ":5,"ຮູບ":6,"ສົນທະນາກ່ຽວກັບຮູບ":7,"ມີເດຍວິກິ":8,"ສົນທະນາກ່ຽວກັບມີເດຍວິກິ":9,"ແມ່ແບບ":10,"ສົນທະນາກ່ຽວກັບແມ່ແບບ":11,"ຊ່ວຍເຫຼືອ":12,"ສົນທະນາກ່ຽວກັບຊ່ວຍເຫຼືອ":13,"ໝວດ":14,"ສົນທະນາກ່ຽວກັບໝວດ":15,"Miðill":-2,"Kerfissíða":-1,"Spjall":1,"Notandi":2,"Notandaspjall":3,"Wikipediaspjall":5,"Mynd":6,"Myndaspjall":7,"Melding":8,"Meldingarspjall":9,"Snið":10,"Sniðaspjall":11,"Hjálp":12,"Hjálparspjall":13,"Flokkur":14,"Flokkaspjall":15,"Gátt":100,"Gáttaspjall":101,"Suradnik":2,"Razgovor sa suradnikom":3,"Wikipedija":4,"Razgovor Wikipedija":5,"Predložak":10,"Razgovor o predlošku":11,"Dodatak":102,"Razgovor o dodatku":103,"Arbennig":-1,"Sgwrs":1,"Defnyddiwr":2,"Sgwrs Defnyddiwr":3,"Wicipedia":4,"Sgwrs Wicipedia":5,"Delwedd":6,"Sgwrs Delwedd":7,"MediaWici":8,"Sgwrs MediaWici":9,"Nodyn":10,"Sgwrs Nodyn":11,"Cymorth":12,"Sgwrs Cymorth":13,"Categori":14,"Sgwrs Categori":15,"Porth":100,"Sgwrs Porth":101,"Spesiaal":-1,"Bespreking":1,"Gebruiker":2,"Gebruikerbespreking":3,"Wikipediabespreking":5,"Lêer":6,"Lêerbespreking":7,"MediaWikibespreking":9,"Sjabloonbespreking":11,"Hulp":12,"Hulpbespreking":13,"Kategoriebespreking":15,"Portaal":100,"Portaalbespreking":101,"মিডিয়া":-2,"বিশেষ":-1,"য়্যারী":1,"আতাকুরা":2,"আতাকুরার য়্যারী":3,"উইকিপিডিয়া":4,"উইকিপিডিয়া য়্যারী":5,"ছবি":6,"ছবি য়্যারী":7,"মিডিয়াউইকি":8,"মিডিয়াউইকির য়্যারী":9,"মডেল":10,"মডেলর য়্যারী":11,"পাংলাক":12,"পাংলাকর য়্যারী":13,"থাক":14,"থাকর য়্যারী":15,"হমিলদুৱার":100,"হমিলদুৱার য়্যারী":101,"Pogovor":1,"Uporabnik":2,"Uporabniški pogovor":3,"Pogovor o Wikipediji":5,"Slika":6,"Pogovor o sliki":7,"Pogovor o MediaWiki":9,"Predloga":10,"Pogovor o predlogi":11,"Pogovor o kategoriji":15,"Pogovor o portalu":101,"Speçiale":-1,"Discûscion":1,"Utente":2,"Discûscioîn ûtente":3,"Discûscioîn Wikipedia":5,"Immaggine":6,"Discûscioîn immaggine":7,"Discûscioîn MediaWiki":9,"Discûscioîn template":11,"Agiûtto":12,"Discûscioîn agiûtto":13,"Categorîa":14,"Discûscioîn categorîa":15,"ميدياويكى":8,"نقاش ميدياويكى":9,"مناقشة بوابة":101,"Usator":2,"Usator Discussion":3,"Wikipedia Discussion":5,"File Discussion":7,"MediaWiki Discussion":9,"Avise":10,"Avise Discussion":11,"Auxilie":12,"Auxilie Discussion":13,"Categorie Discussion":15,"Xüsusi":-1,"Müzakirə":1,"İstifadəçi":2,"İstifadəçi müzakirəsi":3,"Vikipediya müzakirəsi":5,"Şəkil":6,"Şəkil müzakirəsi":7,"MediaWiki müzakirəsi":9,"Şablon müzakirəsi":11,"Kömək":12,"Kömək müzakirəsi":13,"Kateqoriya":14,"Kateqoriya müzakirəsi":15,"Portal müzakirəsi":101,"媒体文件":-2,"特殊":-1,"讨论":1,"用户":2,"用户讨论":3,"Wikipedia讨论":5,"文件":6,"文件讨论":7,"MediaWiki讨论":9,"模板":10,"模板讨论":11,"帮助讨论":13,"分类":14,"分类讨论":15,"Transwiki":100,"Transwiki talk":101,"Speciàle":-1,"Chiàcchiera":1,"Utente chiàcchiera":3,"Wikipedia chiàcchiera":5,"Fiùra":6,"Fiùra chiàcchiera":7,"MediaWiki chiàcchiera":9,"Modello":10,"Modello chiàcchiera":11,"Ajùto":12,"Ajùto chiàcchiera":13,"Categurìa":14,"Categurìa chiàcchiera":15,"Arbennek":-1,"Kescows":1,"Devnydhyer":2,"Kescows Devnydhyer":3,"Kescows Wikipedia":5,"Restren":6,"Kescows Restren":7,"Kescows MediaWiki":9,"Scantlyn":10,"Kescows Scantlyn":11,"Gweres":12,"Kescows Gweres":13,"Class":14,"Kescows Class":15,"Keskows Porth":101,"Отсасян":-1,"Сёрнитанiн":1,"Пырысь":2,"Пырыськӧд сёрнитанiн":3,"Википедия донъялӧм":5,"Файл донъялӧм":7,"МедиаВики":8,"МедиаВики донъялӧм":9,"Шаблон донъялӧм":11,"Къуллугъирал лажин":-1,"Ихтилат":1,"Гьуртту хьума":2,"Гьуртту хьуминнал ихтилат":3,"Википедиялиясса ихтилат":5,"Сурат":6,"Суратраясса ихтилат":7,"MediaWikiлиясса ихтилат":9,"Шаблондалиясса ихтилат":11,"Кумаг":12,"Кумаграясса ихтилат":13,"Категориялиясса ихтилат":15,"Specjalnô":-1,"Diskùsëjô":1,"Brëkòwnik":2,"Diskùsëjô brëkòwnika":3,"Wiki":-1,"Diskùsëjô Wiki":5,"Òbrôzk":6,"Diskùsëjô òbrôzków":7,"Diskùsëjô MediaWiki":9,"Szablóna":10,"Diskùsëjô Szablónë":11,"Pòmòc":12,"Diskùsëjô Pòmòcë":13,"Kategòrëjô":14,"Diskùsëjô Kategòrëji":15,"Википедия веревирд авун":5,"Срѣдьства":-2,"Нарочьна":-1,"Бєсѣда":1,"Польꙃєватєл҄ь":2,"Польꙃєватєлꙗ бєсѣда":3,"Википєдїꙗ":4,"Википєдїѩ бєсѣ́да":5,"Дѣло":6,"Дѣла бєсѣда":7,"MediaWiki бєсѣда":9,"Обраꙁьць":10,"Обраꙁьца бєсѣда":11,"Помощи бєсѣда":13,"Катигорїꙗ":14,"Катигорїѩ бєсѣда":15,"Istimewa":-1,"Pembicaraan":1,"Pembicaraan Pengguna":3,"Pembicaraan Wikipedia":5,"Berkas":6,"Pembicaraan Berkas":7,"Pembicaraan MediaWiki":9,"Pembicaraan Templat":11,"Pembicaraan Bantuan":13,"Pembicaraan Kategori":15,"Pembicaraan Portal":101,"Cumbersa":1,"Outelizador":2,"Cumbersa outelizador":3,"Biquipédia":4,"Biquipédia cumbersa":5,"Fexeiro":6,"Cumbersa fexeiro":7,"Biqui":8,"Cumbersa Biqui":9,"Cumbersa Modelo":11,"Cumbersa ajuda":13,"Catadorie":14,"Cumbersa catadorie":15,"Speciel":-1,"Bruger":2,"Brugerdiskussion":3,"Wikipedia-diskussion":5,"Fildiskussion":7,"MediaWiki-diskussion":9,"Skabelon":10,"Skabelondiskussion":11,"Hjælp-diskussion":13,"Kategoridiskussion":15,"Portaldiskussion":101,"Artikeldata":102,"Artikeldatadiskussion":103,"Midya":-2,"Natatangi":-1,"Usapan":1,"Tagagamit":2,"Usapang tagagamit":3,"Usapang Wikipedia":5,"Talaksan":6,"Usapang talaksan":7,"Usapang MediaWiki":9,"Suleras":10,"Usapang suleras":11,"Usapang tulong":13,"Kategorya":14,"Usapang kategorya":15,"Portada":100,"Usapang Portada":101,"Атайын":-1,"Баарлашуу":1,"Колдонуучу":2,"Колдонуучунун баарлашуулары":3,"Wikipedia баарлашуу":5,"Калып":10,"Жардам":12,"ذريعات":-2,"يوزر":2,"يوزر بحث":3,"Wikipedia بحث":5,"عڪس":6,"عڪس بحث":7,"ذريعات وڪي":8,"ذريعات وڪي بحث":9,"سانچو":10,"سنچو بحث":11,"مدد":12,"مدد بحث":13,"زمرو":14,"زمرو بحث":15,"Белхан":-1,"Дийцаре":1,"Декъашхо":2,"Декъашхон дийцаре":3,"Википедийа":4,"Википедийа дийцаре":5,"Хlум":6,"Хlуман дийцаре":7,"MediaWiki дийцаре":9,"Куцкеп":10,"Куцкеп дийцаре":11,"Гlо":12,"Гlон дийцаре":13,"Кадегар":14,"Кадегар дийцаре":15,"Ков":100,"Ков дийцаре":101,"میدیا":-2,"تایبەت":-1,"وتووێژ":1,"بەکارھێنەر":2,"لێدوانی بەکارھێنەر":3,"ویکیپیدیا":4,"لێدوانی ویکیپیدیا":5,"پەڕگە":6,"وتووێژی پەڕگە":7,"میدیاویکی":8,"وتووێژی میدیاویکی":9,"داڕێژە":10,"وتووێژی داڕێژە":11,"یارمەتی":12,"وتووێژی یارمەتی":13,"پۆل":14,"وتووێژی پۆل":15,"دەروازە":100,"لێدوانی دەروازە":101,"Doaimmat":-1,"Ságastallan":1,"Geavaheaddji":2,"Geavaheaddjeságastallan":3,"Wikipedia-ságastallan":5,"Fiila":6,"Fiilaságastallan":7,"MediaWiki-ságastallan":9,"Málle":10,"Málleságastallan":11,"Veahkki":12,"Veahkkeságastallan":13,"Kategoriija":14,"Kategoriijaságastallan":15,"Аһар":-2,"Көдлхнә":-1,"Меткән":1,"Демнч":2,"Демнчна туск меткән":3,"Wikipedia туск меткән":5,"Боомг":6,"Боомгин туск меткән":7,"MediaWiki туск меткән":9,"Кевләр":10,"Зуран туск меткән":11,"Цәәлһлһн":12,"Цәәлһлһин туск меткән":13,"Әәшл":14,"Әәшлин туск меткән":15,"Ispetziale":-1,"Cuntierra":1,"Usuàriu":2,"Cuntierra usuàriu":3,"Cuntierra Wikipedia":5,"Cuntierra file":7,"Cuntierra MediaWiki":9,"Cuntierra template":11,"Agiudu":12,"Cuntierra agiudu":13,"Cuntierra categoria":15,"Шпеціална":-1,"Діскузія":1,"Хоснователь":2,"Діскузія з хоснователём":3,"Діскузія ку Вікіпедії":5,"Діскузія ку файлу":7,"Діскузія ку MediaWiki":9,"Шаблона":10,"Діскузія ку шаблонї":11,"Поміч":12,"Діскузія ку помочі":13,"Катеґорія":14,"Діскузія ку катеґорії":15,"Diskusyón":1,"Usador":2,"Messaje de Usador":3,"Vikipedya":4,"Diskusyón de Vikipedya":5,"Diskusyón de Dosya":7,"MedyaViki":8,"Diskusyón de MedyaViki":9,"Xablón":10,"Diskusyón de Xablón":11,"Ayudo":12,"Diskusyón de Ayudo":13,"Katēggoría":14,"Diskusyón de Katēggoría":15,"Alat":-2,"Kusuih":-1,"Marit":1,"Ureuëng Nguy":2,"Marit Ureuëng Nguy":3,"Marit Wikipedia":5,"Beureukaih":6,"Marit Beureukaih":7,"AlatWiki":8,"Marit AlatWiki":9,"Pola":10,"Marit Pola":11,"Beunantu":12,"Marit Beunantu":13,"Kawan":14,"Marit Kawan":15,"Wikisource":4,"Wikisource talk":5,"Page":104,"Page talk":105,"Index":104,"Index talk":107,"Author":108,"Author talk":109,"Башка":-1,"Корхнема":1,"Тиись":2,"Тиись корхнема":3,"Википедиесь":4,"Википедиесь корхнема":5,"Няйф":6,"Няйф корхнема":7,"МедиаВики корхнема":9,"Шаблон корхнема":11,"Лезкс":12,"Лезкс корхнема":13,"Категорие":14,"Категорие корхнема":15,"Discutir":1,"Utilizaire":2,"Discussion Utilizaire":3,"Wikipèdia":4,"Discussion Wikipèdia":5,"Fichièr":6,"Discussion Fichièr":7,"Modèl":10,"Discussion Modèl":11,"Discussion Ajuda":13,"Discussion Categoria":15,"Discussion Portal":101,"Projècte":102,"Discussion Projècte":103,"Speciale":-1,"Diskutim":1,"Përdoruesi":2,"Përdoruesi diskutim":3,"Wikipedia diskutim":5,"Skeda":6,"Skeda diskutim":7,"MediaWiki diskutim":9,"Stampa":6,"Stampa diskutim":11,"Ndihmë":12,"Ndihmë diskutim":13,"Kategoria diskutim":15,"Portal diskutim":101,"Къуллукъ":-1,"Сюзюу":1,"Къошулуучу":2,"Къошулуучуну сюзюу":3,"Википедия сюзюу":5,"Файлны сюзюу":7,"MediaWiki-ни сюзюу":9,"Шаблонну сюзюу":11,"Болушлукъ":12,"Болушлукъну сюзюу":13,"Категорияны сюзюу":15,"Медиум":-2,"Специјална":-1,"Разговор со корисник":3,"Разговор за Википедија":5,"Податотека":6,"Разговор за податотека":7,"МедијаВики":8,"Разговор за МедијаВики":9,"Разговор за шаблон":11,"Помош":12,"Разговор за помош":13,"Разговор за категорија":15,"Разговор за Портал":101,"ᐅᐃᑭᐱᑎᐊ":4,"ᐅᐃᑭᐱᑎᐊ talk":5,"Aŭdvidaĵo":-2,"Specialaĵo":-1,"Diskuto":1,"Uzanto":2,"Uzanto-Diskuto":3,"Vikipedio":4,"Vikipedia diskuto":5,"Dosiero":6,"Dosiero-Diskuto":7,"MediaWiki-Diskuto":9,"Ŝablono":10,"Ŝablono-Diskuto":11,"Helpo-Diskuto":13,"Kategorio":14,"Kategorio-Diskuto":15,"Portalo":100,"Portala diskuto":101,"Projekto":102,"Projekta diskuto":103,"Diskussioun":1,"Benotzer":2,"Benotzer Diskussioun":3,"Wikipedia Diskussioun":5,"Fichier Diskussioun":7,"MediaWiki Diskussioun":9,"Schabloun":10,"Schabloun Diskussioun":11,"Hëllef":12,"Hëllef Diskussioun":13,"Kategorie Diskussioun":15,"Taybet":-1,"Nîqaş":1,"Bikarhêner":2,"Bikarhêner nîqaş":3,"Wîkîpediya":4,"Gotûbêja Wîkîpediyayê":5,"Wêne":6,"Wêne nîqaş":7,"MediaWiki nîqaş":9,"Şablon nîqaş":11,"Alîkarî":12,"Alîkarî nîqaş":13,"Kategorî":14,"Kategorî nîqaş":15,"Gotûbêja portalê":101,"मिडिया":-2,"चर्चा":1,"सदस्य चर्चा":3,"विकिपीडिया चर्चा":5,"चित्र चर्चा":7,"मिडियाविकी":8,"मिडियाविकी चर्चा":9,"साचा":10,"साचा चर्चा":11,"सहाय्य":12,"सहाय्य चर्चा":13,"वर्ग":14,"वर्ग चर्चा":15,"दालन":100,"दालन चर्चा":101,"Specialine":-1,"Lodu":1,"Kävutai":2,"Lodu kävutajas":3,"Vikipedii":4,"Paginad Vikipedii":5,"Lodu failas":7,"Lodu MediaWikiš":9,"Lodu šablonas":11,"Abu":12,"Lodu abus":13,"Kategorii":14,"Lodu kategorijas":15,"മീഡിയ":-2,"പ്രത്യേകം":-1,"സംവാദം":1,"ഉപയോക്താവ്":2,"ഉപയോക്താവിന്റെ സംവാദം":3,"വിക്കിപീഡിയ":4,"വിക്കിപീഡിയ സംവാദം":5,"പ്രമാണം":6,"പ്രമാണത്തിന്റെ സംവാദം":7,"മീഡിയവിക്കി":8,"മീഡിയവിക്കി സംവാദം":9,"ഫലകം":10,"ഫലകത്തിന്റെ സംവാദം":11,"സഹായം":12,"സഹായത്തിന്റെ സംവാദം":13,"വർഗ്ഗം":14,"വർഗ്ഗത്തിന്റെ സംവാദം":15,"കവാടം":100,"കവാടത്തിന്റെ സംവാദം":101,"Diskuschoon":1,"Bruker Diskuschoon":3,"Wikipedia Diskuschoon":5,"Bild":6,"Bild Diskuschoon":7,"MediaWiki Diskuschoon":9,"Vörlaag":10,"Vörlaag Diskuschoon":11,"Hülp":12,"Hülp Diskuschoon":13,"Kategorie Diskuschoon":15,"Portal Diskuschoon":101,"Utent":2,"Ciaciarade":3,"Discussion ant sla Wikipedia":5,"Figura":6,"Discussion dla figura":7,"Discussion dla MediaWiki":9,"Stamp":10,"Discussion dlë stamp":11,"Agiut":12,"Discussion ant sl'agiut":13,"Categorìa":14,"Discussion ant sla categorìa":15,"ހާއްޞަ":-1,"ޚިޔާލު":1,"މެމްބަރު":2,"ފައިލް":6,"ފައިލް ޚިޔާލު":7,"މީޑިއާވިކީ":8,"މީޑިޔާވިކި ޚިޔާލު":9,"ފަންވަތް":10,"ފަންވަތް ޚިޔާލު":11,"އެހީ":12,"އެހީ ޚިޔާލު":13,"ޤިސްމު":14,"ޤިސްމު ޚިޔާލު":15,"ނެރު":100,"ނެރު ޚ ޔާލު":101,"Espesiat":-1,"Kombetsasion":1,"Muna'sesetbi":2,"Kombetsasion ni muna'sesetbi":3,"Kombetsasion nu Wikipedia":5,"Litratu":6,"Kombetsasion ni litratu":7,"Kombetsasion ni ayudo":13,"Katigoria":14,"Kombetsasion ni katigoria":15,"Spèciâl":-1,"Utilisator":2,"Discussion utilisator":3,"Vouiquipèdia":4,"Discussion Vouiquipèdia":5,"Fichiér":6,"Discussion fichiér":7,"Modèlo":10,"Discussion modèlo":11,"Éde":12,"Discussion éde":13,"Catègorie":14,"Discussion catègorie":15,"Medija":-2,"Specialus":-1,"Aptarimas":1,"Naudotojas":2,"Naudotojo aptarimas":3,"Vikipedija":4,"Vikipedijos aptarimas":5,"Vaizdas":6,"Vaizdo aptarimas":7,"MediaWiki aptarimas":9,"Šablonas":10,"Šablono aptarimas":11,"Pagalba":12,"Pagalbos aptarimas":13,"Kategorijos aptarimas":15,"Vikisritis":100,"Vikisrities aptarimas":101,"Vikiprojektas":102,"Vikiprojekto aptarimas":103,"Sąrašas":104,"Sąrašo aptarimas":105,"Filpeikar":-2,"Brukar":2,"Brukardiskusjon":3,"Tema":100,"Temadiskusjon":101,"Specialis":-1,"Disputatio":1,"Usor":2,"Disputatio Usoris":3,"Vicipaedia":4,"Disputatio Vicipaediae":5,"Fasciculus":6,"Disputatio Fasciculi":7,"Disputatio MediaWiki":9,"Formula":10,"Disputatio Formulae":11,"Auxilium":12,"Disputatio Auxilii":13,"Disputatio Categoriae":15,"Porta":100,"Disputatio Portae":101,"Махсус":-1,"Бәхәс":1,"Кулланучы":2,"Кулланучы бәхәсе":3,"Википедия бәхәсе":5,"Файл бәхәсе":7,"МедиаВики бәхәсе":9,"Калып бәхәсе":11,"Ярдәм":12,"Ярдәм бәхәсе":13,"Төркем":14,"Төркем бәхәсе":15,"Портал бәхәсе":101,"Razgovor o Wikipedia":5,"Mediawiki razgovor":9,"ፋይል":-2,"ልዩ":-1,"ውይይት":1,"አባል":2,"አባል ውይይት":3,"ውክፔዲያ":4,"ውክፔዲያ ውይይት":5,"ስዕል":6,"ስዕል ውይይት":7,"መልዕክት":8,"መልዕክት ውይይት":9,"መለጠፊያ":10,"መለጠፊያ ውይይት":11,"እርዳታ":12,"እርዳታ ውይይት":13,"መደብ":14,"መደብ ውይይት":15,"በር":100,"በር ውይይት":101,"Buech":102,"Buech Diskussion":103,"Wort":104,"Wort Diskussion":105,"Text":106,"Text Diskussion":107,"Spruch":108,"Spruch Diskussion":109,"Nochricht":110,"Nochricht Diskussion":111,"Amóhùnmáwòrán":-2,"Pàtàkì":-1,"Ọ̀rọ̀":1,"Oníṣe":2,"Ọ̀rọ̀ oníṣe":3,"Ọ̀rọ̀ Wikipedia":5,"Fáìlì":6,"Ọ̀rọ̀ fáìlì":7,"Ọ̀rọ̀ mediaWiki":9,"Àdàkọ":10,"Ọ̀rọ̀ àdàkọ":11,"Ìrànlọ́wọ́":12,"Ọ̀rọ̀ ìrànlọ́wọ́":13,"Ẹ̀ka":14,"Ọ̀rọ̀ ẹ̀ka":15,"Èbúté":100,"Ọ̀rọ̀ èbúté":101,"Ìwé":108,"Ọ̀rọ̀ ìwé":109,"Ятарлă":-1,"Сӳтсе явасси":1,"Хутшăнакан":2,"Хутшăнаканăн канашлу страници":3,"Википеди сӳтсе явмалли":5,"Ӳкерчĕк":6,"Ӳкерчĕке сӳтсе явмалли":7,"MediaWiki сӳтсе явмалли":9,"Шаблона сӳтсе явмалли":11,"Пулăшу":12,"Пулăшăва сӳтсе явмалли":13,"Категорине сӳтсе явмалли":15,"ढाँचा":10,"ढाँचा वार्ता":11,"मद्दत":12,"मद्दत वार्ता":13,"Miðil":-2,"Serstakt":-1,"Kjak":1,"Brúkari":2,"Brúkarakjak":3,"Wikipedia-kjak":5,"Myndakjak":7,"MediaWiki-kjak":9,"Fyrimynd":10,"Fyrimyndakjak":11,"Hjálparkjak":13,"Bólkur":14,"Bólkakjak":15,"Szpecyjalna":-1,"Dyskusyjo":1,"Używacz":2,"Dyskusyjo używacza":3,"Wikipedyjo":4,"Dyskusyjo Wikipedyjo":5,"Plik":6,"Dyskusyjo plika":7,"Dyskusyjo MediaWiki":9,"Muster":10,"Dyskusyjo mustra":11,"Půmoc":12,"Dyskusyjo půmocy":13,"Kategoryjo":14,"Dyskusyjo kategoryji":15,"Specjalna":-1,"Dyskusja":1,"Wikipedysta":2,"Dyskusja wikipedysty":3,"Dyskusja Wikipedii":5,"Dyskusja pliku":7,"Dyskusja MediaWiki":9,"Szablon":10,"Dyskusja szablonu":11,"Dyskusja kategorii":15,"Dyskusja portalu":101,"Wikiprojekt":102,"Dyskusja wikiprojektu":103,"Overleg gebruiker":3,"Bestand":6,"Overleg bestand":7,"Overleg portaal":101,"Diskusija":1,"Lietotājs":2,"Lietotāja diskusija":3,"Vikipēdija":4,"Vikipēdijas diskusija":5,"Attēls":6,"Attēla diskusija":7,"MediaWiki diskusija":9,"Veidne":10,"Veidnes diskusija":11,"Palīdzība":12,"Palīdzības diskusija":13,"Kategorijas diskusija":15,"Portāls":100,"Portāla diskusija":101,"Vikiprojekts":102,"Vikiprojekta diskusija":103,"আলাপ":1,"ব্যবহারকারী":2,"ব্যবহারকারী আলাপ":3,"উইকিপিডিয়া আলোচনা":5,"চিত্র":6,"চিত্র আলোচনা":7,"মিডিয়াউইকি আলোচনা":9,"টেমপ্লেট":10,"টেমপ্লেট আলোচনা":11,"সাহায্য":12,"সাহায্য আলোচনা":13,"বিষয়শ্রেণী":14,"বিষয়শ্রেণী আলোচনা":15,"প্রবেশদ্বার":100,"প্রবেশদ্বার আলোচনা":101,"Wikimedia":4,"Wikimedia talk":5,"Mēdiatl":-2,"Nōncuahquīzqui":-1,"Tēixnāmiquiliztli":1,"Tlatequitiltilīlli":2,"Tlatequitiltilīlli tēixnāmiquiliztli":3,"Huiquipedia":4,"Huiquipedia tēixnāmiquiliztli":5,"Īxiptli":6,"Īxiptli tēixnāmiquiliztli":7,"Huiquimedia":8,"Huiquimedia tēixnāmiquiliztli":9,"Nemachiyōtīlli":10,"Nemachiyōtīlli tēixnāmiquiliztli":11,"Tēpalēhuiliztli":12,"Tēpalēhuiliztli tēixnāmiquiliztli":13,"Neneuhcāyōtl":14,"Neneuhcāyōtl tēixnāmiquiliztli":15,"Rakitra":-2,"Manokana":-1,"Dinika":1,"Mpikambana":2,"Dinika amin'ny mpikambana":3,"Dinika amin'ny Wikipedia":5,"Sary":6,"Dinika amin'ny sary":7,"Dinika amin'ny MediaWiki":9,"Endrika":10,"Dinika amin'ny endrika":11,"Fanoroana":12,"Dinika amin'ny fanoroana":13,"Sokajy":14,"Dinika amin'ny sokajy":15,"Medie":-2,"Extra":-1,"Klaaf":1,"Metmaacher":2,"Metmaacher Klaaf":3,"Wikipedia Klaaf":5,"Dateie Klaaf":7,"MediaWiki Klaaf":9,"Schablon":10,"Schablone Klaaf":11,"Hölp":12,"Hölp Klaaf":13,"Saachjrupp":14,"Saachjruppe Klaaf":15,"Xısusi":-1,"Werênayış":1,"Karber":2,"Karber mesac":3,"Wikipedia werênayış":5,"Dosya werênayış":7,"MediaWiki werênayış":9,"Şablon werênayış":11,"Desteg":12,"Desteg werênayış":13,"Kategori werênayış":15,"ಮೀಡಿಯ":-2,"ವಿಶೇಷ":-1,"ಚರ್ಚೆಪುಟ":1,"ಸದಸ್ಯ":2,"ಸದಸ್ಯರ ಚರ್ಚೆಪುಟ":3,"ವಿಕಿಪೀಡಿಯ":4,"ವಿಕಿಪೀಡಿಯ ಚರ್ಚೆ":5,"ಚಿತ್ರ":6,"ಚಿತ್ರ ಚರ್ಚೆಪುಟ":7,"ಮೀಡಿಯವಿಕಿ":8,"ಮೀಡೀಯವಿಕಿ ಚರ್ಚೆ":9,"ಟೆಂಪ್ಲೇಟು":10,"ಟೆಂಪ್ಲೇಟು ಚರ್ಚೆ":11,"ಸಹಾಯ":12,"ಸಹಾಯ ಚರ್ಚೆ":13,"ವರ್ಗ":14,"ವರ್ಗ ಚರ್ಚೆ":15,"మీడియా":-2,"ప్రత్యేక":-1,"చర్చ":1,"వాడుకరి":2,"వాడుకరి చర్చ":3,"వికీపీడియా":4,"వికీపీడియా చర్చ":5,"దస్త్రం":6,"దస్త్రంపై చర్చ":7,"మీడియావికీ":8,"మీడియావికీ చర్చ":9,"మూస":10,"మూస చర్చ":11,"సహాయం":12,"సహాయం చర్చ":13,"వర్గం":14,"వర్గం చర్చ":15,"వేదిక":100,"వేదిక చర్చ":101,"Вижа":-1,"Баҳс":1,"Корбар":2,"Баҳси корбар":3,"Википедиа":4,"Баҳси Википедиа":5,"Акс":6,"Баҳси акс":7,"Медиавики":8,"Баҳси медиавики":9,"Баҳси шаблон":11,"Роҳнамо":12,"Баҳси роҳнамо":13,"Гурӯҳ":14,"Баҳси гурӯҳ":15,"Баҳси портал":101,"Ýörite":-1,"Çekişme":1,"Ulanyjy":2,"Ulanyjy çekişme":3,"Wikipediýa":4,"Wikipediýa çekişme":5,"Faýl":6,"Faýl çekişme":7,"MediaWiki çekişme":9,"Şablon çekişme":11,"Ýardam":12,"Ýardam çekişme":13,"Kategoriýa":14,"Kategoriýa çekişme":15,"Амедиа":-2,"Цастәи":-1,"Ахцәажәара":1,"Алахәыла":2,"Алахәыла ахцәажәара":3,"Авикипедиа":4,"Авикипедиа ахцәажәара":5,"Афаил":6,"Афаил ахцәажәара":7,"Амедиавики":8,"Амедиавики ахцәажәара":9,"Ашаблон":10,"Ашаблон ахцәажәара":11,"Ацхыраара":12,"Ацхыраара ахцәажәара":13,"Акатегориа":14,"Акатегориа ахцәажәара":15,"Oerlis":1,"Meidogger":2,"Meidogger oerlis":3,"Wikipedy":4,"Wikipedy oerlis":5,"Ofbyld":6,"Ofbyld oerlis":7,"MediaWiki oerlis":9,"Berjocht":10,"Berjocht oerlis":11,"Hulp oerlis":13,"Kategory":14,"Kategory oerlis":15,"Astamiwa":-1,"Dhiskusi":1,"Panganggo":2,"Dhiskusi Panganggo":3,"Dhiskusi Wikipedia":5,"Gambar":6,"Dhiskusi Gambar":7,"Dhiskusi MediaWiki":9,"Cithakan":10,"Dhiskusi Cithakan":11,"Pitulung":12,"Dhiskusi Pitulung":13,"Dhiskusi Kategori":15,"Сæрмагонд":-1,"Тæрхон":1,"Архайæг":2,"Архайæджы ныхас":3,"Википедийы тæрхон":5,"Файлы тæрхон":7,"MediaWiki-йы тæрхон":9,"Шаблоны тæрхон":11,"Æххуыс":12,"Æххуысы тæрхон":13,"Категорийы тæрхон":15,"Мультымедыя":-2,"Адмысловае":-1,"Размовы":1,"Удзельнік":2,"Размовы з удзельнікам":3,"Вікіпедыя":4,"Размовы пра Вікіпедыя":5,"Выява":6,"Размовы пра выяву":7,"Размовы пра MediaWiki":9,"Размовы пра шаблон":11,"Даведка":12,"Размовы пра даведку":13,"Катэгорыя":14,"Размовы пра катэгорыю":15,"Партал":100,"Размовы пра партал":101,"Descusión":1,"Descusión usuario":3,"Descusión Wikipedia":5,"Imachen":6,"Descusión imachen":7,"Descusión MediaWiki":9,"Descusión plantilla":11,"Aduya":12,"Descusión aduya":13,"Descusión categoría":15,"Descusión Portal":101,"ვიკიპედია განხილვა":5,"პორტალი":100,"პორტალი განხილვა":101,"Тусгай":-1,"Хэлэлцүүлэг":1,"Хэрэглэгч":2,"Хэрэглэгчийн яриа":3,"Wikipedia-н хэлэлцүүлэг":5,"Файлын хэлэлцүүлэг":7,"МедиаВикигийн хэлэлцүүлэг":9,"Загвар":10,"Загварын хэлэлцүүлэг":11,"Тусламж":12,"Тусламжийн хэлэлцүүлэг":13,"Ангилал":14,"Ангиллын хэлэлцүүлэг":15,"Benutser":2,"Benutser Diskussion":3,"Bielde":6,"Bielde Diskussion":7,"Foarloage":10,"Foarloage Diskussion":11,"Hälpe":12,"Hälpe Diskussion":13,"Medja":-2,"Speċjali":-1,"Diskussjoni":1,"Diskussjoni utent":3,"Diskussjoni Wikipedija":5,"Diskussjoni stampa":7,"Diskussjoni MediaWiki":9,"Mudell":10,"Diskussjoni mudell":11,"Għajnuna":12,"Diskussjoni għajnuna":13,"Diskussjoni kategorija":15,"Diskussjoni portal":101,"Meanyn":-2,"Er lheh":-1,"Resooney":1,"Ymmydeyr":2,"Resooney ymmydeyr":3,"Resooney Wikipedia":5,"Coadan":6,"Resooney coadan":7,"Resooney MediaWiki":9,"Clowan":10,"Resooney clowan":11,"Cooney":12,"Resooney cooney":13,"Ronney":14,"Resooney ronney":15,"Spesyal":-1,"Taki":1,"Masyin":2,"Taki fu masyin":3,"Taki fu Wikipedia":5,"Gefre":6,"Taki fu gefre":7,"Taki fu MediaWiki":9,"Ankra":10,"Taki fu ankra":11,"Yepi":12,"Taki fu yepi":13,"Guru":14,"Taki fu guru":15,"Панель":-1,"Вераськон":1,"Викиавтор":2,"Викиавтор сярысь вераськон":3,"Wikipedia сярысь вераськон":5,"Суред":6,"Суред сярысь вераськон":7,"MediaWiki сярысь вераськон":9,"Шаблон сярысь вераськон":11,"Валэктон":12,"Валэктон сярысь вераськон":13,"Категория сярысь вераськон":15,"ۋاسىتە":-2,"ئالاھىدە":-1,"مۇنازىرە":1,"ئىشلەتكۈچى":2,"ئىشلەتكۈچى مۇنازىرىسى":3,"مۇنازىرىسىWikipedia":5,"ھۆججەت":6,"ھۆججەت مۇنازىرىسى":7,"MediaWiki مۇنازىرىسى":9,"قېلىپ":10,"قېلىپ مۇنازىرىسى":11,"ياردەم":12,"ياردەم مۇنازىرىسى":13,"تۈر":14,"تۈر مۇنازىرىسى":15,"ਮੀਡੀਆ":-2,"ਖਾਸ":-1,"ਚਰਚਾ":1,"ਮੈਂਬਰ":2,"ਮੈਂਬਰ ਚਰਚਾ":3,"ਵਿਕਿਪੀਡਿਆ":4,"ਵਿਕਿਪੀਡਿਆ ਚਰਚਾ":5,"ਤਸਵੀਰ":6,"ਤਸਵੀਰ ਚਰਚਾ":7,"ਮੀਡੀਆਵਿਕਿ":8,"ਮੀਡੀਆਵਿਕਿ ਚਰਚਾ":9,"ਨਮੂਨਾ":10,"ਨਮੂਨਾ ਚਰਚਾ":11,"ਮਦਦ":12,"ਮਦਦ ਚਰਚਾ":13,"ਸ਼੍ਰੇਣੀ":14,"ਸ਼੍ਰੇਣੀ ਚਰਚਾ":15,"Meadhan":-2,"Sònraichte":-1,"Deasbaireachd":1,"Cleachdaiche":2,"Deasbaireachd a' chleachdaiche":3,"Uicipeid":4,"An deasbaireachd aig Uicipeid":5,"Faidhle":6,"Deasbaireachd an fhaidhle":7,"Deasbaireachd MediaWiki":9,"Teamplaid":10,"Deasbaireachd na teamplaid":11,"Cobhair":12,"Deasbaireachd na cobharach":13,"Roinn-seòrsa":14,"Deasbaireachd na roinn-seòrsa":15,"દ્રશ્ય-શ્રાવ્ય (મિડિયા)":-2,"વિશેષ":-1,"ચર્ચા":1,"સભ્ય":2,"સભ્યની ચર્ચા":3,"વિકિપીડિયા":4,"વિકિપીડિયા ચર્ચા":5,"ચિત્ર":6,"ચિત્રની ચર્ચા":7,"મીડિયાવિકિ":8,"મીડિયાવિકિ ચર્ચા":9,"ઢાંચો":10,"ઢાંચાની ચર્ચા":11,"મદદ":12,"મદદની ચર્ચા":13,"શ્રેણી":14,"શ્રેણીની ચર્ચા":15,"Pinaurog":-1,"Hiruhimangraw":1,"Gumaramit":2,"Hiruhimangaw hiton gumaramit":3,"Hiruhimangraw hiton Wikipedia":5,"Paypay":6,"Hiruhimangraw hiton paypay":7,"MedyaWiki":8,"Hiruhimangraw hiton MedyaWiki":9,"Batakan":10,"Hiruhimangraw hiton batakan":11,"Bulig":12,"Hiruhimangaw hiton bulig":13,"Kaarangay":14,"Hiruhimangraw hiton kaarangay":15,"माध्यम":-2,"खँलाबँला":1,"छ्येलेमि":2,"छ्येलेमि खँलाबँला":3,"विकिपिडिया":4,"विकिपिडिया खँलाबँला":5,"किपा":6,"किपा खँलाबँला":7,"मिडियाविकि":8,"मिडियाविकि खँलाबँला":9,"ग्वाहालि":12,"ग्वाहालि खँलाबँला":13,"पुचः":14,"पुचः खँलाबँला":15,"दबू":100,"दबू खँलाबँला":101,"ମାଧ୍ୟମ":-2,"ବିଶେଷ":-1,"ଆଲୋଚନା":1,"ବ୍ୟବହାରକାରୀ":2,"ବ୍ୟବହାରକାରୀଙ୍କ ଆଲୋଚନା":3,"ଉଇକିପିଡ଼ିଆ":4,"ଉଇକିପିଡ଼ିଆ ଆଲୋଚନା":5,"ଫାଇଲ":6,"ଫାଇଲ ଆଲୋଚନା":7,"ମିଡ଼ିଆଉଇକି":8,"ମିଡ଼ିଆଉଇକି ଆଲୋଚନା":9,"ଛାଞ୍ଚ":10,"ଛାଞ୍ଚ ଆଲୋଚନା":11,"ସହଯୋଗ":12,"ସହଯୋଗ ଆଲୋଚନା":13,"ଶ୍ରେଣୀ":14,"ଶ୍ରେଣୀ ଆଲୋଚନା":15,"មេឌា":-2,"ពិសេស":-1,"ការពិភាក្សា":1,"អ្នកប្រើប្រាស់":2,"ការពិភាក្សារបស់អ្នកប្រើប្រាស់":3,"វិគីភីឌា":4,"ការពិភាក្សាអំពីវិគីភីឌា":5,"ឯកសារ":6,"ការពិភាក្សាអំពីឯកសារ":7,"មេឌាវិគី":8,"ការពិភាក្សាអំពីមេឌាវិគី":9,"ទំព័រគំរូ":10,"ការពិភាក្សាអំពីទំព័រគំរូ":11,"ជំនួយ":12,"ការពិភាក្សាអំពីជំនួយ":13,"ចំណាត់ថ្នាក់ក្រុម":14,"ការពិភាក្សាអំពីចំណាត់ថ្នាក់ក្រុម":15,"Mahsus":-1,"Muzakere":1,"Qullanıcı":2,"Qullanıcı muzakeresi":3,"Vikipediya muzakeresi":5,"Fayl":6,"Fayl muzakeresi":7,"MediaViki":8,"MediaViki muzakeresi":9,"Şablon muzakeresi":11,"Yardım muzakeresi":13,"Kategoriya muzakeresi":15,"Speciâl":-1,"Discussion utent":3,"Vichipedie":4,"Discussion Vichipedie":5,"Figure":6,"Discussion figure":7,"Model":10,"Discussion model":11,"Jutori":12,"Discussion jutori":13,"Discussion categorie":15,"Espesyal":-1,"Diskite":1,"Itilizatè":2,"Diskisyon Itilizatè":3,"Wikipedya":4,"Diskisyon Wikipedya":5,"Fichye":6,"Diskisyon Fichye":7,"Diskisyon MedyaWiki":9,"Diskisyon Modèl":11,"Èd":12,"Diskisyon Èd":13,"Diskisyon Kategori":15,"Discussione":1,"Discussioni utente":3,"Discussioni categoria":15,"Sapaq":-1,"Rimanakuy":1,"Ruraq":2,"Ruraq rimanakuy":3,"Wikipedia rimanakuy":5,"Rikcha":6,"Rikcha rimanakuy":7,"MediaWiki rimanakuy":9,"Plantilla rimanakuy":11,"Yanapa":12,"Yanapa rimanakuy":13,"Katiguriya":14,"Katiguriya rimanakuy":15,"Մեդիա":-2,"Սպասարկող":-1,"Քննարկում":1,"Մասնակից":2,"Մասնակցի քննարկում":3,"Վիքիպեդիա":4,"Վիքիպեդիայի քննարկում":5,"Պատկեր":6,"Պատկերի քննարկում":7,"MediaWiki քննարկում":9,"Կաղապար":10,"Կաղապարի քննարկում":11,"Օգնություն":12,"Օգնության քննարկում":13,"Կատեգորիա":14,"Կատեգորիայի քննարկում":15,"Պորտալ":100,"Պորտալի քննարկում":101,"Specioal":-1,"Discuusje":1,"Discuusje gebruker":3,"Discuusje Wikipedia":5,"Ofbeeldienge":6,"Discuusje ofbeeldienge":7,"Discuusje MediaWiki":9,"Patrôon":10,"Discuusje patrôon":11,"Discuusje ulpe":13,"Discuusje categorie":15,"Multimedia":-2,"Multimedia talk":101,"Arnawlı":-1,"Sa'wbet":1,"Paydalanıwshı":2,"Paydalanıwshı sa'wbeti":3,"Wikipedia sa'wbeti":5,"Su'wret":6,"Su'wret sa'wbeti":7,"MediaWiki sa'wbeti":9,"Shablon":10,"Shablon sa'wbeti":11,"Anıqlama":12,"Anıqlama sa'wbeti":13,"Kategoriya sa'wbeti":15,"Discussion Usator":3,"Discussion File":7,"Patrono":10,"Discussion Patrono":11,"Adjuta":12,"Discussion Adjuta":13,"Appendice":102,"Discussion Appendice":103,"מדיה":-2,"מיוחד":-1,"שיחה":1,"משתמש":2,"שיחת משתמש":3,"ויקיפדיה":4,"שיחת ויקיפדיה":5,"קובץ":6,"שיחת קובץ":7,"מדיה ויקי":8,"שיחת מדיה ויקי":9,"תבנית":10,"שיחת תבנית":11,"עזרה":12,"שיחת עזרה":13,"קטגוריה":14,"שיחת קטגוריה":15,"פורטל":100,"שיחת פורטל":101,"ספר":108,"שיחת ספר":109,"Husus":-1,"Obrolan":1,"Pamaké":2,"Obrolan pamaké":3,"Obrolan Wikipedia":5,"Obrolan gambar":7,"MédiaWiki":8,"Obrolan MédiaWiki":9,"Obrolan citakan":11,"Obrolan pitulung":13,"Obrolan kategori":15,"Obrolan portal":101,"Meedia":-2,"Eri":-1,"Arutelu":1,"Kasutaja":2,"Kasutaja arutelu":3,"Vikipeedia":4,"Vikipeedia arutelu":5,"Pilt":6,"Pildi arutelu":7,"MediaWiki arutelu":9,"Mall":10,"Malli arutelu":11,"Juhend":12,"Juhendi arutelu":13,"Kategooria":14,"Kategooria arutelu":15,"Portaali arutelu":101,"زریعہ":-2,"تبادلۂ خیال":1,"صارف":2,"تبادلۂ خیال صارف":3,"منصوبہ":4,"تبادلۂ خیال منصوبہ":5,"تصویر":6,"تبادلۂ خیال تصویر":7,"میڈیاوکی":8,"تبادلۂ خیال میڈیاوکی":9,"سانچہ":10,"تبادلۂ خیال سانچہ":11,"معاونت":12,"تبادلۂ خیال معاونت":13,"زمرہ":14,"تبادلۂ خیال زمرہ":15,"باب":100,"تبادلۂ خیال باب":101,"Donate":4,"Donate talk":5,"Аналлаах":-1,"Ырытыы":1,"Кыттааччы":2,"Кыттааччы ырытыыта":3,"Бикипиэдьийэ":4,"Бикипиэдьийэ ырытыыта":5,"Билэ":6,"Билэ ырытыыта":7,"Халыып":10,"Халыып ырытыыта":11,"Көмө":12,"Көмө ырытыыта":13,"Категория ырытыыта":15,"Specialnje":-1,"Wužiwar":2,"Diskusija z wužiwarjom":3,"Wikipedija diskusija":5,"Dataja":6,"Diskusija k dataji":7,"Předłoha":10,"Diskusija k předłoze":11,"Pomoc diskusija":13,"Diskusija ke kategoriji":15,"Immikkut":-1,"Oqallinneq":1,"Atuisoq":2,"Atuisup oqalliffia":3,"Wikipedia-p oqalliffia":5,"Fiileq":6,"Fiilip oqalliffia":7,"Mediawikip oqalliffia":9,"Ilisserut":10,"Ilisserummi oqallinneq":11,"Ikiuutit":12,"Ikiuutini oqallinneq":13,"Sumut atassuseq":14,"Sumut atassusermi oqallinneq":15,"Specialne":-1,"Wužywaŕ":2,"Diskusija wužywarja":3,"Diskusija wó dataji":7,"Pśedłoga":10,"Diskusija wó pśedłoze":11,"Diskusija wó pomocy":13,"Diskusija wó kategoriji":15,"Alderique":1,"Usuariu":2,"Usuariu alderique":3,"Uiquipedia":4,"Uiquipedia alderique":5,"Archivu":6,"Archivu alderique":7,"MediaWiki alderique":9,"Plantía":10,"Plantía alderique":11,"Aida":12,"Aida alderique":13,"Categoría alderique":15,"Meán":-2,"Speisialta":-1,"Plé":1,"Úsáideoir":2,"Plé úsáideora":3,"Vicipéid":4,"Plé Vicipéide":5,"Íomhá":6,"Plé íomhá":7,"Plé MediaWiki":9,"Teimpléad":10,"Plé teimpléid":11,"Cabhair":12,"Plé cabhrach":13,"Catagóir":14,"Plé catagóire":15,"Naaltsoos baa yáshtiʼ":1,"Choyoołʼįįhí":2,"Choyoołʼįįhí bichʼįʼ yáshtiʼ":3,"Wikiibíídiiya":4,"Wikiibíídiiya baa yáshtiʼ":5,"Eʼelyaaígíí":6,"Eʼelyaaígíí baa yáshtiʼ":7,"MediaWiki baa yáshtiʼ":9,"Bee álnééhí":10,"Bee álnééhí baa yáshtiʼ":11,"Anáʼálwoʼ":12,"Anáʼálwoʼ baa yáshtiʼ":13,"Tʼááłáhági átʼéego":14,"Tʼááłáhági átʼéego baa yáshtiʼ":15,"Dibar":-1,"Kaozeal":1,"Implijer":2,"Kaozeadenn Implijer":3,"Kaozeadenn Wikipedia":5,"Restr":6,"Kaozeadenn Restr":7,"Kaozeadenn MediaWiki":9,"Patrom":10,"Kaozeadenn Patrom":11,"Skoazell":12,"Kaozeadenn Skoazell":13,"Rummad":14,"Kaozeadenn Rummad":15,"Médiá":-2,"Špeciálne":-1,"Diskusia":1,"Redaktor":2,"Diskusia s redaktorom":3,"Diskusia k Wikipédii":5,"Súbor":6,"Diskusia k súboru":7,"Diskusia k MediaWiki":9,"Šablóna":10,"Diskusia k šablóne":11,"Diskusia k pomoci":13,"Diskusia ku kategórii":15,"Diskusia k portálu":101,"Discussiun":1,"Utilisader":2,"Utilisader discussiun":3,"Wikipedia discussiun":5,"Datoteca":6,"Datoteca discussiun":7,"MediaWiki discussiun":9,"Model discussiun":11,"Agid":12,"Agid discussiun":13,"Categoria discussiun":15,"Maxsus":-1,"Munozara":1,"Foydalanuvchi":2,"Foydalanuvchi munozarasi":3,"Vikipediya munozarasi":5,"Tasvir":6,"Tasvir munozarasi":7,"MediaWiki munozarasi":9,"Andoza":10,"Andoza munozarasi":11,"Yordam":12,"Yordam munozarasi":13,"Turkum":14,"Turkum munozarasi":15,"Uzalutno":-1,"Vakyarimata":1,"Jeno":2,"Jeno vakyarimata":3,"Vikipidiya":4,"Vikipidiyake vakyarimata":5,"Chitro":6,"Chitro vakyarimata":7,"MediyaViki":8,"MediyaViki vakyarimata":9,"Sikavno":10,"Sikavno vakyarimata":11,"Zhutipen":12,"Zhutipen vakyarimata":13,"Shopni":14,"Shopni vakyarimata":15,"মাধ্যম":-2,"বাৰ্তা":1,"সদস্য":2,"সদস্য বাৰ্তা":3,"ৱিকিপিডিয়া":4,"ৱিকিপিডিয়া বাৰ্তা":5,"চিত্ৰ":6,"চিত্ৰ বাৰ্তা":7,"মেডিয়াৱিকি":8,"মেডিয়াৱিকি বাৰ্তা":9,"সাঁচ":10,"সাঁচ বাৰ্তা":11,"সহায়":12,"সহায় বাৰ্তা":13,"শ্ৰেণী":14,"শ্ৰেণী বাৰ্তা":15,"ৱিকিচ'ৰা":100,"ৱিকিচ'ৰা আলোচনা":101,"Pāpaho":-2,"Papa nui":-1,"Kūkākūkā":1,"Mea hoʻohana":2,"Kūkākūkā o mea hoʻohana":3,"Kūkākūkā o Wikipikia":5,"Waihona":6,"Kūkākūkā o waihona":7,"Kūkākūkā o MediaWiki":9,"Anakuhi":10,"Kūkākūkā o anakuhi":11,"Kōkua":12,"Kūkākūkā o kōkua":13,"Māhele":14,"Kūkākūkā o māhele":15,"Башка тевень":-1,"Кортамо":1,"Теиця":2,"Теицянь кортамось":3,"Википедиясь":4,"Википедиясь кортамось":5,"Артовкс":6,"Артовксто кортамось":7,"MediaWiki-нь кортамось":9,"ЛопаПарцун":10,"ЛопаПарцундо кортамось":11,"Лезкстэ кортамось":13,"Категориядо кортамось":15,"رسنۍ":-2,"ځانګړی":-1,"خبرې اترې":1,"کارن":2,"د کارن خبرې اترې":3,"ويکيپېډيا":4,"د ويکيپېډيا خبرې اترې":5,"دوتنه":6,"د دوتنې خبرې اترې":7,"ميډياويکي":8,"د ميډياويکي خبرې اترې":9,"کينډۍ":10,"د کينډۍ خبرې اترې":11,"لارښود":12,"د لارښود خبرې اترې":13,"وېشنيزه":14,"د وېشنيزې خبرې اترې":15,"Таспа":-2,"Арнайы":-1,"Талқылау":1,"Қатысушы":2,"Қатысушы талқылауы":3,"Уикипедия талқылауы":5,"Сурет":6,"Сурет талқылауы":7,"МедиаУики":8,"МедиаУики талқылауы":9,"Үлгі":10,"Үлгі талқылауы":11,"Анықтама":12,"Анықтама талқылауы":13,"Санат":14,"Санат талқылауы":15,"Портал талқылауы":101,"Specala":-1,"Debato":1,"Uzanto Debato":3,"Wikipedio":4,"Wikipedio Debato":5,"Arkivo":6,"Arkivo Debato":7,"MediaWiki Debato":9,"Shablono":10,"Shablono Debato":11,"Helpo Debato":13,"Kategorio Debato":15,"ஊடகம்":-2,"சிறப்பு":-1,"பேச்சு":1,"பயனர்":2,"பயனர் பேச்சு":3,"விக்கிப்பீடியா":4,"விக்கிப்பீடியா பேச்சு":5,"படிமம்":6,"படிமப் பேச்சு":7,"மீடியாவிக்கி":8,"மீடியாவிக்கி பேச்சு":9,"வார்ப்புரு":10,"வார்ப்புரு பேச்சு":11,"உதவி":12,"உதவி பேச்சு":13,"பகுப்பு":14,"பகுப்பு பேச்சு":15,"வலைவாசல்":100,"வலைவாசல் பேச்சு":101,"Лӱмын ыштыме":-1,"Каҥашымаш":1,"Пайдаланыше":2,"Пайдаланышын каҥашымаш":3,"Википедий":4,"Википедийын каҥашымаш":5,"Файл шотышто каҥашымаш":7,"Кышкар":10,"Кышкар шотышто каҥашымаш":11,"Полшык":12,"Полшык шотышто каҥашымаш":13,"Категорий":14,"Категорий шотышто каҥашымаш":15,"Incubator":4,"Incubator talk":5,"Användare":2,"Användardiskussion":3,"Wikipediadiskussion":5,"Malldiskussion":11,"Hjälpdiskussion":13,"Syndrig":-1,"Gesprec":1,"Biliþ":6,"Biliþgesprec":7,"Bysen":10,"Bysengesprec":11,"Helpgesprec":13,"Flocc":14,"Floccgesprec":15,"Faili":-2,"Maalum":-1,"Majadiliano":1,"Mtumiaji":2,"Majadiliano ya mtumiaji":3,"Majadiliano ya Wikipedia":5,"Picha":6,"Majadiliano ya faili":7,"Majadiliano ya MediaWiki":9,"Kigezo":10,"Majadiliano ya kigezo":11,"Msaada":12,"Majadiliano ya msaada":13,"Jamii":14,"Majadiliano ya jamii":15,"Lango":100,"Majadiliano ya lango":101,"Discussion utente":3,"Discussion file":7,"Discussion modèl":11,"Ajuto":12,"Discussion ajuto":13,"Discussion categoria":15,"Portałe":100,"Discussion portałe":101,"Projeto":102,"Discussion projeto":103,"विसेस":-1,"सम्भासित":1,"अवयव":2,"अवयव सम्भासित":3,"Wikipedia सम्भासित":5,"पटिमा":6,"पटिमा सम्भासित":7,"मीडियाविकि सम्भासित":9,"पटिरूप":10,"पटिरूप सम्भासित":11,"अवस्सय":12,"अवस्सय सम्भासित":13,"विभाग":14,"विभाग सम्भासित":15,"Seite":102,"Seite Diskussion":103,"Index Diskussion":105,"Olay":1,"Paragamit":2,"Olay kan paragamit":3,"Olay sa Wikipedia":5,"Ladawan":6,"Olay sa ladawan":7,"Olay sa MediaWiki":9,"Plantilya":10,"Olay sa plantilya":11,"Tabang":12,"Olay sa tabang":13,"Olay sa kategorya":15,"Обсуждение Википедии":5,"Обсуждение портала":101,"Инкубатор":102,"Обсуждение Инкубатора":103,"Проект":104,"Обсуждение проекта":105,"Арбитраж":106,"Обсуждение арбитража":107,"Wikipedia discusión":5,"Portal Discusión":101,"Wikiproyecto":102,"Wikiproyecto Discusión":103,"Anexo Discusión":105,"Portale":100,"Discussioni portale":101,"Progetto":102,"Discussioni progetto":103,"Book":108,"Book talk":109}
@@ -0,0 +1,85 @@
1
+ require 'configliere' ; Settings.use :commandline
2
+ require 'gorillib'
3
+ require 'gorillib/data_munging'
4
+ require 'pry'
5
+ require 'rake'
6
+
7
+ BOOK_ROOT = (ENV['BOOK_CONTENTS'] || File.expand_path('..', File.dirname(__FILE__)))
8
+
9
+ Settings.define :mini, type: :boolean, default: false, description: "use sample data or full data?"
10
+ Settings.resolve!
11
+ Settings[:mini_slug] = Settings.mini ? "-sample" : ""
12
+
13
+ # dummy dependency to force a task. TASK FORCE DELTA GO
14
+ task :force
15
+
16
+ Pathname.register_paths(
17
+ book_root: BOOK_ROOT,
18
+ root: [:book_root],
19
+ code: [:book_root, 'code'],
20
+ data: [:book_root, 'data'],
21
+ work: [:book_root, 'tmp'],
22
+ )
23
+
24
+ require 'rake/name_space'
25
+ module ::Rake
26
+ class NameSpace
27
+ def name
28
+ @scope.join(':')
29
+ end
30
+
31
+ def direct_tasks
32
+ tasks.find_all{|task| task.name =~ /\A#{name}:\w+\z/ }
33
+ end
34
+ end
35
+ end
36
+
37
+ def step(target, options)
38
+ deps = [options[:after]].flatten.compact
39
+ Array.wrap(options[:invoke]).each{|task_name| Rake::Task[task_name].invoke }
40
+ desc(options[:doc]) if options[:doc]
41
+ task target => deps do
42
+ yield target if block_given?
43
+ end
44
+ target
45
+ end
46
+
47
+ def file_task(name, options={})
48
+ target = Pathname.of(name)
49
+ target_dir = File.dirname(target.to_s)
50
+ task(name => target)
51
+ #
52
+ directory(target_dir)
53
+ deps = [options[:after], target_dir].flatten.compact
54
+ file target => deps do
55
+ Array.wrap(options[:invoke]).each{|task_name| Rake::Task[task_name].invoke }
56
+ Log.info "Creating #{name} => #{target}"
57
+ yield target if block_given?
58
+ end
59
+ target
60
+ end
61
+
62
+ def create_file(name, options={})
63
+ file_task(name, options) do |target|
64
+ File.open(target, 'wb') do |target_file|
65
+ yield target_file
66
+ end
67
+ end
68
+ end
69
+
70
+ # * accumulates all symbol-named tasks that are direct children
71
+ #
72
+ # @example Will make task parse depending on 'parse:bob'
73
+ # chain('parse') do
74
+ # task('bob'){ ... }
75
+ # chain('nest'){ task('two_down') }
76
+ # end
77
+ #
78
+ def chain(name, doc=nil, &block)
79
+ desc(doc) if doc
80
+ task(name)
81
+ return unless block
82
+ ns = namespace(name, &block)
83
+ task(name => ns.direct_tasks)
84
+ ns
85
+ end
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env ruby
2
+ require 'wukong'
3
+ require 'gorillib/type/ip_address'
4
+ require 'gorillib/pathname'
5
+ require 'gorillib/model/serialization'
6
+ require 'gorillib/model/positional_fields'
7
+
8
+ Pathname.register_paths(
9
+ maxmind: '../../../data/server_logs/maxmind',
10
+ geolite_ip_blocks: [:maxmind, 'GeoLiteCity_20121002/GeoLiteCity-Blocks.csv'],
11
+ geolite_locations: [:maxmind, 'GeoLiteCity_20121002/GeoLiteCity-Location.csv'],
12
+ )
13
+
14
+ class IpGeo
15
+ include Gorillib::Model
16
+ include Gorillib::Model::PositionalFields
17
+ #
18
+ field :location_id, Integer
19
+ field :longitude, Float # note: longitude, latitude
20
+ field :latitude, Float
21
+ #
22
+ field :country_id, String, blankish: ["", nil, '""']
23
+ field :admin1_id, String, blankish: ["", nil, '""']
24
+ field :city, String, blankish: ["", nil, '""']
25
+ #
26
+ field :postal_code, String, blankish: ["", nil, '""']
27
+ field :metro_code, String, blankish: ["", nil, '""']
28
+ field :area_code, String, blankish: ["", nil, '""']
29
+ end
30
+
31
+ lines = 0
32
+ LOCATIONS = {}
33
+ locations_file = Pathname.of(:geolite_locations).open(encoding: "ISO-8859-1")
34
+ locations_file.readline; locations_file.readline
35
+ locations_file.
36
+ # readlines[0..1000].
37
+ each do |line|
38
+ location_id, country_id, admin1_id, city, postal_code, latitude, longitude, metro_code, area_code = line.chomp.gsub(/"/, '').split(',', 9)
39
+ LOCATIONS[location_id.to_i] = [ location_id.to_i, longitude.to_f, latitude.to_f, country_id, admin1_id, city, postal_code, metro_code, area_code ]
40
+ end
41
+
42
+ module IpCensus
43
+ class IpBlocksMapper < Wukong::Streamer::RecordStreamer
44
+
45
+ def initialize(*)
46
+ super
47
+ @last = IpNumeric.from_dotted('0.116.0.0')
48
+ end
49
+
50
+ def recordize line
51
+ beg_ip, end_ip, location_id = line.gsub(/\"/, '').split(",", 3)
52
+ [IpNumeric.new(Integer(beg_ip)), IpNumeric.new(Integer(end_ip)), Integer(location_id)]
53
+ end
54
+
55
+ # Use the regex to break line into fields
56
+ # Emit each record as flat line
57
+ def process(beg_ip, end_ip, location_id, &block)
58
+ emit_range(IpRange.new(@last, beg_ip), 0, &block) if @last != beg_ip.to_int
59
+ emit_range IpRange.new(beg_ip, end_ip), location_id, &block
60
+ @last = end_ip.to_i + 1
61
+ end
62
+
63
+ def emit_range(rng, location_id)
64
+ location = LOCATIONS[location_id]
65
+ warn "No location #{location_id.inspect}" unless location || (location_id == 0)
66
+ rng.bitness_blocks(16).each do |blk_min, blk_max|
67
+ # raise [blk_min, blk_max, blk_min.to_hex[0..-5], blk_max.to_hex[0..-5]].inspect if blk_min.to_hex[0..-3] != blk_max.to_hex[0..-3]
68
+ yield [
69
+ blk_min.to_hex[0..3],
70
+ blk_min.to_hex[4..-1],
71
+ blk_max.to_hex[4..-1],
72
+ blk_min.to_i,
73
+ blk_max.to_i,
74
+ location,
75
+ ].flatten
76
+ end
77
+ end
78
+
79
+ end
80
+ end
81
+
82
+ Wukong::Script.new(IpCensus::IpBlocksMapper, nil).run
@@ -0,0 +1,95 @@
1
+ # # Parse logs to TSV
2
+ #
3
+ # bzcat data/star_wars_kid.log.bz2 | head -n 100200 | tail -n 100 > data/swk-100.log
4
+ # cat data/swk-100.tsv
5
+ # cat data/swk-100.log | ./apache_log_parser.rb --map | wu-lign | cutc 150
6
+ # cat data/swk-100.log | ./apache_log_parser.rb --map > data/swk-100.tsv
7
+ # ./histograms.rb --run data/star_wars_kid.log data/star_wars_kid.tsv
8
+
9
+ # # Histograms
10
+ #
11
+ # cat data/swk-100.tsv | ./histograms.rb --map | wu-lign
12
+ # cat data/swk-hist-map.tsv | ./histograms.rb --reduce
13
+ # ./histograms.rb --run data/star_wars_kid.tsv data/star_wars_kid-pages_by_hour.tsv
14
+
15
+ # # Sessionize
16
+ #
17
+ # cat data/swk-100.tsv | ./histograms.rb --map | wu-lign
18
+ # cat data/swk-hist-map.tsv | ./histograms.rb --reduce
19
+ # ./histograms.rb --run data/star_wars_kid.tsv data/star_wars_kid-pages_by_hour.tsv
20
+
21
+ class Logline
22
+ include Gorillib::Model
23
+ include Gorillib::Model::PositionalFields
24
+
25
+ field :ip, String
26
+ field :junk1, String
27
+ field :junk2, String
28
+ #
29
+ field :visit_time, Time
30
+ field :http_method, String
31
+ field :path, String
32
+ field :protocol, String
33
+ field :response_code, Integer
34
+ field :size, Integer, blankish: ['', nil, '-']
35
+ field :referer, String
36
+ field :ua, String
37
+ field :cruft, String
38
+
39
+ #
40
+ # Regular expression to parse an apache log line.
41
+ #
42
+ # 83.240.154.3 - - [07/Jun/2008:20:37:11 +0000] "GET /faq HTTP/1.1" 200 569 "http://infochimps.org/search?query=CAC" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.16) Gecko/2009120208 Firefox/3.0.16"
43
+ #
44
+ LOG_RE = Regexp.compile(%r{\A
45
+ (\S+) # ip 83.240.154.3
46
+ \s(\S+) # j1 -
47
+ \s(\S+) # j2 -
48
+ \s\[(\d+/\w+/\d+ # date part [07/Jun/2008
49
+ :\d+:\d+:\d+ # time part :20:37:11
50
+ \s[\+\-]\S*)\] # timezone +0000]
51
+ \s\"(?:(\S+) # http_method "GET
52
+ \s(\S+) # path /faq
53
+ \s(\S+)|-)\" # protocol HTTP/1.1"
54
+ \s(\d+) # response_code 200
55
+ \s(\d+|-) # size 569
56
+ \s\"([^\"]*)\" # referer "http://infochimps.org/search?query=CAC"
57
+ \s\"([^\"]*)\" # ua "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.16) Gecko/2009120208 Firefox/3.0.16"
58
+ \z}x)
59
+ MONTHS = { 'Jan' => 1, 'Feb' => 2, 'Mar' => 3, 'Apr' => 4, 'May' => 5, 'Jun' => 6, 'Jul' => 7, 'Aug' => 8, 'Sep' => 9, 'Oct' => 10, 'Nov' => 11, 'Dec' => 12, }
60
+
61
+ def receive_visit_time(val)
62
+ if %r{(\d+)/(\w+)/(\d+):(\d+):(\d+):(\d+)\s([\+\-]\d\d)(\d\d)} === val
63
+ day, mo, yr, hour, min, sec, tz1, tz2 = [$1, $2, $3, $4, $5, $6, $7, $8]
64
+ val = Time.new(yr.to_i, MONTHS[mo], day.to_i,
65
+ hour.to_i, min.to_i, sec.to_i, "#{tz1}:#{tz2}")
66
+ end
67
+ super(val)
68
+ end
69
+
70
+ # Use the regex to break line into fields
71
+ # Emit each record as flat line
72
+ def self.parse(line)
73
+ m = LOG_RE.match(line.chomp) or return BadRecord.new('no match', line)
74
+ new(* m.captures)
75
+ end
76
+
77
+ FILE_EXT_RE = %r{\.[^/]+\z}
78
+ def page_type
79
+ file_ext = path[FILE_EXT_RE]
80
+ case file_ext
81
+ when nil then 'page'
82
+ when '.wmv' then 'video'
83
+ when '.html','.shtml' then 'page'
84
+ when '.css', '.js' then 'asset'
85
+ when '.png', '.gif', '.ico' then 'image'
86
+ when '.wmv' then 'image'
87
+ when '.pl','.asp','.jsp','.cgi' then 'page'
88
+ else 'other'
89
+ end
90
+ end
91
+
92
+ def day_hr
93
+ [visit_time.year, visit_time.month, visit_time.day, visit_time.hour].join
94
+ end
95
+ end
@@ -0,0 +1,66 @@
1
+ class Logline
2
+ include Gorillib::Model
3
+ include Gorillib::Model::PositionalFields
4
+
5
+ field :ip, String
6
+ field :junk1, String
7
+ field :junk2, String
8
+ #
9
+ field :visit_time, Time
10
+ field :http_method, String
11
+ field :path, String
12
+ field :protocol, String
13
+ field :response_code, Integer
14
+ field :size, Integer, blankish: ['', nil, '-']
15
+ field :referer, String
16
+ field :ua, String
17
+ field :cruft, String
18
+ end
19
+ class Logline
20
+ def day_hr
21
+ [visit_time.year, visit_time.month, visit_time.day, visit_time.hour].join
22
+ end
23
+ end
24
+ class Logline
25
+
26
+ MONTHS = { 'Jan' => 1, 'Feb' => 2, 'Mar' => 3, 'Apr' => 4, 'May' => 5, 'Jun' => 6, 'Jul' => 7, 'Aug' => 8, 'Sep' => 9, 'Oct' => 10, 'Nov' => 11, 'Dec' => 12, }
27
+
28
+ def receive_visit_time(val)
29
+ if %r{(\d+)/(\w+)/(\d+):(\d+):(\d+):(\d+)\s([\+\-]\d\d)(\d\d)} === val
30
+ day, mo, yr, hour, min, sec, tz1, tz2 = [$1, $2, $3, $4, $5, $6, $7, $8]
31
+ val = Time.new(yr.to_i, MONTHS[mo], day.to_i,
32
+ hour.to_i, min.to_i, sec.to_i, "#{tz1}:#{tz2}")
33
+ end
34
+ super(val)
35
+ end
36
+ end
37
+ class Logline
38
+ # Use the regex to break line into fields
39
+ # Emit each record as flat line
40
+ def self.parse(line)
41
+ m = LOG_RE.match(line.chomp) or return BadRecord.new('no match', line)
42
+ new(* m.captures)
43
+ end
44
+ end
45
+ class Logline
46
+ #
47
+ # Regular expression to parse an apache log line.
48
+ #
49
+ # 83.240.154.3 - - [07/Jun/2008:20:37:11 +0000] "GET /faq HTTP/1.1" 200 569 "http://infochimps.org/search?query=CAC" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.16) Gecko/2009120208 Firefox/3.0.16"
50
+ #
51
+ LOG_RE = Regexp.compile(%r{\A
52
+ (\S+) # ip 83.240.154.3
53
+ \s(\S+) # j1 -
54
+ \s(\S+) # j2 -
55
+ \s\[(\d+/\w+/\d+ # date part [07/Jun/2008
56
+ :\d+:\d+:\d+ # time part :20:37:11
57
+ \s[\+\-]\S*)\] # timezone +0000]
58
+ \s\"(?:(\S+) # http_method "GET
59
+ \s(\S+) # path /faq
60
+ \s(HTTP/[\d\.]+)|-)\" # protocol HTTP/1.1"
61
+ \s(\d+) # response_code 200
62
+ \s(\d+|-) # size 569
63
+ \s\"([^\"]*)\" # referer "http://infochimps.org/search?query=CAC"
64
+ \s\"([^\"]*)\" # ua "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.16) Gecko/2009120208 Firefox/3.0.16"
65
+ \z}x)
66
+ end
@@ -0,0 +1,48 @@
1
+
2
+
3
+ LOAD common_pages FROM 'data/common_pages' AS (ip:chararray, from_path:chararray, into_path:chararray);
4
+
5
+ --
6
+ -- Build adjacency list <A pr B,C,D> from edges (<A B>, <A C>, <A D>)
7
+ --
8
+
9
+ adj_list_j = GROUP common_pages BY from_path;
10
+ adj_list = FOREACH adj_list_j GENERATE
11
+ group AS from_path,
12
+ 1.0F AS pagerank:float,
13
+ common_pages.(dest) AS into_paths
14
+ ;
15
+ STORE adj_list INTO 'data/pagerank/pr_iter_00';
16
+
17
+
18
+ --
19
+ -- Iterate pagerank <A pr_00 B,C,D> to become <A pr_01 B,C,D>
20
+ --
21
+
22
+ -- find partial share: A.rank / A.into_paths.length
23
+ -- dispatch <into_path partial_share> to each page
24
+ sent_shares = FOREACH adj_list GENERATE
25
+ FLATTEN(into_paths) AS path,
26
+ (float)(pagerank / (float)SIZE(into_paths)) AS share:float;
27
+
28
+ -- dispatch <from_path into_paths> to yourself, so you have the links still around
29
+ sent_edges = FOREACH adj_list GENERATE
30
+ from_path AS path, into_paths;
31
+
32
+ -- assemble all the received shared, and the self-sent edge list;
33
+ rcvd_shares = COGROUP sent_edges BY path INNER, sent_shares BY path PARALLEL $PARALLEL;
34
+
35
+ -- calculate the new rank, and emit a record that looked just like the input.
36
+ next_iter = FOREACH rcvd_shares {
37
+ raw_rank = (float)SUM(sent_shares.share);
38
+ -- treat the case that a node has no in links
39
+ damped_rank = ((raw_rank IS NOT NULL AND raw_rank > 1.0e-12f) ? raw_rank*0.85f + 0.15f : 0.0f);
40
+ GENERATE
41
+ group AS from_path,
42
+ damped_rank AS rank,
43
+ FLATTEN(sent_edges.into_paths)
44
+ ; };
45
+
46
+ STORE next_iter INTO 'data/pagerank/pr_iter_01';
47
+
48
+
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.expand_path('../../lib', File.dirname(__FILE__))
3
+ require 'wukong/script'
4
+ require_relative './logline'
5
+
6
+ class ApacheLogParser < Wukong::Streamer::LineStreamer
7
+ # create a Logline object from each record and serialize it flat to disk
8
+ def process line
9
+ yield Logline.parse(line)
10
+ end
11
+ end
12
+
13
+ Wukong.run( ApacheLogParser )
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.expand_path('../../lib', File.dirname(__FILE__))
3
+ require 'wukong/script'
4
+ require_relative './logline'
5
+
6
+ # cat data/swk-100.tsv | ./histograms.rb --map | sort > data/swk-hist-map.tsv
7
+ # cat data/swk-hist-map.tsv | ./histograms.rb --reduce > data/swk-hist.tsv
8
+
9
+ class HistogramsMapper < Wukong::Streamer::ModelStreamer
10
+ self.model_klass = Logline
11
+ def process visit
12
+ yield [visit.path, visit.day_hr]
13
+ end
14
+ end
15
+
16
+ class HistogramsReducer < Wukong::Streamer::Reducer
17
+ def get_key path, day_hr
18
+ [path, day_hr]
19
+ end
20
+ def start!(*args)
21
+ @count = 0
22
+ super
23
+ end
24
+ def accumulate path, day_hr
25
+ @count += 1
26
+ end
27
+ def finalize
28
+ yield [key, @count]
29
+ end
30
+ end
31
+
32
+ # Wukong.run( HistogramsMapper )
33
+ Wukong.run( HistogramsMapper, HistogramsReducer, :sort_fields => 3 )
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.expand_path('../../lib', File.dirname(__FILE__))
3
+ require 'wukong/script'
4
+ require_relative './logline'
5
+
6
+ class HistogramsMapper < Wukong::Streamer::ModelStreamer
7
+ self.model_klass = Logline
8
+ def process visit
9
+ yield [visit.path, visit.day_hr]
10
+ end
11
+ end
12
+
13
+ # Wukong.run( HistogramsMapper )
14
+ Wukong.run( HistogramsMapper )