Knowledge base sistem pakar
Secara umum, basis pengetahuan (knowledge base) adalah suatu bentuk basis data tertentu yang digunakan dalam manajemen pengetahuan (knowledge management). Basis pengetahuan berperan dalam proses mengumpulkan, mengorganisasikan, maupun mendapatkan kembali suatu pengetahuan (knowledge).
Dalam sistem pakar (expert system),
basis pengetahuan merupakan satu komponen yang sangat penting. Basis
pengetahuan menyimpan semua pengetahuan yang dimiliki oleh pakar yang
berkompeten dalam bidang yang berkaitan. Basis pengetahuan adalah dasar
pengambilan keputusan dalam suatu sistem pakar, di mana pengambilan
keputusan ini berkaitan dengan proses untuk mendapatkan kembali
pengetahuan yang sebelumnya telah dikumpulkan dan disimpan.
Tulisan ini membahas mengenai basis
pengetahuan dalam kaitannya dengan sistem pakar, serta hal-hal lain yang
berkaitan dengan basis pengetahuan.
B. Isi
1. Pengetahuan
Sebelum kita mulai membahas mengenai
basis pengetahuan, maka terlebih dulu akan kita tinjau mengenai
pengetahuan dan semua hal yang berkaitan dengannya. Menurut Davenport
dan Prusak (1998), ada perbedaan pengertian mengenai data, informasi,
dan pengetahuan.
1.1. Data
Data adalah suatu kumpulan fakta-fakta
diskrit yang obyektif mengenai suatu kejadian[1]. Dalam contoh yang
diberikan oleh Davenport dan Prusak, data merupakan gambaran dari
transaksi yang dilakukan seseorang (misalnya di pompa bensin). Data
berkaitan dengan berapa uang yang dibayarkan dan berapa liter bensin
yang diberikan, namun tidak berlaku lebih jauh lagi. Data tidak dapat
menggambarkan bagaimana kualitas pompa bensin tersebut dan kapan si
pelanggan tersebut akan kembali ke sana.
1.2. Informasi
Sementara itu, informasi adalah hasil
dari pengolahan data. Informasi adalah data yang membuat suatu
perbedaan[2], di mana tujuan informasi adalah untuk mengubah pandangan
seseorang atau membuatnya menjadi berbeda (dibandingkan sebelum
mendapatkan informasi). Menurut Peter Drucker, informasi memiliki makna (meaning) yang ditimbulkan oleh relevansi dan tujuan yang diberikan oleh penciptanya.
1.3. Pengetahuan
Pengetahuan merupakan bentuk lebih lanjut
dari informasi. Pengetahuan merupakan campuran yang bebas antara
informasi konstekstual, nilai-nilai, dan pengalaman yang telah
terekspresikan, serta pemahaman pakar, yang memberikan suatu kerangka
kerja untuk mengevaluasi dan memasukkan informasi dan
pengalaman-pengalaman baru[3].
Ada beberapa ciri-ciri pengetahuan
(menurut buku yang ditulis Von Krogh, Ichiyo, serta Nonaka 2000). Yang
pertama, pengetahuan merupakan kepercayaan yang dibenarkan (justified true believe).
Seseorang membenarkan kepercayaannya berdasarkan pada observasinya
terhadap dunia, di mana ia menciptakan suatu pemahaman mengenai situasi
baru dengan berpegang pada kepercayaan yang telah dibenarkan tersebut.
Dengan demikian, kebenaran lebih merupakan konstruksi akan kenyataan,
dan bukannya sesuatu yang benar secara abstrak.
Ciri yang kedua pada pengetahuan adalah sifatnya yang eksplisit sekaligus juga terbatinkan (tacit).
Sementara beberapa pengetahuan bersifat eksplisit dan mudah
digambarkan, diformulasikan, maupun diekspresikan; ada pula
pengetahuan-pengetahuan lain yang berkaitan dengan perasaan,
keterampilan dan bentuk bahasa utuh, persepsi pribadi, pengalaman fisik,
petunjuk praktis (rule of thumb) dan institusi. Pengetahuan-pengetahuan ini sulit sekali untuk disampaikan kepada pihak lain.
Yang ketiga, penciptaan pengetahuan
secara efektif bergantung pada konteks yang memungkinkan terjadinya
penciptaan tersebut, yaitu ruang bersama yang dapat memicu
hubungan-hubungan yang muncul. Dan yang terakhir, penciptaan pengetahuan
melibatkan lima langkah utama. Kelima langkah itu adalah:
- Berbagi pengetahuan terbatinkan
- Menciptakan konsep
- Membenarkan konsep
- Membangun prototip (prototype)
- Melakukan penyebaran pengetahuan di berbagai fungsi dan tingkat di organisasi.
Hubungan antara data, informasi, dan pengetahuan dapat dilihat pada gambar berikut.
Gambar 1. Data, Informasi, dan Pengetahuan.
2. Basis Pengetahuan
Menurut Gondran (1986) dalam Utami
(2002), basis pengetahuan merupakan representasi dari seorang pakar,
yang kemudian dapat dimasukkan kedalam bahasa pemrograman khusus untuk
kecerdasan buatan (misalnya PROLOG atau LISP) atau shell sistem pakar
(misalnya EXSYS, PC-PLUS, CRYSTAL, dsb.)
Basis pengetahuan berisi
pengetahuan-pengetahuan pakar berupa fakta-fakta, konsep, aturan,
prosedur, dan hubungan di antaranya, yang telah direpresentasikan dalam
bentuk yang dimengerti oleh sistem. Basis pengetahuan dibutuhkan untuk
memahami, memformulasikan, dan memecahkan masalah yang dihadapi oleh
sistem, di sini basis pengetahuan berfungsi sebagai sumber referensi
untuk mengambil suatu tindakan. Semakin banyak pengetahuan yang dimiliki
oleh suatu basis pengetahuan, maka sistem tersebut akan semakin
mendekati sifat “cerdas”, dengan kata lain kemampuan sistem akan semakin
mendekati kemampuan pakar.
Gambar 2. Basis Pengetahuan sebagai salah satu komponen Sistem Pakar.
Feigenbaum (1977) menyatakan bahwa
kesuksesan dari suatu sistem pakar tidaklah bergantung pada kecanggihan
strategi penalaran ataupun inferensinya, namun pada jumlah informasi
yang dikandungnya mengenai bagaimana simbol-simbol diinterrelasikan,
yaitu jumlah pengetahuan yang dimilikinya[4]. Prinsip ini adalah prinsip
pengetahuan (knowledge principle), yang merupakan perluasan dari hipotesis simbol fisik (physical symbol hypothesis)
dari Newell dan Simon (1981). Hipotesis simbol fisik menganggap bahwa
pengetahuan terdiri dari simbol-simbol realitas dan relasi antara
simbol-simbol ini, serta bahwa inteligensi adalah manipulasi logis yang
sesuai terhadap simbol-simbol dan relasinya[5].
Basis pengetahuan menyimpan pengetahuan
yang terdiri dari dua elemen dasar. Elemen dasar pertama adalah fakta,
yang dalam hal ini merupakan situasi, kondisi, dan kenyataan dari
permasalahan, serta juga teori dalam bidang yang berkaitan serta
informasi dari obyek. Yang kedua adalah spesial heuristik yang merupakan
informasi mengenai cara untuk membangkitkan fakta baru dari fakta yang
sudah diketahui. Dalam sistem berbasis-aturan (rule-based system), elemen kedua ini berupa kaidah atau aturan (rule).
Meskipun seringnya fakta dan aturan dalam basis pengetahuan memiliki nilai kebenaran yang tegas (crisp),
namun ada kalanya representasi seperti ini tidaklah dapat mencerminkan
pengetahuan secara baik. Dalam hal ini, ada kalanya pengetahuan yang
dipakai dibentuk dengan suatu nilai kepastian (certainty value),
yang nilainya berkisar dari nol (pasti salah) hingga satu (pasti
benar). Nilai kepastian ini menggunakan konsep yang sama dengan yang ada
dalam Logika Fuzzy.
Pengembangan suatu basis pengetahuan
dimulai dari pembelajaran ontologi, atau konstruksi ontologi, yang
bertujuan menangkap pengetahuan menjadi format yang dapat digunakan
dalam sistem. Langkah selanjutnya adalah mempopulasikan basis
pengetahuan, yaitu mendapatkan instans-instans untuk mengisi basis
pengetahuan. Ini merupakan langkah yang penting, yang mana tujuannya
menggunakan ontologi sebagai indeks untuk memori organisasi.
Gambar 3.Suatu Siklus Dasar untuk Pengembangan Basis Pengetahuan.
Rekayasa pengetahuan (knowledge engineering) melibatkan beberapa proses, yaitu akuisisi pengetahuan (knowledge acquisition), validasi pengetahuan (knowledge validation), representasi pengetahuan (knowledge representation), inferensi pengetahuan (knowledge inferencing), dan transfer pengetahuan (knowledge transferring).
Dari semua proses ini, yang merupakan pembentukan basis pengetahuan
adalah akuisisi pengetahuan dan representasi pengetahuan, beserta
validasi pengetahuan yang berfungsi untuk menjaga kualitas pengetahuan
yang disimpan.
Gambar 4.Proses Rekayasa Pengetahuan.
Akuisisi pengetahuan merupakan proses
pengumpulan informasi dari sumber-sumber yang tersedia, yang dapat
berupa kepakaran seseorang maupun kepakaran laten (yang tersimpan dalam
bentuk materi cetakan). Sementara representasi pengetahuan merupakan
proses untuk mengilustrasikan pengetahuan yang telah didapat dari proses
akuisisi pengetahuan.
3. Akuisisi Pengetahuan
Dalam akuisisi pengetahuan, perekayasa (engineer) bertindak sebagai jembatan antara pakar (expert)
dengan basis pengetahuan. Perekayasa mendapatkan pengetahuan dari
pakar, dan bersamanya menaruhnya pengetahuan tersebut dalam basis
pengetahuan.
Ada beberapa cara untuk melakukan
akuisisi pengetahuan. Yang pertama adalah dengan cara manual, di mana
dalam cara ini perekayasa mendapatkan pengetahuan dari sumber, dan lalu
mengkodekannya ke dalam basis pengetahuan. Cara ini merupakan cara yang
mahal dan tidak efisien, serta juga kadangkala tidak akurat.
Cara yang kedua adalah cara
semi-otomatik. Di sini terdapat peran komputer untuk mendukung pakar, di
mana pakar diizinkan untuk membangun basis pengetahuan tanpa (atau
dengan sedikit) bantuan dari perekayasa. Komputer di sini juga berperan
untuk membantu perekayasa dalam kerjanya membangun basis pengetahuan.
Sementara yang ketiga adalah cara otomatik. Di sini peran pakar, perekayasa, maupun pembangun basis pengetahuan atau sistem (system builder) digabung. Contohnya adalah metode induksi.
Gambar 5.Metode Akusisi Pengetahuan dengan (a) manual, (b) akuisisi terkendali-pakar, dan (c) induksi.
Kesulitan dalam proses akuisisi
pengetahuan adalah kesulitan pakar untuk mengkomunikasikan
pengetahuan-pengetahuan dasarnya. Ini berkaitan dengan sifat pengetahuan
itu sendiri (yang seperti telah dijelaskan di atas, adalah eksplisit
sekaligus terbatinkan). Seperti yang dikatakan oleh Waterman (1981): “…
suatu pengetahuan dasar diasumsikan dan dikombinasikan begitu cepatnya
sehingga sulitlah baginya (pakar) untuk mengambarkan
prosesnya”[6]. Beberapa teknik canggih telah dikembangkan untuk
memfasilitasikan proses untuk mendapatkan dasar pengetahuan, seperti
AQUINAS, Boose dan Bradsaw 1987; dan NEXTRA dari Neuron Data, Rappaport
dan Gaines 1988.
4. Representasi Pengetahuan
Representasi pengetahuan merupakan
kelanjutan dari proses akuisisi pengetahuan. Setelah pengetahuan
berhasil disarikan dari pakar, maka selanjutnya yang dilakukan adalah
merepresentasikan bentuk-bentuk pengetahuan tersebut menjadi bentuk yang
dikenali oleh sistem (komputer).
Beberapa cara yang dapat digunakan untuk merepresentasikan bentuk ini antara lain jaringan semantik (semantic net), bingkai (frame), aturan produksi (production rule), logika (logic), bahasa natural (natural language), dan sistem basis data (database system).
Representasi pengetahuan dimaksudkan
untuk menangkap sifat-sifat penting suatu pengetahuan agar dapat diakses
dan digunakan dalam metode pemecahan masalah. Bahasa representasi
haruslah mampu membuat seorang pemrogram mengekspresikan pengetahuan
yang diperlukan untuk mendapatkan solusi permasalahan.
Representasi pengetahuan yang baik haruslah memiliki sifat-sifat berikut:
- Mengemukakan hal secara eksplisit
- Membuat masalah menjadi transparan
- Komplit dan efisien
- Menampilkan batasan-batasan alami yang ada
- Menekan dan menghilangkan detil-detil yang diperlukan
- Dapat dilakukan komputasi terhadapnya (memiliki batasan).
Representasi pengetahuan dikelompokkan ke dalam empat jenis, yaitu:
Representasi jenis ini menggunakan ekspresi-ekspresi logika formal dalam melakukan representasi.
Sementara jenis kedua ini menggambarkan pengetahuan sebagai kumpulan instruksi untuk memecahkan suatu problema.
- Representasi Jaringan (Network)
Representasi ini
menangkap pengetahuan sebagai suatu graf di mana simpul-simpulnya
merupakan obyek atau konsep dari problema yang dihadapi, sementara
garisnya (edge) menggambarkan hubungan di antara mereka.
Dalam representasi ini, jaringan diperluas dengan cara membuat tiap simpulnya menjadi sebuah struktur data kompleks.
Prinsip representasi pengetahuan adalah jika
suatu permasalahan dideskripsikan dengan menggunakan representasi yang
tepat, maka dapat dipastikan bahwa masalah tersebut dapat diselesaikan.
5. Ontologi
Kunci dari suatu basis pengetahuan adalah
ontologi, yaitu sistem konsep-konsep yang terorganisir yang menjadikan
sesuatu yang ada dalam domain menjadi eksplisit[7]. Ontologi merupakan
spesifikasi dari suatu konseptualisasi, atau suatu teori logis yang
memberikan suatu akun eksplisit yang parsial dari suatu
konseptualisasi[8]; atau bahkan sinonim dari konseptualisasi itu
sendiri.
Ontologi digunakan untuk menjelaskan mengenai properti dari suatu domain, dan juga untuk mendefinisikan domain tersebut.
Komponen-komponen dari ontologi antara lain:
- Konsep (concept) digunakan dalam pemahaman yang luas.
Sebuah konsep dapat sesuatu yang dikatakan, sehingga dapat pula
merupakan penjelasan dari tugas, fungsi, aksi, strategi, dan sebagainya.
- Relasi (relation) merupakan representasi sebuah tipe dari
interaksi antara konsep dari sebuah domain. Secara formal dapat
didefinisikan sebagai subset dari sebuah pruduk dari n set,
Sebagai contoh dari relasi biner termasuk subclass-of dan connected-to.
- Fungsi (function) adalah sebuah relasi khusus di mana elemen ke-n dari relasi adalah unik untuk elemen ke-(n-1).
Contohnya adalah Mother-of.
- Aksioma (axiom) digunakan untuk memodelkan sebuah kalimat yang selalu benar.
- Instans (instance) digunakan untuk merepresentasikan elemen.
Menurut Tom Gruber dari Stanford
University, makna ontologi dalam konteksnya di ilmu komputer adalah
“suatu deskripsi konsep dan relasi yang ada dalam suatu agen maupun
komunitas agen”[9].
Sebuah ontologi memberikan pengertian
untuk penjelasan secara eksplisit dari konsep terhadap representasi
pengetahuan pada sebuah basis pengetahuan (Bernaras, proyek KACTUS).
Sementara menurut proyek SENSUS, Sebuah ontologi adalah sebuah struktur
hirarki dari istilah untuk menjelaskan sebuah domain yang dapat
digunakan sebagai landasan untuk sebuah basis pengetahuan.
6. Sistem Perbaikan Pengetahuan
Sistem Perbaikan Pengetahuan (Knowledge Refining System)
merupakan suatu sistem untuk memperbaiki kinerja sistem pakar. Dengan
sistem ini, pakar dapat melakukan analisis kinerja, lalu melakukan
pembelajaran, dan kemudian meningkatkannya pada konsultasi berikutnya.
Pada pembelajaran mesin, tujuan dari perbaikan basis pengetahuan (knowledge base refinement)
adalah meningkatkan performa sistem dengan pembelajaran empiris, di
mana performa sistem diukur dari jumlah kesalahan yang terdeteksi ketika
sistem dieksekusi untuk kasus-kasus yang ada dalam pustaka sistem.
C. Penutup
Basis pengetahuan merupakan jantung dari
suatu sistem pakar. Tanpa adanya basis pengetahuan, sistem tidak dapat
memberikan rekomendasi yang benar, karena ia tidak memiliki dasar untuk
mengambil tindakan.
Basis pengetahuan tergantung dari
beberapa konsep dan proses, antara lain pengertian dari pengetahuan
serta ontologi dalam basis pengetahuan itu sendiri. Proses akuisisi
serta representasi pengetahuan juga berperan memberikan suatu bentuk
terhadap basis pengetahuan itu sendiri, yang pada akhirnya semua ini
akan menentukan bagaiman kesimpulan yang akan diambil oleh sistem.
Basis pengetahuan yang baik juga dapat melakukan perbaikan dalam dirinya untuk meningkatkan kinerjanya.