Изкуствен интелект Упражнение № 6
DESCRIPTION
Изкуствен интелект Упражнение № 6. спец. Информатика, ФМИ 2004/2005. Семантични мрежи и фрейми. Семантични мрежи Фрейми. Семантични мрежи. Семантичните мрежи се състоят от обекти и релации между обектите - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/1.jpg)
Изкуствен интелектИзкуствен интелект
Упражнение № 6
спец. Информатика, ФМИ
2004/2005
![Page 2: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/2.jpg)
Семантични мрежи и фреймиСемантични мрежи и фрейми
Семантични мрежиФрейми
![Page 3: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/3.jpg)
Семантични мрежиСемантични мрежи
Семантичните мрежи се състоят от обекти и релации между обектите
Обикновено се представят чрез граф, като възлите на графа съответстват на обектите, а релациите между обектите се представят чрез именувани дъги свързващи възлите на графа
![Page 4: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/4.jpg)
СемантичнСемантичнaa мреж мрежaa
![Page 5: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/5.jpg)
СемантичнСемантичнaa мреж мрежaa
![Page 6: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/6.jpg)
СемантичнСемантичнaa мреж мрежaa
![Page 7: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/7.jpg)
ОсновниОсновни типове връзки типове връзки
Т и п С е м а н т и к а П р и м е р
s u b s e t ( c a t s , m a m m a l s )
i s _ a ( b i l l , c a t s )
a g e ( t o m , 1 2 )
l e g s ( b i r d s , 2 ) .
p a r e n t ( t o m , a n )
BА Subset
BА Member
BА R
BА R
BА R
BА
BА
),( BАR
),( BxRАxx
),( yxRByАxyx
![Page 8: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/8.jpg)
Семантична мрежаСемантична мрежаanimal
flybirddaylight
albatross kiwi brown
walk
night
Kimblack_&_white
Albert
Ross
isaactive_at moving_method
isa isa
isa
isa isa
moving_method
active_at
colour
colour
![Page 9: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/9.jpg)
isa(bird,animal).isa(albatross,bird).isa(kiwi,bird).isa(ross,albatross).isa(albert,albatross).isa(kim,kiwi).moving_method(bird,fly).moving_method(kiwi,walk).active_at(bird,daylight).active_at(kiwi,night).colour(albatross,black_&_white).colour(kiwi,brown).
moving_method(X,Method):-isa(X,SuperX),moving_method(SuperX,Method).
![Page 10: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/10.jpg)
(де)композиция на терм(де)композиция на терм+Term =.. ?List ?Term =.. +List List е списък, чийто първи елемент е функтор на Term, а останалите елементи на List са аргументите на този терм Term, т.е.
| ?- product(0, n, n-1) =.. L.L = [product,0,n,n-1]
| ?- n-1 =.. L.L = [-,n,1]
| ?- product =.. L.L = [product]
| ?- X=..[functor,arg1,arg2,arg3,arg4].X = functor(arg1,arg2,arg3,arg4) ?
Вместо този предикат може да се използват arg/3 и functor/3.
![Page 11: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/11.jpg)
fact(Fact):-Fact,!.
fact(Fact):-Fact=..[Rel,Arg1,Arg2],isa(Arg1,SuperArg),SuperFact=..[Rel,SuperArg,Arg2],fact(SuperFact).
![Page 12: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/12.jpg)
| ?- fact(moving_method(kim,Method)).| ?- fact(moving_method(kim,Method)).Method = walk ? Method = walk ?
| ?- fact(moving_method(albert,Method)).| ?- fact(moving_method(albert,Method)).Method = fly ? Method = fly ?
![Page 13: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/13.jpg)
Съпоставяне на семантични Съпоставяне на семантични мрежимрежи
figure
oval polygon
4-side triangleellipsecircle
rectangle
square
trapezoid
![Page 14: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/14.jpg)
Съпоставяне на семантични Съпоставяне на семантични мрежимрежи
% is_a hierarchy% is_a hierarchy
isa(square,rectangle).isa(square,rectangle).isa(rectangle,4-side).isa(rectangle,4-side).isa(trapezoid,4-side).isa(trapezoid,4-side).isa(parallelogram,4-side).isa(parallelogram,4-side).isa(circle,oval).isa(circle,oval).isa(ellipse,oval).isa(ellipse,oval).isa(triangle,polygon).isa(triangle,polygon).isa(4-side,polygon).isa(4-side,polygon).isa(polygon,figure).isa(polygon,figure).isa(oval,figure).isa(oval,figure).
![Page 15: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/15.jpg)
c
Съпоставяне на семантични Съпоставяне на семантични мрежимрежи
a b
c
a b
c
a b
c
a b
Арка
support(a,c).
touch(a,b).
![Page 16: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/16.jpg)
Съпоставяне на семантични Съпоставяне на семантични мрежимрежи
% Objects represented as facts in the format:
% object(Name,Parts,IsaRelations,MustRelations,MustNotRelations
object(arch,[a,b,c], [isa(a,4-side),isa(b,4-side), isa(c,polygon)], [support(a,c),support(b,c)], [touch(a,b)]).
![Page 17: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/17.jpg)
Съпоставяне на семантични Съпоставяне на семантични мрежимрежи
% Test patterns
test1([X,Y,Z], [isa(X,rectangle),isa(Y,rectangle),isa(Z,triangle)], [support(X,Z),support(Y,Z)]).
test2([X,Y,Z], [isa(X,rectangle),isa(Y,rectangle),isa(Z,triangle)], [support(X,Z),support(Y,Z),touch(X,Y)]).
![Page 18: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/18.jpg)
Съпоставяне на семантични Съпоставяне на семантични мрежимрежи
% Sample runs
?- match([X,Y,Z], [isa(X,rectangle),isa(Y,rectangle),isa(Z,triangle)], [support(X,Z),support(Y,Z)], Name).
Name=arch
?- test1(Parts,Isa,Rels),match(Parts,Isa,Rels,Name).
Name=arch
![Page 19: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/19.jpg)
Съпоставяне на семантични Съпоставяне на семантични мрежимрежи
match(Parts,Isa1,Rels,Name) :-object(Name,Parts,Isa2,Must,MustNot),
match_isa(Isa1,Isa2), subset(Must,Rels), \+ intersect(Rels,MustNot).
![Page 20: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/20.jpg)
Съпоставяне на семантични Съпоставяне на семантични мрежимрежи
match_isa([],[]).
match_isa([isa(X,P)|T],[isa(X,Q)|V]) :- parent(P,Q), match_isa(T,V).
![Page 21: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/21.jpg)
Съпоставяне на семантични Съпоставяне на семантични мрежимрежи
subset([],_).subset([X|T],Y) :- member(X,Y), subset(T,Y).
intersect(L1,L2) :- member(X,L1), member(X,L2).
![Page 22: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/22.jpg)
Съпоставяне на семантични Съпоставяне на семантични мрежимрежи
parent(X,X).
parent(X,Z) :-isa(X,Y),
parent(Y,Z).
![Page 23: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/23.jpg)
OpusName: OpusOpus
Friend:
BirdsLegs: 22
Flies: TT
MammalsLegs: 44
PenguinsFlies: FF
Cats BatsLegs: 2
Flies: TT
PatName: PatPat
AnimalsAlive: TT
Flies: FF
BillName: BillBill
Friend:
Subset
Subset
Subset
Subset
Subset
Member Member Member
rel(alive,animals,t).
rel(flies,animals,f).
subset(birds,animals).
subset(mammals,animals).
rel(flies,birds,t).
rel(legs,birds,2).
rel(legs,mammals,4).
Фрейми
![Page 24: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/24.jpg)
OpusName: OpusOpus
Friend:
BirdsLegs: 22
Flies: TT
MammalsLegs: 44
PenguinsFlies: FF
Cats BatsLegs: 2
Flies: TT
PatName: PatPat
AnimalsAlive: TT
Flies: FF
BillName: BillBill
Friend:
Subset
Subset
Subset
Subset
Subset
Member Member Member
rel(legs,mammals,4).
subset(penguins,birds).
subset(cats,mammals).
subset(bats,mammals).
rel(flies,penguins,f).
rel(legs,bats,2).
rel(flies,bats,t).
![Page 25: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/25.jpg)
OpusName: OpusOpus
Friend:
BirdsLegs: 22
Flies: TT
MammalsLegs: 44
PenguinsFlies: FF
Cats BatsLegs: 2
Flies: TT
PatName: PatPat
AnimalsAlive: TT
Flies: FF
BillName: BillBill
Friend:
Subset
Subset
Subset
Subset
Subset
Member Member Member
is_a(opus,penguins).
is_a(bill,cats).
is_a(pat,bats).
name(opus,'Opus').
friend(opus,bill).
name(bill,'Bill').
friend(bill,opus).
name(Pat,'Pat').
![Page 26: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/26.jpg)
ПримерПример
FRAME: bird
a_kind_of: animal
moving_method: fly
active_at: daylight
![Page 27: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/27.jpg)
ПримерПримерFRAME: albatross
a_kind_of: bird
colour: black_and_white
size: 115 % 115 cm long
FRAME: kiwi
a_kind_of: bird
moving_method: walk
active_at: nightcolour: brown
size: 40
![Page 28: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/28.jpg)
ПримерПримерFRAME: Albert
instance_of: albatross
size: 120
![Page 29: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/29.jpg)
% A frame is represented as a set of% A frame is represented as a set of% Prolog facts:% Prolog facts:% frame_name(Slot,Value)% frame_name(Slot,Value)% where Value is either a simple value or % where Value is either a simple value or % a procedure% a procedure
% Frame bird: the prototypical bird% Frame bird: the prototypical birdbird(a_kind_of,animal).bird(a_kind_of,animal).bird(movin_method,fly).bird(movin_method,fly).bird(active_at,daylight).bird(active_at,daylight).
% Frame albatross: albatross is a typical bird% Frame albatross: albatross is a typical bird% with some extra facts: it is black and white,% with some extra facts: it is black and white,% and it is 115 cm long% and it is 115 cm longalbatross(a_kind_of, bird).albatross(a_kind_of, bird).albatross(colour,black_and_white).albatross(colour,black_and_white).albatross(size,115).albatross(size,115).
![Page 30: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/30.jpg)
% Frame kiwi: kiwi is a rather untypical% Frame kiwi: kiwi is a rather untypical% bird in that it walks instead of flies,% bird in that it walks instead of flies,% and it is active at night% and it is active at nightkiwi(a_kind_of,bird).kiwi(a_kind_of,bird).kiwi(moving_method,walk).kiwi(moving_method,walk).kiwi(active_at,night).kiwi(active_at,night).kiwi(colour,brown).kiwi(colour,brown).kiwi(size,40).kiwi(size,40).% Frame albert: an instance of big albatross% Frame albert: an instance of big albatrossalbert(instance_of,albatross).albert(instance_of,albatross).albert(size,120).albert(size,120).% Frame ross: an instance of baby albatross% Frame ross: an instance of baby albatrossross(instance_ot,albatross).ross(instance_ot,albatross).ross(size,40).ross(size,40).
![Page 31: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/31.jpg)
% Frame animal: slot relative_size % Frame animal: slot relative_size % obtains its value by executing% obtains its value by executing% procedure relative_size% procedure relative_sizeanimal(relative_size,animal(relative_size,
execute( execute(
relative_size(Object,Value),relative_size(Object,Value),
Object,Object,
ValueValue
))
).).
![Page 32: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/32.jpg)
value(Frame,Slot,Value):-value(Frame,Slot,Value):-
Query=..[Frame,Slot,Value],Query=..[Frame,Slot,Value],
call(Query),!. call(Query),!.
value(Frame,Slot,Value):-value(Frame,Slot,Value):-
parent(Frame,ParentFrame),parent(Frame,ParentFrame),
value(ParentFrame,Slot,Value).value(ParentFrame,Slot,Value).
parent(Frame,ParentFrame):-parent(Frame,ParentFrame):-
(Query=..[Frame,a_kind_of,ParentFrame](Query=..[Frame,a_kind_of,ParentFrame]
;;
Query=..[Frame,instance_of,ParentFrame]),Query=..[Frame,instance_of,ParentFrame]),
call(Query). call(Query).
![Page 33: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/33.jpg)
?-value(albert,active_at,AlbertTime).?-value(albert,active_at,AlbertTime).
AlbertTime=daylightAlbertTime=daylight
?-value(kiwi,active_at,KiwiTime).?-value(kiwi,active_at,KiwiTime).
KiwiTime=nightKiwiTime=night
![Page 34: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/34.jpg)
% 40/115*100%=34.78%% 40/115*100%=34.78%?-value(ross,relative_size,R).?-value(ross,relative_size,R).R=34.78R=34.78
relative_size(Object,RelativeSize):-relative_size(Object,RelativeSize):-value(Object,size,ObjSize),value(Object,size,ObjSize),value(Object,instance_of,ObjClass),value(Object,instance_of,ObjClass),
value(ObjClass,size,ClassSize),value(ObjClass,size,ClassSize), RelativeSize is ObjSize/ClassSize*100.
animal(relative_size, execute(
relative_size(Obj,Val),Obj,Val)
).
![Page 35: Изкуствен интелект Упражнение № 6](https://reader036.vdocuments.pub/reader036/viewer/2022081503/568159c7550346895dc719b3/html5/thumbnails/35.jpg)
value(Frame,Slot,Value):-value(Frame,Slot,Value):-value(Frame,Frame,Slot,Value).value(Frame,Frame,Slot,Value).
value(Frame,SuperFrame,Slot,Value):-value(Frame,SuperFrame,Slot,Value):-Query=..[SuperFrame,Slot,Information],Query=..[SuperFrame,Slot,Information],call(Query),call(Query),process(Information,Frame,Value).process(Information,Frame,Value).
value(Frame,SuperFrame,Slot,Value):-value(Frame,SuperFrame,Slot,Value):-parent(SuperFrame,ParentSuperFrame),parent(SuperFrame,ParentSuperFrame),value(Frame,ParentSuperFrame,Slot,Value).value(Frame,ParentSuperFrame,Slot,Value).
process(execute(Goal,Frame,Value),Frame,Value):-!,process(execute(Goal,Frame,Value),Frame,Value):-!,call(Goal).call(Goal).
process(Value,_,Value).process(Value,_,Value).