SEMINAR TUGAS AKHIR PERIODE JULI 2010
CASE TOOL UNTUK PEMODELAN ULANG METADATA Fitri Indra Indikawati, Daniel O. Siahaan, Umi Laili Yuhana Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Email :
[email protected],
[email protected],
[email protected]
Pengembangan dan Abstrak penggunaan web semantik mengalami perkembangan dalam beberapa periode terakhir. Dalam pengembangan web semantik digunakan RDF sebagai representasi resource. RDF (Resource Description Framework) adalah bahasa yang digunakan untuk merepresentasikan informasi tentang suatu resource. Setiap pernyataan dalam RDF mendeskripsikan resource dan direpresentasikan dengan menggunakan triple. Komponen triple (subjek, predikat, objek) inilah yang nantinya akan disimpan ke dalam database. Setelah data dimasukkan ke dalam database, struktur awal metadata tidak akan terlihat. Oleh karena itu, domain expert yang ingin melakukan perubahan data di database harus mengetahuai struktur awal dari metadata yang ada di dalam database. Domain expert yang tidak benar-benar memahami struktur metadata awal mempunyai kemungkinan besar melakukan kesalahan saat melakukan pengeditan data langsung pada database. Aplikasi yang dibuat dalam penelitian ini dibuat untuk mempermudah domain expert dalam memodelkan ulang metadata dari suatu database. Struktur dari metadata di database dapat dilihat pada aplikasi ini dalam bentuk notasi grafis sehingga dapat membantu domain expert untuk memahami struktur metadata. Aplikasi ini juga menyediakan fitur untuk melakukan pengeditan dan penyimpanan data ke database sehingga bisa meminimalisasi kesalahan dibandingkan dengan pengeditan langsung di database dengan pengetahuan struktur metadata yang minim. Kata kunci: Metadata, RDF, RDF Graph 1.
Pendahuluan
Pengembangan dan penggunaan web semantik mengalami perkembangan dalam beberapa periode terakhir. Dalam pengembangan web semantik digunakan RDF sebagai representasi resource. RDF (Resource Description Framework) adalah bahasa yang digunakan untuk merepresentasikan informasi tentang suatu resource [1] Data dapat dibuat menjadi sebuah objek database untuk memudahkan pembuatan aplikasi RDF, memudahkan integrasi data RDF
Proses pemodelan data RDF pada database dapat dilakukan dengan membuat objek pada Oracle Spatial Network Data Model (NDM) berupa data triple (SDO_RDF_TRIPLE_S). Setiap pernyataan dalam RDF mendeskripsikan resource dan direpresentasikan dengan menggunakan triple. Komponen triple (subjek, predikat, objek) inilah yang nantinya akan disimpan ke dalam database. Setelah data triple ini dimasukkan ke dalam database, domain expert dapat melakukan query untuk mendapatkan data yang diinginkan. Yang menjadi pertanyaan adalah bagaimana apabila kita ingin melakukan perubahan data pada RDF. Apabila data triple telah dimasukkan ke dalam database maka domain expert melakukan perubahan dengan cara mempelajari data triple pada database Oracle Spatial Network Data Model (NDM) dan melakukan perubahan data. Hal ini mungkin dilakukan apabila data triple tidak banyak sehingga mudah dilakukan penelusuran data triple pada database dan kemudian merubah data yang diinginkan. Namun cara ini juga rawan kesalahan apabila kita tidak mengerti dengan benar struktur dari skema RDF awal. Oleh karena itu, diperlukan adanya kakas bantu yang bisa memudahkan domain expert dalam melakukan perubahan data triple pada database Oracle Spatial Network Data Model (NDM) dengan cara melakukan transformasi data triple menjadi data RDF kemudian menampilkannya dalam bentuk notasi grafis. Proses pengeditan dapat dilakukan dengan merubah objek pada notasi grafis sehingga domain expert hanya perlu melihat dan merubah bagian dari komponen RDF yang ingin dirubah dan menjaga komponen lain tetap sama sehingga dapat meminimalisasi kesalahan bila dibandingkan dengan pengeditan langsung pada database. Aplikasi yang dibangun berupa aplikasi untuk memodelkan ulang metadata yang telah disimpan di suatu database. Tujuan akhir dari untuk membuat sebuah tool untuk melakukan pemodelan ulang metadata secara grafis sehingga bisa memudahkan para domain expert yang ingin melakukan perubahan data triple pada database Oracle Spatial Network Data Model (NDM) tanpa harus melakukan perubahan langsung pada data di database yang mungkin menimbulkan kesalahan. Terdapat beberapa batasan dalam aplikasi kakas bantu pemodelan ulang metadata. Batasan pertama adalah notasi grafis yang digunakan
1
Fitri Indra - 5106100089
SEMINAR TUGAS AKHIR PERIODE JULI 2010
sesuai dengan paper Graphical Notations For Semantic Web Language (Siahaan, 2006). Masukan dari kakas bantu ini adalah data triple yang diambil dari database, file RDF atau file NTriple dan hasil pemodelan data menggunakan tools ini adalah berupa RDF graph. Konversi data yang dapat dilakukan oleh kakas bantu ini adalah konversi dari triple di database menjadi file NTriple, file NTriple menjadi file RDF, file RDF menjadi notasi grafis dan sebaliknya. Data NTriple yang digunakan didapat dari database Oracle Spatial Network Data Model (NDM) Makalah ini disusun menjadi beberapa bagian. Bagian pertama berisi pendahuluan. Berbagai pustaka yang mendasari penelitian ada pada bagian kedua. Bagian dasar teori memaparkan hasil studi literatur berupa rangkuman materi tentang konsep dasar RDF Graph. Bagian ketiga menjelaskan metodologi penelitian yang berisi perancangan dan implementasi aplikasi. Uji coba dan kesimpulan ada pada bagian keempat dan kelima. 2.
Dasar Teori
2.1 Pemodelan Metadata Pemodelan data RDF hampir mirip dengan konsep pemodelan seperti entity diagram atau class diagram, yaitu dengan membuat statement tentang resource dalam bentuk subjek, predikat, dan objek yang dikenal sebagai triple. Pemodelan triple dapat digambarkan seperti skema berikut:
Person
Tiap satu tag dalam RDF tersebut merepresentasikan satu triple. Bisa dilihat bahwa terdapat beberapa data triple yaitu
yang mendefinisikan
bahwa Person merupakan class, yang kedua adalah
yang mendefinisikan bahwa http://localhost#Person didefinisikan oleh http://localhost# yang
artinya Person berada pada suatu alamat atau lokasi http://localhost#. Apabila ada data lain, misalnya Female yang didefinisikan pada tempat yang sama yaitu di http://localhost# maka dapat dikatakan bahwa Person dan Female berada pada lokasi yang sama. Dan tag yang terakhir adalah
Person yang mendefinisikan bahwa label dari class adalah Person. Jadi class dengan definisi nama Person sama dengan class dengan definisi
. 2.1.2 NTriple Tiap baris dalam file merepresentasikan pernyataan tunggal dari sebuah informasi. Setiap pernyataan terdiri dari tiga bagian yang dipisahkan oleh spasi (subjek, predikat dan objek) dan diakhiri dengan tanda titik. Subjek bisa berupa URI atau named node, predikat harus berupa URI dan objek bisa berupa URI, named node atau string literal. URI – (Uniform Resources Identifier) adalah sebuah pengenal web (Web Identifier), misalnya , URI reference : http://www.example.org/index.html#sect dari URI : ion2 terdiri http://www.example.org/index.html dan
Gambar 2.1 Skema Triple
Subjek dan objek menunjukkan resource, predikat menunjukkan ciri-ciri atau aspek dari resource dan menyatakan hubungan antara subjek dan objek. Misalnya pernyataan “Sky has color blue” dapat direpresentasikan dalam triple: “sky” sebagai subjek, “has colour” sebagai predikat, dan “blue” sebagai objek. 2.1.1 RDF Resource Description Framework (RDF) adalah standar W3C (World Wide Web Consortium) yang didesain untuk pemodelan metadata. Penulisan file RDF berbasiskan format file XML sehingga sering dikenal dengan format RDF/XML. Contoh definisi class dalam format RDF:
(dipisahkan oleh karakter “#”) fragment identifier: section2. Contoh penggunaan Ntriple untuk mendeskripsikan bahwa Person mempunyai tipe class: .
Dalam
pernyataan
di
atas
merupakan
subjek,
merupakan predikat dan merupakan objek.
3.1.3 RDF Schema RDF Schema atau yang dikenal sebagai RDFS, adalah bahasa representasi extensible knowledge yang menyediakan elemen dasar dalam
2
Fitri Indra - 5106100089
SEMINAR TUGAS AKHIR PERIODE JULI 2010
pendeskripsian ontologi. Pendeskripsian tersebut disebut sebagai RDF vocabularies yang digunakan untuk menjelaskan struktur dari resource RDF. Ekspresi dasar RDF: 1. Rdfs:resource Semua resource RDF adalah instance dari rdfs:resource. Rdfs:resource merepresentasikan semua resource RDF yang disebut resources. 2. Rdfs:Class Sebuah resource dapat didefinisikan sebagai kelas dengan membuatnya menjadi instance dari rdfs:Class. 3. Rdfs:Property Semua resource RDF yang berupa property adalah instance dari rdfs:property. 4. Rdf:type Mengindikasikan bahwa sebuah resource adalah instance sebuah kelas. Sebuah resource adalah instance sebuah kelas tertentu ketika nilai dari rdf:type nya adalah kelas tersebut. 5. Rdfs:subclassOf Mengindikasikan bahwa sebuah kelas adalah sub kelas dari kelas yang lain. Hal ini menjelaskan hubungan subset / superset antar kelas. Property ini bersifat transitive, artinya, jika terdapat hubungan antara kelas pertama dengan kelas kedua, serta kelas kedua dengan kelas ketiga, maka kelas pertama dengan kelas ketiga juga berhubungan. Sebuah kelas dapat menjadi Sub kelas dari satu atau lebih kelas. 6. Rdfs:subPropertyOf Mengindikasikan bahwa sebuah property adalah sub property dari property yang lain. Hal ini menjelaskan hubungan subset/superset antar property. Property ini bersifat transitive, artinya, jika terdapat hubungan antara Property pertama dengan property kedua, serta property kedua dengan Property ketiga, maka property pertama dengan property ketiga juga berhubungan. Sebuah property dapat menjadi Sub property dari satu atau lebih property. 7. Rdfs:range Mengindikasikan tentang sekumpulan resource atau Literal yang dapat menjadi value sebuah property. Jika value dari property telah didefinisikan, maka value property tersebut hanya pada range yang ditentukan. Jika tidak, value sebuah property menjadi tidak terbatas. 8. Rdfs:domain Mengindikasikan sekumpulan resource yang dengannya sebuah property dapat digunakan. Jika domain kelas sebuah property telah didefinisikan, maka property tersebut hanya dapat digunakan oleh domain
kelas tersebut, jika tidak, property tersebut bebas digunakan oleh resource manapun. 2.1.4 Rule RDF Untuk merepresentasikan notasi grafis dalam RDF, diperlukan beberapa teknologi pendukung, misalnya RDF Parser dan Editor berbasiskan grafis yang dapat mengakomodasi rule-rule RDF yang digunakan, baik rule RDF itu sendiri maupun rule dari RDF Graph. RDF menggunakan URI sebagai dasar dari mekanismenya dalam hal mengidentifikasi subject, predicate, dan object, sehingga dapat disimpulkan, URI references untuk mengidentifikasi sesuatu yang dirujuk pada kalimat RDF, dan RDF/XML sebagai format yang dipahami mesin untuk merepresentasikan kalimat RDF. Sintaksis standart untuk mendeskripsikan RDF (Prapanca, 2007): 1. RDF merupakan bahasa yang digunakan untuk membuat model dari entitas-entitas(nodes) dan relationship-nya yang masing-masing relationship ditandai dengan sebuah URI (Uniform Resource Identifier) 2. Kalimat RDF direpresentasikan dalam format yang dipahami mesin, yakni menggunakan XML (eXtensible Markup Language). Format penulisan RDF yang berbentuk XML juga dapat digunakan untuk menampilkan informasi dari relational database 3. Relationship antara dua buah objects, dapat disimpan terpisah dari informasi tentang masing-masing object. Sebagai contoh, pada suatu pemodelan RDF seseorang mungkin mendefinisikan sebuah kendaraan memiliki jumlah roda, berat, dan panjang tanpa warna sehingga orang yang berbeda mendefinisikan kendaraan yang sama memiliki warna tertentu, dengan mengambil vocabulary warna dari suatu tempat tertentu 4. Relationship dari suatu resource pada argumentasi yang pertama harus berupa URIrefs, dan argumentasi yang kedua dapat berupa URIrefs atau literals. RDF memiliki beberapa istilah untuk menjelaskan bagian-bagian dari kalimat antara lain: subject – bagian dari kalimat yang menjelaskan tentang sesuatu yang menjadi pusat kalimat; predicate – bagian dari kalimat yang menjelaskan property atau karakteristik dari subject yang dibicarakan yang berisikan relationship resource; dan object – bagian dari kalimat yang menjelaskan value dari property. Standar metode untuk mendeskripsikan property dari data tersebut (RDF Schema). Berikut ini adalah rule RDF [2] 1. Resource rule: Semua resource dalam RDF adalah instance dari rdfs:Resource, kecuali literal dan
3
Fitri Indra - 5106100089
SEMINAR TUGAS AKHIR PERIODE JULI 2010
2.
3.
4.
5.
6.
7.
8.
9.
property. RDF resource ini dinamakan juga Resource. Property rule : Semua property p, yang merupakan bagian dari triple, tidak termasuk dalam Resource. Subproperty rule : Jika suatu property p1 adalah subproperty dari property p2 dan property p2 adalah subproperty dari property p3, maka property p1 adalah subproperty dari property p3. Class rule : Jika i merupakan rdf:type class c1 dan class c1 adalah subclass dari class c2, maka i juga merupakan rdf:type class c2. Subclass rule : Jika suatu class c1 adalah subclass dari class c2 dan class c2 adalah subclass dari class c3, maka class c1 adalah subclass dari class c3. Domain rule : Domain rule. Jika suatu property p adalah suatu domain d dan subject s adalah suatu triple dengan property p, maka subject s adalah domain dari d. Range rule : Jika suatu property p memiliki range R and o adalah object dari suatu triple dengan property p, maka object o adalah range R. Literals rule : Literals (constant values) merupakan sekumpulan karakter strings, dengan tujuan untuk merepresentasikan property values dan tidak boleh digunakan sebagai subject atau predicate dalam kalimat RDF. Datatype rule : Datatype merupakan elemen dari Literals, dimana Datatype bukan bagian dari subject, predicate dan object. Datatype merupakan subClass dari Literals, untuk merepresentasikan type data dari literal, apakah termasuk XMLLiteral, Literal (string), ataupun Literal (integer).
2.1.5. RDF Graph Notasi yang digunakan dalam Case Tool menggunakan referensi dari Graphical Notations For Semantic Web Language [3].
(a)
(b)
(c)
Keterangan: (a) Instance dari rdfs:Literal : Setiap sesuatu yang bukan termasuk resource adalah instance dari rdfs:Literal (b) Instance dari rdf:Resource : Semua resource RDF adalah instance dari rdfs:Resource. Hal tersebut mempunyai arti semua resource RDF disebut juga resource. (c) Predicate, dimana x dapat berupa instance of rdf:Property. X dapat berupa: r = rdfs:range d = rdfs:domain t = rdf:type s = rdfs:subClassOf Untuk memodelkan secara grafis, misalnya “John Barnes is a Person” digunakan garis yang merepresentasikan struktur dari sebuah pernyataan. Gambar menunjukkan bahwa resource John adalah Person dimana t merepresentasikan type. John
t
Person
Gambar 2.1 Contoh Notasi Grafis
3. Metodologi Penelitian 3.1 Rancangan Arsitektur Sistem
Gambar 3.1 Gambar Arsitektur Sistem
Gambar 3.1 menunjukkan arsitektur sistem. Pengguna merupakan domain expert web semantik yang telah mengerti dasar-dasar dari metadata dan pemodelannya. Dari gambar tersebut dapat dilihat alur dari sistem Metadata Remodeling Tool. Data triple diambil dari database atau dari file. Data triple
4
Fitri Indra - 5106100089
SEMINAR TUGAS AKHIR PERIODE JULI 2010
yang telah didapat kemudian dikonversi menjadi RDF dengan menggunakan library Jena. File RDF yang terbentuk dari proses tersebut kemudian digunakan untuk menyusun notasi grafis dengan menggunakan rule RDF Graph [2]. Setelah notasi
grafis terbentuk, domain expert dapat melakukan pengeditan terhadap data dari notasi grafis yang ada. Data yang baru dapat disimpan kembali dalam file maupun dalam database
3.2. Use Case Diagram
konversi data
<>
mengedit RDF graph
<>
domain_expert melihat data RDF
<> <>
melihat data dari file
melihat data dari database
Gambar 3.2 Use Case Diagram
Kakas bantu pemodelan ulang metadata ini hanya mempunyai satu aktor yaitu domain expert.Domain expert adalah pengguna yang mengerti konsep dasar pemodelan metadata dalam RDF. Untuk dapat menggunakan aplikasi ini, domain expert harus mempunyai akses login ke database untuk dapat mengambil data dan
menyimpannya kembali ke database. Domain expert yang tidak mempunyai login ke database dapat menggunakan aplikasi ini terbatas pada pembacaan data dari file RDF atau Ntriple dan hanya dapat menyimpannya kembali dalam bentuk file.
5
Fitri Indra - 5106100089
SEMINAR TUGAS AKHIR PERIODE JULI 2010
3.3. Class Diagram NTripleConverter dbConnection -
hostname SID username password port
+ + + +
: : : : :
# convertT riple () : void + insertNewT ripleData () : void
String String String String String
dbConnect () executeQuery () getModelName () queryNTripleData ()
: : : :
NTripleToDatabase
Connection ResultSet String boolean
+ convertT oNDM () : void
GraphToRDF
nodeVertex
- filePath : String
-
+ convertToRDF () : void
Converter - filePath : String + convertT oNTriple () : void + convertNTripleToRDF () : void
vertexType isDefinedBy label comment subClassOf subPropertyOf domain range prevNode nextNode nVertex
: : : : : : : : : : :
nodeEdge
String String String String String String String String nodeVertex nodeVertex int
-
source destination prevEdge nextEdge
0..*
0..1
0..1 getGraphByPos () getGraphByLabel () addClassNode () addPropertyNode () deleteNode () getGraphSize () editClassData () editPropertyData ()
: : : : : : : :
String String nodeEdge nodeEdge
0..*
RDFReaderToGraph
+ + + + + + + +
: : : :
nodeVertex nodeVertex void void void void void void
vertexList
+ + + +
insertVertex () deleteVertex () findByPos () findByName ()
: : : :
adjacencyVertex
void void nodeVertex int
+ insertEdge () : void + deleteEdge () : void + find () : nodeEdge 0..*
0..* 0..1
0..1 makeGraph RDFReader + + + +
+ runRDFReader () : void - readRDFFile () : void
addVertexClass () addvertexProperty () addEdge () findAdj ()
: : : :
void void void String
Gambar 3 Rancangan Class Diagram
Aplikasi ini terdiri dari class-class yang terbagi dalam 3 layer aplikasi yaitu data layer, logic layer dan presentation layer. Yang tergambar dalam class diagram di atas adalah class-class dari data layer dan logic layer. Layer data antara lain dbConnection, nTripleConverter dan nTripletoNDM yang mengatur koneksi ke database dan mengatur beberapa fungsi untuk pengambilan dan penyimpanan informasi ke database serta class nodeVertex, nodeEdge, vertexList,
adjacencyVertex yang menyimpan informasi dan data mengenai graph yang digunakan dalam pemodelan metadata dalam aplikasi. Untuk konversi data, digunakan logic layer yaitu GraphToRDF dan makeGraph untuk fungsi-fungsi yang berhubungan dengan data pada graph, serta RDFReader dan Converter yang berisi fungsi-fungsi untuk melakukan konversi metadata dalam aplikasi dari RDF ke notasi grafis dan sebaliknya.
6
Fitri Indra - 5106100089
SEMINAR TUGAS AKHIR PERIODE JULI 2010
4.
Uji Coba Uji coba ini dilakukan dengan mengambil data dari suatau database dan menampilkan data dalam database tersebut dalam bentuk notasi grafis. Secara umum tujuan uji coba ini adalah untuk menampilkan data dalam bentuk notasi grafis sesuai dengan rule RDF graph dan notasi grafis yang ditampilkan sesuai dengan strutur awal metadata 4.1. Model Data Uji Coba Model data yang akan digunakan dalam ujicoba adalah data “family” yang tergambar dalam bentuk RDF graph seperti pada gambar 4.1 berikut:
Gambar 4.4 Hasil Notasi Grafis dari Model Data Family
Gambar 4.1 Model Data Uji Coba
4.2 Skenario Uji Coba Langkah-langkah yang dilakukan dalam uji coba ini berikut penjelasannya dijabarkan sebagai berikut. 1. Menentukan database yang akan digunakan dalam uji coba 2. Memilih model dari database 3. Menampilkan data dari model yang ada di database 4. Menambahkan class atau property 5. Mengedit data dari class atau property 6. Menghapus class atau property 7. Menyimpan data kembali ke database 4.3 Hasil Uji Coba Pada proses uji coba diberikan beberapa skenario untuk mengetahui fungsionalitasfungsionalitas dari program. Uji coba dilakukan mulai dari masuknya input dan diproses sampai akhirnya menghasilkan output. Pengguna dapat menampilkan notasi grafis suatu metadata dari file maupun database, setelah metadata diambil, maka notasi grafis akan ditampilkan pada aplikasi seperti gambar 4.2 di bawah ini
Setelah notasi grafis ditampilkan pada aplikasi, pengguna dapat melakukan pengeditan pada notasi grafis yang ada. Pengeditan berupa penambahan, pengeditan data dan penghapusan class atau property. Setelah data diedit, maka notasi grafis yang baru akan langsung ditampilkan dalam aplikasi dan dapat disimpan ke file maupun database seperti pada gambar 4.3 di bawah ini.
Gambar 5.3 Tampilan Grafis Setelah Dilakukan Pengeditan
7
Fitri Indra - 5106100089
SEMINAR TUGAS AKHIR PERIODE JULI 2010
Tabel 4.1 berikut menampilkan hail uji coba fungsional dari aplikasi kakas bantu pemodelan ulang metadata. Tabel 4.1 Hasil Uji Coba Fungsional
Fungsi yang Diuji Menampilkan metadata dari file RDF Menampilkan metadata dair file NTriple Menampilkan metadata dari database Menambahkan class Menambahkan property Mengedit data pada class Mengedit data pada property Menghapus class Menghapus property Menyimpan metadata dalam file RDF Menyimpan metadata dalam file NTriple Menyimpan metadat ke database 5.
Hasil Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil
Kesimpulan
Kesimpulan yang dapat diambil dari pembuatan perangkat lunak ini antara lain bahwa aplikasi yang dibuat dalam penelitian ini telah [4]
dapat mengimplementasikan sebuah sistem untuk memodelkan ulang metadata yang ada pada suatu database. Proses pengeditan metadata di database dapat dilakukan secara langsung pada aplikasi ini. Hal ini memudahkan domain expert yang tidak mengetahui struktur metadata dalam database sehingga meminimalisasi kesalahan dalam pengeditan dibandingkan dengan pengeditan langsung di database. Domain expert juga dapat menyimpan kembali data yang sudah diedit ke file maupun disimpan kembali ke database. 6.
Daftar Pustaka
[1] Champin Antoine – Pierre. RDF Tutorial, recommended by the World Wide Web Consortium (W3C), 2001. [2] Prapanca, Aditya. Case Tool untuk Pemodelan Data dalam Resource Description Framework. Teknik Informatika, Fakultas Teknologi Informasi, Institut teknologi Sepuluh Nopember, Surabaya, 2007 [3] Siahaan, Daniel. Graphical Notations For Semantic Web Language, ICTS 2006. Informatics Department, Faculty of Information Technology, Sepuluh Nopember Institute of Technology, Surabaya, 2006.
8
Fitri Indra - 5106100089