PraktikumRepresentasiPengetahuan
SemanticNetdanFrame
SemanticNetwork
Semantic Network merupakan cara lain untuk merepresentasikan pengetahuan. Ide dasarnya adalah
bagaimana dapat menyimpan pengetahuan dalam bentuk grafik, dengan node yang mewakili objek
objek di dunia nyata dan link yang mewakili hubungan antara objek. Sebagai contoh adalah sebagai
berikut:
SemanticNetworkdiatasmewakilidata:
Tom is a cat.
Tom caught a bird.
Tom is owned by John.
Tom is ginger in colour.
Cats like cream.
The cat sat on the mat.
A cat is a mammal.
A bird is an animal.
All mammals are animals.
Mammals have fur.
PoliteknikElektronikaNegeriSurabaya
2
Node Cat diatas menyatakan cat who sat on t he mat dan semua class cat adalah
mamaliadansukacream(whicharemammalsandwhichlikecream).Relasiis_abisamempunyaidua
makna yang berbeda yaitu sebuah individu/objek merupakan anggota dari class tersebut contoh Tom
merupakan anggota dari class kucing atau sebuah class merupakan subset dari class lainnya, contoh
class kucing merupakan subset dari class mamalia. Kebingungan ini tidak terjadi di logika, karena
penggunaanquantifiers,namadanpredikatmembuatjelasapayangdimaksudsehingga:
Tom is a cat is represented by Cat(Tom)
The cat sat on the mat is represented by xy(Cat(x)Mat(y)SatOn(x,y))
A cat is a mammal is represented by x(Cat(X)Mammal(x))
Untukmembedakanduamaksuddarirelasii s_ayaitunodeyangmenyatakanindividu/objekatau
nodeyangmenyatakanclass,makarelasi:
is_a :sebuahclassmerupakansubsetdariclasslainnya(inheritance)
a_kind_of (ako)/instance :untukmenyatakanindividu/objek
Relasii s_owned_byhindaripenggunaanrelasipasifgunakanrelasiaktif,sehinggaTomisownedby
JohnmenjadijohnownsTom,janganlupauntukmengubaharahdarilink.
Praktikum1:Bentukrepresentasipredicatedarisemanticnetwork
cat ( t om) .
cat ( cat 1) .
mat ( mat 1) .
sat _on( cat 1, mat 1) .
bi r d( bi r d1) .
PoliteknikElektronikaNegeriSurabaya
3
Reification
Kita dapat merepresentasikan semantic network menggunakan Prolog. Kita dapat menyatakan setiap
edge pada semantic network menjadi fakta dengan nama predicate sama seperti label pada edge.
Nodenode pada graph (menyatakan objek/individu atau class) menjadi argument fakta. Bentuk
representasigraphdiatasdalambahasaProlog:
Praktikum2
a_ki nd_of ( mat 1, mat s) .
a_ki nd_of ( cat 1, cat s) .
a_ki nd_of ( t om, cat s) .
a_ki nd_of ( bi r d1, bi r ds) .
caught ( t om, bi r d1) .
i s_a( cat s, mammal s) .
i s_a( mammal s, ani mal s) .
i s_a( bi r ds, ani mal s) .
l i ke( cat s, cr eam) .
owns( j ohn, t om) .
sat _on( cat 1, mat 1) .
i s_col our ed( t om, gi nger ) .
have( mammal s, f ur ) .
subcl ass( Cl ass1, Cl ass2) : - i s_a( Cl ass1, Cl ass2) .
subcl ass( Cl ass1, Cl ass2) : - i s_a( Cl ass1, Cl ass3) , subcl ass( Cl ass3, Cl ass2) .
ani nst ance( Obj , Cl ass) : - a_ki nd_of ( Obj , Cl ass) .
ani nst ance( Obj , Cl ass) : - a_ki nd_of ( Obj , Cl ass1) , subcl ass( Cl ass1, Cl ass) .
at t r i but e( Obj , X) : - ani nst ance( Obj , Cl ass) , have( Cl ass, X) .
at t r i but e( Obj , X) : - ani nst ance( Obj , Cl ass) , l i ke( Cl ass, X) .
Proses mengubah predikat/relasi menjadi objek dalam sistem representasi pengetahuan disebut
reification.Symbolcatsmenyatakanhimpunansemuakucing,yangdianggapsebagaiobjeklain.
PoliteknikElektronikaNegeriSurabaya
5
Berikanpertanyaanatauquerykesystemyangtelahdibuat!
?- at t r i but e( X, Y) .
Bagaimanaoutputnya?Apakahtelahmenerapkankonsepinheritance?
Padacontohsebelumnya,telahdirepresentasikanrelasibinary,bagaimanadenganrelasilebihdaridua
argument ? Contoh bagaimana merepresentasikan John gave the book to Mary ? di predicate logic,
kita dapat membuat 3ary yaitu gave(John, Book1, Mary), argument 1 adalah pemilik, argument 2
adalahobjekyangdiberikandanargument3adalahorangyangdiberi.Padacontohiniterdapatproses
reificationyaitumengubahrelasigavemenjadiobjekgive1.
Dariframediatas,representasibahasaPrologadalahsebagaiberikut:
Praktikum3:
at t r i but e( bi r ds, f l yi ng, t r ue) .
at t r i but e( bi r ds, f eat her ed, t r ue) .
at t r i but e( pet _canar i es, col our , yel l ow) .
at t r i but e( r avens, col our , bl ack) .
at t r i but e( t weet y, owner , j ohn) .
at t r i but e( cheepy, owner , mar y) .
at t r i but e( cheepy, vet , sal l y) .
i s_a( pet _canar i es, bi r ds) .
i s_a( r avens, bi r ds) .
i s_a( vet , per son) .
a_ki nd_of ( edgar , r avens) .
a_ki nd_of ( t weet y, pet _canar i es) .
a_ki nd_of ( cheepy, pet _canar i es) .
a_ki nd_of ( sal l y, vet ) .
a_ki nd_of ( j ohn, per son) .
a_ki nd_of ( mar y, per son) .
Kitadefinisikanaturanumumsystem:
subcl ass( Cl ass1, Cl ass2) : - i s_a ( Cl ass1, Cl ass2) .
subcl ass( Cl ass1, Cl ass2) : - i s_a ( Cl ass1, Cl ass3) , subcl ass( Cl ass3, Cl ass2) .
PoliteknikElektronikaNegeriSurabaya
7
ani nst ance( Obj , Cl ass) : - a_ki nd_of ( Obj , Cl ass) .
ani nst ance( Obj , Cl ass) : - a_ki nd_of ( Obj , Cl ass1) , subcl ass( Cl ass1, Cl ass) .
val ue( Obj , Pr oper t y, Val ue) : - at t r i but e( Obj , Pr oper t y, Val ue) .
val ue( Obj , Pr oper t y, Val ue) : - ani nst ance( Obj , Cl ass) ,
at t r i but e( Cl ass, Pr oper t y, Val ue) .
Selanjutnyalakukanpertanyaansepertidibawahini:
SebutkansemuainstanceXadalahY!
?ani nst ance( X, Y)
SebutkansemuasubclassXadalahY!
?- subcl ass( X, Y)
SebutkanvalueZdariobjekXdanPropertiY!
?- val ue( X, Y, Z)
Sebutkanvaluedaricolourtweety!
| ?- val ue( t weet y, col our , V) .
Sebutkanvaluedarifeatherjohn?
| ?- val ue( j ohn, f eat her ed, V) .
Apakahatributfeathereddaripersonadalahtrue?
at t r i but e( per son, f eat her ed, t r ue) .
Pengenalanvariableanonymousditulisdengan_
Missalterdapataturan
hasachi l d( X) : - par ent ( X, Y) .
maksuddariaturandiatasadalahXmempunyaianak(child)jikaXadalahorangtua(parent)dariY.
Propertihasachildtidaktergantungdengannamachild(ditulisdenganY),sehinggakitadapat
menggunakanvariableanonymous.Bentuklaindariaturandiatasadalah:
hasachi l d( X) : - par ent ( X, _) .
PoliteknikElektronikaNegeriSurabaya
8
Contohlain
Seseorangyangmempunyaichildjikaterdapatduaobjectdimanasatuorangsebagaiparentyanglain
sebagaianak.
somebody_has_chi l d : - par ent ( _, _) .Samadengan
somebody_has_chi l d : - par ent ( X, Y) .
Tambahkanfaktaprologsebagaiberikut:
Praktikum4:
attribute(_,birds,flying,true).
attribute(_,birds,feathered,true).
attribute(_,pet_canaries,colour,yellow).
attribute(_,ravens,colour,black).
attribute(_,tweety,owner,john).
attribute(_,cheepy,owner,mary).
attribute(_,cheepy,vet,sally).
attribute(_,sally,fees,20).
is_a(pet_canaries,birds).
is_a(ravens,birds).
is_a(vet,person).
a_kind_of(edgar,ravens).
a_kind_of(tweety,pet_canaries).
a_kind_of(cheepy,pet_canaries).
a_kind_of(sally,vet).
a_kind_of(john,person).
a_kind_of(mary,person).
aninstance(Obj,Class) :- a_kind_of(Obj,Class).
aninstance(Obj,Class) :- a_kind_of(Obj,Class1), subclass(Class1,Class).
subclass(Class1,Class2) :- is_a(Class1,Class2).
subclass(Class1,Class2) :- is_a(Class1,Class3), subclass(Class3,Class2).
value(Obj,Property,Value) :- attribute(Obj,Obj,Property,Value).
value(Obj,Property,Value) :- aninstance(Obj,Class),
attribute(Obj,Class,Property,Value).
attribute(Self,pet_canaries,maintenance,Costs) :-
eval_maintenance(Self,Costs).
eval_maintenance(Self,Costs) :- value(Self,vet,SelfsVet),
!,value(SelfsVet,fees,VetFees),Costs is VetFees+5.
eval_maintenance(Self,5).
Lakukanpertanyaansebagaiberikut?
?- val ue( sal l y, f ees, X) .
?- val ue( pet _canar i es, mai nt enance, X) .
PoliteknikElektronikaNegeriSurabaya
9
Pada umumnya hampir semua burung dapat terbang, hanya burung tertentu saja yang tidak dapat
terbang. Untuk implementasi contoh ini dapat menggunakan konsep overridden. Atribut pada
superclass akan diwarisi oleh subclass, tapi jika nilai atribut tidak sesuai lagi maka bisa diganti
(dioverride)dengannilaiyangbarupadasubclass.
Kitatelahmenambahkanatributcolouruntukkiwi
PoliteknikElektronikaNegeriSurabaya
10
RepresentasidaridiagramdiatasdalambahasaPrologadalah:
attribute(birds,flying,true).
attribute(dogs,sound,bark).
attribute(pets,cute,true).
attribute(pets,owner,john).
attribute(canaries,colour,yellow).
attribute(canaries,sound,cheep).
attribute(rottweilers,cute,false).
attribute(fido,owner,bill).
is_a(canaries,birds).
is_a(pet_canaries,canaries).
is_a(pet_canaries,pets).
is_a(pet_dogs,dogs).
is_a(pet_dogs,pets).
is_a(rottweilers,pet_dogs).
a_kind_of(tweety,pet_canaries).
a_kind_of(spike,rottweilers).
a_kind_of(fido,pet_dogs).
a_kind_of(john,person).
a_kind_of(bill,person).
ani nst ance( Obj , Cl ass) : - a_ki nd_of ( Obj , Cl ass) .
ani nst ance( Obj , Cl ass) : - a_ki nd_of ( Obj , Cl ass1) , subcl ass( Cl ass1, Cl ass) .
subcl ass( Cl ass1, Cl ass2) : - i s_a( Cl ass1, Cl ass2) .
subcl ass( Cl ass1, Cl ass2) : - i s_a( Cl ass1, Cl ass3) , subcl ass( Cl ass3, Cl ass2) .
val ue( Obj , Pr oper t y, Val ue) : - at t r i but e( Obj , Pr oper t y, Val ue) , ! .
val ue( Obj , Pr oper t y, Val ue) : - ani nst ance( Obj , Cl ass) ,
at t r i but e( Cl ass, Pr oper t y, Val ue) , ! .
Jalankanprogramdiatas,lakukanquerysebagaiberikut:
PoliteknikElektronikaNegeriSurabaya
12
| ?- value(fido,sound,S).
S = bark ?
Menunjukkanfidomewarisipropertisoundbarkdaridogs,
| ?- value(fido,cute,V).
V = true?
menunjukkanfidomewarisicute:truedaripets,
| ?- value(spike,cute,V).
V = false?
Menunjukkanpropertycute:truedaripet_dogsdioverriddeolehrottweilerspike.
Mengubah bentuk Semantic Network menjadi Frame
PoliteknikElektronikaNegeriSurabaya
13
Tugas
1. Ubahlah studi kasus dibawah ini dari bentuk Semantic Network menjadi Frame
2. Ubahlah studi kasus dibawah ini dari bentuk Frame menjadi Semantic Network
PoliteknikElektronikaNegeriSurabaya
14
3. Ubahlah studi kasus dibawah ini dari bentuk Frame menjadi Semantic Network
4. Ubahlah studi kasus dibawah ini dari bentuk Semantic Network menjadi Frame
animal
skin
fish
swimming
bird
flying
feathers
penguin canary robin ostrich
walking
Opus
Tweety
yellow
red
white
covered_by
travels_by
isa isa
isa isa isa isa
covered_by
travels_by
travels_by
travels_by
instance_of
instance_of
colour
colour
colour
PoliteknikElektronikaNegeriSurabaya
15
5. Ubahlah studi kasus dibawah ini dari bentuk Semantic Network menjadi Frame
6. Ubahlah studi kasus dibawah ini dari bentuk Semantic Network menjadi Frame
PoliteknikElektronikaNegeriSurabaya
16
7. Ubahlah studi kasus dibawah ini dari bentuk Frame menjadi Semantic Network
SoalPraktikum
1. Kerjakanpraktikum1sampaidenganpraktikum6.Lakukanhalhaldibawahini:
a. Berikanpenjelasankonsepapayangdimaksuddalampraktikumtersebut!(dalammenjelaskan
gunakankalimatkaliansendiri).
b. Lakukanqueryuntukpraktikum16danjelaskan!
2. Daridiagramdibawahini,
a. buatlahdalambahasaProlog.
b. Selanjutnyalakukanquery!
c. Ubahlahmenjadibentukframe!
PoliteknikElektronikaNegeriSurabaya
17
3. Daridiagramdibawahini
a. buatlahdalambahasaProlog.
b. Selanjutnyalakukanquery!
c. Ubahlahmenjadibentukframe!
animal
skin
fish
swimming
bird
flying
feathers
penguin canary robin ostrich
walking
Opus
Tweety
yellow
red
white
covered_by
travels_by
isa isa
isa isa isa isa
covered_by
travels_by
travels_by
travels_by
instance_of
instance_of
colour
colour
colour
PoliteknikElektronikaNegeriSurabaya
18
4. Daridiagramdibawahini
a. buatlahdalambahasaProlog.
b. Selanjutnyalakukanquery!
c. Ubahlahmenjadibentukframe!
5. a.RepresentasikandalambahasaProlog!
b.Buatlahpertanyaankesystemyangtelahdibuat!
c.UbahlahmenjadibentukSemanticNetwork!
PoliteknikElektronikaNegeriSurabaya
19