i
KATA PENGANTAR
Puji dan syukur saya panjatkan kehadapan Tuhan Yang Maha Esa, Ida Sang Hyang
Widhi Wasa, atas anugerahnya sehingga penyusunan Modul 1 mata kuliah Semantic Web ini
bisa diselesaikan dengan baik.
Saya megucapkan terimakasih sebesar-besarnya kepada berbagai pihak yang
membantu penyusunan Modul 1 Semantic Web ini.
Modul ini diperuntukkan untuk memperlancar proses pembelajaran mata kuliah
Semantic Web yang diselenggarakan oleh Program Studi Teknik Informatika, FMIPA, UNUD.
Materi pembelajaran mata kuliah Semantic Web terbagi menjadi 3 modul utama yaitu:
modul 1 yang akan menyajikan empat pokok bahasan (konsep dasar dan teknologi yang
mendasari semantic web; dasar-dasar XML untuk merepresetasikan RDF dokumen; RDF dan
RDF Schema; dan OWL Language), modul 2 yang akan menyajikan tiga pokok bahasan
(Logika dan penalaran; Pengenalan SPARQL; dan Protégé dan Pellet Reasoner), dan modul 3
yang akan menyajikan tiga pokok bahasan (aplikasi-aplikasi semantic web; pemrograman
dengan Jena; dan pengintegrasian informasi dari sumber data lain).
Semoga modul 1 Semantic Web ini bisa memberi manfaat yang besar bagi
terselenggaranya proses pembelajaran, khususnya mata kuliah Semantic Web, dengan lebih
baik.
Kritik dan saran yang membangun sangat saya harapkan agar Modul 1 Semantic Web
ini bisa menjadi lebih baik ke depannya nanti.
Penulis
ii
TINJAUAN MATA KULIAH
SASARAN BELAJAR
• Mahasiswa dapat menjelaskan konsep dasar dan teknologi yang mendasari semantic
web
• Mahasiswa mampu memahami dan menjelaskan dasar-dasar XML sebagai salah satu
bentuk bentuk representasi untuk RDF dan RDF schema
• Mahasiswa mampu dan memahami elemen-elemen dasar OWL dan bagaimana
mengimplementasikannya
• Mahasiswa mampu memahami konsep dasar logika dan penalaran dan mesin
penalaran
• Mahasiswa mengetahui tentang bahasa SPARQL dan mampu menggunakannya untuk meng-
query web semantik.
• Mahasiswa mampu menerapkan konsep-konsep dasar semantic web menggunakan
framework pendukungnya seperti protégé
• Mahasiswa mengetahui beberapa contoh aplikasi semantic web dan mampu
memunculkan ide baru untuk aplikasi ini.
• Mahasiswa mampu mengembangkan aplikasi semantic web sederhana dengan
menggunakan framework Jena
• Mahasiswa mampu mengembangkan aplikasi semantic web sederhana dengan
menggabungkan informasi dari berbagai sumber
POKOK BAHASAN
1. Konsep dasar dan teknologi yang mendasari semantic web
2. Dasar-dasar XML
3. RDF dan RDF Schema
4. OWL Language, elemen-elemen dasar (Class, property, data type), dan implementasi
OWL
5. Logika dan penalaran, Description Logic, dan mesin penalaran
6. Pengenalan SPARQL dan dasar-dasar SPARQL
7. Protégé dan Pellet Reasoners
8. Aplikasi-aplikasi semantic web, semantic web services, dan semantic search
9. Pengenalan Jena dan pemrograman dengan Jena
10. Pengintegrasian informasi, mengekspos xml based web-service sebagai RDF, mengekspos
data relasional sebagai RDF, dan mengekspos sumber data lainnya
iii
URUTAN PENYAJIAN
Materi mata kuliah semantic web akan terbagi ke dalam 3 modul yaitu: modul 1 yang
membahas tentang pengantar semantic web; modul 2 yang membahas tentang logika,
penalaran, SPARQL, dan Protégé; dan modul 3 yang membahas aplikasi semantic web, Jena
dan integrasi sumber informasi dengan memanfaatkan teknologi semantic web.
Modul 1 akan menyajikan empat pokok bahasan yang meliputi: 1) Konsep dasar dan
teknologi yang mendasari semantic web; 2) Dasar-dasar XML untuk merepresetasikan RDF
dokumen; 3) RDF dan RDF Schema; dan 4) OWL Language, elemen-elemen dasar (Class,
property, data type), dan implementasi OWL. Modul 1 akan disajikan dalam 4 kali
pertemuan kuliah tatap muka.
Selanjutnya, modul 2 akan menyajikan 3 pokok bahasan yang meliputi: 1) Logika dan
penalaran, Description Logic, dan mesin penalaran; 2) Pengenalan SPARQL dan dasar-dasar
SPARQL; dan 3) Protégé dan Pellet Reasoner. Seperti juga modul 1, modul 2 akan disajikan
dalam 4 kali pertemuan kuliah tatap muka.
Modul 3 juga akan menyajikan 3 pokok bahasan yang meliputi: 1) Aplikasi-aplikasi
semantic web, semantic web services, dan semantic search; 2) Pengenalan Jena dan
pemrograman dengan Jena; dan 3) Menggabungkan informasi, mengekspos xml based web-
service sebagai RDF, mengekspos data relasional sebagai RDF, dan mengekspos sumber data
lainnya. Modul 3 akan disajikan dalam 5 kali pertemuan kuliah tatap muka.
DAFTAR PUSTAKA
Grigoris Antoniou, Frank Van Harmelen, A Semantic Web Primer, Second Edition, MIT Press,
2008.
Bob DuCharme, Learning SPARQL, Second Edition, O’Reilly Media, 2013
Matthew Horridge, A Practical Guide To Building OWL Ontologies Using Protégé 4 and CO-
ODE Tools, Edition 1.3, The University Of Manchester, 2011
iv
DAFTAR ISI
v
3.3.3. Atribut ........................................................................................................................... 19
3.3.4. Komentar ....................................................................................................................... 20
3.3.5. Dokumen XML yang Terbentuk dengan Baik ................................................................ 20
3.3.6. Model Tree Dokumen XML ........................................................................................... 21
3.4. Struktur Dokumen XML ......................................................................................................... 22
3.4.1. External and Internal DTDs............................................................................................ 23
3.4.2. XML Schema .................................................................................................................. 23
3.5. Namespaces .......................................................................................................................... 23
3.6. Addressing dan Querying Dokumen XML ............................................................................. 25
3.7. Contoh ................................................................................................................................... 29
3.8. Latihan ................................................................................................................................... 29
3.9. Rangkuman............................................................................................................................ 30
Daftar Pustaka ................................................................................................................................... 30
IV. PERTEMUAN III: PENGGAMBARAN RESOURCE WEB DENGAN RDF .......................................... 31
4.1. Ide Dasar RDF ........................................................................................................................ 31
4.1.1. Resource ........................................................................................................................ 31
4.1.2. Properti.......................................................................................................................... 31
4.1.3. Statemen ....................................................................................................................... 31
4.1.4. Tiga Representasi dari Statemen .................................................................................. 31
4.1.5. Data Types ..................................................................................................................... 34
4.2. RDF: XML-Based Syntax......................................................................................................... 34
4.2.1. The rdf:resource Attribute ............................................................................................ 37
4.2.2. Nested Description dan not Nested Description........................................................... 38
4.2.3. Elemen rdf:type ............................................................................................................. 38
4.2.4. Abbreviated Syntax ....................................................................................................... 39
4.3. Tiga Tipe Elemen RDF Container ........................................................................................... 40
4.4. RDF Schema: Ide Dasar.......................................................................................................... 42
4.4.1. Classes dan Properties .................................................................................................. 43
4.4.2. Class Hierarchies dan Inheritance ................................................................................. 43
4.4.3. Property Hierarchies ..................................................................................................... 45
4.4.4. RDF versus RDFS Layers................................................................................................. 45
4.5. RDF Schema: The Language .................................................................................................. 46
4.5.1. Core Classes................................................................................................................... 47
4.5.2. Core Properties untuk Mendefinisikan Relationship .................................................... 47
4.5.3. Core Properties untuk Membatasi Properties .............................................................. 48
4.5.4. Utility Properties ........................................................................................................... 48
4.6. Contoh Implementasi RDF dan RDFS .................................................................................... 49
4.7. Latihan ................................................................................................................................... 50
vi
4.8. Rangkuman............................................................................................................................ 52
Daftar Pustaka ................................................................................................................................... 53
V. PERTEMUAN IV: WEB ONTOLOGY LANGUAGE (OWL) .................................................................. 54
5.1. OWL and RDF/RDFS ............................................................................................................... 54
5.1.1. Keperluan akan Bahasa Ontologi .................................................................................. 54
5.1.2. Keterbatasan Kemampuan Ekspresif dari Skema RDF .................................................. 55
5.2. Description of the OWL Language......................................................................................... 56
5.2.1. Syntax ............................................................................................................................ 56
5.2.2. Header ........................................................................................................................... 56
5.2.3. Class Elements ............................................................................................................... 57
5.2.4. Property Elements ......................................................................................................... 59
5.2.5. Property Restrictions ..................................................................................................... 59
5.2.6. Special Properties .......................................................................................................... 64
5.2.7. Boolean Combinations .................................................................................................. 64
5.2.8. Enumerations ................................................................................................................ 66
5.2.9. Instances........................................................................................................................ 67
5.2.10. Data Types ..................................................................................................................... 68
5.3. Contoh ................................................................................................................................... 68
5.4. Latihan ................................................................................................................................... 71
5.5. Rangkuman............................................................................................................................ 73
Daftar Pustaka ................................................................................................................................... 73
vii
1
I. PENDAHULUAN
1.1. Sasaran Pembelajaran yang Ingin Dicapai
Setelah mempelajari modul 1 Semantic Web ini, mahasiswa diharapkan dapat
menjelaskan konsep dasar dan teknologi yang mendasari semantic web, mampu memahami
dan menjelaskan dasar-dasar XML sebagai salah satu bentuk representasi untuk RDF dan
RDF schema, mampu memahami RDF dan RDFS untuk penggambaran resource web, dan
mampu memahami elemen-elemen dasar OWL dan bagaimana mengimplementasikannya.
untuk OWL; keterbatasan dari expressive power dari RDF Schema; kombinasi OWL dengan
RDF Schema; dan tiga tipe dari OWL (OWL Full, OWL DL, and OWL Lite). Selain itu dibahas
juga tentang OWL Compatibility dengan RDF Schema, variasi sintaks OWL, property
restrictions, property Characteristics, kombinasi Boolean, declaring instances, disjoint
properties, dan property of chains.
3
Semantic Web adalah perluasan dari Web oleh World Wide Web Consortium (W3C).
Format data umum dan protokol pertukaran di Web yang digunakan adalah Resource
Description Framework (RDF).
Menurut W3C, "The Semantic Web menyediakan kerangka umum yang
memungkinkan data dibagi dan digunakan kembali melintasi batas aplikasi, perusahaan, dan
masyarakat". Istilah semantic web diciptakan oleh Tim Berners-Lee untuk jaringan data yang
bisa diolah oleh mesin
Semantic Web adalah nama sebuah proyek jangka panjang yang dimulai oleh W3C
dengan tujuan untuk mewujudkan gagasan untuk memiliki data di Web yang didefinisikan
dan dihubungkan sedemikian rupa sehingga dapat digunakan oleh mesin tidak hanya untuk
keperluan display, namun juga untuk otomatisasi, integrasi, dan penggunaan kembali data di
berbagai aplikasi (dari Pernyataan Aktivitas Web Semesta W3C).
Konten web disajikan di halaman web yang biasanya merupakan dokumen HTML.
Konten web terhubung satu sama lain melalui penggunaan hyperlink. Manusia atau mesin
bisa membaca dokumen-dokumen ini yang biasanya dicari melalui kata kunci.
Teknologi semantic web dikembangkan untuk membuat web dipahami oleh mesin
tidak hanya oleh manusia. Teknologi semantic web membuka jaringan data ke proses
kecerdasan buatan (untuk melakukan sedikit pemikiran). Komponen utama semantic web
untuk melakukan proses intelijen adalah penalaran dengan melibatkan logika (yaitu, aturan
inferensi). Selain itu, teknologi semantik mendorong perusahaan, organisasi dan individu
untuk mempublikasikan datanya secara terbuka, dalam format standar, dan menggunakan
data yang sudah tersedia di web (mengambil / memberi data). Beberapa contoh data
terbuka yang tersedia secara bebas adalah Open Linked Data (misalnya, DBPedia, Freebase).
Selain itu, ada beberapa kosa kata standar, cotohnya adalah sebagai berikut:
• Dublin Core Metadata Initiative (DCMI) - dengan fokus pada istilah umum dan istilah
yang penting di media;
4
Yang terpenting dalam teknologi komputasi adalah bagaimana data disimpan dan
diakses. Semantic web yang mirip dengan teknologi web menggunakan skema database
untuk menyimpan dan mengakses data. Namun, tidak menggunakan skema database
relational (seperti pada penggunaan teknologi web), tetapi skema database graph (termasuk
model hirarkis).
Students(sid: string, name: string, login: string, age: integer, gpa: real)
Skema konseptual menggambarkan data yang tersimpan dalam hal model data
DBMS. Dalam DBMS relasional, skema konseptual menggambarkan semua relasi yang
tersimpan dalam database. Dalam contoh database universitas, hubungan ini berisi
informasi tentang entitas, seperti siswa dan fakultas, dan tentang relasi, seperti pendaftaran
siswa ke kelas. Semua entitas siswa dapat digambarkan menggunakan record dalam relasi
Students.
Gambar 1.1 menunjukkan database relasional. Database relasional bergantung pada
primary key untuk menghubungkan setiap tabel. Seperti terlihat pada Gambar 1.1 primary
key yang meghubungka setiap tabel adalah id.
5
Table 1.1 Perbandingan antara database graph dan RDF triple store
Difference in Graph Database RDF Triple Store
Query language GraphLog, GOOD, SoSQL, BiQL, SPARQL
SNQL, and more
Type of graphs undirected graphs, weighted graphs, rows of RDF triples
stored hypergraphs, etc
Centric node or property centric edge-centric
Graph traversing better optimized for graph traversals the cost of traversing an edge tends to
(degrees of separation or shortest be logarithmic
path algorithms)
Inference none inferring additional data and enrich the
graph, based on pre-defined rules.
Mapping none easily map between different data
models, by using global identifiers of
all entities and relationships (also
called URIs), can lower the cost of
integrating data sources
Open World Assumption (OWA), dalam sistem logika formal yang digunakan untuk
representasi pengetahuan, adalah asumsi bahwa nilai kebenaran sebuah pernyataan
mungkin benar terlepas dari apakah atau tidak hal itu diketahui benar.
Sedangkan Closed World Assumption (CWA) dalam sistem logika formal yang
digunakan untuk representasi pengetahuan, adalah anggapan bahwa pernyataan yang benar
juga diketahui benar. CWA adalah asumsi bahwa apa yang tidak diketahui benar harus salah.
OWA adalah kebalikannya. Dengan kata lain, asumsi bahwa apa yang tidak diketahui benar
sama sekali tidak diketahui. Coba perhatikan pernyataan berikut: "Juan adalah warga negara
Amerika Serikat." Misal ada pertanyaa "Apakah Juan adalah warga negara Kolombia?"
Dengan CWA, jawabannya adalah “tidak”. Dengan menggunakan OWA, jawabannya adalah
“tidak tahu”.
CWA berlaku saat sebuah sistem memiliki informasi yang lengkap. Ini adalah kasus
untuk banyak aplikasi database. Misalnya, perhatikan database untuk reservasi
penerbangan. Jika seseorang mencari penerbangan langsung antara Austin dan Madrid, dan
itu tidak ada di database, maka hasilnya adalah "Tidak ada penerbangan langsung antara
Austin dan Madrid."
Di lain sisi, OWA berlaku bila sebuah sistem memiliki informasi yang tidak lengkap. Ini
adalah kasus ketika seseorang ingin merepresentasikan pengetahuan (yaitu Ontologies) dan
ingin menemukan informasi baru. Misalnya, perhatikan sistem riwayat klinis pasien. Jika
riwayat klinis pasien tidak mencakup alergi tertentu, tidak tepat jika pasien tidak menderita
9
alergi tersebut. Tidak diketahui apakah pasien menderita alergi tersebut, kecuali jika ada
lebih banyak informasi yang diberikan untuk membantah anggapan tersebut.
Ingatlah bahwa OWA diterapkan dalam sistem yang memiliki informasi yang tidak
lengkap. Tebak apa itu Web? Web adalah sistem dengan informasi yang tidak lengkap. Tidak
adanya informasi di web berarti informasi tersebut belum dibuat eksplisit. Itulah sebabnya
Web Semantic menggunakan OWA. Inti dari Semantic Web adalah kemungkinan untuk
menyimpulkan informasi baru.
Linked Data adalah metode pembangunan data terstruktur sehingga bisa saling
terkait dan menjadi lebih bermanfaat melalui query semantik. Linked data dibangun oleh
teknologi Web Standar (HTTP, RDF, dan URI) untuk berbagi informasi dan dapat dibaca
secara otomatis oleh komputer. Linked data memungkinkan data dari sumber yang berbeda
untuk dihubungkan dan dipertanyakan.
Linked Open Data (LOD) adalah Linked Data yang dilepaskan dengan lisensi terbuka,
yang dapat digunakan kembali secara gratis (misalnya, DBpedia dan Freebase).
Salah satu implementasi dari tekologi semantic web adalah menemukan jawaban
yang tidak persis sama dengan kata kunci. Gagasan tentang sesuatu yang tidak terikat atau
dibatasi pada kata kunci. Hal-hal dapat digambarkan dengan istilah alternatif, sinonim,
akronim atau jargon, termasuk dalam banyak bahasa. Atau dengan kata lain term/istilah
diganti dengan konsep.
Dalam pecarian menggunakan generalisasi dan spesifikasi konsep untuk menemukan
jawaban yang lebih akurat. Sehingga jawaban dapat ditemukan meski tidak secara eksplisit
ditegaskan, dengan cara menentukan hubungan antar hal (logic reasoning).
10
2.7. Contoh
Contoh aplikasi dari penggunaan bahasa XML adalah pada aplikasi penyajian di
halaman web tentang informasi praktek fisioterapi dari sebuah pusat fisioterapi. Gambar 2.5
menunjukkan representasi informasi menggunakan HTML. Seperti terlihat pada gambar 2.5,
mesin akan sulit membedakan antara therapist da sekretaris. Hanya manusia yang bisa
membedakannya.
Agar mesin bisa otomatis membedakan therapists dengan sekretaris, penyajian dengan
menggunakan HTML diganti dengan bahasa yang lebih tepat yaitu bahasa XML, seperti
terlihat pada Gambar 2.6. Seperti terlihat pada Gambar 2.6, mesin akan mudah
mengidentifikasi yang mana data therapists dengan melihat metadata (berbasis tag) dari
dokumen.
<company>
<treatmentOffered>Physiotherapy</treatmentOffered>
<companyName>Agilitas Physiotherapy Centre</companyName>
<staff>
<therapist>Lisa Davenport</therapist>
<therapist>Steve Matthews</therapist>
<secretary>Kelly Townsend</secretary>
</staff>
</company>
Misalkan dua website terbentuk secara independen satu dengan yang lain. Kedua
website tersebut seperti berikut:
1. Website yang berisi informasi tentang pemenang Oscar film beserta historinya. Website
ini dibangun dengan database MS SQL - http:// www.oscarwinners.fake
2. Website yang berisi database biografi dari artis/aktor Hollywood. Website ini
dibangun dengan database MySQL - http://www.actorbiographies2go.fake
User dari website http://www.oscarwinners.fake akan diuntungkan jika dapat mengklik nama
aktor dan menemukan lebih banyak informasi dari website http://www.
Actorbiographies2go. fake. Begitu pula user dari website
http://www.actorbiographies2go.fake akan diuntungkan jika dapat mengklik nama film yang
dibintangi oleh aktor tertentu dan menemukan lebih banyak informasi dari website
http://www.oscarwinners.fake.
Sharing data antara kedua website tersebut tidak dapat dilakukan dengan
menggabungkan tabel di databasenya. Primary key yang mengacu pada aktor atau film di
kedua database tidak bisa disinkronkan dan harus dipetakan. Sistem database servernya
berbeda dan tidak saling kompatibel. Sehingga, format data umum untuk sharing informasi
dengan menggunakan skema ID unik dari aktor dan film harus dirancang untuk bisa
dikolaborasikan.
Teknik penyelesaian dengan memanfaatkan teknologi semantic web adalah sebagai
berikut. Kedua situs tersebut perlu menerapkan kosakata standar umum (yaitu, ontologi
dasar yang sama misalnya, DCMI, FOAF, dan OpenCyc) untuk menggambarkan data yang
konsisten secara kontekstual. Misalnya, istilah 'judul film' harus berarti hal yang sama untuk
kedua situs. Selain itu, makna dibalik data yang disajikan juga harus secara eksplisit
didefinisikan. Data direpresentasikan sedemikian hingga sehingga dapat di-query dan kedua
website dapat berkomunikasi satu sama lain.
12
2.8. Latihan
Why RDF model is different from the XML model?
This question can be used to answer the question, "Why should I use RDF - why not just XML?". This
has been a question which has been around ever since RDF started. At the W3C Query Language
workshop, there was a clear difference of view between those who wanted to query documents and
those who wanted to extract the "meaning" in some form and query that.
2.9. Rangkuman
Teknologi semantic web dikembangkan untuk membuat web dipahami oleh mesin
tidak hanya oleh manusia. Teknologi semantic web membuka jaringan data ke proses
kecerdasan buatan (untuk melakukan sedikit pemikiran). Komponen utama semantic web
untuk melakukan proses intelijen adalah penalaran dengan melibatkan logika (yaitu, aturan
inferensi).
Struktur data yang medasari semantic web teknologi adalah graph database dan
hirarkis. Graph dan RDF triple store (yaitu database semantic graph) ditekankan pada relasi
antara data (linked data). RDF triple store disebut database graph semantik karena makna
disampaikan dalam pedefinisian modelnya.
Teknik penyelesaian kasus sharing informasi adalah memanfaatkan teknologi semantic
web dengan menerapkan kosakata standar umum (yaitu, ontologi dasar yang sama misalnya,
DCMI, FOAF, dan OpenCyc) untuk menggambarkan data yang konsisten secara kontekstual.
Daftar Pustaka
[1] Marja-Riitta Koivunen and Eric Miller, "W3C Semantic Web Activity". World Wide
Web Consortium (W3C). https://www.w3.org/2001/12/semweb-fin/w3csw. Diakses
tanggal 16 Januari 2017.
[2] Berners-Lee, Tim; James Hendler; Ora Lassila (May 17, 2001). "The Semantic Web".
Scientific American Magazine. Diakses tanggal 16 Januari 2017.
[3] Grigoris Antoniou, Frank Van Harmelen, A Semantic Web Primer, Second Edition, MIT
Press, 2008.
13
Dua teknologi yang paling penting untuk membangun Semantic Web adalah eXtensible
Markup Language (XML) dan Resource Description Framework (RDF). XML memungkinkan
pencipta konten memberi label informasi misalnya, <Dryer><Part>95405</Part></Dryer>.
Selain itu, XML memungkinkan user menambahkan struktur ke dokumen namun tidak
mencantumkan makna dari struktur tersebut
W3C mengembangkan bahasa RDF untuk memfasilitasi interoperabilitas aplikasi dan
memproses representasi resouce yang dapat dimodifikasi dari resource di Web. W3C
(World Wide Web Consortium) adalah komunitas internasional yang mengembangkan
standar terbuka untuk memastikan perkembangan Web jangka panjang.
Interoperabilitas adalah karakteristik suatu produk atau sistem untuk bekerja dengan
produk atau sistem lain, sekarang atau masa depan, baik dalam implementasi maupun akses,
tanpa batasan apapun. Sedangkan interoperabilitas menggambarkan kemampuan sistem
atau perangkat untuk bertukar data, dan menafsirkan data bersama tersebut.
RDF mengekspresikan makna XML. RDF menggunakan XML sebagai sintaks
pengkodean untuk metadata. Metadata adalah "data tentang data" atau secara khusus
dalam konteks RDF "data yang menjelaskan resource web". Resource bisa adalah segala
sesuatu yang memiliki identitas. Contoh yang dikenal mencakup dokumen elektronik,
gambar, layanan (mis., "Laporan cuaca hari ini untuk Los Angeles"), dan kumpulan resource
lainnya.
Tidak semua resource adalah jaringan yang dapat ditemukan kembali. Manusia,
perusahaan, dan buku di perpustakaan juga dapat dianggap sebagai resource. Resource
adalah pemetaan konseptual untuk entitas atau kumpulan entitas. Resource tetap konstan
meskipun isinya (yaitu, instance) berubah dari waktu ke waktu. Pemetaan konseptual tidak
berubah dalam prosesnya.
Meskipun kebanyakan contoh resource masih terbatas pada entitas fisik, definisi
resource dapat digunakan untuk resource yang lebih abstrak. Misalkan diberikan sebuah
konsep dan diberikan sebuah identitas. Jika identitas ini bisa diungkapkan oleh URI yang
terbentuk dengan baik maka sebuah konsep bisa menjadi resource juga. Lihat sintaks dari
14
Struktur RDF ini ternyata menjadi cara alami untuk menggambarkan mayoritas data
yang diolah oleh mesin. Dalam struktur ini, subjek diidentifikasi oleh URI dan objek
diidentifikasi oleh URI (atau literal), serupa dengan konsep tautan pada halaman Web.
Kalimat pada contoh tersebut dapat disajikan dalam graph berlabel yang berarah, seperti
terlihat pada Gambar 3.1. Node (digambar sebagai oval) merepresentasikan resource. Edge
merepresentasikan properti bernama. Node yang mewakili string literal akan digambar
sebagai persegi panjang.
HTML (hypertext markup language) adalah bahasa standar untuk menulis halaman
Web. HTML, pada berasal dari SGML (standar Bahasa markup umum), standar internasional
(ISO 8879) untuk pendefinisikan metode perangkat dan metode yang independen untuk
merepresetasikan informasi, yang dapat dibaca manusia dan mesin.
XML (extensible markup language) adalah aplikasi SGML lainnya, dan
perkembangannya didorong oleh kekurangan dari HTML. Motivasi untuk penggunaan XML
dapat dilihat dengan memperhatikan contoh sederhana, halaman Web yang berisi informasi
tentang tertentu Book seperti terlihat pada Gambar 3.1.
Informasi yang sama bisa direpresentasikan menggunakan dokumen XML seperti terlihat
pada Gambar 3.2.
<book>
<title>Nonmonotonic Reasoning: Context-Dependent Reasoning</title>
<author>V. Marek</author>
<author>M. Truszczynski</author>
<publisher>Springer</publisher>
<year>1993</year>
<ISBN>0387976892</ISBN>
</book>ISBN 0387976892
Dari Gambar 3.1 dan Gambar 3.2 bisa dilihat bahwa kedua representasi
menggunakan tag, seperti <H2> dan </ tahun>. Ini karena HTML dan XML adalah bahasa
markup yang mengizinkan seseorang menulis beberapa konten dan memberikan informasi
tentang apa peran yang dimainkan konten seperti HTML, XML didasarkan pada tag. Tag ini
mungkin disarangkan (tag dalamTag). Semua tag dalam XML harus ditutup (misalnya untuk
tag pembuka <Title> harus ada tag penutup </ title>), sedangkan di HTML ada beberapa Tag,
seperti <br>, boleh dibiarkan terbuka. Konten tertutup, bersama dengan tag pembuka dan
penutupnya, disebut sebagai elemen.
17
Dari sana terlihat bahwa pengguna manusia dapat membaca kedua representasi,
HTML dan XML cukup mudah. Kedua bahasa itu dirancang agar mudah dapat dimengerti dan
bermanfaat oleh manusia. Tapi bagaimana dengan mesin? Misalkan ada agen cerdas yang
mencoba mengambil kembali nama pengarang buku ini. Pada dokumen HTML tidak ada
informasi eksplisit mengenai siapa penulisnya. Tebakan yang masuk akal adalah nama
penulisnya segera muncul setelah judul atau langsung ikuti kata demi kata. Tapi tidak ada
jaminan bahwa konvensi ini selalu diikuti. Dan bahkan jika memang demikian, apakah ada
dua penulis, "V. Marek "dan" M. Truszczynski ", atau hanya satu, disebut "V. Marek dan M.
Truszczynski "? Jelas, lebih banyak pemrosesan teks diperlukan untuk menjawab pertanyaan
ini, pemrosesan yang terbuka terhadap kesalahan.
Masalah diatas muncul dari fakta bahwa dokumen HTML tidak mengandung
informasi struktural, yaitu informasi tentang bagian dokumen dan hubungan antara bagian-
bagian dokumen tersebut. Sebaliknya, dokumen XML jauh lebih mudah diakses oleh mesin
karena setiap informasi dijelaskan. Apalagi, beberapa bentuk hubungan mereka juga
didefinisikan melalui persarangan struktur. Misalnya, tag <author> muncul di dalam tag
<book>, jadi mereka menggambarkan sifat dari buku tertentu. Sehingga, XML
memungkinkan representasi informasi yang juga dapat diakses oleh mesin.
Penggunaan utama dokumen HTML adalah untuk menampilkan informasi (selain
menghubungkan ke dokumen lain). Di sisi lain, XML memisahkan konten dari format.
Informasi yang sama dapat ditampilkan dengan cara yang berbeda tanpa memerlukan
banyak salinan dari konten yang sama.
Dokumen XML terdiri dari prolog, sejumlah elemen, dan epilog opsional.
3.3.1. Prolog
Prolog terdiri dari deklarasi XML dan referensi opsional untuk pengacuan ke
dokumen eksternal. Gambar 3.3 memperlihatkan contoh deklarasi XML.
18
Ini mengidentifikasikan bahwa dokumen ini adalah dokumen XML, dan mendefinisikan
versi dan pengkodean karakter yang digunakan dalam sistem tertentu (seperti UTF-8, UTF-
16, dan ISO 8859-1). Pengkodean karakter bersifat tidak wajib. Dari deklarasi itu bisa juga
ditentukan apakah dokumen mengacu pada struktur dokumen eksternal. Contoh deklarasi
untuk menentukan pengacuan ekternal dapat dilihat pada Gambar 3.4.
Disini informasi pengacuan ditemukan di file lokal bernama book.dtd. Sebagai gantinya,
rujukannya bisa berupa URL. Jika hanya nama yang dikenali secara lokal atau hanya URL yang
digunakan, maka label SYSTEM digunakan. Jika, nama lokal dan URL akan diberikan, maka
label PUBLIC harus digunakan sebagai gantinya.`
Nama tag dapat dipilih secara bebas dengan hanya ada sedikit batasan. Yang paling
penting adalah karakter pertama harus berupa huruf, garis bawah, atau titik dua dan tidak
ada nama yang bisa dimulai dengan string "xml" (seperti "Xml" dan "xML"). Kontennya
19
mungkin berupa teks, atau elemen lainnya, atau tidak sama sekali. Contoh penamaan
elemen XML dapat dilihat pada Gambar 3.7.
<lecturer>
<name> David Billington </name>
<phone> + 61-7-3875 507 </telepon>
</lecturer>
Jika tidak ada konten, maka elemen tersebut disebut kosong. Elemen kosong seperti bisa
dilihat pada Gambar 3.8.
<lecturer> </lecturer>
3.3.3. Atribut
Elemen yang kosong tidak benar-benar tidak berarti, karena mungkin ada beberapa
properti dalam hal ini atribut. Atribut adalah pasangan nama-nilai di dalam tag pembuka
elemen, contoh dari atribut dapat dilihat pada Gambar 3.9.
Elemen lecturer adalah elemen kosong yang mempunyai dua atribut yaitu name
(=="David Billington") dan phone (=="+61-7-3875 507").
Gambar 3.10 menunjukkan contoh dari atribut dengan elemen yang tidak kosong.
Seperti terlihat pada Gambar 3.10, elemen order tidak kosong, ada elemen item sebagai
kontennya. Dan juga, elemen order dan elemen item mempunyai beberapa atribut.
Informasi yang sama dengan dokumen XML pada Gambar 3.10, bisa dituliskan
dengan mengganti atribut dengan elemen bersarang, seperti terlihat pada Gambar 3.11.
<order>
<orderNo>23456</orderNo>
<customer>John Smith</customer>
<date>October 15, 2002</date>
<item>
<itemNo>a528</itemNo>
<quantity>1</quantity>
</item>
<item>
<itemNo>c817</itemNo>
<quantity>3</quantity>
</item>
</order>
Kapan harus menggunakan elemen dan kapan atribut adalah tergantung pada selera
masing-masing. Namun, yang perlu diperhatikan adalah bahwa atribut tidak dapat
disarangkan.
3.3.4. Komentar
Komentar adalah sepotong teks yang akan diabaikan oleh parser. Komentar pada
dokumen XML memiliki bentuk seperti terlihat pada Gambar 3.12.
Struktur data tree ini adalah tree berlabel yang dengan sifat sebagai berikut:
• Ada satu akar.
• Tidak ada siklus.
• Setiap node, selain root, memiliki persis satu parent.
• Setiap node memiliki label.
• Urutan elemen itu penting.
Walaupun urutan elemen itu penting, urutan atributnya tidak. Jadi, dua elemen berikut ini
setara:
Dokumen XML akan terbentuk dengan baik jika rule sintaksis diperhatikan dengan
baik. Namun, rule tersebut mengatakan tidak ada yang spesifik mengenai struktur dokumen
tersebut. Sekarang, bayangkan dua aplikasi yang mencoba berkomunikasi, dan mereka pun
ingin menggunakan kosakata yang sama. Untuk tujuan ini perlu untuk mendefinisikan semua
atribut elemen dan atribut nama yang dapat digunakan. Selain itu, struktur juga harus
didefinisikan: nilai apa yang mungkin diambil oleh suatu atribut, elemen mana yang boleh
atau harus ada dalam elemen lain, dan seterusnya.
Dengan adanya informasi struktur seperti itu, kemungkinan dokumen tersebut
tervalidasi dengan yang lebih baik. Sebuah dokumen XML dikatakan valid jika dokumen
tersebut terstruktur: XML terbentuk dengan baik, menggunakan struktur informasi, dan
memperhatikan struktur tersebut.
Ada dua cara untuk menentukan struktur dokumen XML: DTD, cara yang lebih tua dan
lebih terbatas, dan XML Schema, yang menawarkan kemungkinan yang diperluas, terutama
untuk definisi tipe data.
23
<xsd:schema
xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
version="1.0">
3.5. Namespaces
Salah satu keuntungan utama penggunaan XML sebagai bahasa markup universal
(meta) adalah informasi dari berbagai sumber dapat diakses. Secara teknis, dokumen XML
dapat menggunakan lebih dari satu DTD atau skema. Tapi karena setiap pengacuan
dokumen dikembangkan secara independen, ketidakcocokan nama tampak tak terelakkan.
Jika DTD A dan DTD B mendefinisikan tipe elemen ∈ dengan cara yang berbeda, parser yang
mencoba memvalidasi dokumen XML di mana elemen ∈ muncul harus diberi tahu DTD mana
yang akan digunakan untuk tujuan validasi.
24
prefix:name
Sebagai contoh, misalkan ada kerjasama atara dua uiversitas di Australia, katakanlah,
Griffith University, dan sebuah universitas Amerika, katakanlah, Universitas Kentucky, untuk
menyajikan kuliah terpadu bagi siswa online. Setiap universitas menggunakan
terminologinya sendiri, dan ada perbedaan. Misalnya, dosen di Amerika Serikat tidak
dianggap sebagai aggota dari fakultas reguler, sedangkan di Australia adalah anggota
fakultas reguler.
Contoh dokumen XML pada Gambar 3.16 menunjukkan bagaimana disambiguasi
dapat dicapai.
xmlns:prefix="location"
Dimana lokasi bisa menjadi alamat DTD atau skema. Jika prefix tidak ditentukan, seperti
dalam
xmlns="location"
25
Maka lokasi tersebut digunakan secara default. Misalnya, contoh dokumen XML pada
Gambar 3.16 setara dengan dokumen XML pada Gambar 3.17.
Dalam database relational, bagian dari database dapat dipilih dan diambil
menggunakan bahasa query seperti SQL. Hal yang sama berlaku untuk dokumen XML,
dengan beberapa bahasa query yang biasanya digunakan, seperti XQL, XML-QL, dan XQuery.
Konsep utama bahasa query XML adalah ekspresi path yang menentukan bagaimana
sebuah node, atau satu set node, dalam representasi pohon dari dokumen XML dapat
dicapai. Salah satu ekspresi path yang bisa digunakan adalah XPath karena bisa digunakan
untuk tujuan selain query, yaitu untuk mengubah dokumen XML.
XPath adalah bahasa untuk menangani bagian dari dokumen XML. Ini beroperasi pada
model data tree XML dan memiliki sintaks non-XML. Konsep utamanya adalah ekspresi path.
Terdapat dua jenis ekspresi path sebagai berikut:
• Absolut (mulai dari akar pohon); Secara sintaksis mereka memulai dengan simbol /,
yang mengacu pada akar dokumen, berada satu tingkat di atas elemen root
dokumen;
• Relatif terhadap node konteks.
Sebagai contoh, perhatikan dokumen XML pada Gambar 3.18. Representasi tree dari
dokumen XML pada Gambar 3.18 bisa dilihat pada Gambar 3.19.
26
In the following we illustrate the capabilities of XPath with a few examples of path
expressions.
/library/author
Ekspresi path ini menampilkan semua elemen author yang merupakan children dari
elemen node library, yang berada tepat di bawah root. Menggunakan urutan /t1 /. . . /tn,
dimana setiap ti + 1 adalah simpul anak dari ti, sebuah path didefinisikan melalui
representasi pohon.
2. Penyelesaian alternatif untuk query 1 adalah
//author
Disini // mengatakan bahwa semua elemen dalam dokumen diperhatikan dan diperiksa
apakah mereka adalah tipe author. Dengan kata lain, ekspresi path ini menunjuk semua
elemen author di manapun dalam dokumen.
3. Menampilkan semua node atribut title dalam elemen buku di manapun dalam
dokumen, yang memiliki nilai “Artificial Intelligence” (lihat Gambar 3.20).
//book/@title=[.="Artificial Intelligence"]
4. Menampilkan semua buku dengan judul “Artificial Intelligence” (lihat Gambar 3.21).
//book[@title="Artificial Intelligence"]
Ekspresi dalam tanda kurung siku adalah sebuah ekspresi filter. Ini membatasi himpunan
node yang dicari.
27
Perhatikan perbedaan antara eksprei ini dan yang ada di query 3. Pada query 4 ini,
ditampilkan elemen buku yang judulnya memenuhi syarat tertentu. Dalam query 3
dikumpulkan node atribut title dari elemen buku. Perbandingan Gambar 3.20 dan
Gambar 3.21 menggambarkan perbedaannya.
28
3.7. Contoh
1. The following XML document is presented in attribute-based form. Please convert to
element-based form and construct the tree representation.
<vu:instructors xmlns:vu="http://www.vu.com/empDTD"
xmlns:gu="http://www.gu.au/empDTD"
xmlns:uky="http://www.uky.edu/empDTD">
<uky:faculty uky:title="assistant professor" uky:name="John Smith"
uky:department="Computer Science"/>
<gu:academicStaff gu:title="lecturer" gu:name="Mate Jones"
gu:school="Information Technology"/>
</vu:instructors>
Answer:
<vu:instructors>
<xmlns:vu>http://www.vu.com/empDTD</xmlns:vu>
<xmlns:gu>"http://www.gu.au/empDTD"</xmlns:gu>
<xmlns:uky>"http://www.uky.edu/empDTD"</xmlns:uky>
<uky:faculty >
<uky:title>"assistant professor" uky:name="John Smith" </uky:title>
<uky:department>"Computer Science"</uky:department>
</uky:faculty>
<gu:academicStaff>
<gu:title>"lecturer" gu:name="Mate Jones" </gu:title>
<gu:school>"Information Technology"</gu:school>
<gu:academicStaff>
</vu:instructors>
3.8. Latihan
1. What is the XML? What are the roles of XML in the semantic web technology?
Answer:
3.9. Rangkuman
Daftar Pustaka
[1] Grigoris Antoniou, Frank Van Harmelen, A Semantic Web Primer, Second Edition, MIT
Press, 2008.
31
4.1.1. Resource
Resource bisa dipikirkan sebagai obyek, sebuah "benda" yang akan dibahas. resource
bisa berupa authors, books, publishers, places, people, hotels, rooms, search queries, dan
sebagainya. Setiap resource memiliki URI, Uniform Resource Identifier. URI bisa berupa URL
(Uniform Resource Locator, atau alamat Web) atau beberapa jenis pengenal unik lainnya.
Perhatikan bahwa pengenal tidak selalu memungkinkan akses ke resource. Skema URI
telah didefinisikan tidak hanya untuk lokasi Web tetapi juga untuk objek seperti nomor
telepon, nomor ISBN, dan lokasi geografis.
4.1.2. Properti
Properti adalah resource khusus yang menggambarkan hubungan antara resource,
misalnya “written by”, “age”, “title”, dan seterusnya. Properti di RDF juga diidentifikasi oleh
URI (dan dalam praktiknya oleh URL). Gagasan menggunakan URI untuk mengidentifikasi
"benda" dan hubungan di antara keduanya cukup penting untuk penamaan unik yang global.
Penggunaan identifikasi semacam itu sangat mengurangi masalah homonim pada
representasi data terdistribusi.
4.1.3. Statemen
Statemen menegaskan properti dari resource. Sebuah statemen adalah triple object-
attribute-value, terdiri dari resource, property, dan value. Value bisa berupa resource atau
literal. Literal adalah nilai atomic (string).
(http://www.cit.gu.edu.au/~db, http://www.mydomain.org/site-owner,
#DavidBillington)
Triple (x, P, y) dapat dipandang sebagai formula logika P(x, y), dimana predikat biner P
menghubungkan obyek x ke obyek y. RDF hanya menawarkan predikat biner (properti).
Perhatikan bahwa properti "site-owner" dan kedua kedua objek tersebut diidentifikasi oleh
URL.
Graph-Based Representation Gambar 4.2 menunjukkan grafik yang sesuai dengan
pernyataan Contoh 1. Ini adalah grafik yang diarahkan dengan node dan busur berlabel.
Busur diarahkan dari resource (subjek statemen) ke nilai (objek statemen). Grafik semacam
ini dikenal di komunitas Artificial Intelligence sebagai semantic net.
Nilai dari sebuah bisa berupa sebuah resource. Sehingga nilai ini terhubung ke
resource yang lain. Perhatikan triple pada Gambar 4.3.
Representasi grafis dari triple pada Gambar 4.3 dapat dilihat pada Gambar 4.4. Grafik adalah
alat yang ampuh untuk dipahami oleh manusia.
RDF-Based Representation Semantic Web membutuhkan representasi mesin yang
dapat diakses dan dapat diproses oleh mesin. Oleh karena itu, representasi ketiga
berdasarkan sitaks XML. Dokumen RDF diwakili oleh elemen XML dengan tag rdf:RDF. Isi
dari elemen ini adalah sejumlah deskripsi, yang menggunakan tag rdf:Description.
Setiap deskripsi membuat statemen tentang resource, yang diidentifikasi dalam salah satu
dari tiga cara yang berbeda:
1. Atribut about untuk mengacu ke resource yang sudah ada
2. Atribut ID untuk membuat resource baru
3. Atribut tanpa nama untuk membuat resource anonymous
Sebagai contoh pertama dari sebuah statemen RDF bisa dilihat pada Gambar 4.5.
Deskripsi tersebut disajikan dalam urutan tertentu, dengan kata lain, sintaks XML
mengguakan model serialization. Urutan dari deskripsi atau resource tidak secara sigifikan
sesuai denga model abstrak RDF. Sehingga model grafik adalah model data riil, sedangkan
model berbasis sintaks XML adalah representasi secara serial yang dimungkinkan dari model
grafik tersebut.
Contoh ini menunjukkan dua hal: penggunaan notasi ^^ untuk menunjukkan tipe literal, dan
penggunaan tipe data yang telah ditentukan oleh XML RDF: Skema Sintaks Berbasis XML.
Sebuah dokumen RDF terdiri dari sebuah elemen rdf:RDF, dimana kontennya adalah
sejumlah deskripsi. Sebagai contoh, perhatikan domain kelas dari domain dari university
courses dan lecturers pada Griffith University di tahun 2001, seperti terlihat pada Gambar
4.6.
35
<!DOCTYPE rdf:RDF [
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">
]>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:uni="http://www.mydomain.org/uni-ns#">
<rdf:Description rdf:about="949352">
<uni:name>Grigoris Antoniou</uni:name>
<uni:title>Professor</uni:title>
</rdf:Description>
<rdf:Description rdf:about="949318">
<uni:name>David Billington</uni:name>
<uni:title>Associate Professor</uni:title>
<uni:age rdf:datatype="&xsd;integer">27</uni:age>
</rdf:Description>
<rdf:Description rdf:about="949111">
<uni:name>Michael Maher</uni:name>
<uni:title>Professor</uni:title>
</rdf:Description>
<rdf:Description rdf:about="CIT1111">
<uni:courseName>Discrete Mathematics</uni:courseName>
<uni:isTaughtBy>David Billington</uni:isTaughtBy>
</rdf:Description>
<rdf:Description rdf:about="CIT1112">
<uni:courseName>Concrete Mathematics</uni:courseName>
<uni:isTaughtBy>Grigoris Antoniou</uni:isTaughtBy>
</rdf:Description>
<rdf:Description rdf:about="CIT2112">
<uni:courseName>Programming III</uni:courseName>
<uni:isTaughtBy>Michael Maher</uni:isTaughtBy>
</rdf:Description>
<rdf:Description rdf:about="CIT3112">
<uni:courseName>Theory of Computation</uni:courseName>
<uni:isTaughtBy>David Billington</uni:isTaughtBy>
</rdf:Description>
<rdf:Description rdf:about="CIT3116">
<uni:courseName>Knowledge Representation</uni:courseName>
<uni:isTaughtBy>Grigoris Antoniou</uni:isTaughtBy>
</rdf:Description>
</rdf:RDF>
Seperti terlihat pada Gambar 4.6, mekanisme namespace XML digunakan, namun
dengan cara yang diperluas. Pada XML, namespace hanya digunakan untuk tujuan
disambiguasi. Namespace eksternal RDF diharapkan menjadi dokumen RDF yang
mendefinisikan resource yang kemudian digunakan dalam importing dokumen RDF.
Mekanisme ini membuat orang lain yang ingin menyisipkan tambahan fitur ke resource bisa
menggunakan ulang resource tersebut.
Atribut rdf:about dari elemen rdf:Description adalah sama denga atribut ID,
tetapi sering disarankan bahwa obyek about yang merupakan sebuah statemen dibuat yang
sudah “didefinisikan” di tempat lain. Secara formal, satu set pernyataan RDF bersama-sama
36
hanya membentuk grafik besar, menghubungkan sesuatu dengan sesuatu yang lain melalui
properti, dan tidak ada yang namanya "menentukan" objek di satu tempat dan merujuknya
ke tempat lain. Namun demikian, dalam sintaks XML serial, terkadang berguna untuk
menyarankan bahwa satu lokasi dalam serialisasi XML adalah lokasi yang "mendefinisikan"
obyek, sementara lokasi lain menyatakan properti "tambahan" tentang objek yang telah "
didefinisikan "di tempat lain.
Sebenarnya contoh sebelumnya agak menyesatkan. Dokumen RDF akan benar, kalau
semua ID course dan staf, seperti 949352 dan CIT3112, diganti dengan mengacu pada
namespace eksternal, misalnya,
<rdf:Description rdf:about="http://www.mydomain.org/uni-ns/#CIT3112">
Contoh diatas dibuat seperti itu untuk menekankan pada gagasan RDF.
Konten dari elemen rdf:description disebut elemen properti. Misalnya, dalam
deskripsi dari dua elemen uni:courseName dan uni:isTaughtBy keduanya
menentukan pasangan properti- nilai untuk CIT3116, seperti terlihat pada Gambar 4.7.
<rdf:Description rdf:about="CIT3116">
<uni:courseName>Knowledge Representation</uni:courseName>
<uni:isTaughtBy>Grigoris Antoniou</uni:isTaughtBy>
</rdf:Description>
<rdf:Description rdf:about="CIT1111">
<uni:courseName>Discrete Mathematics</uni:courseName>
<uni:isTaughtBy rdf:resource="949318"/>
</rdf:Description>
<rdf:Description rdf:about="949318">
<uni:name>David Billington</uni:name>
<uni:title>Associate Professor</uni:title>
</rdf:Description>
Sebagai catatan, jika resource staff dengan nomor ID 939318 dalam dokumen RDF
didefiisikan menggunakan atribut ID dan bukan atribut about, simbol # digunakan di depan
949318 pada nilai rdf:resource, seperti terlihat pada Gambar 4.9.
<rdf:Description rdf:about="CIT1111">
<uni:courseName>Discrete Mathematics</uni:courseName>
<uni:isTaughtBy rdf:resource="#949318"/>
</rdf:Description>
<rdf:Description rdf:ID="949318">
<uni:name>David Billington</uni:name>
<uni:title>Associate Professor</uni:title>
</rdf:Description>
Hal yang sama berlaku untuk resource yang didefinisikan secara eksternal. Misalnya,
dokumen mengacu pada sumber CIT1111 yang ditentukan secara eksternal dengan
menggunakan http://www.mydomain.org/uni-ns/#CIT1111 sebagai nilai dari
rdf:about, dimana www.mydomain.org/uni-ns/ adalah URI dimana definisi
38
CIT1111 ditemukan. Dengan kata lain, deskripsi dengan ID mendefinisikan fragmen URI, yang
dapat digunakan untuk referensi deskripsi yang ditentukan.
Course yang lain, seperti CIT3112, masih dapat mengacu ke resource baru 949318.
Dengan kata lain, meskipun bisa didefinisikan di dalam deskripsi yang lain, scope nya adalah
global.
<rdf:Description rdf:about="CIT1111">
<rdf:type rdf:resource="&uni;course"/>
<uni:courseName>Discrete Mathematics</uni:courseName>
<uni:isTaughtBy rdf:resource="949318"/>
</rdf:Description>
<rdf:Description rdf:about="949318">
<rdf:type rdf:resource="&uni;lecturer"/>
<uni:name>David Billington</uni:name>
<uni:title>Associate Professor</uni:title>
</rdf:Description>
<rdf:Description rdf:ID="CIT1111">
<rdf:type rdf:resource="&uni;course"/>
<uni:courseName>Discrete Mathematics</uni:courseName>
<uni:isTaughtBy rdf:resource="#949318"/>
</rdf:Description>
Ketiga representasi ini hanya variasi sintaksis dari pernyataan RDF yang sama. Artinya,
ketiganya sama di model data RDF, walaupun memiliki sintaks XML yang berbeda.
40
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://example.org/students/vocab#">
<rdf:Description rdf:about="http://example.org/courses/6.001">
<s:students>
<rdf:Bag>
<rdf:li rdf:resource="http://example.org/students/Amy"/>
<rdf:li rdf:resource="http://example.org/students/Mohamed"/>
<rdf:li rdf:resource="http://example.org/students/Johann"/>
<rdf:li rdf:resource="http://example.org/students/Maria"/>
<rdf:li rdf:resource="http://example.org/students/Phuong"/>
</rdf:Bag>
</s:students>
</rdf:Description>
</rdf:RDF>
Contoh yang lain adalah representasi dari container rdf:Seq. Misalkan ingin
direpresentasikan susunan jadwal kegiatan seseorang pada hari Senin. Gambar 4.15
menunjukkan representasi dalam sintaks XML dan Gambar 4.16 dalam bentuk grafik.
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://www.reminders.org#">
<rdf:Description rdf:about="http://www.reminders.org#MondayMeetings">
<s:activities>
<rdf:Seq rdf:about=“A52215”>
<rdf:li>Meet with CEO at 10am</rdf:li>
<rdf:li>Luncheon at The Eatery</rdf:li>
<rdf:li>Flight at 3pm</rdf:li>
</rdf:Seq>
</s:activities>
</rdf:Description>
</rdf:RDF>
Contoh container rdf:Alt adalah pada representasi dari informasi “The source code for
X11 may be found at ftp.example.org, ftp1.example.org, or ftp2.example.org”. Informasi
tersebut bisa direpresentasikan dalam bentuk grafik seperti bisa dilihat pada Gambar 4.17
dan dengan sintaks XML seperti terlihat pada Gambar 4.18.
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://example.org/packages/vocab#">
<rdf:Description rdf:about="http://example.org/packages/X11">
<s:DistributionSite>
<rdf:Alt>
<rdf:li rdf:resource="ftp://ftp.example.org"/>
<rdf:li rdf:resource="ftp://ftp1.example.org"/>
<rdf:li rdf:resource="ftp://ftp2.example.org"/>
</rdf:Alt>
</s:DistributionSite>
</rdf:Description>
</rdf:RDF>
Kelas-kelas ini saling berhubungan satu dengan yang lainnya. Sebagai contoh, setiap
professor adalah seorang academic staff member. “professor” dikatakan adalah subclass of
“academic staff member”. Sama juga, bahwa “academic staff member” adalah sebuah
superclass of “professor”. Hubungan subclass mendefinisikan hirarki dari kelas, Seperti bisa
dilihat pada Gambar 4.19.
Dengan demikian, skema RDF memperbaiki semantik dari "is class of". Definisi
semantik RDFS adalah bahasa (masih terbatas) untuk mendefinisikan semantik domain
tertentu sehingga RDF Schema adalah bahasa ontologi primitif.
Kelas, pewarisan, dan properti, tentu saja, dikenal di bidang komputasi lainnya,
misalnya, dalam pemrograman berorientasi objek. Tapi meski ada banyak kesamaan, ada
juga perbedaan. Dalam pemrograman berorientasi obyek, kelas objek mendefinisikan
properti yang sesuai dengannya. Untuk menambahkan properti baru ke kelas berarti
memodifikasi kelas.
Namun, dalam RDFS, properti didefinisikan secara global, artinya tidak dienkapsulasi
sebagai atribut dalam definisi kelas. Hal ini dimungkinkan untuk mendefinisikan properti
baru yang berlaku untuk kelas yang ada tanpa mengubah kelas itu. Di satu sisi, ini adalah
mekanisme yang ampuh dengan konsekuensi luas. Kelas yang didefinisikan oleh orang lain
dapat digunakan dan disesuaikan dengan kebutuhan melalui properti baru. Di sisi lain,
penanganan properti ini menyimpang dari pendekatan standar yang telah muncul di bidang
pemodelan dan pemrograman berorientasi obyek. Ini adalah fitur istimewa lainnya dari RDF
/ RDFS.
Skema pada Gambar 4.20 ditulis sendiri dalam bahasa formal, skema RDF, yang dapat
mengekspresikan komponen-komponennya: subClassOf, Class, Property, subPropertyOf,
Resource, dan sebagainya.
seseorang mengungkapkan statemen tentang resource apapun, dan bahwa apapun dengan
URI bisa menjadi resource. Jadi, kalau informasi itu kelasnya adalah “lecturer” is a subclass of
“academic staff member” akan disajikan, beberapa tahapan pendefinisian dilakukan yaitu:
1. Menentukan resource yang diperlukan seperti, lecturer, academicStaffMember, dan
subClassOf;
2. Menentukan subClassOf menjadi sebuah properti;
3. Menuliskan triple (lecturer,subClassOf,academicStaffMember).
Semua tahap ini berada dalam kemampuan RDF. Jadi, dokumen RDFS (yaitu skema RDF)
hanyalah dokumen RDF, dan sintaks RDF berbasis XML akan digunakan.
<rdfs:Class rdf:ID="lecturer">
. . .
</rdfs:Class>
<rdfs:Class rdf:about="lecturer">
<rdfs:subClassOf rdf:resource="staffMember"/>
</rdfs:Class>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdfs:Class rdf:ID="motorVehicle"/>
<rdfs:Class rdf:ID="van">
<rdfs:subClassOf rdf:resource="#motorVehicle"/>
</rdfs:Class>
<rdfs:Class rdf:ID="truck">
<rdfs:subClassOf rdf:resource="#motorVehicle"/>
</rdfs:Class>
<rdfs:Class rdf:ID="passengerVehicle">
<rdfs:subClassOf rdf:resource="#motorVehicle"/>
</rdfs:Class>
<rdfs:Class rdf:ID="miniVan">
<rdfs:subClassOf rdf:resource="#passengerVehicle"/>
<rdfs:subClassOf rdf:resource="#van"/>
</rdfs:Class>
</rdf:RDF>
4.7. Latihan
1. Consider the graph in Gambar 4.24. Construct the RDF document using the RDF/XML-
based syntax. The sp namespace corresponds to http://www.semprog.com/film#.
Answer:
<rdf:RDF
xmlns:sp= “http://www.semprog.com/film#”
xmlns:rdf= “http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:rdfs= “http://www.w3.org/2000/01/rdf-schema#”>
< sp:Film rdf:about=”sp:blade_runner”>
<sp:name>Blade Runner</sp:name>
<sp:directedBy>
<sp:Director rdf:resource=”sp:ridley_scott”/>
<sp:name>Ridley Scott</sp:name>
</sp:Director>
</sp:directedBy>
<sp:starring>
<sp:Actor rdf:resource=”sp:harrison_ford>
<sp:name>Harrison Ford</sp:name>
</sp:Actor>
</sp:starring>
</sp:Film>
</rdf:RDF>
Answer:
:Herbivore rdfs:subClassOf :Animal .
:Carnivore rdfs:subClassOf :Animal .
:Omnivore rdfs:subClassOf :Animal .
:Person rdfs:subClassOf :Omnivore .
:hasName rdfs:domain :Person .
:hasName rdfs:range xsd:string .
:Vegetarian rdfs:subClassOf :Person .
:Vegetarian rdfs:subClassOf :Herbivore .
:eats rdfs:domain :Animal .
:eats rdfs:range :Food .
:Meat rdf:type :Food .
:Veggies rdf:type :Food .
52
3. Which triples are expressed by the RDF/XML document in Gambar 4.25? Write down
the triples in the form “Subject Predicate Object .”
<?xml version="1.0"?>
<rdf:RDF
xmlns:dct="http://purl.org/dc/terms/"
xmlns:skos="http://www.w3.org/2004/02/skos/core#"
xmlns:prov="http://www.w3.org/ns/prov#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:org="http://www.w3.org/ns/org#"
xmlns:gr="http://purl.org/goodrelations/v1#"
xmlns:owlTime="http://www.w3.org/2006/time#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<owl:Ontology rdf:about="http://www.w3.org/ns/org#">
<owl:versionInfo>0.7</owl:versionInfo>
<dct:title>Core organization ontology</dct:title>
</owl:Ontology>
<owl:Class rdf:about="http://www.w3.org/ns/org#Organization">
<rdf:type
rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class" />
<rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Agent" />
</owl:Class>
</rdf:RDF>
4.8. Rangkuman
Daftar Pustaka
[1] Grigoris Antoniou, Frank Van Harmelen, A Semantic Web Primer, Second Edition, MIT
Press, 2008.
54
• Kombinasi boolean dari kelas. Terkadang kelas baru bisa didefinisikan dengan
menggabungkan kelas lain dengan menggunakan union, intersection, dan complement.
Misalnya, kelas person didefinisikan sebagai gabungan kelas male dan female. Skema RDF
tidak memungkinkan definisi semacam itu.
• Pembatasan kardinalitas. Terkadang batasan pada berapa banyak nilai berbeda yang
mungkin dimiliki atau harus diambil oleh properti perlu didefinisikan. Misalnya, seseorang
memiliki tepat dua orang tua, atau mata kuliah diajarkan oleh setidaknya satu dosen.
Pembatasan semacam itu tidak mungkin dinyatakan dalam skema RDF.
• Karakteristik khusus dari properti. Kadang berguna untuk mengatakan bahwa properti itu
transitif (seperti "greater than"), unik (seperti "is mother of"), atau kebalikan dari properti
lain (seperti "eat" dan "is eaten by").
Dengan demikian, bahasa ontologi yang lebih kaya daripada skema RDF diperlukan.
Dalam mendesain bahasa seperti itu, seseorang harus menyadari trade-off antara kekuatan
ekspresif dan dukungan penalaran yang efisien. Secara umum, bahasa yang lebih kaya,
mejadi semakin tidak efisien dukungan penalarannya. Dengan demikian, kompromi
diperlukan, bahasa yang dipilih adalah bahasa yang dapat didukung oleh reasoner yang
cukup efisien, sehingga bisa cukup ekspresif untuk merepresentasikan pengetahuan.
5.2.1. Syntax
OWL dibangun dalam RDF dan skema RDF dan menggunakan sintaks berbasis
RDF/XML. Sintaks RDF/XML tidak menyediakan sintaks yang mudah dibaca. Karena itu,
bentuk sintaksis lain untuk OWL juga telah didefinisikan, yaitu sintaks berbasis XML yang
tidak mengikuti konvensi RDF dan dengan demikian lebih mudah dibaca oleh pengguna
manusia.
5.2.2. Header
Dokumen OWL biasanya disebut ontologi OWL dan dokumen RDF. Elemen root dari
ontologi OWL adalah elemen rdf:RDF, yang juga menggunakan sejumlah namespace
seperti seperti berikut ini:
57
<rdf:RDF
xmlns:owl ="http://www.w3.org/2002/07/owl#"
xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd ="http://www.w3.org/2001/XMLSchema#">
Ontologi OWL bisa dimulai dengan kumpulan pernyataan (assertion). Assertion ini
dikelompokkan dalam elemen owl:Ontologi, yang berisi komentar, kontrol versi, dan
penyertaan ontologi lainnya. Sebagai contoh bisa dilihat pada Gambar 5.1.
<owl:Ontology rdf:about="">
<rdfs:comment>An example OWL ontology</rdfs:comment>
<owl:priorVersion rdf:resource="http://www.mydomain.org/uni-ns-old"/>
<owl:imports rdf:resource="http://www.mydomain.org/persons"/>
<rdfs:label>University Ontology</rdfs:label>
</owl:Ontology>
Hanya satu dari assertion ini yang memiliki konsekuensi untuk makna logis dari
ontologi yaitu elemen owl:imports, yang berisi daftar ontologi lain yang isinya dianggap
bagian dari ontologi saat ini. Perhatikan bahwa sementara namespace digunakan untuk
disambiguasi, ontologi impor memberikan definisi yang dapat digunakan. Biasanya akan ada
elemen impor untuk setiap namespace yang digunakan, namun memungkinkan untuk
mengimpor ontologi tambahan, misalnya ontologi yang memberikan definisi tanpa
mengenalkan nama baru.
Perhatikan juga bahwa owl:imports adalah properti transitif: jika ontologi A
mengimpor ontologi B, dan ontologi B mengimpor ontologi C, maka ontologi A juga
mengimpor ontologi C.
<owl:Class rdf:ID="associateProfessor">
<rdfs:subClassOf rdf:resource="#academicStaffMember"/>
</owl:Class>
Dalam dokumen OWL, bisa juga didefinisikan bahwa kelas associateProfessor adalah
disjoint dari kelas assistantProfessor and Professor, dengan menggunakan elemen
owl:disjointWith. Elemen-elemen ini dapat disertakan dalam definisi pada Gambar
5.2, seperti ditunjukkan pada Gambar 5.3, atau ditambahkan dengan mengacu ke ID
menggunakan rdf:about, seperti bisa dilihat pada Gambar 5.4.
<owl:Class rdf:ID="associateProfessor">
<rdfs:subClassOf rdf:resource="#academicStaffMember"/>
<owl:disjointWith rdf:resource="#professor"/>
<owl:disjointWith rdf:resource="#assistantProfessor"/>
</owl:Class>
<owl:Class rdf:about="#associateProfessor">
<owl:disjointWith rdf:resource="#professor"/>
<owl:disjointWith rdf:resource="#assistantProfessor"/>
</owl:Class>
Kesamaan atar kelas dapat didefinisikan elemen owl:equivalentClass, seperti bisa dilihat
pada Gambar 5.5.
<owl:Class rdf:ID="faculty">
<owl:equivalentClass rdf:resource="#academicStaffMember"/>
</owl:Class>
Akhirnya, ada dua kelas yang telah ditentukan (predefined), owl:Thing and
owl:Nothing. Yang pertama adalah kelas yang paling umum (yang berisi segalanya), dan
yang kedua adalah kelas kosong. Jadi setiap kelas adalah subkelas owl:Thing dan
superclass owl:othing.
59
<owl:DatatypeProperty rdf:ID="age">
<rdfs:range
rdf:resource="http://www.w3.org/2001/XMLSchema #nonNegativeInteger"/>
</owl:DatatypeProperty>
<owl:ObjectProperty rdf:ID="isTaughtBy">
<rdfs:domain rdf:resource="#course"/>
<rdfs:range rdf:resource="#academicStaffMember"/>
<rdfs:subPropertyOf rdf:resource="#involves"/>
</owl:ObjectProperty>
OWL juga menyediakan inverse properties. Sebagai contoh adalah pasangan properti
isTaughtBy dan teaches, seperti bisa dilihat pada Gambar 5.8.
<owl:ObjectProperty rdf:ID="teaches">
<rdfs:range rdf:resource="#course"/>
<rdfs:domain rdf:resource="#academicStaffMember"/>
<owl:inverseOf rdf:resource="#isTaughtBy"/>
</owl:ObjectProperty>
Domain dan range dapat diturunkan dari kebalikan properti-nya (pertukaran domain
dengan range).
mana C' mengumpulkan semua objek yang memenuhi kondisi. Begitulah cara melakukannya
di OWL. Perhatikan bahwa, secara umum, C' dapat tetap anonim.
Gambar 5.9 menyatakan mata kuliah (course) tahun pertama yang akan diajarkan oleh
para profesor saja.
<owl:Class rdf:about="#firstYearCourse">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#isTaughtBy"/>
<owl:allValuesFrom rdf:resource="#Professor"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="#mathCourse">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#isTaughtBy"/>
<owl:hasValue rdf:resource="#949318"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
“All academic staff members must teach at least one undergraduate course” dapat
dideklarasikan dengan menggunakan statemen RDF seperti terlihat pada Gambar 5.11.
<owl:Class rdf:about="#academicStaffMember">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#teaches"/>
<owl:someValuesFrom rdf:resource="#undergraduateCourse"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Contoh pada Gambar 5.9 menyatakan bahwa setiap orang yang mengajar sebuah
individu dari kelas, first-year subject, adalah professor. Dalam istilah logika, disebut universal
quantification.
Sedangkan contoh pada Gambar 5.11, menyatakan bahwa, ada undergraduate course
yang diajar oleh sebuah individu dari kelas, academic staff member. Masih memungkinkan
bahwa that academic staff member yang sama mengajar postgraduate course. In dalam
istilah logika, disebut existential quantification.
Ketiga statemen property restriction tersebut (yaitu, owl:allValuesFrom,
owl:hasValue, dan owl:someValuesFrom), bisa digambarkan dalam bentuk grafik,
seperti bisa dilihat pada Gambar 5.12 (untuk owl:allValuesFrom), Gambar 5.13 (untuk
owl:someValuesFrom), dan Gambar 5.14 (untuk owl:hasValue).
Seperti yang bisa dilihat pada ketiga gambar tersebut, prop adalah notasi untuk
properti, simbol jajara genjang adalah untuk individu. Misalkan “abc” (lihat Gambar 5.14)
adalah sebuah individu.
Secara umum, elemen owl:Restriction mengandung sebuah elemen
owl:onProperty dan satu atau lebih deklarasi restriction. Salah satu tipe dari deklarasi
restriction mendefinisikan jenis nilai yang diambil oleh properti (yaitu,
owl:allValuesFrom, owl:hasValue, dan owl:someValuesFrom). Tipe yang lain
mendefinisikan cardinality restrictions. Sebagai contoh, stateme bahwa “Every course to be
taught by at least someone” dapat dideklarasikan dengan dokumen OWL seperti terlihat
pada Gambar 5.15.
62
<owl:Class rdf:about="#course">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#isTaughtBy"/>
<owl:minCardinality
rdf:datatype="&xsd;nonNegativeInteger">
1
</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Gambar 5.15 Dokumen OWL: property restriction (owl:minCardinality)
Nilai literal "1" harus ditafsirkan sebagai nonNegatifInteger (bukan sebuah string), dan
deklarasi namespace xsd digunakan yang dibuat di elemen header untuk merujuk ke
dokumen Schema XML. Contoh lain, pernyataan “A department must have at least ten and
at most thirty members”, bisa dideklarasikan dengan sintaks OWL seperti terlihat pada
Gambar 5.16.
<owl:Class rdf:about="#department">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasMember"/>
<owl:minCardinality
rdf:datatype="&xsd;nonNegativeInteger">
10
</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasMember"/>
<owl:maxCardinality
rdf:datatype="&xsd;nonNegativeInteger">
30
</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
It is possible to specify a precise number, for example, a Ph.D. student must have
exactly two supervisors. This can be achieved by using the same number in
owl:minCardinality and owl:maxCardinality. For convenience, OWL offers also
owl:cardinality.
64
<owl:ObjectProperty rdf:ID="hasSameGradeAs">
<rdf:type rdf:resource="&owl;TransitiveProperty" />
<rdf:type rdf:resource="&owl;SymmetricProperty" />
<rdfs:domain rdf:resource="#student" />
<rdfs:range rdf:resource="#student" />
</owl:ObjectProperty>
<owl:Class rdf:about="#course">
<rdfs:subClassOf>
<owl:Class>
<owl:complementOf rdf:resource="#staffMember"/>
</owl:Class>
</rdfs:subClassOf>
</owl:Class>
instance dari staff members, yaitu, tidak ada course yang menjadi staff members. Statemen
ini juga bisa diekspresikan menggunakan elemen owl:disjointWith.
Kombinasi Boolean union dibangun dengan menggunakan elemen owl:unionOf.,
contohnya bisa dilihat pada Gambar 5.19. Ini tidak mengatakan bahwa kelas baru adalah
subkelas dari union, melainkan bahwa kelas baru sama dengan union.
<owl:Class rdf:ID="peopleAtUni">
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#staffMember"/>
<owl:Class rdf:about="#student"/>
</owl:unionOf>
</owl:Class>
<owl:Class rdf:ID="facultyInCS">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#faculty"/>
<owl:Restriction>
<owl:onProperty rdf:resource="#belongsTo"/>
<owl:hasValue rdf:resource="#CSDepartment"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
Kombinasi boolean bisa diekspresika secara nested. Sebagai contoh, Dokume technical
support staff OWL pada Gambar 5.21 mendefinisikan bahwa administrative staff adalah
bukan faculty maupun technical support staff.
<owl:Class rdf:ID="adminStaff">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#staffMember"/>
<owl:Class>
<owl:complementOf>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#faculty"/>
<owl:Class rdf:about="#techSupportStaff"/>
</owl:unionOf>
</owl:Class>
</owl:complementOf>
</owl:Class>
</owl:intersectionOf>
</owl:Class>
5.2.8. Enumerations
Enumerasi adalah elemen owl:oneOf yang digunakan untuk mendefinisikan sebuah
kelas dengan me-list-kan semua elemen-elemennya. Contoh penggunaan enumerasi adalah
untuk me-list-kan nama-nama hari dalam satu minggu, seperti yang bisa dilihat pada Gambar
5.22.
<owl:Class rdf:ID="weekdays">
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#Monday"/>
<owl:Thing rdf:about="#Tuesday"/>
<owl:Thing rdf:about="#Wednesday"/>
<owl:Thing rdf:about="#Thursday"/>
<owl:Thing rdf:about="#Friday"/>
<owl:Thing rdf:about="#Saturday"/>
<owl:Thing rdf:about="#Sunday"/>
</owl:oneOf>
</owl:Class>
5.2.9. Instances
Sebuah individu dari kelas dideklarasikan dalam sintaks RDF. Sebagai contoh, individu
ID “949352” dideklarasikan sebagai individu dari kelas academicStaffMember, seperti
berikut:
<rdf:Description rdf:ID="949352">
<rdf:type rdf:resource="#academicStaffMember"/>
</rdf:Description>
<academicStaffMember rdf:ID="949352"/>
Lebih detail tentang sebuah insatance bisa dideklarasikan seperti berikut ini:
<academicStaffMember rdf:ID="949352">
<uni:age rdf:datatype="&xsd;integer">39</uni:age>
</academicStaffMember>
Tidak seperti sistem basis data, OWL tidak menggunakan asumsi nama unik. Hanya
karena dua contoh memiliki nama atau ID yang berbeda tidak menyiratkan bahwa mereka
adalah individu yang berbeda. Misalnya, jika dinyatakan bahwa setiap course diajarkan oleh
paling banyak satu staff member,
owl:ObjectProperty rdf:ID="isTaughtBy">
<rdf:type rdf:resource="&owl;FunctionalProperty" />
</owl:ObjectProperty>
Ini tidak akan menyebabkan resoner OWL memeberi peringatan error. Bagaimanapun,
sistem tersebut dapat secara sah menyimpulkan bahwa resource "949318" dan "949352"
tampaknya sama. Untuk memastikan bahwa individu yang berbeda memang dikenali seperti
itu, harus secara eksplisit ditegaskan ketidaksetaraan mereka:
<lecturer rdf:ID="949318">
<owl:differentFrom rdf:resource="#949352"/>
</lecturer>
68
Karena pernyataan ketidaksetaraan semacam itu sering terjadi, dan jumlah yang
dibutuhkan dari pernyataan semacam itu akan meledak jika ketidaksetaraan yang
dinyatakan dalam jumlah besar individu, OWL memberikan notasi singkat (seperti
ditunjukkan pada Gambar 5.23) untuk menegaskan ketidaksetaraan pasangan dari semua
individu dalam daftar yang diberikan.
<owl:AllDifferent>
<owl:distinctMembers rdf:parseType="Collection">
<lecturer rdf:about="#949318"/>
<lecturer rdf:about="#949352"/>
<lecturer rdf:about="#949111"/>
</owl:distinctMembers>
</owl:AllDifferent>
5.3. Contoh
2. Consider the graph ontology below. Construct the owl document representing the graph. All
resources have URI: http://www.exercise.com/bussiness#. Note: “is an” or “is a” relation represents a
subclass relationship (i.e., “rdfs:subClassOf”) and “is the same as” relation can be defined using
“owl:equivalentClass” element
70
Answer:
<owl:ObjectProperty rdf:about="http://www.exercise.com/bussiness#hasViewOf">
<rdfs:domain rdf:resource="http://www.exercise.com/bussiness#empiricist"/>
<rdfs:domain
rdf:resource="http://www.exercise.com/bussiness#interpretivist"/>
<rdfs:range rdf:resource="http://www.exercise.com/bussiness#Ontology"/>
<rdfs:range
rdf:resource="http://www.exercise.com/bussiness#Epistemology"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="http://www.exercise.com/bussiness#Uses">
<rdfs:domain rdf:resource="http://www.exercise.com/bussiness#empiricist"/>
<rdfs:domain
rdf:resource="http://www.exercise.com/bussiness#interpretivist"/>
<rdfs:range rdf:resource="http://www.exercise.com/bussiness#Strategy"/>
<rdfs:range rdf:resource="http://www.exercise.com/bussiness#Method"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="http://www.exercise.com/bussiness#canBe">
<rdfs:domain rdf:resource="http://www.exercise.com/bussiness#Method"/>
<rdfs:range rdf:resource="http://www.exercise.com/bussiness#quantitative"/>
<rdfs:range rdf:resource="http://www.exercise.com/bussiness#qualitative"/>
</owl:ObjectProperty>
5.4. Latihan
1. How does semantic Web relate to XML Schemas? What do ontologies provide us that XML
and XML Schema don't?
Answer:
This issue is also related to the issue of using XML or RDF, addressed in a previous question.
First
of all, let us quote from the OWL Guide recommendation:
• An ontology differs from an XML Schema in that it is a knowledge representation, not a
message format. Most industry based Web standards consist of a combination of
message formats and protocol specifications. These formats have been given an
operational semantics, such as, “Upon receipt of this PurchaseOrder message, transfer
Amount dollars from AccountFrom to AccountTo and ship Product.” But the specification
is not designed to support reasoning outside the transaction context. For example, we
won’t in general have a mechanism to conclude that because the Product is a type of
Chardonnay it must also be a white wine.
• One advantage of OWL ontologies will be the availability of tools that can reason about
them. Tools will provide generic support that is not specific to the particular subject
domain, which would be the case if one were to build a system to reason about a specific
industry-standard XML schema. […] They will benefit from third party tools based on the
formal properties of the OWL language, tools that will deliver an assortment of
capabilities that most organizations would be hard pressed to duplicate.
72
Also, XML data is very sensitive to the XML Schema it refers to. If the XML Schema changes,
the
same XML data may become invalid, i.e., being rejected by Schema-aware parsers.
Somewhat similar dependence on RDF Schemas and Ontologies exist for RDF data, too: if the
RDF Schema
or OWL Ontology changes, the inferences drawn from the RDF data may change. However,
the core RDF data is still usable, there is no notion of the data being “rejected” by, e.g., a
parser due to a Schema/Ontology change. In general, RDF is more robust against changing of
Schemas and Ontologies than XML is versus Schemas. Note that a GRDDL transformation
from XML to RDF may be given by an XML Schema as described in the GRDDL specification.
This allows any XML document that validates according to the XML Schema given at the
namespace URI of the XML vocabulary to be converted to RDF.
Answers:
a. OWL statements:
<owl:Class rdf:about="&Ex;VegetarianDish">
<rdfs:subClassOf rdf:resource="&Ex;Dish"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&Ex; hasIngredient"/>
<owl:allValuesFrom rdf:resource="&Ex; VegetarianIngredient"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
b. OWL statements:
<owl:Class rdf:about="&Ex;Bedroom">
<rdfs:subClassOf rdf:resource="&Ex;Room"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&Ex; furnishedWith"/>
<owl:someValuesFrom rdf:resource="&Ex; Bed"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
73
c. OWL statements:
<owl:Class rdf:about="&Ex;RedWine">
<rdfs:subClassOf rdf:resource="&Ex;Wine"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&Ex;color"/>
<owl:hasValue rdf:resource="&Ex;red"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
d. OWL statements:
5.5. Rangkuman
OWL adalah bahasa standar yang diusulkan untuk ontologi Web. Hal ini
memungkinkan untuk menggambarkan semantik pengetahuan dengan cara yang mudah
diakses. OWL dibangun berdasarkan RDF dan RDF Schema:
• Sintaks RDF berbasis XML digunakan;
• Contoh didefinisikan dengan deskripsi RDF;
• Kebanyakan pemodelan RDFS primitif digunakan.
Daftar Pustaka
[1] Grigoris Antoniou, Frank Van Harmelen, A Semantic Web Primer, Second Edition, MIT
Press, 2008.