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