Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Artificial Intelligence, Knowledge Engineering
Grzegorz J. Nalepa <[email protected]>
Katedra Automatyki AGH
wiosna 2011
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 1 / 131
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 2 / 131
=WYK.1=
Wykład: Sztuczna Inteligencja
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 3 / 131
=WYK.1=�� ��Plan wykładu
1 Czym jest SI?
2 Perspektywa historyczna
3 Stan obecny
4 Systemy Inteligentne, krajobraz
5 AI w nauce
6 Na koniec
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 4 / 131
Czym jest SI?�� ��Plan punktu: Czym jest SI?
1 Czym jest SI?Definicje S.I.Test TuringaPodstawy naukoweSystemy Inteligentne
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 5 / 131
Czym jest SI?�� ��Czym jest SI?
sztuczna inteligencja (ang. artificial intelligence):1 artefakt, coś sztucznego2 inteligencja. . .
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 6 / 131
Czym jest SI?�� ��Kłopot. . .
Torsun stwierdza [3]:Intelligence is easier to recognize than to be given a precise
definition. . .(and this book is not about to give a definition of intelligence)
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 7 / 131
Czym jest SI? Definicje S.I.�� ��Czym jest SI?
Russel i Norvig wyodrębniają 4 podejścia do definiowania SI: [2]Systemy Inteligentne to takie, które:
1. myślą jak człowiek 2. myślą racjonalnie3. działają jak człowiek 4. działają racjonalnie
Tablica: Definicje SI
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 8 / 131
Czym jest SI? Definicje S.I.�� ��Dalsze komplikacje
Czym jest
myślenieracjonalność
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 9 / 131
Czym jest SI? Definicje S.I.�� ��Próby rozwiązań
1 kognitywistyka (GPS, Newell & Simon)2 logicyzm (Frege) w S.I, twarda S.I.3 test Turinga (A. Turing)4 konstruowanie systemów działających racjonalnie
racjonalność – umiejętność realizowania postawionych celów
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 10 / 131
Czym jest SI? Test Turinga�� ��Test Turinga
rozumienie języka naturalnegoreprezentacja wiedzyautomatyczne wnioskowaniesamouczeniewiedza o świecie
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 11 / 131
Czym jest SI? Test Turinga�� ��Test Turinga
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 12 / 131
Czym jest SI? Podstawy naukowe�� ��Czym jest SI?
Za Russelem i Norvigiem: [2]filozofia. . .matematykapsychologiainformatykalingwistyka, kognitywistyka, inne
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 13 / 131
Czym jest SI? Podstawy naukowe�� ��Matematyka
korzenie w logice: definicje, twierdzeniageometria: aksjomaty, dowodywczesne średniowiecze, wkład filozofów Arabskichformalizacja języka: George Boole 1847, Gottlog Frege 1879problemy i granice możliwości: David Hilbert 1900, Kurt Godel 1930teoria obliczeń: Turing 1936, Churchzłożoność obliczeniowa: NP-zupełność, Cook 1971, Karp 1972prawdopodobieństwo: Fermat, Pascal, Bernoulli, Laplace, Bayes
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 14 / 131
Czym jest SI? Podstawy naukowe�� ��Psychologia
początki w filozofii: np. Humebehawioryzmkognitywistyka. . .
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 15 / 131
Czym jest SI? Podstawy naukowe�� ��Maszyny liczące
Pascal, Leibniz (dodawanie, odejmowanie, mnożenie), XVII w.Babbage, Ada Lovelace (uniwersalna maszyna programowalna), XVIII w.II Wojna Światowa: Turing –Enigma (specjalizowany), Konrad Zuse – Z3(programowalny), Atanasoff – ABC (elektroniczny)Colossus, ENIAC, EDVAC – architektura von Neumanna
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 16 / 131
Czym jest SI? Podstawy naukowe�� ��Lingwistyka, kognitywistyka, cybernetyka
Chomsky, Syntactic StructuresLem. . . Summa Technologiaeautomatyka, cybernetyka
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 17 / 131
Czym jest SI? Systemy Inteligentne�� ��Systemy Inteligentne
Współcześnie przyjmuje się, że S.I. zajmuje się konstruowaniem „systemówinteligentnych”.Częściej mówi się o (intelligent) knowledge-based systems, systemach opartych owiedzę.Ullman [4] definiuje KBS jako:
1 pozwalający na przechowywanie wiedzy (potrzeba metody reprezentacji)2 dostarczający deklaratywnego mechanizmu operowania na tej wiedzy
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 18 / 131
Czym jest SI? Systemy Inteligentne�� ��Cechy systemów inteligentnych
Torsun [3] następująco charakteryzuje cechy inteligentnych systemów opartych owiedzę:
rozpoznawanie zróżnicowanych obiektów, przedmiotów i/lub pojęć,podejmowanie decyzji co do tego jakie czynności, operacje wykonać na tychobiektach (zrealizować cel),przeprowadzanie rozumowania (szeroko rozumianego), wnioskowania(logicznego),planowanie działań i adaptacja do zmiennych warunków,możliwość uczenia, samouczenie,podejmowanie decyzji w sytuacjach sprzecznych celów czy wymagań,wymiana informacji i współpraca z innymi systemami w celu realizacjizadania,poszukiwanie możliwych rozwiązań problemu przy pomocy różnych strategii iprzy spełnieniu postawionych ograniczeń (optymalizacja),
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 19 / 131
Czym jest SI? Systemy Inteligentne�� ��Brak realizacji
Systemów mających wszystkie cechy IKBS (prawdopodobnie?) na dzień dzisiejszynie ma. . .
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 20 / 131
Perspektywa historyczna�� ��Plan punktu: Perspektywa historyczna
2 Perspektywa historycznaPoczątki 43-56Gwałtowny rozwój 56-60.Rozczarowania 60.-70Systemy ekspertowe 70.-80.Dywergencja
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 21 / 131
Perspektywa historyczna Początki 43-56�� ��Początki 43-56
McCulloch, Pitts: 1943, model ANN równoważny maszynie Turinga (okazałsię błędny)Minsky, Edmonds, przy wsparciu von Neumanna: 1. komputer party o ANNShannon: 1950, teoria informacji, badania nad grą w szachyMcCarthy: 1956 workshop nt. AI
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 22 / 131
Perspektywa historyczna Gwałtowny rozwój 56-60.�� ��Gwałtowny rozwój 56-60.
McCarthy: LISP, program Advice TakerMinsky: frames, ANNRosenblatt: perceptron,Newell, Simon: GPS (analiza cel-środek), podstawy logiczne,Feingenbaum: ELIZAZadeh: Fuzzy Sets,
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 23 / 131
Perspektywa historyczna Rozczarowania 60.-70�� ��Rozczarowania 60.-70
problemy z inżynierią wiedzy (reprezentacja)problemy ze złożonością obliczeniowąbłędne formułowanie problemówUK: 1973 Lighthill, US: 1966,
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 24 / 131
Perspektywa historyczna Systemy ekspertowe 70.-80.�� ��Systemy ekspertowe 70.-80.
DENDRAL – analiza związków chemicznych, podstawy inżynierii wiedzy,wiedza dziedzinowa, reprezentacja regułowa, 1969MYCIN – diagnostyka chorób krwi, separacja bazy wiedzy od mechanizmuwnioskującego (RBS), reprezentacja niepewnościPROSPECTOR – rozpoznawanie minerałów, reguły i sieci semantyczne,akwizycja wiedzyw połowie lat 80. ponad 200 udanych wdrożeń ES, na początku 90. ponad2500
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 25 / 131
Perspektywa historyczna Dywergencja�� ��Dywergencja
rozwój ES i RBSrozwój ANN, nowe algorytmy uczenia, modele neuronów i struktury siecimetody ewolucyjne, w tym GArozwój metod soft, w tym GA, ANN, FLcomputing with words, zbiory rozmyte i analiza języka naturalnegomachine learning, knowledge discovery
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 26 / 131
Stan obecny�� ��Plan punktu: Stan obecny
3 Stan obecny
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 27 / 131
Stan obecny�� ��Stan obecny
podział na KBS i CompAIdywergencja i specjalizacjazastosowania: rozpoznawanie, wspomaganie decyzji, inteligentne sterowaniezastosowania na co dzień w dostępnych technologiachdziedziny/problemy pochodne, np: Data Mining, Knowledge Discovery,Computational Linguistics, Web Intelligence, Semantic Websystemy heterogenicznebrak dziedziny jako takiej?
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 28 / 131
Systemy Inteligentne, krajobraz�� ��Plan punktu: Systemy Inteligentne, krajobraz
4 Systemy Inteligentne, krajobraz
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 29 / 131
Systemy Inteligentne, krajobraz�� ��Podsumowanie
Za Hopgoodem [1]:dwie główne klasy intelligent systems:
1 knowledge-based systems2 computational intelligence
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 30 / 131
Systemy Inteligentne, krajobraz�� ��Krajobraz
NeuralNetworks
AlgorithmsGenetic
SimulatedAnnealing
AutomataCellularAgents
Objects
FramesRough Sets
Fuzzy
Rule−Based
BayesianBelief Nets
Logic
ExpertSystems
Systems
ComputationalIntelligence
Knowledge−Based
Systems
Intelligent Systems
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 31 / 131
AI w nauce�� ��Plan punktu: AI w nauce
5 AI w nauce
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 32 / 131
AI w nauce�� ��Organizacje
ECCAI
European Coordinating Committee for Artificial Intelligencefile://www/eccai-www.pdf file://www/ecai-topics.pdf
IJCAI
International Joint Conference on Artificial Intelligence
AAAIAssociation for the Advancement of Artificial Intelligence
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 33 / 131
Na koniec�� ��Plan punktu: Na koniec
6 Na koniec
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 34 / 131
Na koniec�� ��AIMA
Artificial Intelligence: A Modern Approach (Third edition) by Stuart Russell andPeter Norvig
http://aima.cs.berkeley.edufile://www/aimawww.pdf
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 35 / 131
Na koniec�� ��Emacs Doctor
M-x doctor
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 36 / 131
Na koniec�� ��Dilbert
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 37 / 131
=WYK.2=
Wykład: Wprowadzenie do systemówekspertowych
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 38 / 131
=WYK.2=�� ��Plan wykładu
7 Wstęp
8 Wprowadzenie do inżynierii wiedzy
9 Systemy regułowe
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 39 / 131
=WYK.2=�� ��ES Motto
An expert is one who does not have to think. He knows.– Frank Lloyd Wright
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 40 / 131
Wstęp�� ��Plan punktu: Wstęp
7 WstępHistoria systemów ekspertowychStruktura systemów ekspertowychObecny stan technologii
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 41 / 131
Wstęp Historia systemów ekspertowych�� ��Historia systemów ekspertowych
SE są na dzień dzisiejszy jedną z ważniejszych technologii SI, która odniosłasukces.Zaczęły powstawać w latach 70. po serii rozczarowań wieloma „cudownymi”technologiami SI.Ugruntowały swoją pozycję na rynku w latach 80. i 90.Zawdzięczają sukces mniej ambitnym celom jakie postawili twórcy.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 42 / 131
Wstęp Historia systemów ekspertowych�� ��Założenia SE
SE ma zastąpić lub wspomóc eksperta dziedzinowego.Z definicji, jego wiedza dotyczy określonej, zawężonej dziedziny.Używa dobrze zdefiniowanych metod reprezentacji wiedzy.Przetwarza zgromadzoną wiedzę w określony sposób.Pozwala na rozszerzanie posiadanej wiedzy.Jest prosty w obsłudze dla użytkowników.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 43 / 131
Wstęp Struktura systemów ekspertowych�� ��Ogólna struktura ES
problem-specific
solution
problem-specific
data
relevant knowledge
specify problem-solvingDeclarations that
procedures
Domain-independent
domain knowledgecode executing
INFERENCE ENGINE
KNOWLEDGE BASE
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 44 / 131
Wstęp Struktura systemów ekspertowych�� ��Praca z ES
Acquisition/ModificationKnowledge
Module
RepresentationKnowledge
and explanation
I/O interfacefor query
Inference Engine
EXPERT USER
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 45 / 131
Wstęp Struktura systemów ekspertowych�� ��Architektura ES
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 46 / 131
Wstęp Obecny stan technologii�� ��Obecny stan technologii
Na dzień dzisiejszy SE „dobrze się zadomowiły” i zdecydowanie„spowszechniały”.Są najczęsciej spotykane w: wspomaganiu decyzji (np. CRM), diagnostyce,inteligentnym sterowaniu.Istnieje szereg dojrzałych pakietów pozwalających na ich integrację zistniejącym oprogramowaniem.Regułowe SE znajdują coraz szerze zastsowanie w wysokopoziomowymmodelowaniu „logiki biznesowej”.Ze względu na różnorodność zastosowań ES wciąż trwają prace nad ichefektywnym projektowaniem.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 47 / 131
Wprowadzenie do inżynierii wiedzy�� ��Plan punktu: Wprowadzenie do inżynierii wiedzy
8 Wprowadzenie do inżynierii wiedzyMetody reprezentacji wiedzyLogika jako model wiedzyReguły decyzyjneTablice decyzyjneDrzewa decyzyjneInne metody reprezentacjiZagadnienia inżynierskiePozyskiwanie wiedzyWeryfikacja wiedzyZarządzanie wiedzą
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 48 / 131
Wprowadzenie do inżynierii wiedzy�� ��KE Motto
The greatest enemy of knowledge is not ignorance,it is the illusion of knowledge.– Stephen Hawking
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 49 / 131
Wprowadzenie do inżynierii wiedzy Metody reprezentacji wiedzy�� ��Czym jest wiedza?
Wiedzato najczęściej 1) ugruntowane 2) prawdziwe 3) przekonanie
Reprezentacjasymboliczny model wiedzy, usystematyzowany sposób jej zarejestrowania czyzakodowania
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 50 / 131
Wprowadzenie do inżynierii wiedzy Metody reprezentacji wiedzy�� ��Problematyka reprezentacji
składniasematykapragmatykasiła wyrazumożliwości przetwarzaniazupełnośćskalowalnośćwspomaganie projektowania: elastyczność, wsparce dla narzędzi
W praktyce podstawowe (b. efektywne) są metody oparte na logice.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 51 / 131
Wprowadzenie do inżynierii wiedzy Logika jako model wiedzy�� ��Logika jako model wiedzy
Rachunek zdańw praktyce ten prosty system logiczny bywa wystarczający dla reprezentacji wieluSE.
Różne postaciwykorzystując rachunek zdań można konstruować metody oparte na regułach,tablicach, czy drzewach decyzyjnych.
Rachunek predykatówniektóre systemy reprezentacji i przetwarzania opierają się na tym systemie(bardziej zaawansowanym), jest on w pełni wystarczający. . .
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 52 / 131
Wprowadzenie do inżynierii wiedzy Reguły decyzyjne�� ��Postaci reguł
Podstawowa reguła
rule : p1 ∧ p2 ∧ . . . ∧ pn −→ h. (1)
logicznie równoważna klauzuli Horna
Reguła za złożną konkluzją
rule : p1 ∧ p2 ∧ . . . ∧ pn −→ h1 ∧ h2 ∧ . . . hk . (2)
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 53 / 131
Wprowadzenie do inżynierii wiedzy Reguły decyzyjne�� ��Odpalanie reguły
Odpalanie, aktywacja (ang. firing, activation) reguły ma miejsce po jej wyborzeprzez mechanizm wnioskujący, przy spełnieniu przesłanek.Fakt h jest dedukowalny z bazy faktów FB przy pomocy reguły ri wtw gdy ri jestpostaci:
ri : p1 ∧ p2 ∧ . . . ∧ pn −→ h (3)
oraz poprzez stan bazy faktów FB są spełnione jej przesłanki. Jeżeli regułę uznaćza implikację, powyższe odpowiada regule Modus Ponens.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 54 / 131
Wprowadzenie do inżynierii wiedzy Tablice decyzyjne�� ��Tablice decyzyjne
logicznie odpowiadają regułomsą wygodne z inżynierskiego p. widzeniaw klasycznym przypadku używają reprezentacji binarnejw zaawansowanych przypadkach opierają się na logice atrybutowej (tabliceOAT)
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 55 / 131
Wprowadzenie do inżynierii wiedzy Tablice decyzyjne�� ��Przykład tablicy OAT
attrib1 . . . attribn action1 . . . actionn
v11 . . . v1n w11 . . . w1n...
.... . .
......
. . .vn1 . . . vnn wn1 . . . wnn
Tablica: An Object-Attribute-Value table
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 56 / 131
Wprowadzenie do inżynierii wiedzy Drzewa decyzyjne�� ��Drzewa decyzyjne
A
>=4
B
on
off
stop
C
<0
D
other
8
off
stop
>0
off<4
C
>0
off
on
<0
Proste drzewo binarne (mogą być bardziej złożone).
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 57 / 131
Wprowadzenie do inżynierii wiedzy Inne metody reprezentacji�� ��Inne metody reprezentacji
Poza metodami logicznymi używane są też inne metody reprezentacji.Mogą wspomagać kodowanie i przetwarzanie języka naturalnego.Są przydatne w fazie konceptualizacji systemu.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 58 / 131
Wprowadzenie do inżynierii wiedzy Inne metody reprezentacji�� ��Grafy
składnia: węzły (wierzchołki), krawędzie (łuki)sieć: ważony graf skierowanygraf pojęciowy: reprezentuje zależności pomiędzy pojęciami
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 59 / 131
Wprowadzenie do inżynierii wiedzy Inne metody reprezentacji�� ��Sieci semantyczne
wariant reprezentacji grafowejwęzły – pojęciałuki – skojarzenia, powiązania, zależnościbrak standaryzacjiproblemy przy złożonych dziedzinach pojęciowych
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 60 / 131
Wprowadzenie do inżynierii wiedzy Inne metody reprezentacji�� ��Przykład sieci semantycznej
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 61 / 131
Wprowadzenie do inżynierii wiedzy Inne metody reprezentacji�� ��Ontologie
dojrzała reprezentacja grafowaoparte na zunifikowanych metodach sieci semantycznychstandaryzowane reprezentacjeburzliwy rozwój przy okazji systemów agentowych i Sieci Semantycznej
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 62 / 131
Wprowadzenie do inżynierii wiedzy Inne metody reprezentacji�� ��Fasety
Stworzone w latach 70. przez M. Minsky’ego (ang. frames)antycypacja metod semantycznych i obiektowychprzydatne w systemach ekspertowych bazujących na modelach systemów, czyw CBR
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 63 / 131
Wprowadzenie do inżynierii wiedzy Inne metody reprezentacji�� ��Przykład faset
Animals
Alive: T
Birds
Legs: 2
Flies: T
pigeon
Claws: F
Hounts
Predator: F
hawk
Claws: T
Predator: T
Afraid of
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 64 / 131
Wprowadzenie do inżynierii wiedzy Inne metody reprezentacji�� ��Przykład faset
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 65 / 131
Wprowadzenie do inżynierii wiedzy Inne metody reprezentacji�� ��Model Obiektowy
inspirowany metodami SIgłówne zastosowanie w inżynierii oprogramowaniaczasami używany w SI i SEobiektowe rozszerzenia LISP (CLOS)
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 66 / 131
Wprowadzenie do inżynierii wiedzy Zagadnienia inżynierskie�� ��Zagadnienia inżynierskie
inżynieria wiedzy (ang. knowledge engineering), pozyskiwanie i kodowaniewiedzyjest to proces re/konstrukcji wiedzy eksperta przy pomocy metodyreprezentacjibiorą w nim udział przynajmniej: ekspert, inżynier, ew. programistaszerzej przez KE rozumie się konstruowanie SE jako takiego
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 67 / 131
Wprowadzenie do inżynierii wiedzy Pozyskiwanie wiedzy�� ��Pozyskiwanie wiedzy
transfer wiedzy z pewnego źródła do artefaktucelem pozyskiwania jest konceptualizacja i zakodowanie wiedzy ekspertajest to trudne ze względu na różne „artefakty” i różne reprezentacje
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 68 / 131
Wprowadzenie do inżynierii wiedzy Pozyskiwanie wiedzy�� ��Kategoryzacja wiedzy
deklaratywna/proceduralnaskładniowa/sematycznaepizodyczna, eksperymentalnameta-wiedzajawna/niejawna
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 69 / 131
Wprowadzenie do inżynierii wiedzy Pozyskiwanie wiedzy�� ��Metody pozyskiwania wiedzy
1 wiedzę pozyskuje się od eksperta: wywiad, analizadziedziny/procesu/zadania/sytuacji, symulacje, automatyczne pozyskiwanieprzy pomocy narzędzi
2 inżynier staje się ekspertem3 uczenie maszynowe systemu
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 70 / 131
Wprowadzenie do inżynierii wiedzy Weryfikacja wiedzy�� ��Weryfikacja wiedzy
problemy: weryfikacja, walidacja, ewaluacja, optymalizacjasą to problemy krytyczne dla zapewnienia bezpiecznej, wydajnej pracysystemu.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 71 / 131
Wprowadzenie do inżynierii wiedzy Zarządzanie wiedzą�� ��Zarządzanie wiedzą
nowe, „modne” pojęciegłównie w organizacjach biznesowych, firmach, środowiskach ekonomicznychwiąże się z zagadnieniami: przepływu, dzielenia, utrzymywania, transferuwiedzy w organizacji, grupieistotne, mało konkretne, brak narzędzi
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 72 / 131
Systemy regułowe�� ��Plan punktu: Systemy regułowe
9 Systemy regułoweArchitektura systemów regułowychRegułowa reprezentacja wiedzyPodstawy logiczneInterpretacja regułRozwiązywanie konfliktów regułModele inerpreterówProblematyka projektowania
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 73 / 131
Systemy regułowe Architektura systemów regułowych�� ��Przesłanki
inteligencja kieruje się najczęściej regułami i formułuje regułyinteligencję kojarzy się najczęściej z regularnym, powtarzalnym (w kontekście)zachowaniemregularność wyraża się przez regułysą one naturalną metodą reprezentacji wiedzystały się podstawą najważniejszych systemów ekspertowychRegułowych Systemów Ekspertowych (ang. RBS)
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 74 / 131
Systemy regułowe Architektura systemów regułowych�� ��Architektura systemów regułowych
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 75 / 131
Systemy regułowe Regułowa reprezentacja wiedzy�� ��Regułowa reprezentacja wiedzy
Ogólna regułaIF < precondition > THEN < conclusion >
pre/warunki, przesłanki muszą być spełnione aby dojść do konkluzji, wniosku,podjąć działanie.
FaktyPrzesłanki i konkluzja zawierają pewne fakty (prawdziwe stwierdzeniabezwarunkowe). Mogą one być proste lub złożone, w zależności od języka.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 76 / 131
Systemy regułowe Regułowa reprezentacja wiedzy�� ��Tworzenie SR
Do zbudowania SR potrzebne są:odpowiednia regułowa reprezentacja wiedzymechanizm wnioskującynarzędzia do zakodowania powyższych
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 77 / 131
Systemy regułowe Podstawy logiczne�� ��Podstawy logiczne
rachunek zdańrachunek predykatówrachunek atrybutów
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 78 / 131
Systemy regułowe Interpretacja reguł�� ��Interpretacja reguł
Proces odpalania reguły składa się z:1 sprawdzenia czy warunki reguły są spełnione2 wyciągnięcie wniosku, podjęcie działania3 powrót do głównej pętli przetwarzania
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 79 / 131
Systemy regułowe Interpretacja reguł�� ��Wybór reguły
Schemat strategii
utworzenie zbioru dostępnych regułwybór reguł możliwych do odpalenia (zbiór konfliktowy)wybór reguły z w.w. zbioru
Używane strategie
wnioskowanie wprzód, dedukcja (sterowane danymi)wnioskowanie wstecz, abdukcja (sterowane celem), przeszukiwanie wgłąb (np.Prolog), wszerz,podejścia hybrydowe
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 80 / 131
Systemy regułowe Rozwiązywanie konfliktów reguł�� ��Rozwiązywanie konfliktów reguł
Problem nie występuje w systemach deterministycznych.Istnieje szereg strategii, w zależności od potrzeb:
domyślna strategia (1. reguła),szeregowanie reguł, np. wg priorytetówograniczanie kontekstu działania reguł
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 81 / 131
Systemy regułowe Modele inerpreterów�� ��Interpreter liniowy
rule i
rule 1
rule 2
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 82 / 131
Systemy regułowe Modele inerpreterów�� ��Interpreter hierarchiczny
rule i
rule 1
rule 2
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 83 / 131
Systemy regułowe Modele inerpreterów�� ��Interpreter liniowy z przełączaniem reguł
rule i
rule 1
rule 2
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 84 / 131
Systemy regułowe Modele inerpreterów�� ��Interpreter liniowy z przełączaniem kontekstu
rule i
rule 1
rule 2
rule i,j
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 85 / 131
Systemy regułowe Problematyka projektowania�� ��Cykl życia SE
IdentificationIdentify problemchararteristics
representing knowledgeFind concepts
Conceptualization
organizing knowledgeDesign structure
Formalization
ImplementationFormulate rules
embodying knowledge
Testing
organizing knowledgeValidate rules
VERIFICATION
Requirements
Concepts
Structure
Rules
Refinements
Redesigns
Reformulations
Reformulations
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 86 / 131
=WYK.3=
Wykład: Wprowadzenie do Prologu
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 87 / 131
=WYK.3=�� ��Plan wykładu
10 Historia języka
11 Cechy języka
12 Składnia języka
13 Unifikacja
14 Rezolucja
15 Strategia wnioskowania
16 Wybrane mechanizmy
17 Implementacje
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 88 / 131
Historia języka�� ��Plan punktu: Historia języka
10 Historia językaPodstawy teoretycznePierwsze implementacjeProlog dzisiaj
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 89 / 131
Historia języka�� ��Historia języka
NazwaPROgramation en LOGique, PROgramming in LOGic
Cechy szczególne
język nie tylko sformalizowany lecz niejako formalnybliski językowi naturalnemu, przetwarzanie symboliczneduża siła wyrazuodległy od rozpowszechnionych paradygmatów
Rozwój
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 90 / 131
Historia języka��
��Historia języka (cont.)
stworzenie silnych podstaw formalnych, logika matematycznapowstanie koncepcji teoretycznej, pomysł na programowanie w logiceprototypowe implementacjerozwój i euforiastagnacja?
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 91 / 131
Historia języka Podstawy teoretyczne�� ��Podstawy teoretyczne
Logic programmingKoncepcja użycia logiki jako języka opisu i przetwarzania wiedzy.
reguła rezolucji J. A. Robinson, A machine-oriented logic based on theresolution principle, Journal of the Association for Computing Machinery,1965.R. Kowalski, Predicate Logic as Programming Language, Memo 70,Department of Artificial Intelligence, Edinburgh University. 1973.A. Colmerauer et al., Un System de Communication Homme-Machine enFrancais, Grope de Recherche en Intelligence Artificielle, Universited’Aix-Marseille,R. Kowalski, Predicate logic as a programming language, Proceedings ofIFIP-74, 1974.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 92 / 131
Historia języka Pierwsze implementacje�� ��Pierwsze implementacje
1 pierwszy prototypowy interpreter, Colmerauer i Roussel, Universited’Aix-Marseille, 1972.
2 prace Warrena, doktorat w Department of Artificial Intelligence, EdinburghUniversity, 1977.
3 pierwszy efektywny interpreter David H. D. Warren An abstract Prologinstruction set, Technical Note 309, SRI International, Menlo Park, CA,October 1983.
4 koncepcja WAM, efektywna implementacja zarządzania pamięcią iprogramowania
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 93 / 131
Historia języka Prolog dzisiaj�� ��Prolog dzisiaj
Fifth Generation Computer Systems project (FGCS), 1982-92dojrzałe implementacje w latach 90.dynamiczny rozwój innych komputerów i językówsystemy ekspertowe jako gotowe rozwiązaniapowrót do systemów inteligentnych w XXI w.szereg dobrych implementacji i narzędzi
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 94 / 131
Cechy języka�� ��Plan punktu: Cechy języka
11 Cechy języka
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 95 / 131
Cechy języka�� ��Cechy języka
język deklaratywny, a nie proceduralny, „co” vs. „jak”język relacyjny, a nie funkcyjny, „procedury” (predykaty) nie mają klasycznierozumianego we/wyprzetwarzanie symboliczne, nie numeryczneprogramowanie wielopoziomowe, rekursja i meta-programowanie,samomodyfikowalny kodbrak poleceń, czy słów wbudowanychsilne mechanizmy formalne:
unifikacja, porównywanie i uzgadnianie złożonych, parametryzowanychstruktór danych,rezolucja, automatycznie wnioskowanie,strategia automatycznego przeszukiwania przestrzeni rozwiązań.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 96 / 131
Składnia języka�� ��Plan punktu: Składnia języka
12 Składnia języka
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 97 / 131
Składnia języka�� ��Składnia języka
podstawą jest FOPL,wykorzystuje się FOPL ograniczony do klauzul Horna, pozwalającyh naefektywne programowanieobiekty są reprezentowane przez termy (stała, zmienna, funktorf (t1, t2, . . . , tn))wiedza jest reprezentowana przez fakty, formuły atomiczne, klauzule proste,p(t1, t2, . . . , tn)
zmienne logiczne służą do parametryzacji termów, określania niewiadomych
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 98 / 131
Składnia języka��
��Składnia języka (cont.)
Reguły, klauzule złożone
¬p1 ∨ ¬p2 ∨ . . .¬pk ∨ q
p1 ∧ p2 ∧ . . . ∧ pk ⇒ q
q ⇐ p1 ∧ p2 ∧ . . . ∧ pk .
q : −p1, p2, . . . , pk .
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 99 / 131
Unifikacja�� ��Plan punktu: Unifikacja
13 UnifikacjaPrzykłady unifikacji
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 100 / 131
Unifikacja�� ��Unifikacja
podstawianieJest to odwzorowanie skończonego zbioru termów w zbiór zmiennych.Wykorzystywane są do zamiany, skonkretyzowania wartości zmiennych w termach iformułach. Złożenie podstawień jest podstawieniem.
unifikowalnośćDwa termy (dwie formuły atomowe) t1 i t2 nazywamy unifikowalnymi wtw gdyistnieje podstawienie σ, takie, że t1σ = t2σ. Podstawienie σ nazywamyunifikatorem dla t1 i t2.
najogólniejszy unifikator (mgu)
Unifikator σ termów t1, t2 jest najogólniejszym unifikatorem wtw dla każdegoinnego unifikatora ν termów t1, t2 istnieje podstawienie λ, takie że ν = σλ(złożenie).
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 101 / 131
Unifikacja��
��Unifikacja (cont.)
OpisPoszukiwanie mgu polega na sekwencyjnym przeszukiwaniu i porównywaniutermów. W przypadku różnicy, wykonywana jest próba uzgodnienia (za zmiennąpodstawiany jest term, lub odwrotnie).
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 102 / 131
Unifikacja Przykłady unifikacji�� ��Przykłady unifikacji
?- data(D1, M, 2005) = data(11, grudzien, R).
D1 = 11M = grudzienR = 2005 ;
?- data(D1, M, 2005) = data(D2, grudzien, R).
D1 = _G157M = grudzienD2 = _G157R = 2005 ;
?- data(D1, M, 2005) = data(D2, grudzien, R),data(D1, maj, 2004) = data(10, maj, X).
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 103 / 131
Unifikacja Przykłady unifikacji��
��Przykłady unifikacji (cont.)
D1 = 10M = grudzienD2 = 10R = 2005X = 2004 ;
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 104 / 131
Rezolucja�� ��Plan punktu: Rezolucja
14 RezolucjaRezolucja w Prologu
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 105 / 131
Rezolucja�� ��Rezolucja
SformułowanieProgram w Prologu, P, możemy rozumieć jako złożoną formułę FOPL w postacikoniunktywnej, koniunkcję wszystkich faktów (formuł atomicznych) i reguł.Zadanie polega na pokazaniu, że cel G jest konsekwencja logiczną P.
P |= G (4)
Problem rezolucjiW metodzie rezolucji dowodzimy niewprost, wykazując niespełnialność formuły
P ∧ ¬G (5)
cel jest dopisywany jako zanegowana formuła do bazy wiedzy.
Formuła rezolucji
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 106 / 131
Rezolucja��
��Rezolucja (cont.)
DefinicjaMając dwie klauzule C1 = φ ∨ q1 i C2 = ϕ ∨ ¬q2 oraz σ będący MGU q1 i q2.
φ ∨ q1, ϕ ∨ ¬q2φσ ∨ ϕσ
(6)
Przekształcając klauzule do postaci implikacji dostajemy:
¬φσ ⇒ q1σ, q2σ ⇒ ϕσ
¬φσ ⇒ ϕσ.
Formułę wynikową możemy zapisać: ¬φσ ⇒ ϕσ = φσ ∨ ϕσ
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 107 / 131
Rezolucja Rezolucja w Prologu�� ��Rezolucja w ProloguMając koniunkcję celów q1, q2, . . . , qn należy wykazać, że formuła
¬(q1 ∧ q2 ∧ . . . ∧ qn) ∧ P
jest niespełnialna.Zapis celów w postaci klauzuli Horna:
¬q1 ∨ ¬q2 ∨ . . . ∨ ¬qn (7)
Mając klauzulę w programie
h : −p1, p2, . . . , pm
w postaci klauzuli Horna:
h ∨ ¬p1 ∨ ¬p2 ∨ . . . ∨ ¬pm (8)
używamy rezolucji do otrzymania nowej formuły, celu.Rezolucja przyjmuje postać
¬q1 ∨ ¬q2 ∨ . . . ∨ ¬qn , h ∨ ¬p1 ∨ ¬p2 ∨ . . . ∨ ¬pm(¬p1 ∨ ¬p2 ∨ . . . ∨ ¬pm ∨ ¬q2 ∨ . . . ∨ ¬qn)σ
(9)c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 108 / 131
Rezolucja Rezolucja w Prologu��
��Rezolucja w Prologu (cont.)
Powstaje nowy zbiór celów:
p1σ, p2σ, . . . , pmσ, q2σ, . . . , qnσ
Zadanie polega na stopniowym skracaniu klauzuli opisującej cel, poprzez kolejneetapy wnioskowania opartego na faktach w bazie wiedzy. Zadanie zostajezrealizowane po otrzymaniu pustej klauzuli.Prolog zaczyna od unifikacji pierwszego celu w koniunkcji z nagłówkami kolejnychklazul programu.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 109 / 131
Strategia wnioskowania�� ��Plan punktu: Strategia wnioskowania
15 Strategia wnioskowaniaPredykat cutPredykat failNegacja
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 110 / 131
Strategia wnioskowania�� ��Strategia wnioskowania
strategia SLD, Linear refutation procedure for Definite clauses with Selectionfunction.liniowośc polega na tworzenie kolejnych rezolwent na podstawie stworzonychw poprzednim kroku algorytmu.algorytm wybiera zawsze lewą ścieżkę w drzewie rozwiązań (ang. depth-firstsearch).w przypadku porażki algorytm nawraca do najbliższej gałęzi poziomwcześniej, (ang. backtracking).mechanizm odpowiada abdukcji logicznej.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 111 / 131
Strategia wnioskowania Predykat cut�� ��Predykat cut
odcięcie powoduje ograniczenie przeszukiwania drzewa rozwiązańoznaczane jest wykrzyknikiemh : −p1, p2, . . . , pi , pi+1, . . . , pm.
h : −p1, p2, . . . , pi , !, pi+1, . . . , pm.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 112 / 131
Strategia wnioskowania Predykat fail�� ��Predykat fail
predykat fail powoduje nawrótwymusza przeszukanie innych wariantów
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 113 / 131
Strategia wnioskowania Negacja�� ��Negacja
CWA, cała wiedza o świecie jest podana expliciteco za tym idzie, jeżeli jakiś fakt nie jest konsekwencją logiczną bazy faktów,to jest fałszywy
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 114 / 131
Wybrane mechanizmy�� ��Plan punktu: Wybrane mechanizmy
16 Wybrane mechanizmyOperacje wejścia i wyjściaObsługa bazy faktówOperacje na listachMetaprogramowanie
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 115 / 131
Wybrane mechanizmy Operacje wejścia i wyjścia�� ��Operacje wejścia i wyjścia
Predykat write wypisuje term na wyjście; nl przechodzi do nowej linii.Predykaty see/n, tell/told pozwalają na odczyt, zapis bazy wiedzy z/do pliku.(std. Edyndurski)Poza tym pełna obsługa binarnych plików przez predykaty ISO (strumienie).
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 116 / 131
Wybrane mechanizmy Obsługa bazy faktów�� ��Obsługa bazy faktów
Predykaty asserta/z/1, retracta/a/1 pozwalają na dodawanie, usuwanie faktówdo/z bazy wiedzy, na/do jej początku/końca.Predykat retractall pozwala usuwanie wszystkich zadanych faktów.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 117 / 131
Wybrane mechanizmy Operacje na listach�� ��Operacje na listach
Lista to uporządkowany zbiór elementów. Elementem może być dowolna strukturadanych w Prologu.Listę zapisujemy:
[a,b,c][2,4,6,ala,ma,kota][]
Każda lista składa się z: głowy (ang. head), która jest zawsze 1. elementem listy,oraz ogona (ang. tail), który jest zawsze listąListę od ogona rozdzielamy operatorem — (pionowa kreska), np.:
?- [X|Y]=[a,b,c,d].
X = aY = [b, c, d] ;
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 118 / 131
Wybrane mechanizmy Operacje na listach��
��Operacje na listach (cont.)
Dekompozycja i strukturalizacja list jest realizowana głównie przez mechanizmunifikacji, a co za tym idzie w.w. notacja jest jej podstawą. Na przykład:
?- [X,Y|Z]=[a,b,c,d].
X = aY = bZ = [c, d] ;
?- [X,Y,a]=[Z,b,Z].
X = aY = bZ = a ;
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 119 / 131
Wybrane mechanizmy Metaprogramowanie�� ��Metaprogramowanie
Prolog dynamicznie generuje nowe cele.Pozwala w szczególności na analizowanie dowolnie złożonego programu.Umożliwia to tworzenie własnych meta-interpreterów, które dynamicznieanalizują kod w Prologu.Można implementować dowolne strategie wnioskowania.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 120 / 131
Implementacje�� ��Plan punktu: Implementacje
17 ImplementacjeTurbo PrologSWI PrologGNU PrologAmzi! PrologYAP PrologXSBLPA PrologSicstus PrologIF Prolog
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 121 / 131
Implementacje�� ��Implementacje
standard Edynburskistandard ISO
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 122 / 131
Implementacje Turbo Prolog�� ��Turbo Prolog
implementacja Borlanda dla DOSpewne uproszczenia i ograniczenia, np. typy danychmała wydajnośćpewne niezgodności ze stadardemproste środowisko programistyczneduża popularność w Polsce, dydaktyka
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 123 / 131
Implementacje SWI Prolog�� ��SWI Prolog
zaawansowany kompilator i interpreter, rozwijany w Amsterdamie, JanWielemakerdostępność na LGPLzgodność ze standardem ISOduża prędkość i mały rozmiarpraca na wielu platformach: Unix, Windowsinterfejsy do innych języków: C, C++, Javabiblioteki pakietów: Unix, TCP, RDBMS/ODBCpakiety dla SGML, XML, RDFintegracja z GNU Emacsemwww.swi-prolog.org
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 124 / 131
Implementacje GNU Prolog�� ��GNU Prolog
rozwijany we Francji przez Daniela Diazalicencja GPLwsparcie standardu ISObardzo duża wydajność i wydajna kompilacja (generowanie assemblera)wsparcie dla CLPpraca na wielu platformachpauillac.inria.fr/˜diaz/gnu-prolog
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 125 / 131
Implementacje Amzi! Prolog�� ��Amzi! Prolog
zaawansowany projekt komercyjny, dostępny też freeszereg pakietów dodatkowych, w tym do sieci TCPmożliwość wykorzystania w systemach wbudowanychzintegrowane środowisko IDE oparte o Eclipseplatformy Windows/Unixdobra dokumentacja, w tym darmowe książki, podręcznikizastosowania komercyjnewww.amzi.com
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 126 / 131
Implementacje YAP Prolog�� ��YAP Prolog
przenaszalny i zoptymalizowanywysoka wydajnośćrozbudowane funkcje, w tym CLPkompatybilność z SWIlicencja Artistichttp://www.ncc.up.pt/˜vsc/Yap/
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 127 / 131
Implementacje XSB�� ��XSB
oparty o Prolog system dla tworzenia dedukcyjnych baz danychlicencja open-sourcexsb.sourceforge.net
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 128 / 131
Implementacje LPA Prolog�� ��LPA Prolog
komercyjny kompilator Prologunarzędzia wspomagające tworzenie bazy wiedzy, VisiRulesystemów agentowych Chimerapraca tylko na Windowscena rzędu 300 GBPhttp://www.lpa.co.uk
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 129 / 131
Implementacje Sicstus Prolog�� ��Sicstus Prolog
produkt komercyjnybardzo wysoka wydajnośćinterfejsy dla C, C++, .NET, Java, Visual Basic, Tcl/Tkintegracja z GNU Emacsemwsparcie dla CLPwww.sics.se/sicstus
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 130 / 131
Implementacje IF Prolog�� ��IF Prolog
dojrzały pakiet komercyjnyzgodność z ISOpraca na wielu platformachzaawansowane środowisko IDEwpsracie dla CLPwysoka cenawww.ifcomputer.de
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 131 / 131
Implementacje IF Prolog
Adrain A. Hopgood.Intelligent Systems for Engineers and Scientists.CRC Press, Boca Raton London New York Washington, D.C., 2nd edition,2001.ISBN 0849304563.Stuart Russell and Peter Norvig.Artificial Intelligence: A Modern Approach.Prentice-Hall, 2nd edition, 2002.I. S. Torsun.Foundations of Intelligent Knowledge-Based Systems.Academic Press, London, San Diego, New York, Boston, Sydney, Tokyo,Toronto, 1995.J. D. Ullman.Principles of Database and Knowledge Base Systems, volume 1.Computer Science Press, 1988.
c© by G.J.Nalepa, 2004-11 (AGH) Artificial Intelligence, Knowledge Engineering wiosna 2011 131 / 131