Sharing Membuat Rancangan Islamic Search Engine

Pada kelas seminar di semester kemarin saya mencoba mengusulkan sebuah ide untuk implementasi, yaitu membangun sebuah search engine yg authentic untuk islam. Intinya saya ingin mencoba menerapkan konsep-konsep di dalam pembuatan search engine untuk pengetahuan-pengetahuan ilmu islam. Melihat islam masih berkembang di Indonesia, tapi pengetahuan ummat Islam di Indonesia masih sangat jauh terhadap ilmu islam sendiri, saya sangat yakin bahwa dibutuhkan sebuah alat bantu untuk ummat islam di Indonesia supaya dengan mudah menuntut ilmu agama.

Pengalaman semester yang lalu dalam mencari paper mengenai information retrieval terutama untuk qur’an, hadith, dan pengetahuan islam lain, saya merasa kesulitan karena masih sedikit sekali peneliti ilmu komputer yang memiliki fokus untuk ke arah islam related content. Saya hanya menemukan beberapa paper yang berhubungan. Paper pada tahun 2010 oleh Othman, mengusulkan sebuah framework untuk information retrieval di sana intinya adalah semua sumber ilmu islam harus tercakup dalam sebuah search engine islam, termasuk Qur’an, Hadist, Tafsir, hingga fatwa ulama melalui artikel-artikel yang diturunkan dari Qur’an dan Hadith. Paper ini sangat relevan dengan apa yang saya ingin bangun.

Singkat cerita, saya sangat tertarik ingin membangun sebuah search engine from scratch. Namun, pada kelas seminar kemarin dosen pembimbing saya, Pak Edi Winarko, menyarankan untuk menggunakan library maupun tools yang sudah ada. Akhirnya saya merancang arsitektur sistem secara keseluruhan, kemudian mencari beberapa komponen yang menurut saya pas untuk diterapkan. Saya mengusulkan untuk membangun search engine yang dapat mencari dari Qur’an, Hadits, artikel islam, maupun video kajian dari youtube yang sesuai dengan kata kunci yang dimasukkan.

Data Acquisition

Data-data Al-Qur’an saya dapatkan dari Tanzil.net yang digunakan di sangat banyak paper ilmiah sebelum-sebelumnya yang menggunakan dataset Al-Qur’an untuk dikaji. Dari situs tersebut tersedia tulisan arab qur’an maupun terjemahan dari berbagai bahasa. Saya mengambil data tulisan arab dan terjemahan bahasa Indonesia dari Kemenag RI yang tersedia di situs tersebut. Untuk hadith, saya belum menemukan data yang benar-benar valid untuk itu, sehingga saya ragu untuk mengunduh data-datanya. Untuk itu, pada implementasi sistem yang saya buat semester lalu, saya tidak sempat menambahkan fitur pencarian terhadap hadist.

Berbeda dengan data Qur’an yang sudah tersedia, data-data artikel islam di web dan video dari youtube diakuisisi dengan menggunakan bot. Web crawler perlu didesain untuk mendapatkan konten-konten dari artikel-artikel maupun video-video kajian yang ada di Youtube. Untuk pembuatan bot / web crawler / spider ini, saya menggunakan framework web crawler yang ditulis dengan bahasa python, yaitu Scrapy. Scrapy telah menyediakan banyak fitur yang sangat komplit untuk memungkinkan kita membuat sebuah crawler dengan rancangan kita sendiri. Dari artikel-artikel islam ini saya mengekstraksi judul, konten artikel, kategori, dan pengarang. Kemudian untuk video-video kajian yang ada di Youtube, saya mengektraksi deskripsi dan judul video untuk kemudian dimasukkan ke tahap indexing.

Rancangan Sistem

Pada artikel ini saya ingin menunjukkan rancangan sistem yang sebelumnya saya buat. Pada artikel ini saya hanya ingin membagikan pengalaman saya untuk merancang sistem ini, jadi saya berharap terdapat diskusi mengenai apapun ide atau rancangan yang saya buat dari pembaca yang mungkin memiliki solusi yang lebih baik. Berikut adalah gambaran rancangan sistem yang muncul begitu saja di otak saya.

Jika dilihat dari rancangan sebuah search engine, menurut saya ada 3 komponen penting untuk membuat search engine dari awal, yaitu : Crawler, Indexer, dan Searcher.  Dari gambaran diatas, crawler digunakan untuk mengunjungi berbagai data di web yang saling terhubung. Seperti yang saya sebutkan di atas, crawler ini saya implementasikan menggunakan Scrapy.

Kemudian untuk Indexer dan Searcher ini awalnya saya ingin membangun dari awal menggunakan Whoosh, sebuah library indexing python yang mengadaptasi kode dari Lucene, library indexing berbahasa Java. Namun, karena waktu itu masa semester sudah pendek, saya memutuskan untuk menggunakan Elastic Search, yang merupakan tools indexing dan searching yang ditulis diatas Lucene dimana Elastic Seach ini merupakan sistem terdistribusi. Elastic Search membungkus produknya untuk menghilangkan konsep yang sangat rumit dibalik sistem terdistribusinya dengan menggunakan RESTFULL API untuk komunikasi dengan Elastic Search. Hal ini sangat memudahkan para developer dikarenakan RESTFULL API yang indah dan simple menurut saya untuk komunikasi antar sistem.

Di keseluruhan sistem, saya lebih memilih untuk menggunakan bahasa pemrograman Python dikarenakan kesederhanaan sintaks dan readibilitas yang tinggi. Walaupun performa memang bisa dikatakan jauh daripada Java, menurut saya untuk R&D semacam ini patut digunakan karena kita bisa lebih fokus pada apa yang ingin kita bangun.

Inti dari rancangan diatas sebenarnya saya hanya membuat masing-masing indexing untuk masing-masing data dari Terjemahan Al-Qur’an, artikel islam, maupun video. Kemudian pada komponen Searcher, ketika pengguna memasukkan sebuah query akan dicari ke masing-masing index, kemudian dari masing-masing index tersebut langsung dimunculkan dalam bentuk tab-tab untuk melihat hasil pencarian dari terjemahan qur’an, artikel, maupun video.

Hasilnya

Rancangan ini saya rasa masih belum pas untuk membuat search engine yang otentik untuk pengetahuan islam. Karena pengetahuan islam sangat hierarchical tingkat kebenaran sumbernya. Dimulai dari Al-Qur’an sebagai sumber pengetahuan yang paling otentik, kemudian hadits, dan selanjutnya adalah sumber-sumber pengetahuan yang diturunkan dari qur’an maupun hadist. Dan juga bila kita pahami, bahwa tidak semua pengetahuan islam tentang suatu topik tertentu, disebutkan secara eksplisit dalam ayat Al-Qur’an. Terkadang memerlukan pemahaman lebih jauh dengan penjelasan-penjelasan dari tafsir, hadist-hadist, dll. Menurut saya pendekatan keyword based yang dilakukan pada rancangan ini, masih belum cukup untuk membangun search engine islam yang otentik. Maka dari itu, perlu adanya pendekatan dengan linking data antara berbagai sumber pengetahuan Islam sehingga pendekatan dalam pencariannya dapat diperoleh secara semantic.

Oleh karena itu, yang sedang saya kerjakan saat ini adalah menghubungkan sebanyak-banyaknya sumber pengetahuan-pengetahuan  islam ini sehingga nantinya dapat digunakan untuk menjadi dasar dalam pembuatan semantic search engine untuk ke depannya yang menurut intuisi saya akan menghasilkan hasil pencarian yang lebih relevan.

Berikut saya bagikan juga presentasi kelas seminar saya pada semester lalu. Semoga bermanfaat untuk pembaca dan memberikan wawasan mengenai urgensi berbondong-bondong untuk melakukan research pada bidang ini. Dengan berkembangnya teknologi, ummat islam harus memanfaatkannya dengan baik sebagai alat yang bisa menyebarkan keindahan islam di alam dunia ini.

[iframe src=”//www.slideshare.net/slideshow/embed_code/key/eZDxhal58gyVTy” width=”595″ height=”485″  frameborder=”0″ marginwidth=”0″ marginheight=”0″ scrolling=”no” style=”border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;” allowfullscreen]

Leave a comment

Your email address will not be published.