Resource Description Framework (RDF)

3 08 2009

RDF Tulang Punggung Web 3.0 / Semantic Web

Oleh : Teguh Sutopo

1. SEJARAH DAN PERKEMBANGAN WEB

Website atau juga disebut dengan WORLD WIDE WEB (WWW) lahir di tahun 1989 ketika seorang peneliti CERN (pusat penelitian nuklir Eropa) bernama Tim Berners-Lee membuat sebuah browser berbasis hyperlink untuk sistem pengakses tulisan ilmiah di lembaga tersebut. Browser yang sangat sederhana itu pertama diberi nama WorldWideWeb, tanpa spasi, lalu kemudian berganti menjadi Nexus untuk menghindari kerancuan dengan istilah WWW. Walaupun sekarang WWW sudah meraih sukses besar melebihi perkiraan pembuatnya di awal pembuatannya.


Website sejak pemunculannya telah mengalami perkembangan yang sangat pesat. Secara fungsional Website digunakan untuk melakukan transaksi, penyebaran informasi, maupun pencarian informasi. Website yang memiliki mesin pencari informasi seperti altavista, google, yahoo, cuil, wolframalpha, dan yang terbaru bing telah menjadi alternatif utama bagi masyarakat dalam mencari berita atau informasi.


Secara teknologi, Website sampai saat ini memasuki generasi ke 3 yaitu Web 3.0 atau disebut semantic web yang meskipun masih dalam perdebatan para analis dan peneliti untuk standarisasi.

Adapun generasi website yang sudah ada dan masih berjalan yaitu Web 1.0 dan Web 2.0. Secara ringkas mengenai Web tersebut adalah sebagai berikut :

Web 1.0

Web 1.0 merupakan teknologi Web generasi pertama yang merupakan revolusi baru di dunia Internet karena telah mengubah cara kerja dunia industri dan media. Pada dasarnya, Website yang dibangun pada generasi pertama ini secara umum dikembangkan untuk pengaksesan informasi dan memiliki sifat yang sedikit interaktif namun cenderung pasif. Berbagai Website seperti situs berita “cnn.com” atau situs belanja “Bhinneka.com” dapat dikategorikan ke dalam jenis ini.

Web 2.0

Istilah Web 2.0 pertama kalinya diperkenalkan oleh O’Reilly Media pada tahun 2004 sebagai teknologi Web generasi kedua yang mengedepankan kolaborasi dan sharing informasi secara online.

Menurut Tim O’Reilly, Web 2.0 dapat didefinisikan sebagai berikut:

Web 2.0 adalah revolusi bisnis di industri komputer yang disebabkan oleh penggunaan internet sebagai platform, dan merupakan suatu percobaan untuk memahami berbagai aturan untuk mencapai keberhasilan pada platform baru tersebut. Salah satu aturan terutama adalah: Membangun aplikasi yang

mengeksploitasi efek jaringan untuk mendapatkan lebih banyak lagi pengguna aplikasi tersebut

Berbagai layanan berbasis web seperti jejaring sosial, wiki dan folksonomies (misalnya: “flickr.com”, “del.icio.us”) merupakan teknologi Web 2.0 yang menambah interaktifitas di antara para pengguna Web.

Pada umumnya, Website yang dibangun dengan menggunakan teknologi Web 2.0 memiliki fitur-fitur sebagai berikut:

  • CSS (Cascading Style Sheets)

  • Aplikasi Rich Internet atau berbasis Ajax

  • Markup XHTML

  • Sindikasi dan agregasi data menggunakan RSS/Atom

  • URL yang valid

  • Folksonomies

  • Aplikasi wiki pada sebagian atau seluruh Website

  • XML Web-Service API

Web 3.0 / Semantic Web

Web 3.0 berpotensi menjadi generasi teknologi di dunia Internet. Saat ini, definisi untuk Web 3.0 sangat beragam mulai dari pengaksesan broadband secara mobile sampai kepada layanan Web berisikan perangkat lunak bersifat on-demand. Namun, menurut John Markoff, Web 3.0 adalah sekumpulan teknologi yang menawarkan cara baru yang efisien dalam membantu komputer mengorganisasi dan menarik kesimpulan dari data online. Content web ditampilkan tidak hanya dalam format bahasa manusia yang umum (natural language), tetapi juga dalam format yang dapat dibaca dan digunakan oleh mesin (baca: software).

Melalui Semantic Web inilah, berbagai perangkat lunak akan mampu mencari, membagi, dan mengintegrasikan informasi dengan cara yang lebih mudah. Dengan demikian, unsur kecerdasan buatan (Artificial Intelligence / AI) merupakan bagian penting pada Web 3.0 / Semantic Web, sehingga Web menjadi semakin cerdas.


2. Komponen-komponen Semantic Web

Pembuatan Semantic Web dimungkinkan dengan adanya sekumpulan standar yang dikoordinasi oleh World Wide Web Consortium (W3C). Standar yang paling penting dalam membangun Semantic Web adalah XML, XML Schema, RDF, OWL, dan SPARQL.

Berikut ini adalah layer dari Semantic Web sebagaimana direkomendasikan oleh W3C (www.w3c.org):

gmb1_RDF

Gambar 1: Layer pada Semantic Web


3. Resource Description Framework (RDF)

Salah satu tulang punggung Web 3.0 adalah format dan spesifikasi yang memungkinkan komunikasi dan interaksi pada level mesin, W3C mendefinisikan format metadata yang dikenal dengan RDF (Resource Description Format). RDF terdiri dari tiga komposisi, meliputi subject, predicate, dan object. Predicate merupakan komposisi yang menerangkan sudut pandang dari subject yang dijelaskan object, sementara subject dan object merupakan entitas. Object di dalam RDF dapat menjadi subject yang diterangkan oleh object yang lainnya. Dengan inilah object dapat berupa masukan yang dapat diterangkan secara jelas dan detail, sesuai dengan keinginan pengguna yang memberikan masukan.

Cara kerja RDF dapat diterangkan dengan satu contoh sederhana berikut, untuk mendefinisikan “daun memiliki warna hijau”, maka “daun” direpresentasikan sebagai subject, “hijau” merupakan object, dan “memiliki warna” adalah predicate. Dengan menggunakan RDF, website dapat menyimpan dan melakukan pertukaran informasi antar-web. RDF telah digunakan pada aplikasi-aplikasi, antara lain:

a. RSS (RDF Site Summary).

RSS memberikan informasi update sebuah website tanpa pengunjung perlu mengunjungi website tersebut.

b. FOAF (Friend of a Friend).

Didesain untuk mendeskripsikan orang-orang, ketertarikan dan hubungan mereka.

c. SIOC (Semantically-Interlinked Online Communities).

Menerangkan komunitas online dan menciptakan koneksi antara diskusi berbasis Internet seperti message board, blog, maupun mailing list.

Dasar RDF

Sebagai sebuah standar bahasa semantik web yang ditetapkan oleh W3C, RDF merupakan suatu pondasi dalam melakukan pemrosesan metadata. Di dalam RDF berlaku aturan “seseorang dapat mengatakan apapun mengenai apapun dimanapun”. Ini berarti bahwa hubungan antara 2 obyek dapat berada di beberapa dokumen yang terpisah dari obyeknya, sehingga tidak diperlukan obyek secara fisik untuk menjelaskan deskripsinya, melainkan menggunakan referensi yang mengacu kepada obyek tersebut.

Elemen dasar model RDF adalah triple atau statements : berupa sebuah resource (subyek) yang dihubungkan dengan resource yang lain atau literal (obyek) melalui resource ketiga (predikat). Resource ini diidentifikasi dengan URI. Sebuah statement dapat didefinisikan : mempunyai property bernilai.


Adapun tujuan dari desain RDF3 adalah untuk memenuhi kriteria berikut :

  1. Memiliki model data yang sederhana

  2. Memiliki bentuk semantic yang formal dan inference yang dapat dibuktikan

  3. Menggunakan extensible URI-based vocabulary

  4. Menggunakan sintaks XML

  5. Mendukung penggunaan XML Schema Datatypes

  6. Memperbolehkan setiap orang untuk mendefinisikan tentang resource


RDF Schema

RDF Schema adalah vocabulary yang digunakan untuk membuat RDF. Terdapat tiga konsep penting dalam RDF Schema, yaitu Resource (rdfs:Resource), Class (rdfs:Class), Property (rdf:Property).


Apabila ingin menjelaskan sesuatu adalah “type” dari sesuatu yang lain, dapat menggunakan rdf:Type Property:-. Contoh berikut akan memperjelas:


rdfs:Resource rdf:type rdfs:Class.

rdfs:Class rdf:type rdfs:Class.

rdf:Property rdf:type rdfs:Class.

rdf:type rdf:type rdf:Property.


Contoh diatas menjelaskan bahwa : Resource adalah type dari Class, Class adalah type dari Class, Property adalah type dari Class dan Type adalah type dari Property.


Untuk membuat Class sangatlah mudah. Contohnya membuat class dengan nama history:


:history rdf:type rdfs:Class


Jika ingin menjelaskan bahwa hiroshima adalah jenis history, maka:

:hiroshima rdf:type :history


Membuat property pun cukup mudah, hanya dengan menggunakan rdf:Property, seperti berikut:


:title rdf:type rdf:Property

:hiroshima :title “Hiroshima and Nagasaki”


Mengapa dikatakan Hiroshima title adalah “Hiroshima and Nagasaki”? karena :hiroshima adalah URI, dan penggunaannya dapat dilakukan dengan memilih sembarang URI, contohnya “bom_hiroshima” ataupun “hiroshima_rata”. Pertimbangan menggunakan :hiroshima terlebih kepada kemudahan dalam mengingat.


Selain tiga konsep diatas, terdapat juga rdfs:subClassOf dan rdfs:subPropertyOf, yang menjelaskan bahwa class atau property merupakan sub class atau sub property dari class atau property yang lain. Jika history adalah sub class dari documenter, maka penulisannya adalah :


:history rfds:subClassOf :documenter

Hal ini menjelaskan bahwa hiroshima adalah history, dan juga menjelaskan bahwa hiroshima adalah documenter. Penulisan sub class lain adalah sebagai berikut:


:war rdfs:subClassOf :documenter

:flora_fauna rdfs:subClassOf :documenter

Dan kemudian menciptakan instance dari class, seperti berikut:


:world_war_1 rdf:type :war

:pinus_garden rdf:type :flora_fauna


Konsep berikutnya, yang juga penting adalah domains dan ranges. Domains adalah acuan dari subyek atau obyek, sedangkan ranges adalah batasan nilai. Contohnya apabila kita ingin mengatakan bahwa properti “:duration” selalu mengacu ke video dan memiliki nilai literal, maka:


:video rdf:type rdfs:Class

:duration rdf:type rdf:property

:duration rdfs:domain :video

:duration rdfs:range rdfs:literal

:spiderman3 rdf:type :video

:video :spiderman3 “2 jam 30 menit”


Konsep lain yang ada yaitu rdfs:comment dan rdfs:label, contohnya sebagai berikut:


:spiderman3 rdfs:label “Hot Movies on May

:spiderman3 rdfs:comment “Spiderman VS Sand Man”

  1. Jena: Framework Pengembangan Aplikasi Semantic Web Berbasis Java

Jena Java RDF API and toolkit merupakan framework berbasis bahasa Java untuk mengkonstruksi aplikasi Semantic Web. Framework ini menyediakan lingkungan pemrograman untuk RDF, RDF Schema, OWL, dan SPARQL serta memiliki mesin inferensi berbasis aturan (rule-based inference engine). Jena juga memiliki kemampuan untuk digunakan sebagai basis data RDF melalui layer yang dikenal dengan nama Joseki.

Untuk membuat aplikasi Semantic Web, pertama-tama kita harus membuat model RDF.

Sebagai contoh, kita membuat model pohon keluarga sebagai berikut:

gmb2_RDF

Untuk contoh ini, misalnya kita telah memiliki vocabulary “Relationship” yang didalamnya terdapat properties siblingOf, spouseOf, parentOf, dan childOf.

Jena memiliki kelas ModelFactory yang dapat digunakan untuk membuat berbagai model. Melalui model inilah kita akan membuat sebuah Resource yang merepresentasikan setiap orang yang ada pada pohon keluarga di atas.

Setelah semua resource dibuat, selanjutnya kita dapat menambahkan statements kepada resource tersebut. Pada Jena, subjek setiap statement selalu berupa sebuah Resource, sedangkan predikat direpresentasikan oleh Property, dan objek bisa direpresentasikan oleh sebuah Resource lain maupun sebuah nilai literal.

Untuk menggambarkan relasi pada pohon keluarga tersebut, kita harus menambahkan empat buah instance Property dengan cara memanggil method addProperty( ).

Berikut ini adalah potongan kode yang merepresentasikan model pohon keluarga (keluarga.rdf) tersebut di atas.

// URI declaration

String familyUri = “http://family/”;

String relationshipUri =

http://purl.org/vocab/relationship/”;

// Create an empty Model

Model model = ModelFactory.createDefaultModel();

// Create a Resource for each family member,

// identified by their URI

Resource iwan = model.createResource(familyUri+”iwan”);

Resource santi = model.createResource(familyUri+”santi”);

Resource joni = model.createResource(familyUri+”joni”);

Resource anni = model.createResource(familyUri+”anni”);

// and so on for other family members

// Create properties for the different types of

// relationship

// to represent

Property childOf =

model.createProperty(relationshipUri,”childOf”);

Property parentOf =

model.createProperty(relationshipUri,”parentOf”);

Property siblingOf =

model.createProperty(relationshipUri,”siblingOf”);

Property spouseOf =

model.createProperty(relationshipUri,”spouseOf”);

// Add properties to iwan describing relationships to

// other family

// members

iwan.addProperty(siblingOf,santi);

iwan.addProperty(spouseOf,anni);

iwan.addProperty(parentOf,edo);

// Can also create statements directly . . .

Statement statement =

model.createStatement(iwan,parentOf,fanny);

// but remember to add the created statement to the model

    4. Kesimpulan
    RDF merupakan salah satu bagian penting Teknologi Web 3.0 / Semantic Web sehingga menjadikan Web memiliki kecerdasan (artificial intelligence / AI). Artinya, dengan menggunakan Semantic Web, informasi yang tertulis pada sebuah Website tidak saja berguna sebagai informasi yang bisa dibaca oleh manusia melainkan juga menjadi sumber informasi yang bisa diproses dan dimengerti oleh komputer.

    Tak ada gading yang tak retak, meskipun Semantic Web dipercaya sebagai generasi yang akan datang di dunia Web, berbagai kritikan juga mulai muncul. Misalnya, sejauh mana tingkat fisibilitas khususnya di dunia bisnis. Selain itu, masalah lamanya waktu saat membuat dan mempublikasi isi Web pun masih menjadi perdebatan karena untuk menampilkan sebuah informasi saja akan diperlukan dua format yang berbeda yaitu untuk dilihat manusia dan sekaligus untuk diproses mesin.

    Akhirnya, menjadikan Web 3.0 sebagai web masa depan merupakan sebuah tantangan, sebab pada dasarnya tidak ada orang yang dapat memastikan teknik pengorganisasian informasi apa yang paling tepat, mengingat data digital seluruh dunia yang begitu besar di dalam Web, yang tidak mungkin menampungnya hanya dalam sebuah framework. Namun demikian Semantic Web menawarkan sebuah solusi yang memang luar biasa bagi pemrosesan informasi di Web.

    Referensi

    1. Dave Beckett, Jeen Broekstra (2007). SPARQL Query Results XML Format. Diakses dari: http://www.w3.org/TR/rdf-sparql-XMLres/.
    2. Ian Davis, Eric Vitiello Jr. (2005). RELATIONSHIP: A vocabulary for describing relationships between people. Diakses dari: http://vocab.org/relationship/.
    3. Jeroen Van Der Ham (2007). Semantic Web Tools. Diakses dari: http://esw.w3.org/topic/SemanticWebTools.
    4. John Borland (2007). A Smarter Web. Diakses dari: http://www.technologyreview.com/Infotech/18396/.
    5. Leigh Dodds (2005). Introducing SPARQL: Querying the Semantic Web. Diakses dari: http://www.xml.com/lpt/a/1628.
    6. Ken Varnum (2007). Introduction to RDF. Diakses dari: http://www.slideshare.net/ rdf-overview-presentation4617.ppt
    7. Joko Nurjadi (2009). Menguak Kecerdasan Search Engine. PCMedia Vol. 08/2009
    8. ______. RDF Specification (technical). Diakses dari: http://www.w3.org/RDF/


    Actions

    Information

    Leave a Reply

    Fill in your details below or click an icon to log in:

    WordPress.com Logo

    You are commenting using your WordPress.com account. Log Out / Change )

    Twitter picture

    You are commenting using your Twitter account. Log Out / Change )

    Facebook photo

    You are commenting using your Facebook account. Log Out / Change )

    Google+ photo

    You are commenting using your Google+ account. Log Out / Change )

    Connecting to %s




    %d bloggers like this: