Anda di halaman 1dari 83

MODUL 1 SEMANTIC WEB

PENGANTAR SEMANTIC WEB

Dr. Anak Agung Istri Ngurah Eka Karyawati, S.Si., M.Eng.


NIP. 19740407 199802 2 001

Program Studi Teknik Informatika


Jurusan Ilmu Komputer
Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Udayana
2017
Halaman Judul

MODUL 1 SEMANTIC WEB

PENGANTAR SEMANTIC WEB

Dr. Anak Agung Istri Ngurah Eka Karyawati, S.Si., M.Eng.


NIP. 19740407 199802 2 001

Program Studi Teknik Informatika


Jurusan Ilmu Komputer
Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Udayana
2017

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.

Jimbaran, Juni 2017

Penulis

ii
TINJAUAN MATA KULIAH

PRASYARAT MATA KULIAH


Web Programming

DESKRIPSI MATA KULIAH


Mata kuliah semantic web membahas tentang konsep dan aplikasi dari teknologi
semantic web. Ini meliputi konsep RDF, RDFS, dan OWL, teknologi dari semantic web
(yaitu, metadata, ontologi, dan bahasa query), pembangunan aplikasi menggunakan
Protégé.

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

Halaman Judul ...........................................................................................................................................i


KATA PENGANTAR .................................................................................................................................... ii
TINJAUAN MATA KULIAH ........................................................................................................................ iii
PRASYARAT MATA KULIAH .................................................................................................................. iii
DESKRIPSI MATA KULIAH .................................................................................................................... iii
SASARAN BELAJAR............................................................................................................................... iii
POKOK BAHASAN ................................................................................................................................ iii
URUTAN PENYAJIAN ............................................................................................................................ iv
DAFTAR PUSTAKA ................................................................................................................................ iv
DAFTAR ISI ................................................................................................................................................ v
I. PENDAHULUAN ................................................................................................................................1
1.1. Sasaran Pembelajaran yang Ingin Dicapai................................................................................1
1.2. Ruang Lingkup Bahan Modul....................................................................................................1
1.3. Urutan Pembahasan.................................................................................................................1
II. PERTEMUAN I : PENGANTAR SEMANTIC WEB .................................................................................3
2.1. Pengertian Semantic Web ........................................................................................................3
2.2. Web versus Semantic Web ......................................................................................................3
2.3. Struktur Data yang Digunakan pada Semantic Web ................................................................4
2.3.1. Database Relational .........................................................................................................4
2.3.2. Database Hirarki ...............................................................................................................5
2.3.3. Database Graph ................................................................................................................6
2.3.4. Database Graph versus RDF Triple Store .........................................................................7
2.4. Open World Assumption (OWA) ..............................................................................................8
2.5. Linked Data...............................................................................................................................9
2.6. Search dan Discovery ...............................................................................................................9
2.7. Contoh ................................................................................................................................... 10
2.8. Latihan ................................................................................................................................... 12
2.9. Rangkuman............................................................................................................................ 12
Daftar Pustaka ................................................................................................................................... 12
III. PERTEMUAN II: WEB DOKUMEN YANG TERSTRUKTUR MENGGUNAKAN XML ........................ 13
3.1. Semantic Web: XML dan RDF ................................................................................................ 13
3.2. XML versus HTML .................................................................................................................. 16
3.3. Bahasa XML ........................................................................................................................... 17
3.3.1. Prolog ............................................................................................................................ 17
3.3.2. Elemen XML................................................................................................................... 18

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.

1.2. Ruang Lingkup Bahan Modul


Ruang lingkup bahan modul meliputi empat pokok bahasan utama yaitu, konsep
dasar dan teknologi yang mendasari semantic web, dasar-dasar XML, RDF dan RDF Schema,
dan bahasa OWL.

1.3. Urutan Pembahasan


Modul 1 akan disajikan dalam 4 kali pertemuan kuliah tatap muka. Pertemuan
pertama akan membahas tentang pengantar semantic web. Dimana poin-poin yang dibahas
adalah pengertian semantic web, perbandingan antara semantic web dengan teknologi web
konvensional, struktur data yang mendasari semantic web, open world assumption, search
dan discovery, dan linked data.
Pertemuan kedua akan membahas tentang dasar-dasar XML sebagai salah satu
bentuk representasi untuk RDF dan RDF schema. Poin-poin yang dibahas adalah: XML, RDF
dan ontologi dalam semantic web teknologi; XML versus HTML; bahasa XML (Prolog of an
XML Document, XML Elements, Content of XML Elements, XML Attributes, XML Elements vs
Attributes); model tree dari dokumen XML; struktur dari dokumen XML; dan meng-query
dokumen XML dengan XPath .
Pertemuan ketiga akan membahas tentang RDF yang meliputi: ide dasar dari RDF
(XML-Based Syntax); pengacuan resources secara exteral; nested dan not nested
descriptions; elemen rdf:type; tiga tipe elemen RDF container (rdf:Bag, rdf:Seq, rdf:Alt; dan
RDF dan RDF Schema.
Pertemuan keempat akan membahas tentang Web Ontology Language (OWL), yang
meliputi: kebutuhan penggunaan bahasa-bahasa ontologi; manfaat penggunaan reasoning
2

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

II. PERTEMUAN I : PENGANTAR SEMANTIC WEB


2.1. Pengertian Semantic Web

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).

2.2. Web versus Semantic Web

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

• Friend Of A Friend (FOAF) - berfokus untuk mengembangkan kosakata / ontologi


standar untuk jejaring sosial;
• OpenCyc - istilah akal sehat) untuk membangun aplikasi berdasarkan model web
semantik.

2.3. Struktur Data yang Digunakan pada Semantic Web

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).

2.3.1. Database Relational


Deskripsi data utama yang dibangun dalam model ini adalah sebuah relasi, yang
dapat dianggap sebagai seperangkat catatan. Deskripsi data dalam hal model data disebut
skema. Dalam model relasional, skema untuk nama relasi namanya adalah nama masing-
masing atribut atau kolom, dan tipe masing-masing atribut. Sebagai contoh, informasi siswa
di database universitas dapat disimpan dalam kaitannya dengan skema berikut:

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

Gambar 2.1 Contoh database relational

2.3.2. Database Hirarki


Model database hirarkis adalah model data dimana data disusun menjadi struktur
mirip pohon. Data disimpan sebagai record yang terhubung satu sama lain melalui link.
Record adalah kumpulan field, dengan masing-masing field hanya berisi satu nilai. Sebuah
record dalam model database hirarkis sesuai dengan sebuah baris (atau tuple) dalam model
database relational dan tipe entitas sesuai dengan tabel (atau relasi). Dalam model database
hirarkis setiap record child hanya memiliki satu parent, sedangkan setiap record parent
dapat memiliki satu atau lebih record child.
Contoh skema hirarkis adalah dokumen XML. Pada root dokumen adalah node
tingkat tertinggi, yang tidak memiliki parent. Gambar 2.2 menunjukkan contoh dokumen
XML. Istilah parent, child, dan sibling digunakan untuk menggambarkan hubungan antar
elemen. Parent punya anak. Child punya parent. Siblings adalah child pada tingkat yang
sama.
6

Gambar 2.2 Contoh dokumen XML

2.3.3. Database Graph


Model database graph adalah model yang struktur datanya dimodelkan seperti graph
berarah, dimana manipulasi datanya diekspresikan oleh operasi-operasi yang berorientasi
graph (Angles and Gutierrez, 2008). Database graph menggunakan query semantik with
node, edge dan properti untuk merepresentasikan dan menyimpan data. Konsep utamanya
adalah graph (edge atau relasi), yang secara langsung menghubungkan item dalam
penyimpanan. Setiap node (entity atau atribut) dalam model database graph memuat list
relasi antar record. Pada database relational yang konvensional, link antar data disimpan
pada datanya sendiri. Querying dilakukan dengan konsep JOIN untuk mengumpulkan data
yang terkait. Gambar 2.3 contoh dari model database graph.
Dari Gambar 2.3, bisa dijelaskan bahwa item “Thing 1” memiliki relasi “friendsWith”
dengan item “Thing 2”. “Thing 1” memiliki atribut “name” yaitu “Bonnie” yang merupakan
binatang bertipe “Cat”. Sedangkan “Thing 2” memiliki atribut “name” yaitu “Bengie” yang
merupakan binatang bertipe “Dog”. Dengan kata lain, model database tersebut
merepresentasikan bahwa seekor kucing yang bernama “Bonnie” dan seekor anjing yang
bernama “Bengie” berteman. Perbandingan antara ketiga database (database relatioal,
hirarkis, dan graph) bisa dilihat pada Gambar 2.4.
7

Gambar 2.3 Contoh database graph

Gambar 2.4 Perbandingan antara database relatioal, hirarkis, da graph

2.3.4. Database Graph versus RDF Triple Store


Graph database 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. Ada beberapa perbedaan antara
database graph dan RDF triple store, seperti terlihat pada Tabel 2.1.
8

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

2.4. Open World Assumption (OWA)

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.

OWA dan Semantic Web

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.

2.5. Linked Data

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).

2.6. Search dan Discovery

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 1: Metadata yang eksplisit

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.

<h1>Agilitas Physiotherapy Centre</h1>


Welcome to the Agilitas Physiotherapy Centre home page.
Do you feel pain? Have you had an injury? Let our staff
Lisa Davenport, Kelly Townsend (our lovely secretary)
and Steve Matthews take care of your body and soul.
<h2>Consultation hours</h2>
Mon 11am - 7pm<br>
Tue 11am - 7pm<br>
Wed 3pm - 7pm<br>
Thu 11am - 7pm<br>
Fri 11am - 3pm<p>
But note that we do not offer consultation
during the weeks of the
<a href=". . .">State Of Origin</a> games.

Gambar 2.5 Contoh HTML dokumen

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>

Gambar 2.6 Contoh dokumen XML


11

Sharing dengan model Semantic Web

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

III. PERTEMUAN II: WEB DOKUMEN YANG TERSTRUKTUR


MENGGUNAKAN XML
3.1. Semantic Web: XML dan RDF

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

URI di https://en.wikipedia.org/wiki/Uniform_Resource_Identifier. URI adalah serangkaian


karakter (huruf dan angka) yang digunakan untuk mengidentifikasi resource. Identifikasi
memungkinkan interaksi dengan representasi resource melalui jaringan, biasanya World
Wide Web, menggunakan protokol tertentu.
Sejak 2005 definisi sumber daya diperluas mejadi, “Konsep abstrak dapat berupa
sumber daya, seperti operator dan operan persamaan matematika, jenis hubungan
(misalnya, "Orang tua" atau "karyawan"), atau nilai numerik (misalnya., Nol, satu, dan tak
terbatas).”
URI HTTP yang mengidentifikasi resource dalam pengertian aslinya, seperti file,
dokumen, atau jenis sumber informasi apa pun yang disebut, harus menggunakan "garis
miring" URI - dengan kata lain, seharusnya tidak mengandung pengenal fragmen.
URI yang digunakan untuk mengidentifikasi konsep atau resource abstrak harus berupa
"pagar" URI menggunakan pengenal fragmen (lihat definisi pengenal fragmen di
https://en.wikipedia.org/wiki/Uniform_Resource_Identifier)
Sebagai contoh, http://www.example.org/catalogue/widgets.html akan
mengidentifikasi dan menemukan halaman web dengan menyediakan beberapa deskripsi
yang dapat dibaca manusia dari widget yang dijual oleh perusahaan. Sedangkan
http://www.example. org/ontology#Widget akan mengidentifikasi konsep abstrak atau kelas
"Widget" di ontologi perusahaan dan tidak perlu mengambil resource fisik melalui protokol
HTTP.
Tapi perbedaannya tidak mungkin diterapkan dalam praktik, dan kosa kata standar
yang terkenal memberi contoh kontra yang banyak digunakan. Misalnya, konsep Dublin Core
seperti "title", "publisher", "creator" dikenali oleh "slash" URI seperti
http://purl.org/dc/elements/1.1/title.
Dalam RDF, sebuah dokumen membuat pernyataan bahwa hal-hal tertentu memiliki
properti atau role (misalnya"is a brother of," "is the owner of") denga nilai tertentu. Sebagai
contoh, misal diberikan sebuah kalimat,
David Billington is the owner of the web page http://www.cit.gu.edu.au/~db
Kalimat tersebut memiliki struktur seperti tersaji pada Tabel 3.1. Bentuk triplenya adalah,
(http://www.cit.gu.edu.au/~db, http://www.uni.org/site-owner, ”David Billington”).
15

Tabel 3.1 Contoh Struktur RDF


Subject (Resource) http://www.cit.gu.edu.au/~db
Predicate (Property) http://www.uni.org/site-owner
Object (literal) ”David Billington”

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.

Gambar 3.1 Representasi Graph struktur RDF

Walaupun sudah mengguakan struktur RDF, dua database mungkin menggunakan


pengenal yang berbeda untuk konsep sebenarnya. Sebuah program yang ingin
membandingkan atau menggabungkan informasi di dua database harus mengetahui bahwa
kedua istilah ini berarti hal yang sama. Program ini harus memiliki cara untuk menemukan
makna umum seperti itu untuk database apa pun yang ditemui.
Ontologi memberikan solusi untuk masalah penggunaan pengenal yang berbeda untuk
konsep yang sama. Dalam bidang kecerdasan buatan, istilah ontologi mengacu pada
dokumen atau file yang secara formal mendefinisikan hubungan antar istilah. RDF
menggambarkan resource dalam kosakata mereka sendiri. RDF tidak mendefinisikan
semantik dari domain aplikasi tertentu. Pengguna dapat melakukannya di RDF Schema
dengan menggunakan: kelas dan properti, hirarki kelas dan inheritance, dan hierarki
properti.
16

3.2. XML versus HTML

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.

<h2>Nonmonotonic Reasoning: Context-


Dependent Reasoning</h2>
<i>by <b>V. Marek</b> and
<b>M. Truszczynski</b></i><br>
Springer 1993<br>

Gambar 3.1 Contoh dokumen HTML

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

Gambar 3.2 Contoh dokumen XML

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.

3.3. Bahasa XML

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

<? Xml version = "1.0" encoding = "UTF-16"?>

Gambar 3.3 Deklarasi XML

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.

<? Xml version = "1.0" encoding = "UTF-16" standalone = "tidak"?>

Gambar 3.4 Deklarasi XML pengacuan ekternal

Referensi untuk pengacuan dokumen eksternal terlihat pada Gambar 3.5.

<!DOCTYPE buku SISTEM "book.dtd">

Gambar 3.5 Referensi pengacuan ekternal

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.`

3.3.2. Elemen XML


Elemen XML merepresentasikan "sesuatu" yang ingin dijelaskan pada dokumen XML,
seperti buku, penulis, dan penerbit. Elemen XML terdiri dari tag pembuka, kontennya, dan
tag penutupnya. Contoh elemen XML dapat dilihat pada Gambar 3.6.

<lecturer> David Billington </lecturer>

Gambar 3.6 Elemen XML

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>

Gambar 3.7 Penamaan elemen XML

Jika tidak ada konten, maka elemen tersebut disebut kosong. Elemen kosong seperti bisa
dilihat pada Gambar 3.8.

<lecturer> </lecturer>

Gambar 3.8 Elemen kosong

Bisa disingkat sebagai <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.

<lecturer name="David Billington" phone="+61-7-3875 507"/>

Gambar 3.9 Elemen kosong

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.

<order orderNo="23456" customer="John Smith" date="October 15, 2002">


<item itemNo="a528" quantity="1"/>
<item itemNo="c817" quantity="3"/>
</order>

Gambar 3.10 Elemen tidak kosong


20

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>

Gambar 3.11 Elemen bersarang

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.

<!-- This is a comment -->

Gambar 3.12 Komentar pada dokumen XML

3.3.5. Dokumen XML yang Terbentuk dengan Baik


Dokumen XML akan terbentuk dengan baik jika benar secara sintaktis. Berikut adalah
beberapa aturan sintaksis dari pembentukan dokumen XML:
• Hanya ada satu elemen terluar dalam dokumen (disebut elemen root).
• Setiap elemen berisi tag pembuka dan tag penutup yang sesuai.
• Tag tidak tumpang tindih, seperti pada <author> <name> Lee Hong
</author> </name>.

• Atribut dalam suatu elemen memiliki nama yang unik.


• Nama elemen dan tag harus yang diperbolehkan.
21

3.3.6. Model Tree Dokumen XML


Dokumen XML dimungkinkan untuk direpresentasikan dengan struktur data tree.
Struktur data tree menyediakan model data formal untuk XML. Representasi ini sering
bersifat instruktif. Sebagai contoh, perhatikan dokumen XML pada Gambar 3.13.

<?xml version="1.0" encoding="UTF-16"?>


<!DOCTYPE email SYSTEM "email.dtd">
<email>
<head>
<from name="Michael Maher"
address="michaelmaher@cs.gu.edu.au"/>
<to name="Grigoris Antoniou"
address="grigoris@cs.unibremen.de"/>
<subject>Where is your draft?</subject>
</head>
<body>
Grigoris, where is the draft of the paper
you promised me last week?
</body>
</email>

Gambar 3.13 Representasi tree dari dokumen XML

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:

<person lastname="Woo" firstname="Jason"/>


<person firstname="Jason" lastname="Woo"/>
Aspek ini tidak direpresentasikan dengan baik di tree. Secara umum, konsep tree yang lebih
baik diperlukan. Sebagai contoh, berbagai jenis node (node elemen, node atribut, dll.).
seharusnya direpresentasikan secara berbeda. Sebagai contoh, ditunjukkan pada graph tree
(Gambar 3.14) representasi dari dokumen XML pada Gambar 3.13. Dari Gambar 3.14,
terlihat bahwa node elemen dan atribut mempunyai represetasi yang berbeda, dimana node
elemen mempunyai bentuk elip sedangkan node atribut mempunyai bentuk persegi
panjang.
22

Gambar 3.14 Representasi graph tree dari dokumen XML

3.4. Struktur Dokumen XML

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

3.4.1. External and Internal DTDs


Komponen DTD dapat didefinisikan dalam file terpisah (external DTD) atau dalam
dokumen XML itu sendiri (internal DTD). Biasanya lebih baik menggunakan DTD eksternal,
karena definisi tersebut dapat digunakan di beberapa dokumen. DTD itu diperlukan karena
jika tidak, duplikasi tidak bisa dihindari, dan pemeliharaan konsistensi dari waktu ke waktu
menjadi sulit.

3.4.2. XML Schema


Skema XML digunakan untuk mendefinisikan struktur dokumen XML. Salah satu
karakteristiknya adalah sintaksnya didasarkan pada bahasa XML. Penggunaan skema XML
memberikan peningkatan keterbacaan yang signifikan, namun yang lebih penting, ini juga
memungkinkan penggunaan kembali teknologi. Parser tidak perlu dituliskan secara terpisah,
seperti yang dibutuhkan untuk DTD. Perbaikan yang lebih penting lagi adalah kemungkinan
untuk menggunakan kembali dan menyempurnakan skema. Skema XML memungkinkan
seseorang memodifikasi skema dengan cara mengekspansi atau membatasi yang sudah ada.
Dalam kombinasi dengan sintaks berbasis XML, fitur ini memungkinkan seseorang untuk
membangun skema dari skema lain, sehingga mengurangi beban kerja. Skema XML adalah
elemen dengan tag pembuka seperti terlihat pada Gambar 3.15. Elemen tersebut
menggunakan skema dari skema XML yang terdapat pada website W3C.

<xsd:schema
xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
version="1.0">

Gambar 3.15 Elemen skema XML

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

Solusi teknisnya sederhana: disambiguasi dicapai dengan menggunakan prefiks yang


berbeda untuk setiap DTD atau skema. Awalannya dipisahkan dari nama lokal dengan titik
dua (:), seperti

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.

<?xml version="1.0" encoding="UTF-16"?>


<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>

Gambar 3.16 Dokumen XML: kerjasama dua uiversitas

Sehingga, namespace dideklarasikan dalam elemen dan dapat digunakan pada


elemen itu dan elemen children nya (elemen dan atributnya). Sebuah deklarasi namespace
memiliki bentuk seperti berikut:

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.

<?xml version="1.0" encoding="UTF-16"?>


<vu:instructors
xmlns:vu="http://www.vu.com/empDTD"
xmlns="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"/>
<academicStaff
title="lecturer"
name="Mate Jones"
school="Information Technology"/>
</vu:instructors>

Gambar 3.17 Dokumen XML dengan menggunakan namespace

3.6. Addressing dan Querying Dokumen XML

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

<?xml version="1.0" encoding="UTF-16"?>


<!DOCTYPE library PUBLIC "library.dtd">
<library location="Bremen">
<author name="Henry Wise">
<book title="Artificial Intelligence"/>
<book title="Modern Web Services"/>
<book title="Theory of Computation"/>
</author>
<author name="William Smart">
<book title="Artificial Intelligence"/>
</author>
<author name="Cynthia Singleton">
<book title="The Semantic Web"/>
<book title="Browser Technology Revised"/>
</author>
</library>

Gambar 3.18 Dokumen XML informasi library

In the following we illustrate the capabilities of XPath with a few examples of path
expressions.

1. Menampilkan semua elemen author.

/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

Gambar 3.19 Representasi tree dari dokumen XML informasi library

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

Gambar 3.20 Representasi tree dari ekspresi path query 3

Gambar 3.21 Representasi tree dari ekspresi path query 4


29

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:

What is the XML?


The Extensible Markup Language (XML) is a general-purpose markup language, designed to
describe semi-structured documents. XML is based on tags like HTML, however, XML it does
not have a fixed set of tags, but allows users to define their own tags. The XML tags have no
specific semantics. An XML document consists of plain text and markup, in the form of tags
and may be represented as an ordered labeled tree (i.e., hierarchical structure). An XML
document may contain the following types of nodes: document nodes, elements, attributes,
text nodes, comments, processing instructions, and namespaces.

What are the roles of XML in the semantic web technology?


XML allows content creators to label information in a meaningful way and allows users to
add arbitrary structure to the documents. RDF uses XML as the encoding syntax for the
metadata. Metadata is "data about data" or specifically in the context of RDF "data
describing web resources.“ On the other words, metadata defines semantic of the web
resources.
30

3.9. Rangkuman

XML adalah bahasa metadata yang memungkinkan pengguna menentukan markup


untuk dokumen mereka menggunakan tag. Tag bersarang digunakan untuk mendefinisikan
struktur. Struktur dokumen dapat dideklarasikan dengan menggunakan skema atau DTD.
Bahasa XML memisahkan konten dan struktur dari pemformatan. XML adalah standar
de facto untuk representasi informasi terstruktur di Web dan mendukung pemrosesan
informasi mesin. XML mendukung pertukaran informasi terstruktur di berbagai aplikasi
melalui markup, struktur, dan transformasi. XML didukung oleh bahasa query.

Daftar Pustaka

[1] Grigoris Antoniou, Frank Van Harmelen, A Semantic Web Primer, Second Edition, MIT
Press, 2008.
31

IV. PERTEMUAN III: PENGGAMBARAN RESOURCE WEB


DENGAN RDF
4.1. Ide Dasar RDF

Konsep dasar RDF adalah resource, properti, dan statemen.

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).

4.1.4. Tiga Representasi dari Statemen


Sebuah contoh dari statemen adalah sebagai berikut:

Contoh 1: David Billington is the owner of the Web page


http://www.cit.gu.edu.au/∼db.
32

Triple-Based Representation (Formula Logika) Cara yang paling sederhana untuk


merepresentasikan statemen adalah menggunakan triple, seperti terlihat pada Gambar 4.2.

(http://www.cit.gu.edu.au/~db, http://www.mydomain.org/site-owner,
#DavidBillington)

Gambar 4.2 Grafik representation dari triple

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.

Gambar 4.2 Grafik representation dari triple

Nilai dari sebuah bisa berupa sebuah resource. Sehingga nilai ini terhubung ke
resource yang lain. Perhatikan triple pada Gambar 4.3.

1. (http://www.cit.gu.edu.au/~db, http://www.mydomain.org/site-owner, #DavidBillington)


2. (#DavidBillington, http://www.mydomain.org/phone, "3875507")
3. (#DavidBillington, http://www.mydomain.org/uses,
http://www.cit.gu.edu.au/~arock/defeasible/Defeasible.cgi)
4. (http://www.cit.gu.edu.au/~arock/defeasible/Defeasible.cgi,http://www.mydomain.org/site-
owner, ‘‘Andrew Rock’’)

Gambar 4.3 Representation triple


33

<?xml version="1.0" encoding="UTF-16"?>


<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:mydomain="http://www.mydomain.org/my-rdf-ns">
<rdf:Description rdf:about="http://www.cit.gu.edu.au/~db">
<mydomain:site-owner rdf:resource="#DavidBillington"/>
</rdf:Description>
</rdf:RDF>

Gambar 4.4 Represensi semantic net

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.

Gambar 4.5 Contoh 1 statemen RDF

Baris pertama menentukan bahwa dokumen menggunakan sintaks XML. Elemen


rdf:Description membuat sebuah statemen yang mendeskripsikan tentang resource
http://www.cit.gu.edu.au/∼db. Di dalam statemen description properti digunakan
sebagai sebuah tag, dan content nya adalah nilai dari properti tersebut.
34

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.

4.1.5. Data Types


Perhatikan nomor telepon "3875507". Sebuah program yang membaca model data
RDF ini tidak dapat mengetahui apakah "3875507" secara literal diinterpretasikan sebagai
bilangan bulat atau sebagai sebuah string, atau memang jika itu adalah bilangan bulat ,
apakah itu dalam representasi desimal atau heksadesimal. Sebuah program hanya bisa
mengetahui bagaimana menafsirkan resource ini jika aplikasi tersebut secara eksplisit diberi
informasi bahwa literal dimaksudkan untuk mewakili sebuah angka, dan jumlah yang
seharusnya diwakili secara literal.
Umumnya, dalam bahasa pemrograman atau sistem basis data, tipe informasi
disediakan dengan mengaitkan tipe data dengan tipe literal, dalam hal ini, tipe data seperti
desimal atau integer. Dalam RDF, literal yang bertipe digunakan untuk menyediakan
informasi.
Dengan menggunakan literal yang bertipe, kita bisa menggambarkan usia David
Billington sebagai bilangan bulat 27 menggunakan triple

(#DavidBillington, http://www.mydomain.org/age, "27" ^^ http:


// www.w3.org/2001/XMLSchema#integer)

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.

4.2. RDF: XML-Based Syntax

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>

Gambar 4.6 Dokumen RDF berbasis sintaks XML

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>

Gambar 4.7 Dokumen RDF: pasangan properti-nilai untuk resource

Attribute rdf:datatype="&xsd;integer" digunakan untuk mendefinisikan tipe


data dari nilai properti. Walaupun properti age telah didefinisikan mempunyai range
"&xsd;integer", masih diperlukan untuk mendefinisikan tipe dari nilai dari properti ini
setiap kali digunakan.
Ini untuk memastikan bahwa prosesor RDF dapat menentukan jenis nilai properti yang
benar walaupun belum melihat definisi skema RDF yang bersesuaian sebelumnya (skenario
yang kemungkinan besar akan terjadi di World Wide Web yang tidak terbatas).
Elemen properti dari sebuah deskripsi harus dibaca secara konjungtif. Dalam contoh
sebelumnya, subjek disebut "Knowledge Representasi" dan diajarkan oleh Grigoris Antoniou.
37

4.2.1. The rdf:resource Attribute


Contoh sebelumnya tidak memuaskan dalam satu hal: hubungan antara course dan
lecturer tidak didefinisikan secara formal namun ada secara implisit melalui penggunaan
nama yang sama. Untuk sebuah mesin, penggunaan nama yang sama mungkin kebetulan
saja. Sebagai contoh, David Billington yang mengajar CIT3112 mungkin bukan orang yang
sama dengan orang dengan ID 949318 yang kebetulan disebut David Billington. Yang kita
butuhkan adalah spesifikasi formal dari fakta bahwa, misalnya, lecturer CIT1111 adalah
anggota staf dengan nomor 949318, yang namanya David Billington. Efek ini bisa dicapai
dengan menggunakan sebuah atribut rdf:resource, seperti bisa dilihat pada Gambar
4.8.

<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>

Gambar 4.8 Dokumen RDF: atribut rdf:resource

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>

Gambar 4.9 Dokumen RDF: penggunaan simbol #

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.

4.2.2. Nested Description dan not Nested Description


Deskripsi dapat didefinisikan dalam deskripsi lain. Sebagai contoh, kita dapat
mengganti deskripsi dari contoh sebelumnya dengan deskripsi nested, seperti terlihat pada
Gambar 4.10.
<rdf:Description rdf:about="CIT1111">
<uni:courseName>Discrete Mathematics</uni:courseName>
<uni:isTaughtBy>
<rdf:Description rdf:about="949318">
<uni:name>David Billington</uni:name>
<uni:title>Associate Professor</uni:title>
</rdf:Description>
</uni:isTaughtBy>
</rdf:Description>

Gambar 4.10 Dokumen RDF: deskripsi nested

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.

4.2.3. Elemen rdf:type


Dalam contoh sejauh ini, deskripsi terbagi dalam dua kategori: course dan lecturer.
Fakta ini jelas bagi pembaca manusia, namun belum dideklarasikan secara formal
dimanapun, sehingga tidak dapat diakses oleh mesin. Dalam RDF dimungkinkan untuk
membuat pernyataan seperti itu menggunakan elemen rdf:type, seperti bisa dilihat pada
Gambar 4.11.

<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>

Gambar 4.11 Dokumen RDF: penggunaan elemen rdf:type


39

4.2.4. Abbreviated Syntax


Ada kemungkinan untuk menyingkat sintaks dokumen RDF. Aturan
penyederhanaannya adalah sebagai berikut:
1. Elemen properti childless di dalam elemen deskripsi bisa diganti dengan atribut XML
seperti pada dokumen XML.
2. Untuk elemen deskripsi dengan elemen typing bisa digunakan elemen rdf:type
sebagai ganti dari elemen rdf:Description.
Sebagai contoh bisa dilihat pada Gambar 4.12a, 4.12b dan 4.13c. Gambar 4.12b adalah hasil
penyederhanaan dengan aturan 1 dan Gambar 4.12c adalah dengan aturan 2.

<rdf:Description rdf:ID="CIT1111">
<rdf:type rdf:resource="&uni;course"/>
<uni:courseName>Discrete Mathematics</uni:courseName>
<uni:isTaughtBy rdf:resource="#949318"/>
</rdf:Description>

Gambar 4.12a Dokumen RDF

<rdf:Description rdf:ID="CIT1111" uni:courseName="Discrete Mathematics">


<rdf:type rdf:resource="&uni;course"/>
<uni:isTaughtBy rdf:resource="#949318"/>
</rdf:Description>

Gambar 4.12b Aturan penyederhanaan 1

<uni:course rdf:ID="CIT1111" uni:courseName="Discrete Mathematics">


<uni:isTaughtBy rdf:resource="#949318"/>
</uni:course>

Gambar 4.12c Aturan penyederhanaan 2

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

4.3. Tiga Tipe Elemen RDF Container

Elemen kontainer digunakan untuk mengumpulkan sejumlah resource atau atribut


yang disampaikan secara keseluruhan. Sebagai contoh, representasi tentang course yang
diberikan oleh lecturer tertentu. Tiga jenis kontainer tersedia di RDF:
1. rdf: Bag, tempat tak berurutan, yang mungkin berisi banyak kejadian (tidak berlaku
untuk satu set). Contoh tipikal adalah anggota dewan fakultas dan dokumen dalam
sebuah folder.
2. rdf: Seq, tempat yang berurutan, yang mungkin berisi banyak kejadian. Contoh tipikal
adalah modul course, item dalam agenda, daftar anggota staf menurut abjad.
3. rdf: Alt, satu set alternatif. Contoh tipikal adalah terjemahan dokumen dalam
berbagai bahasa.
Sebagai contoh, misalkan akan direpresentasikan bahwa mata kuliah tertentu
mempunyai sejumlah mahasiswa (properti students), maka bisa dilihat dalam representasi
grafik pada Gambar 4.13 dan representasi dalam sintaks XML pada Gambar 4.14.

Gambar 4.13 Representasi dalam bentuk grafik container rdf:Bag


41

<?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>

Gambar 4.14 Representasi container rdf:Bag

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.

Gambar 4.15 Representasi dalam bentuk grafik container rdf:Seq

<?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>

Gambar 4.16 Representasi container rdf:Seq


42

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.

Gambar 4.17 Representasi dalam bentuk grafik container rdf:Alt

<?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>

Gambar 4.18 Representasi container rdf:Alt

4.4. RDF Schema: Ide Dasar

RDF adalah bahasa universal yang memungkinkan pengguna mendeskripsikan


sumber daya dengan menggunakan kosakata mereka sendiri. RDF tidak membuat asumsi
tentang domain aplikasi tertentu, juga tidak mendefinisikan semantik dari domain apa pun.
43

4.4.1. Classes dan Properties


Bagaimana kita menggambarkan domain tertentu? Mari kita perhatikan domain course
dan lecturer di Griffith University. Pertama, "hal-hal" yang ingin dideskripsikan harus
ditentukan. Di satu sisi, mendiskripsikan informasi tentang dosen tertentu, seperti David
Billington, dan mata kuliah (course) tertentu, seperti Discrete Mathematics (telah dilakukan
di RDF). Di sisi yang lain tentang mata kuliah, mata kuliah tahun pertama, lecturer,
professors, dan sebagainya. Apa bedanya? Dalam kasus pertama dibicarakan tentang objek
individu (sumber daya), dan yang kedua berbicara tentang kelas yang menentukan jenis
objek.
Sebuah kelas dapat dianggap sebagai seperangkat elemen. Objek individu yang
termasuk dalam kelas disebut sebagai contoh kelas itu. Kita sudah mendefinisikan hubungan
antaraindividu dan kelas di RDF dengan menggunakan rdf:type.
Penggunaan kelas yang penting adalah pembatasan pada apa yang dapat dinyatakan
dalam dokumen RDF dengan menggunakan skema. Dalam bahasa pemrograman, penentuan
tipe data digunakan untuk mencegah sesuatu yang tidak berarti ditulis (seperti A + 1, di
mana A adalah sebuah array, kita meletakkan argumen + harus bilangan). Hal yang sama
juga dibutuhkan di RDF. Selain itu, dengan menggunakan skema, beberapa statemen yang
tidak masuk akal bisa dihindari seperti berikut:
1. Discrete Mathematics is taught by Concrete Mathematics.
2. Room MZH5760 is taught by David Billington.
Statemen pertama itu tidak masuk akal karena mata kuliah hanya diajarkan oleh
lecturer saja. Ini memberlakukan pembatasan nilai properti "is taught by". Dalam istilah
matematika, range dari properti dibatasi. Statemen kedua tidak masuk akal karena hanya
mata kuliah yang bisa diajarkan. Ini memberlakukan pembatasan pada objek yang bisa
diterapkan properti. Dalam istilah matematika, domain dari properti dibatasi.

4.4.2. Class Hierarchies dan Inheritance


Setelah kelas didefinisikan, hubungan di antara kelas juga harus ditentukan. Misalnya,
beberapa kelas yang telah didefinisikan adalah sebagai berikut:
staff members, assistant professors, academic staff members, administrative staff
members, professors, technical support staff members, dan associate professors
44

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.

Gambar 4.19 Hirarki kelas

Secara umum, A adalah subclass of B jika setiapindividu dari A adalah jugaindividu


dari B. Tidak ada persyaratan dalam skema RDF bahwa kelas bersama membentuk hierarki
yang ketat. Dengan kata lain, grafik subclass seperti pada Gambar 4.19 tidak perlu dijadikan
tree. Kelas mungkin memiliki beberapa superclasses. Jika kelas A adalah subclass dari B1 dan
B2, ini berarti bahwa setiapindividu dari A adalah sebuahindividu dari B1 dan sebuahindividu
dari B2.
Sebuah organisasi kelas hirarkis memiliki arti praktis yang sangat penting. Perhatikan
batasan dari range Course yang harus diajar oleh Academic Staff Member saja. Misalkan
Michael Maher didefinisikan sebagai seorang profesor. Kemudian, menurut batasan
sebelumnya, dia tidak diijinkan untuk mengajar mata kuliah (Course). Alasannya adalah tidak
ada statemen yang menyebutkan bahwa Michael Maher juga merupakan anggota staf
akademik. Akan kotradiksi kalau statemen tersebut ditambahkan untuk mengatasi kesulitan
ini. Sebagai gantinya Michael Maher didefinisikan mewarisi kemampuan mengajar dari kelas
anggota staf akademik. Hal ini dapat dilakukan di skema RDF.
45

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.

4.4.3. Property Hierarchies


Hal yang sama dengan kelas bisa dilakukan untuk properti. Misalnya, "is taught by" adalah
subproperti "involes". Jika mata kuliah c diajarkan oleh seorang academic staff member a,
maka c juga melibatkan a. Kebalikannya belum tentu benar. Misalnya, mungkin seorang
penyelenggara mata kuliah, atau tutor yang memeriksa pekerjaan rumah siswa tapi tidak
mengajar mata kuliah c. Secara umum, P adalah subproperty Q jika Q (x, y) setiap kali P (x, y).

4.4.4. RDF versus RDFS Layers


Berbagai layer yang terlibat dalam RDF dan RDFS digambarkan dengan menggunakan
contoh sederhana. Perhatikan statemen RDF “Discere Mathematics is taught
by David Billington”. Skema untuk pernyataan ini mungkin berisi kelas seperti
lecturers, academic staff members, staff members, first-year courses, and properti seperti, is
taught by, involves, phone, employee ID. Gambar 4.20 mengilustrasikan layer RDF dan
skema RDF untuk contoh ini. Dalam gambar ini, persegi panjang adalah properti, elips di atas
garis putus-putus adalah kelas, dan elips di bawah garis putus-putus adalah contoh.
46

Skema pada Gambar 4.20 ditulis sendiri dalam bahasa formal, skema RDF, yang dapat
mengekspresikan komponen-komponennya: subClassOf, Class, Property, subPropertyOf,
Resource, dan sebagainya.

Gambar 4.20 RDF dan RDFS layers

4.5. RDF Schema: The Language

Skema RDF menyediakan model primitif untuk mengekspresikan informasi. Salah


satu keputusan yang harus dibuat adalah bahasa formal apa yang digunakan. Seharusnya
tidak mengherankan bahwa RDF sendiri akan digunakan: pemodelan primitif dari skema RDF
didefinisikan dengan menggunakan resource dan properti.
Pilihan ini bisa dibenarkan dengan melihat Gambar 4.10 yang disajikan untuk
menampilkan hirarki kelas / properti ditambah instance, namun, tentu saja, itu sendiri
hanyalah sebuah grafik berlabel yang dapat dikodekan dalam RDF. RDF mengizinkan
47

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.

4.5.1. Core Classes


Yang termasuk kelas utama (core classes) adalah sebagai berikut:
• rdfs:Resource, yaitu kelas dari semua resource
• rdfs:Class, yaitu kelas dari semua kelas
• rdfs:Literal, yaitu kelas dari semua literal (string)
• rdf:Property, yaitu kelas dari semua properti
Sebagai contoh, sebuah kelas lecturer dapat didefinisikan sebagai berikut:

<rdfs:Class rdf:ID="lecturer">
. . .
</rdfs:Class>

4.5.2. Core Properties untuk Mendefinisikan Relationship


Yang termasuk properti utama (core properties) yang mendefinisikan relasi utama adalah
sebagai berikut:
1. rdf:type, yang menghubungkan resource dengan kelasnya. Resource tersebut
dideklarasikan menjadi dari kelasnya
2. rdfs:subClassOf, yang menghubungkan kelas dengan superclass-nya. Semua
instances dari sebuah kelas adalahindividu dari superclass-nya. Perhatikan bahwa
kelas mungkin merupakan subclass dari lebih dari satu kelas. Sebagai contoh, kelas
femaleProfessor adalah subclass dari kelas female dan professor.
3. rdfs:subPropertyOf, yang menghubungkan properti ke superproperti-nya.
Sebagai contoh, representasi dari statemen, ”All lecturers are staff members.” adalah
sebagai berikut:
48

<rdfs:Class rdf:about="lecturer">
<rdfs:subClassOf rdf:resource="staffMember"/>
</rdfs:Class>

Sebagai catatan rdfs:subClassOf dan rdfs:subPropertyOf adalah transitive.


Selain itu, is rdfs:Class adalah subclass dari rdfs:Resource (setiap kelas adalah
resource), dan rdfs:Resource adalahindividu dari rdfs:Class (rdfs:Resource
adalah kelas dari semua resource) dan setiap kelas adalahindividu dari rdfs:Class.

4.5.3. Core Properties untuk Membatasi Properties


Properti utama untuk membatasi properti adalah:
1. rdfs:domain, yang menentukan domain properti P dan menyatakan bahwa
resource apa pun yang memiliki properti tertentu adalahindividu dari kelas domain.
2. rdfs:range, yang menentukan kisaran properti P dan menyatakan bahwa nilai
properti adalahindividu dari kelas range.
Berikut adalah contoh yang menyebutkan bahwa setiap kali ada resource yang memiliki
nomor telepon, itu adalah staff member dan nilainya adalah literal:
<rdf:Property rdf:ID="phone">
<rdfs:domain rdf:resource="#staffMember"/>
<rdfs:range rdf:resource="&rdf;Literal"/>
</rdf:Property>

4.5.4. Utility Properties


Resource dapat didefinisikan dan dijelaskan di banyak tempat di Web. Properti
berikut memungkinkan tautan ke alamat resource yang lain.
1. rdfs:seeAlso menghubungkan resource dengan resource lain yang
menjelaskannya.
2. rdfs: isDefinedBy adalah subproperty dari rdfs:seeAlso dan menghubungkan
resource ke tempat di mana definisinya, biasanya skema RDF, ditemukan.
3. rdfs:Comment, biasanya teks lebih panjang, bisa dikaitkan dengan sebuah
resource.
4. rdfs:Label Label yang dikenal manusia (nama) dikaitkan dengan resource.
49

4.6. Contoh Implementasi RDF dan RDFS

Contoh 1: Ontologi dari sebuah universitas


Contoh ini mengacu ke contoh course dan lecturer sebelumnya, dan menyediakan model
konseptual domain, yaitu ontologi. Dokumen RDF nya bisa dilihat pada Gambar 4.21.
<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="lecturer">
<rdfs:comment> The class of lecturers all lecturers are academic staff members.
</rdfs:comment>
<rdfs:subClassOf rdf:resource="#academicStaffMember"/>
</rdfs:Class>
<rdfs:Class rdf:ID="academicStaffMember">
<rdfs:comment> The class of academic staff members</rdfs:comment>
<rdfs:subClassOf rdf:resource="#staffMember"/>
</rdfs:Class>
<rdfs:Class rdf:ID="staffMember">
<rdfs:comment>The class of staff members</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:ID="course">
<rdfs:comment>The class of courses</rdfs:comment>
</rdfs:Class>
<rdf:Property rdf:ID="involves">
<rdfs:comment>It relates only courses to lecturers.</rdfs:comment>
<rdfs:domain rdf:resource="#course"/>
<rdfs:range rdf:resource="#lecturer"/>
</rdf:Property>
<rdf:Property rdf:ID="isTaughtBy">
<rdfs:comment>
Inherits its domain ("course") and range ("lecturer")from its superproperty"involves"
</rdfs:comment>
<rdfs:subPropertyOf rdf:resource="#involves"/>
</rdf:Property>
<rdf:Property rdf:ID="phone">
<rdfs:comment> It is a property of staff members and takes literals as values.</rdfs:comment>
<rdfs:domain rdf:resource="#staffMember"/>
<rdfs:range rdf:resource="&rdf;Literal"/>
</rdf:Property>
</rdf:RDF>

Gambar 4.21 Dokumen RDF: Ontologi universitas

Contoh 2: Motor Vehicles


Contoh yang kedua menyajikan ontologi sederhana dari motor vehicles. Hubungan antar
kelas ditunjukkan pada Gambar 4.22 dan dokumen RDF nya bisa dilihat pada Gambar 4.23.

Gambar 4.22 Grafik hubungan antar kelas motor vehicles


50

<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>

Gambar 4.23 Dokumen RDF: Ontologi motor vehicles

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#.

Gambar 4.24 The RDF graph


51

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>

2. Model the following ontology using RDFS?


• Herbivores, Carnivores, and Omnivores are animals
• People are omnivores
• People have names of type “string”
• Vegetarians are people who are herbivores
• “eats” is a property of animals and the values of the property must be of the type “food”
• Meat and Veggies are types of food

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>

Gambar 4.25 The RDF/XML document


Answer:

There are five triples available as follows:


1. http://www.w3.org/ns/org rdf:type owl:Ontology
2. http://www.w3.org/ns/org owl:versioninfo 0.7
3. http://www.w3.org/ns/org dct:title Core organization ontology
4. http://www.w3.org/ns/org#Organization rdf:type
http://www.w3.org/2000/01/rdf-schema#Class
5. http://www.w3.org/ns/org#Organization rdfs:subClassOf
http://xmlns.com/foaf/0.1/Agent

4.8. Rangkuman

RDF menyediakan dasar untuk merepresentasikan dan memproses metadata. RDF


memiliki model data berbasis grafik. Konsep utamanya adalah resource, properti, dan
statemen. Satemen adalah triple resource-property-value. RDF memiliki sintaks berbasis
XML untuk mendukung interoperabilitas sintaksis. XML dan RDF saling melengkapi karena
RDF mendukung interoperabilitas semantik. RDF memiliki filosofi terdesentralisasi dan
memungkinkan pengembangan pengetahuan tambahan, dan berbagi dan digunakan
kembali. RDF adalah domain-independen.
53

Skema RDF menyediakan mekanisme untuk mendeskripsikan domain tertentu. Skema


RDF adalah bahasa ontologi primitif yang menawarkan pemodelan primitif tertentu dengan
makna tetap. Konsep utama skema RDF adalah hubungan kelas, subkelas, properti,
hubungan subproperti, dan pembatasan domain dan range.

Daftar Pustaka
[1] Grigoris Antoniou, Frank Van Harmelen, A Semantic Web Primer, Second Edition, MIT
Press, 2008.
54

V. PERTEMUAN IV: WEB ONTOLOGY LANGUAGE (OWL)


5.1. OWL and RDF/RDFS

5.1.1. Keperluan akan Bahasa Ontologi


Bahasa ontologi memungkinkan pengguna untuk menulis secara eksplisit,
konseptualisasi formal dari model domain. Persyaratan utama adalah sintaks yang
didefinisikan dengan baik, dukungan penalaran yang efisien, semantik formal, kekuatan
ekspresif yang memadai dan kenyamanan ekspresi.
Pentingnya sintaks yang didefinisikan dengan baik jelas dan diketahui dari bidang
bahasa pemrograman. Ini adalah kondisi yang diperlukan untuk pemrosesan informasi
mesin. Semua bahasa yang telah dibahas sejauh ini memiliki sintaks yang sudah didefinisikan
dengan baik. DAML + OIL dan OWL membangun RDF dan RDFS dan memiliki sintaks yang
sama.
Sintaks RDF berbasis XML masih dipertanyakan apakah sudah sangat user-friendly. Ada
alternatif yang lebih sesuai bagi pengguna manusia (misalnya lihat sintaks OIL). Namun,
kekurangan ini tidak terlalu signifikan karena pada akhirnya pengguna akan
mengembangkan ontologi mereka sendiri dengan menggunakan tool pengembangan
ontologi.
Sebuah semantik formal menggambarkan makna pengetahuan secara tepat. Semantik
tidak mengacu pada intuisi subjektif, juga tidak terbuka terhadap interpretasi yang berbeda
oleh orang yang berbeda (atau mesin). Salah satu penggunaan semantik formal adalah untuk
memungkinkan orang untuk melakukan reasonig tentang pengetahuan.
Untuk pengetahuan ontologis, beberapa proses reasoning dilakukan, diantaranya adalah
sebagai berikut:
• Keanggotaan kelas Jika x adalah instace dari kelas C, dan C adalah subclass dari D, maka
dapat disimpulkan bahwa x adalahindividu dari D.
• Kesetaraan kelas. Jika kelas A setara dengan kelas B, dan kelas B setara dengan kelas C,
maka A juga setara dengan C.
• Konsistensi. Misalkan telah dinyatakan x sebagaiindividu dari kelas A dan bahwa A adalah
subkelas dari B ∩ C, A adalah subkelas dari D, dan B dan D adalah disjoint.
55

Ketidakkonsistenan terjadi karena A harus kosong tapi punyaindividu x. Ini merupakan


indikasi adanya kesalahan dalam ontologi.
• Klasifikasi. Jika telah dinyatakan bahwa pasangan nilai properti tertentu adalah kondisi
keanggotaan yang cukup dalam kelas A, maka jika seseorang memenuhi persyaratan
tersebut, dapat disimpulkan bahwa x harus merupakanindividu dari A.
Dukungan penalaran penting karena memungkinkan seseorang untuk memeriksa
konsistensi ontologi dan pengetahuan, memeriksa hubungan yang tidak diinginkan antar
kelas, da secara otomatis mengklasifikasikan contoh di kelas.
Dukungan penalaran otomatis memungkinkan seseorang untuk pengecekan lebih
banyak kasus daripada yang dapat diperiksa secara manual. Pengecekan seperti preseden
yang bermanfaat untuk merancang ontologi yang besar, di mana banyak penulis terlibat, dan
untuk mengintegrasikan dan berbagi ontologi dari berbagai resource.
Dukungan semantik dan penalaran formal biasanya diberikan dengan memetakan
bahasa ontologi ke formalisme logis yang diketahui, dan dengan menggunakan reasoner
otomatis yang sudah ada untuk formalisme tersebut. OWL dipetakan ke description logic,
dan memanfaatkan reasoner yang ada seperti FaCT dan RACER. Description logic adalah
subset dari logika predikat yang memungkinkan dukungan penalaran yang efisien.

5.1.2. Keterbatasan Kemampuan Ekspresif dari Skema RDF


RDF dan RDFS memungkinkan representasi beberapa pengetahuan ontologis.
Pemodelan utama primitif RDF/RDFS menyangkut pengorganisasian kosa kata dalam
hierarki: hubungan subclass dan subproperti, pembatasan domain dan range, danindividu
dari kelas. Namun, sejumlah fitur lainnya hilang, seperti fitur-fitur berikut ini:
• Scope lokal dari range. rdfs:range mendefinisikan range dari properti, katakanlah
makan, untuk semua kelas. Jadi dalam skema RDF Schema batasan range yang hanya
berlaku untuk beberapa kelas saja tidak bisa dideklarasikan. Misalnya, tidak bisa
didefinisikan bahwa sapi hanya memakan tanaman saja, sementara hewan lain juga bisa
makan daging.
• Disjointness dari kelas. Terkadang ketidakterkaitan (disjointness) dari kelas perlu
didefinisikan. Misalnya, man dan woman adalah disjoint. Tapi dalam skema RDF hanya
bisa menyatakan hubungan subkelas, misalnya, woman adalah subkelas dari person.
56

• 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. Description of the OWL Language

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>

Gambar 5.1 Dokumen OWL: assertion

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.

5.2.3. Class Elements


Kelas didefinisikan menggunakan elemen owl:Class. Sebagai contoh, kelas
associateProfessor didefinisikan seperti terlihat pada Gambar 5.2.

<owl:Class rdf:ID="associateProfessor">
<rdfs:subClassOf rdf:resource="#academicStaffMember"/>
</owl:Class>

Gambar 5.2 Dokumen OWL: Elemen class


58

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>

Gambar 5.3 Dokumen OWL: elemen disjointWith

<owl:Class rdf:about="#associateProfessor">
<owl:disjointWith rdf:resource="#professor"/>
<owl:disjointWith rdf:resource="#assistantProfessor"/>
</owl:Class>

Gambar 5.4 Dokumen OWL: elemen disjointWith

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>

Gambar 5.5 Dokumen OWL: elemen equivalentClass

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

5.2.4. Property Elements


Dalam OWL terdapat dua jenis properti yaitu:
Object properties, yang menghubungkan satu obyek dengan obyek yang lain. Contohnya
adalah isTaughtBy dan supervises.
Data type properties, yang menghubungkan sebuah obyek dengan nilai tipe. Contohnya
adalah phone, title, dan age. Gambar 5.6 menyajikan contoh data type property dan Gambar
5.7 contoh object property.

<owl:DatatypeProperty rdf:ID="age">
<rdfs:range
rdf:resource="http://www.w3.org/2001/XMLSchema #nonNegativeInteger"/>
</owl:DatatypeProperty>

Gambar 5.6 Dokumen OWL: data type property

<owl:ObjectProperty rdf:ID="isTaughtBy">
<rdfs:domain rdf:resource="#course"/>
<rdfs:range rdf:resource="#academicStaffMember"/>
<rdfs:subPropertyOf rdf:resource="#involves"/>
</owl:ObjectProperty>

Gambar 5.7 Dokumen OWL: object property

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>

Gambar 5.8 Dokumen OWL: elemen owl:inverseOf

Domain dan range dapat diturunkan dari kebalikan properti-nya (pertukaran domain
dengan range).

5.2.5. Property Restrictions


Dengan rdfs:subClassOf kita bisa menentukan kelas C menjadi subclass dari
kelas yang lain, C’. Maka setiap individu dari C juga merupakan individu dari C'. Misalkan
ingin dinyatakan sebaliknya bahwa kelas C memenuhi kondisi tertentu, yaitu semua individu
C memenuhi kondisi. Ini setara dengan mengatakan bahwa C adalah subclass dari kelas C', di
60

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>

Gambar 5.9 Dokumen OWL: property restriction (owl:allValuesFrom)

owl:allValuesFrom digunakan untuk menentukan kelas dari nilai yang mungkin


properti dapat ambil yang ditentukan oleh owl:onProperty (dengan kata lain, semua
nilai properti harus berasal dari kelas ini). Dalam contoh kita, hanya profesor saja yang
diizinkan sebagai nilai properti. Statemen bahwa mata kuliah matematika diajarkan oleh
David Billington direpresentasikan seperti ditunjukkan pada Gambar 5.10. owl:hasValue
menyatakan nilai tertentu yang ditentukan oleh properti, dimana properti nya ditentukan
oleh elemen owl:onProperty.

<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>

Gambar 5.10 Dokumen OWL: property restriction (owl:hasValue)


61

“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>

Gambar 5.11 Dokumen OWL: property restriction (owl:someValuesFrom)

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

Gambar 5.12 Representasi grafik dari statemen owl:allValuesFrom)

Gambar 5.13 Representasi grafik dari statemen owl:someValuesFrom)

Gambar 5.14 Representasi grafik dari statemen (owl:hasValue)


63

<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>

Gambar 5.16 Dokumen OWL: property restriction (cardinality)

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

Dapat disimpulkan bahwa elemen owl:Restriction mendefinisikan kelas anonim yang


tidak memiliki ID, tidak didefinisikan oleh owl:Class, dan hanya memiliki lingkup lokal: hanya
dapat digunakan di satu tempat di mana pembatasan tersebut muncul.
Ada dua hal yang perlu diingat dalam mendefinisikan kelas,
1. kelas yang didefinisikan oleh owl:Class dengan ID,
2. kelas anonim lokal sebagai kumpulan objek yang memenuhi kondisi restrictions
tertentu, atau sebagai kombinasi kelas lainnya atau disebut ekspresi kelas.

5.2.6. Special Properties


Beberapa sifat dari elemen properti dapat didefinisikan sebagai berikut:
1. owl:TransitiveProperty mendefinisikan sifat transitif, seperti “has better grade
than”, “is taller than”, atau “is ancestor of”.
2. owl:SymmetricProperty mendefinisikan sifat simetri, seperti “has same grade as”
atau “is sibling of”.
3. owl:FunctionalProperty mendefinisikan sifat yang mempunyai paling banyak satu
nilai dari setiap obyek, seperti “age”, “height”, atau “directSupervisor”.
4. owl:InverseFunctionalProperty mendefinisikan bahwa untuk setiap dua obyek
yang berbeda tidak boleh mempunyai nilai yang sama, sebagai contoh, properti
“isTheSocialSecurityNumberfor” (a social security number is assigned to one person only).
Contoh implementasi dari sifat properti bisa dilihat pada Gambar 5.17.

<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>

Gambar 5.17 Dokumen OWL:sifat-sifat properti

5.2.7. Boolean Combinations


Terdapat tiga kombinasi Boolean (union, intersection, complement) dari kelas. Sebagai
contoh, bahwa courses dan staff members adalah disjoint bisa dinyatakan dengan sintaks
OWL seperti yang bisa dilihat pada Gambar 5.18. Ini mengatakan bahwa setiap course
adalah
65

<owl:Class rdf:about="#course">
<rdfs:subClassOf>
<owl:Class>
<owl:complementOf rdf:resource="#staffMember"/>
</owl:Class>
</rdfs:subClassOf>
</owl:Class>

Gambar 5.18 Dokumen OWL:sifat-sifat properti (owl:complementOf)

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>

Gambar 5.19 Dokumen OWL:sifat-sifat properti (owl:unionOf)

Intersection dinyatakan dengan elemen owl:intersectionOf. Seperti terlihat


pada Gambar 5.20, intersection antara dua kelas, yang salah satunya didefinisikan secara
anonim, yaitu kelas semua objek dari departemen CS. Kelas ini berpotongan dengan fakultas
untuk memberi informasi fakultas di departemen CS.

<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>

Gambar 5.20 Dokumen OWL:sifat-sifat properti (owl:intersectionOf)


66

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>

Gambar 5.21 Dokumen OWL: nested expression

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>

Gambar 5.22 Dokumen OWL: enumerasi


67

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>

Atau sama dengan deklarasi berikut:

<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>

dan dinyatakan bahwa “a given course is taught by two staff members”,


<course rdf:ID="CIT1111">
<isTaughtBy rdf:resource="#949318"/>
<isTaughtBy rdf:resource="#949352"/>
</course>

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>

Gambar 5.23 Dokumen OWL (owl:distinctMembers)

5.2.10. Data Types


Meskipun skema XML menyediakan mekanisme untuk membangun tipe data yang
ditentukan pengguna (misalnya, tipe data adultAge karena semua bilangan bulat lebih besar
dari 18, atau tipe data dari semua string yang dimulai dengan angka), jenis data turunan
tersebut tidak dapat digunakan di OWL. Sebenarnya, bahkan tidak semua dari banyak tipe
data Schema XML built-in dapat digunakan di OWL. Dokumen referensi OWL mencantumkan
semua tipe data XML Schema yang dapat digunakan, namun ini mencakup tipe yang paling
sering digunakan seperti string, integer, Boolean, time, and date.

5.3. Contoh

1. Construct the owl statement (using RDF/XML-based syntax)


• Persons all of whose children are female.
<owl:Class rdf:ID="#PersonHasFeChild">
<owl:intersectionOf rdf:parseType=”Collection”>
<owl:Class rdf:about=”#Person/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasChild"/>
<owl: AllValueFrom rdf:resource= "#Female"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:intersectionOf>
</owl:Class>
69

• Man who has only sons (named as Mos class).


<owl:Class rdf:ID="#Mos">
<owl:intersectionOf rdf:parseType=”Collection”>
<owl:Class rdf:about=”#Man/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasChild"/>
<owl:AllValueFrom rdf:resource= "#Man"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:intersectionOf>
</owl:Class>

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>

<owl:Class rdf:about=" http://www.exercise.com/bussiness#Ontology"/>


<owl:Class rdf:about=" http://www.exercise.com/bussiness#Epistemology"/>
<owl:Class rdf:about=" http://www.exercise.com/bussiness#Approach"/>
<owl:Class rdf:about=" http://www.exercise.com/bussiness#Strategy"/>
<owl:Class rdf:about=" http://www.exercise.com/bussiness#Method"/>
<owl:Class rdf:about=" http://www.exercise.com/bussiness#nomostheticPositivist"/>
<owl:Class rdf:about=" http://www.exercise.com/bussiness#hermeutic"/>
<owl:Class rdf:about=" http://www.exercise.com/bussiness#empiricist">
<owl:equivalentClass>
<owl:Class rdf:about="
http://www.exercise.com/bussiness#nomostheticPositivist"/>
</owl:equivalentClass/>
<rdfs:subClassOf rdf:resource="
http://www.exercise.com/bussiness#Approach"/>
</owl:Class>

<owl:Class rdf:about=" http://www.exercise.com/bussiness#interpretevist">


<owl:equivalentClass>
<owl:Class rdf:about="
http://www.exercise.com/bussiness#hermeutic"/>
</owl:equivalentClass/>
<rdfs:subClassOf rdf:resource="
http://www.exercise.com/bussiness#Approach"/>
</owl:Class>
71

<owl:Class rdf:about=" http://www.exercise.com/bussiness#experiment">


<rdfs:subClassOf rdf:resource="
http://www.exercise.com/bussiness#Strategy"/>
</owl:Class>

<owl:Class rdf:about=" http://www.exercise.com/bussiness#caseStudy">


<rdfs:subClassOf rdf:resource="
http://www.exercise.com/bussiness#Strategy"/>
</owl:Class>

<owl:Class rdf:about=" http://www.exercise.com/bussiness#deduction">


<rdfs:subClassOf rdf:resource="
http://www.exercise.com/bussiness#Strategy"/>
</owl:Class>

<owl:Class rdf:about=" http://www.exercise.com/bussiness#induction">


<rdfs:subClassOf rdf:resource="
http://www.exercise.com/bussiness#Strategy"/>
</owl:Class>

<owl:Class rdf:about=" http://www.exercise.com/bussiness#quantitative"/>


<owl:Class rdf:about=" http://www.exercise.com/bussiness#qualitative"/>

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.

2. Express the statements below in OWL statements.


a. VegetarianDish is a kind of Dish that can consist only of VegetarianIngredients. Note:
use Ex:Dish, Ex:VegetarianDish, and Ex: VegetarianIngredient class, and
Ex:hasIngredient object property.
b. Bedroom is a kind of Room that can have different pieces of Furniture, but at least one
piece has to be a Bed. Note: use Ex:Room, Ex:Bedroom, and Ex:Bed class, and
Ex:furnishedWith object property.
c. RedWine is a kind of Wine that has the red color. Note: use Ex:Wine, and Ex:RedWine
class, Ex:color data type property, and “red” individu.
d. Grandfather is both a man and a parent. Note: use Ex:Parent, Ex:Man, and
Ex:Grandfather class.

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:

<owl:Class rdf:ID="&Ex;Grandfather ">


<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#&Ex;Man"/>
<owl:Class rdf:about="#&Ex;Parent"/>
</owl:intersectionOf>
</owl:Class>

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.

Anda mungkin juga menyukai