Jumat, 06 Juli 2012

Semantic Web, RDF, Ontology



Semantic Web merujuk kepada kemampuan aplikasi komputer untuk lebih memahami bahasa manusia, bukan hanya bahasa yang baku dari para penggunanya tetapi juga bahasa yang lebih kompleks, seperti dalam bahasa percakapan sehingga memudahkan penggunanya untuk berkomunikasi dengan mesin. Semantic Web dapat mengolah bahasa dan mengenali homonim, sinonim, atau atribut yang berbeda pada suatu database.
Semantic Web adalah teknologi yang dikembangkan dengan berbasis RDF format. Basis data dapat dijadikan acuan untuk pembuatan metadata, namun BibTex file dapat juga dijadikan acuan untuk pembuatan Semantic Web. Dengan menggunakan format XML yang merupakan dasar pembentukan metadata (RDF), maka berdasarkan format tersebut metadata dapat didistribusikan atau di simpan dalam domain yang beragam, data yang tersimpan berupa BibTex file di konversi ke format RDF, selanjutnya dengan menggunakan sesame metadata di load pada file index, SeRQL selanjutnya melakukan query terhadap metadata yang telah di load untuk ditampilkan di browser.
Istilah Semantic Web itu sendiri diperkenalkan oleh Tim Berners-Lee, penemu World Wide Web. Sekarang, prinsip Semantic Web disebut-sebut akan muncul pada Web 3.0, generasi ketiga dari World Wide Web. Bahkan Web 3.0 itu sendiri sering disamakan dengan Semantic Web. Semantic Web menggunakan XML, XMLS (XML Schema), RDF, RDFS (Resources Description Framework Schema) dan OWL.

Ontology

Ontology merupakan suatu teori tentang makna dari suatu obyek, properti dari suatu obyek, serta relasi obyek tersebut yang mungkin terjadi pada suatu domain pengetahuan. Ontology merupakan penjelasan sebuah konsep dan memiliki hubungan atau kaitan dari ilmu tertentu. Ontology dalam semantic web adalah sebuah katalog dimana skemanya menggunakan ontology. Pengertian tentang ontology memiliki banyak pengertian seperti yang dijelaskan pada berbagai sumber, termasuk yang dikemukakan oleh beberapa ilmuan.
  1. Neches dan rekannya memberikan definisi awal tentang ontology yaitu ”Sebuah ontology merupakan definisi dari pengertian dasar dan relasi vokabulari dari sebuah area sebagaimana aturan dari kombinasi istilah dan relasi untuk mendefinisikan vokabulari”.
  2. Gruber mendefinisikan yang sering digunakan oleh beberapa orang, definisi tersebut adalah ”Ontology merupakan sebuah spesifikasi eksplisit dari konseptualisme”.
  3. Berdasarkan definisi Gruber tersebut banyak orang yang mengemukakan definisi tentang ontology diantaranya Guarino dan Giaretta  yang pada tahun 1995 mengumpulkan hingga tujuh definisi yang berkoresponden dengan syntactic dan semantic interpretasi.
  4. Pada tahun 1997, Borst melakukan penambahan dari definisi Gruber dengan mengatakan “Sebuah ontology adalah spesifikasi formal dari sebuah konseptual yang diterima (share)”.
  5. Studer  mencoba mengemukakan definisi tentang ontology yang mengambil acuan dari definisi yang dikemukakan oleh Gruber dan Borst, definisi tersebut adalah : “Konseptualisasi mengacu kepada sebuah model abstrak dari beberapa fenomena di dunia dengan memiliki identifikasi konsep yang relevan dari fenomena tersebut“.
  6. Ada buku yang memberikan definisi tentang Ontology, salah satunya adalah “The Semantic web” , definisi dari Ontology adalah :
    • Salah satu cabang metafisika yang terfokus pada alam dan hubungan antara mahluk hidup.
    • Teori tentang sifat alami mahluk hidup. Ontology merupakan suatu teori tentang makna dari suatu obyek, property dari suatu obyek, serta relasi obyek tersebut yang mungkin terjadi pada suatu domain pengetahuan. Pada tinjauan filsafat, ontology adalah studi tentang sesuatu yang ada. Selain itu ontology adalah sebuah konsep yang secara sistematik menjelaskan tentang segala sesuatu yang ada atau nyata.
  7. Barnaras  pada proyek KACTUS memberikan definisi ontology yang berdasarkan pada pengembangan ontology. Definisi yang diberikan adalah : “Sebuah ontology memberikan pengertian untuk penjelasan secara eksplisit dari konsep terhadap representasi pengetahuan pada sebuah basis pengetahuan”.
  8. Proyek SENSUS  juga memberikan definisi : “Sebuah ontology adalah sebuah struktur hirarki dari istilah untuk menjelaskan sebuah domain yang dapat digunakan sebagai landasan untuk sebuah basis pengetahuan”.
Dalam bidang Artificial Intelligence (AI) ontology memiliki dua pengertian yang berkaitan. Pertama ontology merupakan kosakata representasi yang sering dikhususkan untuk domain atau subyek pembahasan tertentu. Kedua, sebagai suatu body of knowledge untuk menjelaskan suatu bahasan tertentu.  Secara umum, ontology digunakan pada Artificial Intelligence (AI) dan persentasi pengetahuan. Segala bidang ilmu yang ada di dunia, dapat menggunakan metode ontology untuk dapat berhubungan dan saling berkomunikasi dalam hal pertukaran informasi antara sistem-sistem yang berbeda.
Untuk dapat digunakan, sebuah ontology harus diekspresikan dalam notasi yang nyata. Sebuah bahasa ontology adalah sebuah bahasa formal dari sebuah pembuatan ontology. Beberapa komponen yang menjadi struktur ontology, antara lain :
  1. XML Menyediakan sintaksis untuk output dokumen terstruktur, tetapi belum dipaksakan untuk dokumen XML menggunakan semantic constrains.
  2. XML Schema Bahasa untuk pembatasan struktur dari dokumen XML.
  3. RDF Model data untuk objek (’resources’) dan relasi diantaranya, menyediakan semantic yang sederhana untuk model data tersebut, dan data model ini dapat disajikan dalam sintaks XML.
  4. RDF Schema Adalah kosa kata untuk menjelaskan properties dan classes dari sumber RDF, dengan sebuah semantics untuk hirarki penyamarataan dari properties dan classes.
  5. OWL Manambahkan beberapa kosa kata untuk menjelaskan properties dan Classes, antara lain : relasi antara classes (misalkan disjointness), kardinalitas (misalkan ’tepat satu’), equality, berbagai tipe dari properties, karakteristik dari properties (misalkan symmetry), menyebutkan satu persatu classes.
Berbagai bahasa yang menyusun ontology, seperti yang telah dijelaskan di atas memiliki kedudukan tertentu dalam struktur ontology. Setiap layer akan memiliki fungsi tambahan dan kompleksitas tambahan dari layer sebelumnya. Pengguna atau User yang memiliki fungsi pemrosesan layer paling rendah dapat memahami walaupun tidak seluruh ontology yang terletak di layer atasnya.


Dalam setiap layer tersebut, masing-masing bagian memiliki fungsi masing-masing :
  1.  XML memiliki fungsi menyimpan isi halaman web
  2. RDF adalah layer untuk merepresentasikan semantik dari isi halaman tersebut
  3. Ontology layer untuk menjelaskan vocabulary dari domain
  4. Logic Layer memungkinkan untuk mengambil data yang diinginkan





Dapat diambil kesimpulan, ontology adalah sebuah uraian formal yang menjelaskan tentang sebuah konsep dalam sebuah domain tertentu (class, terkadang disebut konsep), properti-properti dari masing-masing konsep menjelaskan bermacam-macam corak dan atribut dari sebuah konsep (slots, terkadang disebut roles atau properti-properti), dan batasan-batasan (facets, terkadang disebut role restrictions). Sebuah ontology bersama dengan beberapa set instances dari class membentuk sebuah presentasi pengetahuan. Secara umum, ontology digunakan pada kecerdasan buatan dan persentasi pengetahuan. Segala bidang ilmu yang ada di dunia, dapat menggunakan metode ontology untuk dapat berhubungan dan saling berkomunikasi dalam hal pertukaran informasi antara sistem-sistem yang berbeda.

Resource Description Framework (RDF) dan RDF Schema

Resources Description Framework (RDF) sebagai sebuah bahasa formal yang berbasiskan XML, URI dan unicode. RDF adalah sebuah dasar untuk pemrosesan metadata, dimana metadata dalam web dapat di kodekan, dipertukaranan dan dipergunakan. RDF terdiri dari tiga jenis bagian (triple) subyek predikat obyek, dimana bisa disebut juga sebagai:
  1. Resources, adalah bagian dari sumber informasi, dalam era Internet di representasikan dalam alamat web atau URL, ini disebut subyek atau obyek.
  2. Property, adalah sebuah karakteristik dari atribut atau relasi untuk menjelaskan sumber, ini disebut juga predikat.
RDF bukanlah melakukan pendifinisian semantik secara langsung dari setiap sumber, tetapi lebih
melakukan penjelasan untuk lebih dapat dipahami oleh mesin, sehingga memudahkan untuk
pertukaran data.
RDF Schema (RDFS) adalah sebuah lapisan diatas RDF, dan merupakan sebuah set standard sederhana dari sumber RDF yang memungkinkan untuk membuat vokabulari RDF sendiri. Model dari RDFS memiliki kemiripan dengan yang digunakan oleh object oriented, yaitu dengan memiliki class, relation, property dan instance. Class adalah kumpulan dari obyek yang memiliki kesamaan karakter. Relation adalah sifat hubungan antar kelas. Property adalah karakter dari sebuah kelas. Instances adalah sebuah obyek yang sesungguhnya. ‘arti’ kata menerangkan dalam RDF atau RDFS tergantung oleh beberapa faktor, termasuk peraturan sosial, bahasa natural atau penghubung ke dokumen lain. Banyak diantara arti-arti tersebut tidak dapat diakses oleh mesin.
Dalam RDF, jika kita ingin mengekspresikan kalimat Judul berita pada link http://www.detik.com/news/100107 adalah adam air maka untuk menyesuaikan dengan struktur RDF, kalimat bisa kita ubah menjadi http://www.detik.com/news/100107 mempunyai judul berita Adam Air. Dari kalimat tersebut kita dapatkan http://www.detik.com/news/100107 sebagai subjek, “judul” sebagai predikat dan “Adam Air” sebagai objeknya. Berikut representasi pernyataan dalam bentuk grafik:


Bentuk elipse digambarkan sebagai subjek, panah sebagai predikat dan kotak sebagai objek. Contoh implementasi RDF dalam bentuk XML adalah sebagai berikut:

Pada kode diatas, RDF menggunakan prefiks rdf dan berita untuk menyingkat alamat penuh URI. Kata rdf merupakan nama namespace yang mengacu pada syntax RDF sedangkan berita untuk elemen elemen berita. Kedua prefiks tersebut dinamakan juga dengan namespace. Dalam namespace, walaupun kita merujuk ke alamat URI sebuah schema, kenyataannya alamat tersebut tidak harus selalu ada. Tidak ada aktifitas validasi dilakukan terhadap alamat tersebut. Hal ini dilakukan lebih untuk menghindari terjadinya penggunaan elemen yang ambigu. Caranya yaitu dengan membuat prefiks yang yang berlainan. Prefiks namespace merupakan bagian dari XML qualified name (Qname) yang digunakan untuk memudahkan penulisan RDF. Qname terdiri dari prefiks dan nama lokal. Misalnya teks berita:judul, kata berita merupakan nama pendek dari URI http://berita.org/elements/ sedangkan kata judul adalah elemen dari berita seperti pada link http://berita.org/elements/judul.
RDF mempunyai bentuk dan kode yang bervariasi. Variasi ini tergantung dari kalimat yang akan dideskripsikan. Variasi ditandai dengan penggunaan tag yang mempunyai fungsi yang berbeda satu sama lain. Berikut adalah beberapa variasi bentuk RDF:
  1. RDF Anonim, Sumber daya anonim tanpa URI digunakan untuk menghubungkan banyak elemen (predikat dan objek) dengan subjek. Elemen objek dan predikat dapat berjumlah lebih dari satu namun saling berkaitan dengan subjek asalnya.
  2. RDF Container, Suatu saat kita ingin mendefinisikan pernyataan tentang sebuah buku yang ditulis oleh beberapa penulis atau software yang dirancang oleh beberapa analis. Hal tersebut dapat dilakukan dengan menggunakan RDF Container. Container merupakan sumber daya yang dapat menampung banyak elemen. Elemen yang tergabung dapat terdiri dari sumber daya, literal ataupun sumber daya anonim (node kosong). RDF Container mempunyai tiga tipe yaitu rdf:bag, rdf:seq dan rdf:alt. Rdf:bag menyimpan banyak nilai tanpa memperhatikan urutan dan duplikasinya. rdf:seq meyimpan nilai secara terurut berdasarkan alfabet tanpa memperhatikan duplikasi nilainya sedangkan rdf:alt menyimpan nilai alternatif dari nilai yang sudah ada, sebagai contoh rdf:alt digunakan untuk mendefinisikan statement alternatif bahasa dari judul sebuah buku.
  3. RDF Collection, RDF Collection merupakan grup yang dapat menyimpan kumpulan sumber daya dalam bentuk list yang terstruktur. List ini dibentuk dengan menggunakan tipe rdf:list, sumber daya rdf:nil dan property rdf:first dan rdf:rest. Berbeda dengan RDF:Container, pada RDF Collection kita mendefinisikan anggota sebuah grup secara lengkap dan spesifik.
  4. RDF Reification, RDF mempunyai kosa kata internal yang digunakan untuk mendeskripsikan pernyataan-pernyataan yang ada pada RDF. Pendeskripsian ini disebut Reification. Kosa kata reification terdiri dari tipe rdf:statement dan properti rdf:subject, rdf:predicate dan rdf:object. Penggunaan reification diharapkan dapat memperjelas informasi dari suatu pernyataan.

Ontology

Web Ontology Language (OWL) adalah suatu bahasa yang dapat digunakan oleh aplikasi-aplikasi yang bukan sekedar menampilkan informasi tersebut pada manusia, melainkan juga yang perlu memproses isi informasi isi. Ontology sendiri dapat didefinisikan sebagai suatu cara untuk mendeskripsikan arti dan relasi dari istilah-istilah. Deskripsi tersebut berisi classes, properties, dan instances. Deskripsi ini dapat membantu sistem computer dalam menggunakan istilah-istilah tersebut cengan cara yang lebih mudah. Dengan menggunakan OWL, kita dapat menambah vocabulary tambahan disamping semantiks formal yang telah dibuat sebelumnya menggunakan XML, RDF, dan RDF Schema. Hal ini sangat membantu penginterpretasian mesin yang lebih baik terhadap isi Web. Untuk mendeskripsikan properties dan classes, OWL menambahkan vocabulary seperti:
  1.  “among others”
  2. Relasi antar classes (misalnya: “disjointness”)
  3.  Kardinalitas (misalnya: “exactly one”)
  4. Kesamaan (equality)
  5.  Karakteristik property (misalnya: “symmetry”)
  6. Enumerated classes


OWL menyediakan tiga buah subbahasa yang dirancang untuk digunakan oleh para pengguna tertentu, yaitu:
  1. OWL Lite, digunakan oleh pengguna yang membutuhkan suatu hirarki pengklasifikasian dan berbagai constraints sederhana.
  2. OWL DL, digunakan oleh pengguna yang menginginkan tingkat ekpresi maksimal dan semua konklusi yang dihasilkan dapat dihitung dalam waktu yang terbatas (finite)
  3. OWL Full, digunakan oleh pengguna yang menginginkan tingkat ekpresi maksimal dan kebebasan sintaks dari RDF tanpa mempertimbangkan komputasi yang dibutuhkan.
Berikutnya, akan didiskripsikan syntax OWL dan ilustrasi membangun ontology menggunakan OWL.

Header


Elemen pertama dalam OWL adalah elemen rtf:RDF yang menspesifikasikan suatu set deklarasi namespace XML yang menyajikan identifier yang tidak diinterpertasikan dengan ambigu dan membuat penyaian ontology berikutnya lebih mudah untuk dipahami.
Contoh:


Sebuah namespace terdiri dari reserved XML attribute xmlns, sebuah prefix yang mengidentifikasikan namespace dan nilainya.

Information Version


Setelah deklarasi namespace, dokumen OWL menspesifikasi kumpulan pernyataan (assertions) yang dikelompokkan dibawah suatu OWL:


  1. owl:versionInfo : Memberikan informasi tentang versi ontology ini.
  2. owl:priorVersion : Mengindikasikan versi awal dari ontology ini.
  3. owl:backwardCompatibleWith : Berisikan referensi versi ontology sebelumnya yang masih kompatibel.
  4. owl:incompatibleWith : Mengindikasikan versi ontology sebelumnya yang tidak kompatibel.
  5. owl:imports : hanya assertation ini yang memiliki makna formal terhadap ontology dan merepresentasikan set ontology lain yang dianggap menjadi bagian dari ontology saat ini. Perlu diperhatikan bahwa owl:import adalah property transitif karena juka ontology A mengimport ontology B, dan ontology B mengimport ontology C, maka ontology A juga mengimport ontology C.

Berikut ini adalah contoh singkat:

Class Element

Class adalah kumpulan individual, suatu cara untuk mendeskripsikan bagian dari dunia. Mereka di definiskan pada dokumen OWL dengan owl:classElement. Contohnya, untuk class “Teacher” dapat didefinisikan seperti:


Perlu diketahui bahwa elemen rdf:ID merupakan nama class. Jika kita ingin membuat reference ke klass kita menggunakan rdf:resource element. Ontology OWL dapat menyajikan hirarki antara kelas menggunakan elemen owl:subClassOf. Sebagai contoh: kelas “Teacher” adalah subclass dari “Person”. Diantara dua kelas dimungkinkan untuk membentuk relasi menggunakan elemen  owl:equivalentClass dan owl:disjoinWith. Pernyataan owl:equivalentClass ketika diaplikasikan ke dua kelas A dan B, direpresentasikan bahwa kelas A memiliki individual yang sama dengan kelas B. Contohnya, kelas “faculty” ekuivalen dengan kelas “academicStaffMember”:


Elemen Owl:disjoinWith diaplikasikan kedalam dua kelas A dan B yang menganjurkan bahwa klas A dan B disjoin, jika ada suatu instance adalah anggota kelas A maka tidak mungkin menjadi instance kelas B. Contohnya “Full Professor” tidak dapat menjadi “Associate Proffessor” di waktu yang sama. 

Complex Class

Cara lain untuk membuat kelas didalam OWL adalah mengkombinasikan simple class menggunakan operator boolean (union, intersection, dan complement) dan membuat complex class. Anggota-anggota dari kelas dispesifikasikan seluruhnya menggunakan operator boolean. Elemen owl:unionOf diaplikasikan ke kelas A dan B menghasilkan kelas baru yang berisikan semua anggota kelas A dan B. Sebagai contoh, kombinasi dari kelas “staff members” dan kelas “student” membuat kelas baru “peopleAtUni”.


Elemen owl:intersectionOf membuat kelas baru dari dua kelas A dan B dimana kelas tersebut memiliki anggota dari kelas A dan B.


Individual dari kelas baru yang dihasilkan dari contoh ini adalah individu anggota kedua kelas “faculty” dan kelas anonim yang dibuat dari pembatasan property “belongTo”. Elemen owl:complementOf memilih semua individual dari domain yang tidak menjadi anggota suatu kelas tertentu.


Pada contoh ini, kelas “course” memiliki anggota semua individual yang tidak tergabung dalam kelas “staffmember”.

Property

Property mendeskripsikan jenis relasi antar anggota kelas. Pada dokumen OWL, dua jenis property dibedakan:
  • Object Properties, merelasikan objek satu ke yang lain, contoh instance kelas yang satu dengan instance kelas yang lain. Pada contoh berikutnya, property objek “isTaughtBy” merelasikan kelas “course” dengan kelas “academicStaffMember”. Artinya “course” “isTaughtBy” sebuah instance kelas “academicStaffMember”. 

  • Property Datatype yang merelasikan objek ke suatu nilai data type. OWL tidak memiliki predefined data type, namun mengijinkan untuk menggunakan tipe data dari XML Schema. Pada contoh ini, tahun dimana tourist lahir dispesifikasi menggunakan data type  http://www.w3.org/2001/XLMSchema#nonNegativeInteger dari XML schema.



Perlu diperhatikan bahwa kedua jenis property dapat menggunakan elemen rdfs:domain dan elemen rdfs:range untuk membatasi relasi.

2 komentar:

  1. untuk penggunaan ontology terdapat permasalahan heterogenitas.

    http://hanf_aff.staff.ipb.ac.id/2016/10/17/permasalahan-heterogenitas-pada-ontology/

    BalasHapus
  2. Untuk Hubungan RDFS dengan OWL itu bagai mana.

    BalasHapus