Format Metadata OAI-PMH Prof. Dr. Opim S. Sitompul, M.Si

dengan bentuk 20X – 24X merupakan sekumpulan kode tertentu yang dapat digunakan untuk merepresentasikan judul dan segala sesuatu yang berhubungan dengan judul. Keterangan mengenai kode 20X – 24X dijabarkan pada Tabel 2.2. Dari beberapa kode pada Tabel 2.2 yang berhubungan dengan judul, diambil sebanyak dua kode untuk dijadikan sebagai referensi pemetaan metadata yaitu 245 dan 246. Pemilihan dua kode tersebut didasari pada kedekatan pengertian kedua kode tersebut dengan Title pada Dublin Core unqualified . Keakuratan dan ketepatan yang dipengaruhi oleh transformasi metadata tidak dapat diabaikan. Elemen kombinasi, definisi elemen semantik dan bidang aplikasi dari bentuk standar harus dapat diadopsi dan dikenali dengan baik oleh sebagian besar sistem [13].

2.2 Format Metadata

Perhatian yang cukup besar telah diberikan untuk meningkatkan efisiensi dan ruang lingkup web crawler . Web crawler komersial diperkirakan hanya mencakup sekitar 16 keseluruhan isi web [14]. Untuk meningkatkan efisiensi, sejumlah teknik telah diusulkan seperti memperkirakan pembuatan web dan pembaharuan yang lebih akurat, serta strategi crawling yang lebih efisien [15] [16]. Namun, menurut Michael L. Nelson [17], semua pendekatan ini berasal dari fakta bahwa protokol HTTP HyperText Transfer Protocol tidak menyediakan semantik untuk memungkinkan web server menjawab pertanyaan mengenai sumber daya yang dimiliki atau yang telah berubah sejak tanggal tertentu. Sejumlah Universitas Sumatera Utara pendekatan telah diusulkan untuk memperbaharui semantik pada server HTTP, mulai dari konvensi tentang bagaimana menyimpan indeks URL yang populer [18], hingga kombinasi indeks dan ekstensi HTTP [19]. WebDAV Web-based Distributed Authoring and Versioning [20] telah menyediakan beberapa pembaharuan semantik melalui ekstensi HTTP, akan tetapi tidak diterapkan secara luas. RSS Really Simple Syndication [21] merupakan format sindikasi yang telah diterapkan secara luas, tidak dapat digunakan untuk memilih data berdasarkan selang waktu tertentu. OAI-PMH memiliki kelengkapan semantik yang umum dan sangat baik yang merupakan standar de facto untuk pertukaran metadata dalam komunitas perpustakaan digital [17] [6]. Penerapan repositori OAI-PMH berdasarkan dokumen XML eXtensible Markup Language telah diuraikan [22], dibatasi oleh skenario tertentu, bukan konten web umum dan tidak terintegrasi langsung ke web server . Karena tidak terintegrasi oleh web server , beberapa peneliti berusaha untuk mengintegrasikan OAI-PMH dengan web server Apache menggunakan modul yang dinamakan mod_oai [17].

2.3 OAI-PMH

OAI-PMH menyediakan kerangka interoperabilitas aplikasi independen berdasarkan pengumpulan metadata. Ada dua komponen utama OAI-PMH yaitu Penyedia Data Data Provider dan Penyedia Layanan Service Provider . Penyedia Data mengelola sistem yang mendukung OAI-PMH sebagai alat untuk mempublikasikan metadata. Persyaratan untuk implementasi OAI-PMH sebagai penyedia data adalah metadata yang disimpan dalam database , web server yang dapat Universitas Sumatera Utara diakses via Internet, antarmuka pemrograman, indentifikasi arsip, identifikasi nilai unik untuk masing-masing dokumen, jenis metadata Dublin Core unqualified , penanggalan untuk metadata tanggal dibuatmodifikasi terakhir dan hirarki logika. Di sisi lain, penyedia layanan mengumpulkan metadata melalui OAI-PMH sebagai dasar untuk membangun layanan tambahan. OAI-PMH menggunakan satu standar metadata yaitu Dublin Core unqualified [11]. Penyedia karya ilmiah yang masih menggunakan metadata selain Dublin Core dapat melakukan transformasi metadata menjadi Dublin Core unqualified tanpa perlu menghapus metadata yang sedang digunakan. Akses terhadap metadata yang dimiliki harus diberikan secara bebas agar metadata tersebut dapat dimanfaatkan oleh pihak lain. Dalam hal ini, penyedia karya ilmiah berperan sebagai penyedia data. Penyedia karya ilmiah harus memiliki sebuah repositori, yaitu sebuah server yang dapat diakses melalui jaringan komputer, dan dapat memproses enam permintaan OAI-PMH yaitu Identify , ListMetadataFormats , ListSets , ListRecords , GetRecord dan ListIdentifiers [23]. Fungsi repositori ini adalah untuk mempublikasikan metadata kepada pengumpul metadata. Berikut ini entitas OAI-PMH dicetak dengan huruf miring, sedangkan protokol permintaan dicetak dengan jenis huruf courier [17]: a. Sebuah repositori OAI-PMH mempublikasikan metadata sumber daya. Dengan pengertian bahwa sumber daya diluar dari ruang lingkup OAI-PMH. Universitas Sumatera Utara b. Item adalah titik awal ke seluruh metadata yang berhubungan dengan sumber daya. Pada protokol, item diidentifikasikan sebagai identifier. c. Sebuah item dapat memberikan akses ke satu atau lebih record. Record berisi metadata dan informasi sekunder mengenai metadata. Sebuah record tertentu pada OAI-PMH diidentifikasikan sebagai kombinasi dari identifier dari item, metadataPrefix untuk menentukan format metadata yang digunakan pada publikasi metadata dan datestamp. Datestamp adalah tanggal dan waktu pembuatan atau modifikasi metadata. Sebagai catatan bahwa datestamp adalah properti catatan metadata, bukan item sebagaimana yang digunakan pada OAI-PMH versi 1.x. Hal ini mencerminkan bahwa metadata dari berbagai macam format metadata kemungkinan tersedia dan dapat dimodifikasi sendiri sehingga mempunyai datestamp yang berbeda. d. OAI-PMH juga mendefinisikan set sebagai konsep pilihan untuk pengelompokan item untuk tujuan pengumpulan data tertentu. Repositori dapat mengorganisir item menjadi set . OAI-PMH mendukung tiga protokol permintaan yang ditujukan untuk membantu pengumpul agar mengerti repositori OAI-PMH yaitu: a. Identify: digunakan untuk mengambil informasi mengenai sebuah repositori seperti administrator dan lain-lain. b. ListMetadataFormats: digunakan untuk mengambil format metadata yang tersedia pada satu repositori. Universitas Sumatera Utara c. ListSets: digunakan untuk mengambil struktur set dari sebuah repositori. Informasi ini sangat berharga untuk pengumpulan jenis metadata tertentu. OAI-PMH mendefinisikan tiga buah protokol permintaan lainnya yang ditujukan untuk pengumpulan metadata secara aktual yaitu: a. ListRecords: digunakan untuk mengumpulkan record dari sebuah repositori. Argumen pilihan mengizinkan pengumpulan secara selektif terhadap records berdasarkan set danatau datestamp . b. GetRecord: digunakan untuk mengambil sebuah record tertentu dari sebuah repositori. Dibutuhkan argumen yang menjelaskan bahwa identifier sebuah item berasal dari record yang diminta dan metadata format dari metadata harus disertakan pada record . c. ListIdentifiers merupakan penyingkatan dari ListRecords yang hanya mengambil informasi mengenai identifier , datestamp dan set . Sebagai contoh sebuah repositori yang mendukung OAI-PMH pada URL http:repository.usu.ac.idoai, protokol permintaan berikut digunakan untuk memperoleh metadata seluruh item yang mengalami perubahan sejak 10 Oktober 2010 dalam bentuk Dublin Core: http:repository.usu.ac.idoairequest?verb=ListRecords metadataPrefix=oai_dcfrom=2010-10-10 Universitas Sumatera Utara Bahasa Pemrograman cth. PHP, Java Servlets Skrip: - Uraikan argumen - Buat pesan kesalahan - Buat query SQL - Buat keluaran XML Web Server cth. IIS, Apache Permintaan SQL Balasan DB Database Permintaan OAI HTTP Balasan OAI XML Penyedia Data OAI Gambar 2.1 Diagram Arsitektur Penyedia Data [24] Pada OAI-PMH terdapat mekanisme untuk membatasi jumlah metadata yang dapat ditampilkan oleh penyedia data. Metadata yang tidak lengkap harus memiliki sebuah tag tambahan, yaitu resumptionToken pada akhir metadata. Tag ini berisi argumen yang membentuk satu alamat URL untuk menampilkan metadata berikutnya. Mekanisme penggunaan resumptionToken diilustrasikan pada Gambar 2.2. Penyedia Layanan Penyedia Data Ambil seluruh metadata Memberikan 100 dari150 metadata 100 metadata + resumptionToken “ID1” repo.orgverb=ListRecordsmetadataPrefix=oai_dc Ambil metadata berikutnya repo.orgverb=ListRecordsresumptionToken=ID1 Memberikan 50 metadata terakhir 50 metadata Gambar 2.2 Ilustrasi Mekanisme resumptionToken Universitas Sumatera Utara Penggunaan resumptionToken ditujukan untuk memisahkan respon yang berpotensi memakan waktu yang lama menjadi beberapa respon waktu yang lebih pendek. Sebagai contoh jika sebuah repositori memberikan respon sebanyak satu juta record , belum ada repositori maupun pengumpul yang dapat menangani respon tersebut. Untuk mengatasinya repositori dapat memilih untuk memisahkan seluruh record yang terkumpul menjadi beberapa bagian yang masing-masing berjumlah 1000 record . Ukuran resumptionToken ditentukan oleh repositori, bukan pengumpul. Karena masing-masing repositori memiliki ketenuan yang berbeda untuk menentukan nilai resumptionToken, mengakibatkan penyedia layanan kesulitan untuk memprediksi nilainya. Ada beberapa parameter pilihan yang dapat ditambahkan yaitu: a. expirationDate, yaitu batas waktu yang disediakan penyedia data untuk memastikan bahwa metadata yang dikirimkan adalah sah b. completeListSize, yaitu jumlah daftar metadata selengkapnya c. cursor, yaitu jumlah metadata yang telah dikirim Dari sisi penyedia data, terdapat kemungkinan munculnya permasalahan pada implementasi resumptionToken yaitu apabila terjadi perubahan database selama operasi pengumpulan metadata. Gambar 2.3 menunjukkan kasus yang mungkin terjadi apabila terdapat perubahan konten database di antara permintaan awal dan permintaan lanjutan. Jika penyedia data hanya mengingat total data yang telah Universitas Sumatera Utara terkirim maka akan ada kemungkinan terjadinya ketidaksesuaian pada permintaan selanjutnya. Ada dua buah solusi yang dapat diterapkan yaitu menduplikasi data pada tabel permintaan dan solusi lainnya adalah menyimpan tanggal permintaan awal dengan parameter lainnya dan menggunakannya seperti argumen until. Database 1 select dc-data from metadata-table 2 267 dokumen 3 insert, update, delete 4 select dc-data from metadata-table 5 268 dokumen Ambil seluruh metadata repo.orgoai?verb=ListRecords metadataPrefix=oai_dcfrom=2011-01-01 Ada 267 metadata, diberikan 100 100 metadata + resumptionToken “ID1” Ambil metadata selanjutnya repo.orgoai?verb=ListRecords resumptionToken=ID1 Ada 268 metadata, diberikan 100 100 metadata + resumptionToken “ID2” Penyedia Data ID1={ from=2011-01-01, until=empty, set=empty, mdP=oai_dc, date=2010-12- 12T15:00:00Z, delivered=100 } Gambar 2.3 Permasalahan pada Implementasi resumptionToken

2.4 Sistem Pengumpul Metadata Terdistribusi