Juni 20, 2012

Arsitektur Aplikasi Web Semantik: Antara Ada dan Tidak Ada

Artikel sederhana ini sebenarnya berawal dari berbagai pertanyaan (awam) yang sering saya temui terkait dengan Web Semantik (in English: Semantic Web). Pertanyaan yang paling sering saya temui biasanya dari 'dunia nyata' alias dari para praktisi pengembang aplikasi web. Meski banyak perdebatan dengan orang-orang yang skeptis dengan Web Semantik, saya pikir, mengubah web menjadi 100% linked data memang mustahil, tetapi tidak berarti kemudian harus meniadakan 100%. Jadi, jika posisi anda adalah pengembang ataupun ilmuwan yang skeptis dengan Web Semantik, berarti kita berada pada posisi yang berbeda. You are on your own, I am on my own. Web memang kompleks.

Kompleksitas ini memang sesuatu yang inherent karena sifatnya yang meliputi 'seluruh dunia'. Berawal dari 'hanya' HTTP dan HTML yang diimplementasikan di atas TCP/IP, Web berubah menjadi sesuatu yang kompleks saat ini. Web Semantik itu sendiri merupakan perpanjangan dari Web Sintaktik (Syntactic Web), bukan meniadakan Web Sintaktik. Web Sintaktik itu sendiri sebenarnya 'hanya' terkait dengan berbagai spesifikasi serta peranti yang memungkinkan untuk terjadinya hubungan klien-server dengan platform Web dengan penekanan lebih pada interaksi antara manusia dengan aplikasi. W3C dan berbagai badan penentu standar kemudian membuat berbagai standar yang terkait dengan hal ini, misalnya (X)HTML, HTTP(S), JavaScript, PNG, SVG, CSS, dan lain-lain.

Banyak kebingungan yang kemudian terjadi disini. Kebingungan ini sebenarnya adalah sesuatu hal yang wajar karena manusia cenderung mencari kepastian, dalam kasus ini adalah Web Sintaktik dengan Web Semantik. Sampai dimana suatu aplikasi disebut sebagai Web Sintaktik? Seperti apakah Web Semantik? Apa sebenarnya definisi dari Web Semantik? Bagaimana suatu aplikasi bisa disebut sebagai aplikasi Web Semantik? Masalah muncul karena tidak ada badan yang berwenang untuk menetapkan "jawaban" dari berbagai pertanyaan tersebut. Bahkan FAQ (Frequently Asked Questions) tentang Web Semantik dari W3C (The World menyatakan bahwa tidak ada definisi formal tentang Web Semantik:
1.2. Are there any other definitions or thought of Semantic Web, if any?
No formal definitions, but of course there are different approaches. Indeed, the complexity and variety of applications referring to the Semantic Web is increasing every day, which means that various application areas, implementers, developers, etc, would emphasize different aspects of Semantic Web technologies. This wide range of applications include data integration, knowledge representation and analysis, cataloguing services, improving search algorithms and methods, social networks, etc.
Sumber: http://www.w3.org/2001/sw/SW-FAQ FAQ resmi tersebut lebih menekankan pada tujuan utama dari Web Semantik (main goals of the Semantic Web), lihat pertanyaan pertama dan jawabannya di FAQ tersebut. W3C menyediakan berbagai spesifikasi yang memungkinkan untuk mendefinisikan data terbuka sehingga bisa dimungkinkan keterkaitan antara berbagai sumber daya di Internet. Di dunia praktik, menuju data terbuka ini menjadi masalah yang 99% terkait dengan masalah non teknologi.

Dengan kondisi seperti di atas, akan terasa kompleks sekali untuk menjawab pertanyaan-pertanyaan dimuka. Berbagai usaha telah dilakukan untuk mendefinisikan arsitektur aplikasi Web Semantik (sering juga disebut sebagai "The Semantic Web Layer Cake" atau "The Semantic Web Layered Architecture" atau "The Semantic Web Stack"). Arsitektur tersebut pada awalnya dirumuskan oleh Tim Berners-Lee (http://www.w3.org/2000/Talks/1206-xml2k-tbl/). Setelah itu, setidaknya terdapat 4 versi arsitektur aplikasi Web Semantik (lihat Haytham Al-Feel, M.A.Koutb, and Hoda Suoror, 2009). James Hendler mengkritisi arsitektur yang dianggap "resmi" dan merupakan versi iterasi terakhir (2006) pada presentasi di Dagstuhl (http://www.cs.rpi.edu/~hendler/presentations/LayercakeDagstuhl-share.pdf).

 

Usaha untuk "menyatukan" persepsi dan menuju pada kesepakatan arsitektur aplikasi Web Semantik pun juga menjadi perhatian. Beberapa paper berikut membahas tentang arsitektur aplikasi Web Semantik:

  • Bernardo Cuenca Grau. 2004. A possible simplification of the semantic web architecture. In Proceedings of the 13th international conference on World Wide Web (WWW '04). ACM, New York, NY, USA, 704-713. DOI=10.1145/988672.988769 http://doi.acm.org/10.1145/988672.988769 
  • Michael Kifer, Jos de Bruijn, Harold Boley, and Dieter Fensel RuleML, volume 3791 of Lecture Notes in Computer Science, page 17-29. Springer, (2005) 
  • Ian Horrocks, Bijan Parsia, Peter Patel-Schneider, James Hendler, Semantic Web Architecture: Stack or Two Towers? Principles and Practice of Semantic Web Reasoning (2005), pp. 37-41, doi:10.1007/11552222_4 
  • Aurona Gerber, Alta van der Merwe, and Andries Barnard. 2008. A functional semantic web architecture. In Proceedings of the 5th European semantic web conference on The semantic web: research and applications (ESWC'08), Sean Bechhofer, Manfred Hauswirth, Jorg Hoffmann, and Manolis Koubarakis (Eds.). Springer-Verlag, Berlin, Heidelberg, 273-287. 
  • H. Al-Feel, M. A. Koutb, and H. Sorour, "Toward an Agreement on Semantic Web Architecture," in Proceedings of the International Conference on Information and Communication Technologies, Dubai, World Academy of Science, Engineering and Technology, France, , pp. 806-810, 2009. 
Perlu diketahui bahwa sampai saat ini tidak ada "kesepakatan" tentang arsitektur aplikasi Web Semantik. Dari berbagai skema serta arsitektur di atas, terdapat beberapa spesifikasi yang bisa dibilang sudah matang (RDF, RDFS, OWL, IRI, XML, SPARQL, RIF) maupun masih dalam bentuk draft versi perbaikannya. Beberapa bagian malah sama sekali belum ada (Logic, Proof, Trust). Berdasarkan pada berbagai situasi di atas, penulis menyimpulkan bahwa pada saat ini beberapa teknologi telah matang dan siap diimplementasikan, sementara diantara ketidakpastian arsitektur tersebut terdapat juga beberapa hal yang masih menjadi bahan penelitian. Secara umum, sudah saatnya bagi para pengembang aplikasi Web untuk mulai memikirkan berpindah ke level teknologi berikutnya:

  • Data terdistribusi yang interoperable yang memungkinkan keterkaitan antar berbagai sumber data di Web. Teknologi yang memungkinkan untuk ini adalah RDF dan RDFS. Berbagai teknologi yang memungkinkan penyimpanan data secara persistent untuk tipe ini juga telah dikembangkan (dikenal dengan istilah Triplestore). Secara non teknis, perlu didorong penggunaan data ini sehingga memungkinkan adanya data terbuka di Internet yang bisa saling diakses dan membentuk "pengetahuan" baru untuk kebaikan para pengguna Web. Untuk memungkinkan interoperabilitas yang lebih baik, gunakan skema untuk mendefinisikan Ontologi (RDF Schema, OWL, dan SKOS). Beberapa spesifikasi yang bisa digabungkan dengan teknologi legacy serta sumber data lainnya juga dimungkinkan untuk digunakan, misalnya RDFa, GRDDL, dan POWDER. 
  • Bahasa untuk query data yang ter-relasi melalui RDF tersebut. Teknologi ini dikenal dengan spesifikasi SPARQL. 

Pada tulisan-tulisan berikutnya, saya akan membahas berbagai spesifikasi tersebut serta ketersediaan peranti yang memungkinkan bagi para pengembang aplikasi Web untuk mengembangkan aplikasi yang kompatibel dengan teknologi Web Semantik.