Çevrimdışı (offline) Wikipedia Tarayıcısı
Her zaman internet erişiminiz olmuyorsa, veya seyahatlerde yavaş kalıyorsa Wikipedia’yı bilgisayarınıza indirip kullanabilirsiniz. Temel avantajları şunlar:
- Çok hızlı arama
- Anahtar sözcük tabanlı arama
- Arama birden fazla madde ile sonuçlanıyor, arasından seçebilirsiniz.
- Matematik için LaTEX tabanlı veriler.
- Sabit disk alanı en düşük seviyede, orijinal .bz2 dosyası (parçalara bölünmüş) artı Xapian üzerinden indeks.
- MySQL ile karşılaştırıldığında çok hızlı kurulum.
Gerekenler:
Sayfalar ve maddeler dosyası; Şu an 2.9 Gb byüklüğünde ve buradan indirilebilir.
Bu dosya büyük bir XML dosyasından başka bir şey değil. SAX parser ile ayrıştırmak çocuk oyuncağı. “title” ve “text” elementlerine dikkat ediyoruz. Komut: bash$ bzcat enwiki-20070802-pages-articles.xml.bz2 | head -10000 | \
grep -A 100 '
Ayrıştırmayı istediğimiz veriyi gösteriyor:
12
149030244
2007-08-03T23:24:05Z
Jacob Haller
164072
/* Four monopolies */
{{dablink|"Anarchist" redirects here. For the
comic book character, see [[Anarchist (comics)]].}} {{toolong}} {{disputed}}
{{Anarchism}} '''Anarchism''' is a [[political philosophy]] or group of
philosophies
/ && print $1.”\n”;’
done | ../quickstartindex
Xapian ile indeksleme işlemi, CPU gücünüze göre değişik vakitlerde gerçekleşebilir. Pentium4 3GHz ile 5 saat civarında sürmüş.
Xapian ile indekseleme biz “hızlı arama” örnek uygulaması sağladı. Bunu yapabiliriz:
bash$ ./quickstartsearch db/ greece
99% [rec00124enwiki-20070802-pages-articles.xml.bz2:Greece]
72% [rec00137enwiki-20070802-pages-articles.xml.bz2:Hellenic Greece]
72% [rec00465enwiki-20070802-pages-articles.xml.bz2:Argos, Greece]
72% [rec00468enwiki-20070802-pages-articles.xml.bz2:Marathon, Greece]
72% [rec00524enwiki-20070802-pages-articles.xml.bz2:Athens, Greece]
72% [rec00583enwiki-20070802-pages-articles.xml.bz2:Thebes, Greece]
...
Wiki’yi HTML formatında görüntülemek için ise woc.fslab.de nin yarattığı ayrıştırıcıyı kullanabiliriz. Onların kodu:
bash$ svn co http://fslab.de/svn/wpofflineclient/trunk/mediawiki_sa/ mediawiki_sa
Test:
bash$ cd mediawiki_sa
bash$ php5 testparser.php bonsai.wikimarkup > bonsai.html
Şimdi tüm yaptıklarımızı birleştiriyoruz, PErl veya Python veya benzeri ile olabilir. ÖRnek olarak Perl ile yapılmış bir script:
bash$ ./mywiki.pl
Usage: ./mywiki.pl keyword1 ...
bash$ ./mywiki.pl greece
0: (abort)
1: (99%) Greece
2: (72%) Hellenic Greece
3: (72%) Argos, Greece
4: (72%) Marathon, Greece
5: (72%) Athens, Greece
...
Select a number: 2
(firefox starts up, showing the generated HTML file)
Sonuç olarak gerekli geliştirici araçlarını (Python, Perl, Php, xapian ve django gibi) sağladıktan sonra, bu dosyayı indirmek yetecektir.
Gerçekten güzel bir paylaşım. Teşekkürler…