Senin, 31 Mei 2010

semantic web ontology

Dewasa ini, teknologi informasi sudah menjadi komponen penting bagi setiap orang di berbagai bidang kehidupan, khususnya di bidang industri. Setiap orang membutuhkan sebuah informasi yang mudah di akses, tidak merepotkan dan tentu saja informasi tersebut akurat dan terbaru. Saat ini, hampir di setiap bidang industri memanfaatkan teknologi informasi untuk mempermudah pekerjaan para pemilik industri tersebut, baik sebagai langkah untuk promosi, pemasaran ataupun memberikan kenyamanan kepada kosumen. Tulisan ini akan memberi penjelasan tentang pemanfaatan semantic web dalam membantu permasalahan yang ada.

Semantik web merupakan perkembagan generasi web atau yang biasa disebut sebagai evolusi dari WWW (World Wide Web), yang dicetuskan pada tahun 2002. Semantik web didefenisikan sebagai sekumpulan teknologi yang mempunyai tujuan agar informasi pada web bukan hanya bisa dimengerti oleh user tetapi juga bisa dimengerti oleh aplikasi pada level semantic sehingga memungkinkan adanya integrasi antara sistem dan aplikasi. Lebih singkatnya, semantic web merupakan web yang mempunyai tujuan agar komputer bisa mengerti apa yang diinginkan oleh manusia dengan semua aplikasi yang di tawarkan dan disediakan.

Sejarah Semantic Web

Semantic web dicetuskan pertama kali oleh Tim Berners-Lee, James Hendler, dan Ora Lassila, di majalah Scientific American pada tahun 2001. Sejak itu, Tim Berners-Lee yang juga merupakan direktur dari W3C membentuk tim kerja yang membidangi semantic web serta infrastrukturnya pada tahun 2001. Aktivitas dari tim ini bisa dilihat di http://www.w3.org/2001/sw/. Tim tersebut merumuskan berbagai infrastruktur untuk keperluan semantic web, antara lain adalah RDF (Resource Definition Framework), n3, Ontology, dan lainlain, serta membangun berbagai software yang diperlukan (IsaViz untuk mengedit RDF, cwm – close world machine, dan lainlain). Beberapa infrastruktur memang telah tersedia di W3C, seperti misalnya infrastruktur untuk display berbasis XML (XHTML, SVG, dan lainlain).

Pengertian Semantic Web


Semantic web merupakan visi untuk membuat web lebih dipahami oleh mesin
(”making web more understandable by machine”). Menurut Tim Berners-Lee (Berners-Lee, Tim, et.al, 1999):


"The Semantic Web is a Web that includes documents, or portions of documents,
describing explicit relationships, between things and containing semantic information
intended for automated processing by our machines."



Dari definisi tersebut, bisa dipahami bahwa semantic web berkaitan dengan
dokumen atau bagian dokumen yang mendeskripsikan hubungan secara eksplisit serta berisi informasi semantik (seperti “bekerja pada”, “anak dari”, dan lainlain) yang memang dimaksudkan untuk diproses oleh mesin. Perlu diketahui bahwa defisini disini lebih ditekankan pada “bisa dipahami oleh mesin” bukan pada “bisa dibaca oleh mesin” karena web saat ini pun sebenarnya bisa dibaca oleh mesin, tetapi nilai semantiknya yang tidak ada.

Semantic Web merupakan suatu visi dari Tim Berners-Lee untuk membuat web menjadi sumber daya data yang bermakna. Hal ini bisa diwujudkan dengan menggunakan infrastruktur yang didefinisikan oleh kelompok kerja di W3C. Seperti telah diketahui, web saat ini menggunakan HTML sebagai komponen utama. HTML membuat presentasi serta isi dari web menjadi satu. Hal ini merupakan kelemahan dari web yang ada saat ini karena hal tersebut menyebabkan data hanya bisa dipahami oleh manusia dan pada gilirannya akan menyulitkan presentasi, klasifikasi, pencarian, pembuatan katalog, serta human reasoning. “Dipahami” disini mengacu pada kemampuan mesin untuk mendeskripsikan keterkaitan antar data serta representasi graph dari data tersebut). Pendefinisian data tersebut dilakukan dengan pembuatan model data RDF. Model data RDF ini bisa digunakan oleh berbagai API (Application Programming Interface) seperti Jena dari HP, 4Suite dari Fourthought Inc., dan lain-lain. Dengan demikian, tugas pengembang peranti
lunak akan lebih mudah dalam pengelolaan data.

Contoh Kasus untuk Pemanfaatan Semantic Web


Contoh sederhana adalah tentang pencarian di web. Penggunaan mesin pencari seperti Google, Altavista, Yahoo, dan lainlain hanya mendasarkan pencariannya pada metadata yang terdapat pada header file HTML. Perhatikan contoh berikut:

Pencarian "Article about Bambang" akan menghasilkan kemugkinan kemungkinan lain seperti "Article by Bambang", "Article from Bambang" karena mesin mesin pencari tersebut hanya akan melakukan peng-indeks-an kata kunci "Article" dan "Bambang". Meskipun sekilas kelihatan sederhana, tetapi pada saat pencarian, pemakai bisa dipusingkan karena hasil dari pencarian tersebut bisa mencari ribuan halaman.

Pengembangan yang lebih berguna lagi ada pada pemanfaatan software agent
bersama dengan semantic web untuk keperluan crawling, generalisasi, kategorisasi, serta reasoning data. Sebagai contoh, seorang pengembang bisa mengembangkan suatu software agent yang mengumpulkan data tentang suatu resource, misalnya tentang “dokter umum yang berpraktik di yogyakarta”, menemukan atribut “jam praktik”, membuat perjanjian untuk pemeriksaan, serta memberitahu ke user tentang rencana periksa ke dokter tersebut.

Infrastruktur Semantic Web


Untuk mempunyai kemampuan yang revolusioner seperti kasus di atas, tentu
saja harus dikembangkan infrastruktur pendukung.W3C membangun berbagai infrastruktur untuk keperluan data yang bisa lebih dipahami mesin. Beberapa komponen yang telah dibangun di antaranya adalah RDF (Resource Description Framework) serta OWL (Ontology Web Language). Tentu saja komponen utama ini juga berdasarkan pada komponen lainnya yang telah dibangun oleh W3C yaitu XML (Extensible Markup Language) serta URI (Uniform Resource Identifier) maupun HTTP (Hypertext Transfer Protocol). Membangun suatu semantic web pada dasarnya merupakan proses untuk mendefinisikan data agar bisa bermakna dan bisa dipahami oleh mesin.

Secara garis besar, infrastruktur pendukung tersebut dapat digambarkan pada gambar berikut (sumber: Jacco van Ossenbruggen, et.al: 2002):


Infrastruktur Semantic Web



Jika dilihat dari gambar tersebut, bisa diketahui bahwa infrastruktur teknologi semantic web pada dasarnya bisa kita bagi menjadi dua bagian besar yaitu document representation dan knowledge representation.

Document representation merupakan standarstandar yang dibuat oleh W3C
untuk keperluan representasi dokumen. Jika pada web tradisional hanya sebatas pada HTML dan CSS, maka W3C sebenarnya telah mengembangkan berbagai standar untuk keperluan representasi dokumen. Diantaranya adalah bahasa markup untuk keperluan musik, matematika, dan lainlain.

Knowledge representation merupakan standar yang dikembangkan untuk memberikan nilai semantik bagi dokumen-dokumen yang berada di web.Teknologi-teknologi tersebut merupakan teknologi yang berbasis pada XML (eXtensible Markup Language).

Semantic Web dan Representasi Pengetahuan



Masalah yang ada pada web saat ini adalah informasi yang berlebihan (iinformation overload). Para pengguna Internet mengetahui bahwa Internet adalah suatu kumpulan sumber daya pengetahuan yang luar biasa besar. Sayangnya, format tampilan HTML pada kebanyakan halaman web saat ini menyebabkan metadata yang diperlukan untuk mencari data serta informasi yang lebih tepat kurang memungkinkan. Beberapa mesin pencari seperti Google, Yahoo, Infoseek, Altavista, dan lainlain, kebanyakan mencari suatu halaman web berdasarkan definisi kata kunci dari halaman web yang bersangkutan. Definisi kata kunci yang ada pada HTML sama sekali tidak menunjukkan representasi pengetahuan sehingga seringkali terjadi banyak sekali suatu halaman web yang dihasilkan dari suatu mesin pencari tetapi apa yang sebenarnya dicari oleh pemakai tidak berada di tempat tersebut.

Semantic web memungkinkan adanya representasi pengetahuan serta
keterkaitan antar berbagai sumber daya yang ada. Dengan demikian suatu crawler bisa mencari data serta informasi dengan tingkat kesesuaian yang semakin bagus. Semantic web juga memungkinkan berkembangnya social network seperti yang telah dibuktikan pada berbagai proyek seperti FOAF (http://www.foafproject.org/) atau friend of a friend yang merupakan suatu XML/RDF untuk representasi identitas diri serta keterkaitan dengan kolega lain. Agar semantic web bisa berfungsi sepenuhnya, maka harus terdapat akses ke koleksi terstruktur dari informasi serta sekumpulan
aturan inferensi (inference rules) yang memungkinkan suatu mesin melaksanakan automated reasoning.

Komponen Teknologi Semantic Web



Teknologi semantic web merupakan teknologi yang masih dalam taraf
pengembangan. Untuk mendukung pengembangan ini, W3C menggunakan
infrastruktur yang telah ada (misalnya URI, XML, dan lainlain) serta membentuk berbagai kelompok kerja untuk pengembangan lebih lanjut. Berbagai komponen teknologi tersebut akan dibahas di bawah ini.

URI (Uniform Resource Identifier)

Secara sederhana, bisa dikatakan bahwa URI merupakan suatu “pengenal” / identifier di web. String seperti “http”, “ftp”, “news”, merupakan suatu contoh URI. Pembicaraan mengenai URI ini sangat penting pada teknologi semantic web karena setiap representasi pengetahuan tentang suatu resource harus mengidentifikasi lebih dahulu resource tersebut. Semua yang mempunyai URI bisa dikatakan “berada di web”. Sintaksis dari URI ini dikembangkan oleh IETF (Internet Engineering Task Force) yang mempublikasikan RFC 2396 untuk spesifikasi umum dari URI.

Istilah URI berbeda dengan istilah URL (Uniform Resource Locator). URL menunjukkan suatu lokasi dengan menggunakan protokol HTTP (Hypertext Transfer Protocol). Jadi, URL merupakan salah satu bentuk dari URI.

XML

XML (eXtensible Markup Language) merupakan suatu standar dari W3C untuk pertukaran data melalui Internet. XML merupakan bentuk khusus dari SGML (yang merupakan bahasa untuk mendefinisikan suatu bahasa penanda markup language) yang memungkinkan siapapun juga untuk mendefinisikan data yang menjadi isi dari dokumen melalui suatu definisi tag yang dibuat sendiri. XML ini merupakan suatu standar yang sifatnya terbuka. Tag yang ada pada XMLmemungkinkan pengembangan mendefinsikan suatu XML parser dari suatu peranti pengembangan sehingga dengan menggunakan file XML yang wellformed, isi dari suatu dokumen bisa dibaca dan dipahami oleh mesin. Berikut ini adalah contoh dari suatu file XML:




Teknologi Semantic Web Untuk Pengelolaan Dokumen Ilmiah
Bambang Purnomosidi D. P.
2005
STMIK AKAKOM



Beberapa bahasa pemrograman saat ini telah menyertakan fasilitas XML parser ke dalam pustaka standar. Beberapa diantaranya adalah Python, Java, Pike, dan lain-lain.

RDF dan Triple

Triple merupakan suatu unsur pembentuk kalimat, karena suatu kalimat terdiri atas 3 bagian yaitu subyek, predikat, dan obyek. Contoh kalimat yang berpola triple adalah Bambang Purnomosidi D. P meneliti semantic web. Jika dipecah menjadi tiga unsur tersebut, maka kalimat tersebut bisa dibagi menjadi tiga unsur, yaitu:


  1. Subyek: “Bambang Purnomosidi D. P.”

  2. Predikat: “meneliti”

  3. Obyek: “semantic web”



RDF (Resource Description Framework) merupakan suatu framework untuk mendeskripsikan dan saling mempertukarkan data. Inisiatif tentang RDF ini dimulai oleh Ramanathan V. Guha pada saat bekerja di Apple Computer. Spesifikasi untuk RDF ini mendapat status Recommendation dari W3C pada tahun 2004. Elemen dasar dari RDF adalah triple. Dalam penggambaran, triple tersebut bisa dideskripsikan menggunakan graph. Contoh untuk kalimat di atas adalah sebagai berikut:

RDF merupakan standar yang ditetapkan oleh W3C untuk keperluan
representasi triple tersebut sehingga dengan menggunakan RDF, bisa diperoleh suatu isi (contents) yang dipahami mesin, tidak sekedar bisa dibaca oleh mesin. RDF tersebut bisa diserialisasikan dalam format XML maupun n3 (notation 3). RDF merupakan bagian yang vital dari RDF karena kemampuannya untuk merepresentasikan triple ini. Berikut ini adalah contoh representasi dalam bentuk RDF/XML:


http://www.w3.org/1999/02/22-rdf-syntax-ns"
xmlns:dc="http://purl.org/dc/elements/1.1/">
http://en.wikipedia.org/wiki/Tony_Benn">
Tony Benn
Wikipediac:publisher>




Perlu diketahui bahwa mesin (komputer dan peranti pendukungnya) tidak akan bisa memahami apa yang tertulis disitu, meskipun demikian, bisa dirancang suatu peranti yang bisa digunakan untuk memahami dan merepresentasikan isi yang ada pada RDF/XML tersebut karena isi dari RDF/XML merupakan isi yang terstruktur dan mengandung nilai semantik. W3C menyediakan software yang bisa digunakan untuk keperluan penggambaran graf tersebut. Software tersebut merupakan software bebas. Software tersebut adalah IsaViz dan dikembangkan dengan menggunakan bahasa Java dan memerlukan library GraphViz.

Ontologi



Suatu ontologi merupakan spesifikasi dari suatu konsepsualisasi (Gruber, Tom: 2005). Ontologi merupakan suatu deskripsi dari konsep serta relasi yang mungkin terdapat untuk suatu hal. Dalam kaitannya dengan web, ontologi ini digunakan untuk mendeskripsikan suatu resource di web. Ontologi ini penting, karena dengan menggunakan skema serta ontologi dari suatu resource, bisa digunakan peranti pengembang untuk mengembangkan peranti lunak yang memungkinkan menampilkan arti serta keterkaitan suatu resource dengan resource lainnya. RDF telah memungkinkan mendeskripsikan keterkaitan tersebut, sehingga tinggal mendeskripsikan arti dan kemungkinan keterkaitan dengan resource lain.

Meskipun sudah terdapat RDF yang memungkinkan suatu triple untuk bisa disimpan dalam format digital, tetapi masih terdapat pertanyaan tentang arti dari triple tersebut. Untuk memahami arti dari isi suatu RDF, diperlukan suatu ontologi serta skema. Saat ini, W3C telah membentuk suatu kelompok kerja untuk mengembangkan ontologi untuk web yang disebut sebagai OWL (Ontology Web Language).

OWL dimaksudkan untuk memproses isi suatu dokumen, tidak hanya sekedar mempresentasikan isi tersebut untuk manusia. OWL bisa digunakan untuk
merepresentasikan secara eksplisit arti dari suatu istilah dalam vocabulary, serta relasi antar istilahistilah tersebut. Representasi serta saling keterkaitan itulah yang disebut sebagai ontologi. OWL merupakan revisi dari DAML+OIL. OWL mempunyai 3 sub bahasa, yaitu OWL Lite, OWL DL (Description Logics), serta OWL Full.

  1. OWL Lite mendukung para pemakai yang terutama memerlukan hirarki klasifikasi, dan kendalakendala sederhana.

  2. OWL DL mendukung para pemakai yang menginginkan ekspresi maksimum dan tetap mempertahankan kelengkapan komputasional (semua kesimpulan dijamin bisa dihitung) dan mampu diputuskan (semua komputasi akan selesai dalam waktu tertentu).

  3. OWL Full dimaksudkan untuk pemakai yang menginginkan ekspresi maksimum dan kebebasan sintaktik RDF tanpa jaminan komputasional. Sebagai contoh, dalam OWL Full, suatu kelas bisa diperlakukan secarasimultan sebagai kumpulan individual dan sebagai individual dengan hak masingmasing.



Semantic Web dan Intelligent Agent Software



Teknologi semantic web ini di masa yang akan datang akan semakin berkembang dan kemungkinan akan bekerja sama dengan software agent untuk membentuk web yang semakin bisa dipahami oleh mesin dan memungkinkan intelligent agent software untuk berfungsi sebagai agen dalam membantu manusia.

Software agent merupakan suatu aplikasi (entitas) yang berfungsi untuk menjalankan suatu pekerjaan tertentu. Intelligent agent software merupakan aplikasi yang mempunyai sifat “cerdas” (intelligent), dalam arti mampu memahami kondisi-kondisi yang terjadi di lingkungan, memutuskan apa yang harus dikerjakan, tanpa bantuan manusia untuk mencapai tujuan yang telah ditetapkan untuk software agent tersebut. Intelligent software agent ini juga masih menjadi bahan penelitian dan telah terbentuk berbagai peranti pengembangan untuk memudahkan pembuatan software ini. Contoh dari peranti pengembangan tersebut antara lain adalah:

  1. Agent Development Kit

  2. April Agent Platform

  3. Comtec Agent Platform

  4. FIPA OS

  5. JACK Intelligent Agent