83
Prolog – czym jest? Obiekty i relacje Na czym polega programowanie w PROLOGU? Podsumowanie Programowanie w logice Początki Piotr Fulmański Wydzial Matematyki UL 2 marca 2007 Piotr Fulmański Programowanie w logice

Programowanie w logice - Poczatkikolos.math.uni.lodz.pl/~archive/Programowanie w logice/wyklad1.pdf · Krótka charakterystyka Niespodzianka UWAGA Pisanie programu w PROLOGU nie polega

Embed Size (px)

Citation preview

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Programowanie w logicePoczątki

Piotr Fulmański

Wydział Matematyki UŁ

2 marca 2007

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Plan prezentacji

1 Prolog – czym jest?Krótka charakterystykaNiespodzianka

2 Obiekty i relacjeCzyli kiedy obiekty nie są obiektamiRelacje

3 Na czym polega programowanie w PROLOGU?No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

4 PodsumowanieDo zapamiętania

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

• PROLOG = fr. PROgrammation en LOGigue• Powstał na przełomie lat 60 i 70 jako efekt prac nad narzędziem

pozwalającym na przetwarzanie języka naturalnego, w tymprzypadku francuskiego (autorzy: Alain Colmerauer we współpracy zPhilippe Roussel)

• Używany w przetwarzaniu symbolicznym w takich dziedzinach jak:• logika matematyczna• przetwarzanie języka naturalnego• symboliczne rozwiązywanie równań• zagadnienia z dziedziny sztucznej inteligencji• bazy danych

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

• PROLOG = fr. PROgrammation en LOGigue• Powstał na przełomie lat 60 i 70 jako efekt prac nad narzędziem

pozwalającym na przetwarzanie języka naturalnego, w tymprzypadku francuskiego (autorzy: Alain Colmerauer we współpracy zPhilippe Roussel)

• Używany w przetwarzaniu symbolicznym w takich dziedzinach jak:• logika matematyczna• przetwarzanie języka naturalnego• symboliczne rozwiązywanie równań• zagadnienia z dziedziny sztucznej inteligencji• bazy danych

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

• PROLOG = fr. PROgrammation en LOGigue• Powstał na przełomie lat 60 i 70 jako efekt prac nad narzędziem

pozwalającym na przetwarzanie języka naturalnego, w tymprzypadku francuskiego (autorzy: Alain Colmerauer we współpracy zPhilippe Roussel)

• Używany w przetwarzaniu symbolicznym w takich dziedzinach jak:• logika matematyczna• przetwarzanie języka naturalnego• symboliczne rozwiązywanie równań• zagadnienia z dziedziny sztucznej inteligencji• bazy danych

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

• PROLOG = fr. PROgrammation en LOGigue• Powstał na przełomie lat 60 i 70 jako efekt prac nad narzędziem

pozwalającym na przetwarzanie języka naturalnego, w tymprzypadku francuskiego (autorzy: Alain Colmerauer we współpracy zPhilippe Roussel)

• Używany w przetwarzaniu symbolicznym w takich dziedzinach jak:• logika matematyczna• przetwarzanie języka naturalnego• symboliczne rozwiązywanie równań• zagadnienia z dziedziny sztucznej inteligencji• bazy danych

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

• PROLOG = fr. PROgrammation en LOGigue• Powstał na przełomie lat 60 i 70 jako efekt prac nad narzędziem

pozwalającym na przetwarzanie języka naturalnego, w tymprzypadku francuskiego (autorzy: Alain Colmerauer we współpracy zPhilippe Roussel)

• Używany w przetwarzaniu symbolicznym w takich dziedzinach jak:• logika matematyczna• przetwarzanie języka naturalnego• symboliczne rozwiązywanie równań• zagadnienia z dziedziny sztucznej inteligencji• bazy danych

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

• PROLOG = fr. PROgrammation en LOGigue• Powstał na przełomie lat 60 i 70 jako efekt prac nad narzędziem

pozwalającym na przetwarzanie języka naturalnego, w tymprzypadku francuskiego (autorzy: Alain Colmerauer we współpracy zPhilippe Roussel)

• Używany w przetwarzaniu symbolicznym w takich dziedzinach jak:• logika matematyczna• przetwarzanie języka naturalnego• symboliczne rozwiązywanie równań• zagadnienia z dziedziny sztucznej inteligencji• bazy danych

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

• PROLOG = fr. PROgrammation en LOGigue• Powstał na przełomie lat 60 i 70 jako efekt prac nad narzędziem

pozwalającym na przetwarzanie języka naturalnego, w tymprzypadku francuskiego (autorzy: Alain Colmerauer we współpracy zPhilippe Roussel)

• Używany w przetwarzaniu symbolicznym w takich dziedzinach jak:• logika matematyczna• przetwarzanie języka naturalnego• symboliczne rozwiązywanie równań• zagadnienia z dziedziny sztucznej inteligencji• bazy danych

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

• PROLOG = fr. PROgrammation en LOGigue• Powstał na przełomie lat 60 i 70 jako efekt prac nad narzędziem

pozwalającym na przetwarzanie języka naturalnego, w tymprzypadku francuskiego (autorzy: Alain Colmerauer we współpracy zPhilippe Roussel)

• Używany w przetwarzaniu symbolicznym w takich dziedzinach jak:• logika matematyczna• przetwarzanie języka naturalnego• symboliczne rozwiązywanie równań• zagadnienia z dziedziny sztucznej inteligencji• bazy danych

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

UWAGAPisanie programu w PROLOGU nie polega na opisywaniu algorytmu!

Zamiast opisu algorytmu opisujemy obiekty związane z problemem irelacje pomiędzy tymi obiektami.

Stąd PROLOG często określany jest jako język opisowy i deklaratywny.

Rozwiązanie problemu polega na „odpytywaniu” komputera o obiekty irelacje pomiędzy nimi, które można wywnioskować z programu.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

UWAGAPisanie programu w PROLOGU nie polega na opisywaniu algorytmu!

Zamiast opisu algorytmu opisujemy obiekty związane z problemem irelacje pomiędzy tymi obiektami.

Stąd PROLOG często określany jest jako język opisowy i deklaratywny.

Rozwiązanie problemu polega na „odpytywaniu” komputera o obiekty irelacje pomiędzy nimi, które można wywnioskować z programu.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

UWAGAPisanie programu w PROLOGU nie polega na opisywaniu algorytmu!

Zamiast opisu algorytmu opisujemy obiekty związane z problemem irelacje pomiędzy tymi obiektami.

Stąd PROLOG często określany jest jako język opisowy i deklaratywny.

Rozwiązanie problemu polega na „odpytywaniu” komputera o obiekty irelacje pomiędzy nimi, które można wywnioskować z programu.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Krótka charakterystykaNiespodzianka

UWAGAPisanie programu w PROLOGU nie polega na opisywaniu algorytmu!

Zamiast opisu algorytmu opisujemy obiekty związane z problemem irelacje pomiędzy tymi obiektami.

Stąd PROLOG często określany jest jako język opisowy i deklaratywny.

Rozwiązanie problemu polega na „odpytywaniu” komputera o obiekty irelacje pomiędzy nimi, które można wywnioskować z programu.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

• Programowanie zorientowane obiektowo (ang. OOP, object-orientedprogramming) to paradygmat (sposób) programowania posługującysię pojęciem obiektu jako metody reprezentacji danych w programie.

• Każdy obiekt, będący instancją pewnej klasy, posiada zbiór cech(będących zmiennymi pewnych typów) go opisujących oraz zbiórmetod (funkcji) których wywołanie na rzecz tego obiektu ma sens.

• W tym ujęciu, klasa zdefiniowana przez programistę, staje się nowymtypem, który może być używany na równi z typami wbudowanymi.

• Z OOP nierozerwalnie związane są pojęcia enkapsulacjidanych,dziedziczenia,polimorfizmu.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

• Programowanie zorientowane obiektowo (ang. OOP, object-orientedprogramming) to paradygmat (sposób) programowania posługującysię pojęciem obiektu jako metody reprezentacji danych w programie.

• Każdy obiekt, będący instancją pewnej klasy, posiada zbiór cech(będących zmiennymi pewnych typów) go opisujących oraz zbiórmetod (funkcji) których wywołanie na rzecz tego obiektu ma sens.

• W tym ujęciu, klasa zdefiniowana przez programistę, staje się nowymtypem, który może być używany na równi z typami wbudowanymi.

• Z OOP nierozerwalnie związane są pojęcia enkapsulacjidanych,dziedziczenia,polimorfizmu.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

• Programowanie zorientowane obiektowo (ang. OOP, object-orientedprogramming) to paradygmat (sposób) programowania posługującysię pojęciem obiektu jako metody reprezentacji danych w programie.

• Każdy obiekt, będący instancją pewnej klasy, posiada zbiór cech(będących zmiennymi pewnych typów) go opisujących oraz zbiórmetod (funkcji) których wywołanie na rzecz tego obiektu ma sens.

• W tym ujęciu, klasa zdefiniowana przez programistę, staje się nowymtypem, który może być używany na równi z typami wbudowanymi.

• Z OOP nierozerwalnie związane są pojęcia enkapsulacjidanych,dziedziczenia,polimorfizmu.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

• Programowanie zorientowane obiektowo (ang. OOP, object-orientedprogramming) to paradygmat (sposób) programowania posługującysię pojęciem obiektu jako metody reprezentacji danych w programie.

• Każdy obiekt, będący instancją pewnej klasy, posiada zbiór cech(będących zmiennymi pewnych typów) go opisujących oraz zbiórmetod (funkcji) których wywołanie na rzecz tego obiektu ma sens.

• W tym ujęciu, klasa zdefiniowana przez programistę, staje się nowymtypem, który może być używany na równi z typami wbudowanymi.

• Z OOP nierozerwalnie związane są pojęcia enkapsulacjidanych,dziedziczenia,polimorfizmu.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

class Punkt{private:

double x;double y;

public:Punkt(double x, double y);void Przesun(Wektor w);

};

class Wektor{

...};

Punkt p(1.0,2.0);Wektor w(2.5,-1.5);

p.Przesun(w);

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

class Punkt{private:

double x;double y;

public:Punkt(double x, double y);void Przesun(Wektor w);

};

class Wektor{

...};

Punkt p(1.0,2.0);Wektor w(2.5,-1.5);

p.Przesun(w);

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

• Obiekt w sensie PROLOG-a jest czymś, co możemy sobie nazwaćbytem.

• Nie definiujemy z czego się on składa i co można z nim zrobić (coma miejsce w OOP), ale jaki jest.

• Dla każdego obiektu definiujemy relacje jakim obiekt ten podlega.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

• Obiekt w sensie PROLOG-a jest czymś, co możemy sobie nazwaćbytem.

• Nie definiujemy z czego się on składa i co można z nim zrobić (coma miejsce w OOP), ale jaki jest.

• Dla każdego obiektu definiujemy relacje jakim obiekt ten podlega.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

• Obiekt w sensie PROLOG-a jest czymś, co możemy sobie nazwaćbytem.

• Nie definiujemy z czego się on składa i co można z nim zrobić (coma miejsce w OOP), ale jaki jest.

• Dla każdego obiektu definiujemy relacje jakim obiekt ten podlega.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

• Obiekt w sensie PROLOG-a jest czymś, co możemy sobie nazwaćbytem.

• Nie definiujemy z czego się on składa i co można z nim zrobić (coma miejsce w OOP), ale jaki jest.

• Dla każdego obiektu definiujemy relacje jakim obiekt ten podlega.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

Relacja – związek pomiędzy pewną liczbą obiektów.

PrzykładJasio ma grzechotkę

obiekty: Jasio, grzechotkarelacje: posiadanie

PrzykładLesio jest ciemny

obiekty: Lesio, ciemnyrelacje: być

• Nie wszystkie relacje jawnie określają wszystkie obiekty, którychdotyczą.

• Relacje (reguły) zwykle są uproszczone, ale wystarczająco precyzyjneaby mogły być definicjami w problemie jaki rozwiązujemy.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

Relacja – związek pomiędzy pewną liczbą obiektów.

PrzykładJasio ma grzechotkę

obiekty: Jasio, grzechotkarelacje: posiadanie

PrzykładLesio jest ciemny

obiekty: Lesio, ciemnyrelacje: być

• Nie wszystkie relacje jawnie określają wszystkie obiekty, którychdotyczą.

• Relacje (reguły) zwykle są uproszczone, ale wystarczająco precyzyjneaby mogły być definicjami w problemie jaki rozwiązujemy.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

Relacja – związek pomiędzy pewną liczbą obiektów.

PrzykładJasio ma grzechotkę

obiekty: Jasio, grzechotkarelacje: posiadanie

PrzykładLesio jest ciemny

obiekty: Lesio, ciemnyrelacje: być

• Nie wszystkie relacje jawnie określają wszystkie obiekty, którychdotyczą.

• Relacje (reguły) zwykle są uproszczone, ale wystarczająco precyzyjneaby mogły być definicjami w problemie jaki rozwiązujemy.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

Relacja – związek pomiędzy pewną liczbą obiektów.

PrzykładJasio ma grzechotkę

obiekty: Jasio, grzechotkarelacje: posiadanie

PrzykładLesio jest ciemny

obiekty: Lesio, ciemnyrelacje: być

• Nie wszystkie relacje jawnie określają wszystkie obiekty, którychdotyczą.

• Relacje (reguły) zwykle są uproszczone, ale wystarczająco precyzyjneaby mogły być definicjami w problemie jaki rozwiązujemy.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

Relacja – związek pomiędzy pewną liczbą obiektów.

PrzykładJasio ma grzechotkę

obiekty: Jasio, grzechotkarelacje: posiadanie

PrzykładLesio jest ciemny

obiekty: Lesio, ciemnyrelacje: być

• Nie wszystkie relacje jawnie określają wszystkie obiekty, którychdotyczą.

• Relacje (reguły) zwykle są uproszczone, ale wystarczająco precyzyjneaby mogły być definicjami w problemie jaki rozwiązujemy.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

Relacja – związek pomiędzy pewną liczbą obiektów.

PrzykładJasio ma grzechotkę

obiekty: Jasio, grzechotkarelacje: posiadanie

PrzykładLesio jest ciemny

obiekty: Lesio, ciemnyrelacje: być

• Nie wszystkie relacje jawnie określają wszystkie obiekty, którychdotyczą.

• Relacje (reguły) zwykle są uproszczone, ale wystarczająco precyzyjneaby mogły być definicjami w problemie jaki rozwiązujemy.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

Relacja – związek pomiędzy pewną liczbą obiektów.

PrzykładJasio ma grzechotkę

obiekty: Jasio, grzechotkarelacje: posiadanie

PrzykładLesio jest ciemny

obiekty: Lesio, ciemnyrelacje: być

• Nie wszystkie relacje jawnie określają wszystkie obiekty, którychdotyczą.

• Relacje (reguły) zwykle są uproszczone, ale wystarczająco precyzyjneaby mogły być definicjami w problemie jaki rozwiązujemy.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

Relacja – związek pomiędzy pewną liczbą obiektów.

PrzykładJasio ma grzechotkę

obiekty: Jasio, grzechotkarelacje: posiadanie

PrzykładLesio jest ciemny

obiekty: Lesio, ciemnyrelacje: być

• Nie wszystkie relacje jawnie określają wszystkie obiekty, którychdotyczą.

• Relacje (reguły) zwykle są uproszczone, ale wystarczająco precyzyjneaby mogły być definicjami w problemie jaki rozwiązujemy.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Czyli kiedy obiekty nie są obiektamiRelacje

Relacja – związek pomiędzy pewną liczbą obiektów.

PrzykładJasio ma grzechotkę

obiekty: Jasio, grzechotkarelacje: posiadanie

PrzykładLesio jest ciemny

obiekty: Lesio, ciemnyrelacje: być

• Nie wszystkie relacje jawnie określają wszystkie obiekty, którychdotyczą.

• Relacje (reguły) zwykle są uproszczone, ale wystarczająco precyzyjneaby mogły być definicjami w problemie jaki rozwiązujemy.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

• Definiowanie obiektów poprzez definiowanie faktów dotyczącychobiektów i związków między nimi.

• Definiowanie reguł dotyczących obiektów i związków między nimi.• Zapytania o obiekty i związki między nimi.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

• Definiowanie obiektów poprzez definiowanie faktów dotyczącychobiektów i związków między nimi.

• Definiowanie reguł dotyczących obiektów i związków między nimi.• Zapytania o obiekty i związki między nimi.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

• Definiowanie obiektów poprzez definiowanie faktów dotyczącychobiektów i związków między nimi.

• Definiowanie reguł dotyczących obiektów i związków między nimi.• Zapytania o obiekty i związki między nimi.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Fakt: Ala lubi kotalubi(ala,kota).

• Nazwy relacji i obiektów muszą zaczynać się małymi literami.• Najpierw zapisujemy relację, a potem, rozdzielone przecinkami i

ujęte w nawias okrągły, obiekty których ona dotyczy.• Fakt kończymy znakiek kropki.• Kolejność obiektów umieszczonych w nawiasie jest dowolna, ale

trzeba stosować ją konsekwentnie. O ile bowiem dobrze znanymfaktem jest to, że Ala lubi swojego kota, to nie oznacza to, że kotten lubi Alę.

• Nazwy obiektów występujących w nawiasach nazywamyargumentami.

• Nazwę relacji znajdującej się przed nawiasem nazywamy predykatem.• Zbiór faktów nazywamy bazą danych.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Fakt: Ala lubi kotalubi(ala,kota).

• Nazwy relacji i obiektów muszą zaczynać się małymi literami.• Najpierw zapisujemy relację, a potem, rozdzielone przecinkami i

ujęte w nawias okrągły, obiekty których ona dotyczy.• Fakt kończymy znakiek kropki.• Kolejność obiektów umieszczonych w nawiasie jest dowolna, ale

trzeba stosować ją konsekwentnie. O ile bowiem dobrze znanymfaktem jest to, że Ala lubi swojego kota, to nie oznacza to, że kotten lubi Alę.

• Nazwy obiektów występujących w nawiasach nazywamyargumentami.

• Nazwę relacji znajdującej się przed nawiasem nazywamy predykatem.• Zbiór faktów nazywamy bazą danych.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Fakt: Ala lubi kotalubi(ala,kota).

• Nazwy relacji i obiektów muszą zaczynać się małymi literami.• Najpierw zapisujemy relację, a potem, rozdzielone przecinkami i

ujęte w nawias okrągły, obiekty których ona dotyczy.• Fakt kończymy znakiek kropki.• Kolejność obiektów umieszczonych w nawiasie jest dowolna, ale

trzeba stosować ją konsekwentnie. O ile bowiem dobrze znanymfaktem jest to, że Ala lubi swojego kota, to nie oznacza to, że kotten lubi Alę.

• Nazwy obiektów występujących w nawiasach nazywamyargumentami.

• Nazwę relacji znajdującej się przed nawiasem nazywamy predykatem.• Zbiór faktów nazywamy bazą danych.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Fakt: Ala lubi kotalubi(ala,kota).

• Nazwy relacji i obiektów muszą zaczynać się małymi literami.• Najpierw zapisujemy relację, a potem, rozdzielone przecinkami i

ujęte w nawias okrągły, obiekty których ona dotyczy.• Fakt kończymy znakiek kropki.• Kolejność obiektów umieszczonych w nawiasie jest dowolna, ale

trzeba stosować ją konsekwentnie. O ile bowiem dobrze znanymfaktem jest to, że Ala lubi swojego kota, to nie oznacza to, że kotten lubi Alę.

• Nazwy obiektów występujących w nawiasach nazywamyargumentami.

• Nazwę relacji znajdującej się przed nawiasem nazywamy predykatem.• Zbiór faktów nazywamy bazą danych.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Fakt: Ala lubi kotalubi(ala,kota).

• Nazwy relacji i obiektów muszą zaczynać się małymi literami.• Najpierw zapisujemy relację, a potem, rozdzielone przecinkami i

ujęte w nawias okrągły, obiekty których ona dotyczy.• Fakt kończymy znakiek kropki.• Kolejność obiektów umieszczonych w nawiasie jest dowolna, ale

trzeba stosować ją konsekwentnie. O ile bowiem dobrze znanymfaktem jest to, że Ala lubi swojego kota, to nie oznacza to, że kotten lubi Alę.

• Nazwy obiektów występujących w nawiasach nazywamyargumentami.

• Nazwę relacji znajdującej się przed nawiasem nazywamy predykatem.• Zbiór faktów nazywamy bazą danych.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Fakt: Ala lubi kotalubi(ala,kota).

• Nazwy relacji i obiektów muszą zaczynać się małymi literami.• Najpierw zapisujemy relację, a potem, rozdzielone przecinkami i

ujęte w nawias okrągły, obiekty których ona dotyczy.• Fakt kończymy znakiek kropki.• Kolejność obiektów umieszczonych w nawiasie jest dowolna, ale

trzeba stosować ją konsekwentnie. O ile bowiem dobrze znanymfaktem jest to, że Ala lubi swojego kota, to nie oznacza to, że kotten lubi Alę.

• Nazwy obiektów występujących w nawiasach nazywamyargumentami.

• Nazwę relacji znajdującej się przed nawiasem nazywamy predykatem.• Zbiór faktów nazywamy bazą danych.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Fakt: Ala lubi kotalubi(ala,kota).

• Nazwy relacji i obiektów muszą zaczynać się małymi literami.• Najpierw zapisujemy relację, a potem, rozdzielone przecinkami i

ujęte w nawias okrągły, obiekty których ona dotyczy.• Fakt kończymy znakiek kropki.• Kolejność obiektów umieszczonych w nawiasie jest dowolna, ale

trzeba stosować ją konsekwentnie. O ile bowiem dobrze znanymfaktem jest to, że Ala lubi swojego kota, to nie oznacza to, że kotten lubi Alę.

• Nazwy obiektów występujących w nawiasach nazywamyargumentami.

• Nazwę relacji znajdującej się przed nawiasem nazywamy predykatem.• Zbiór faktów nazywamy bazą danych.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Fakt: Ala lubi kotalubi(ala,kota).

• Nazwy relacji i obiektów muszą zaczynać się małymi literami.• Najpierw zapisujemy relację, a potem, rozdzielone przecinkami i

ujęte w nawias okrągły, obiekty których ona dotyczy.• Fakt kończymy znakiek kropki.• Kolejność obiektów umieszczonych w nawiasie jest dowolna, ale

trzeba stosować ją konsekwentnie. O ile bowiem dobrze znanymfaktem jest to, że Ala lubi swojego kota, to nie oznacza to, że kotten lubi Alę.

• Nazwy obiektów występujących w nawiasach nazywamyargumentami.

• Nazwę relacji znajdującej się przed nawiasem nazywamy predykatem.• Zbiór faktów nazywamy bazą danych.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Zosia jest matką Gienia. matka(zosia,gienio).Pomidor jest warzywem. warzywo(pomidor).Hania drapie Piotra. drapie(hania,piotr).Hania zjada ciastko Piotrowi. zjada(ciastko,hania,piotr).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Zosia jest matką Gienia. matka(zosia,gienio).Pomidor jest warzywem. warzywo(pomidor).Hania drapie Piotra. drapie(hania,piotr).Hania zjada ciastko Piotrowi. zjada(ciastko,hania,piotr).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Zosia jest matką Gienia. matka(zosia,gienio).Pomidor jest warzywem. warzywo(pomidor).Hania drapie Piotra. drapie(hania,piotr).Hania zjada ciastko Piotrowi. zjada(ciastko,hania,piotr).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Zosia jest matką Gienia. matka(zosia,gienio).Pomidor jest warzywem. warzywo(pomidor).Hania drapie Piotra. drapie(hania,piotr).Hania zjada ciastko Piotrowi. zjada(ciastko,hania,piotr).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Zapytanie?-?- posiada(piotr,ksiazka).Czy Piotr ma książkę?Czy istnieje fakt mówiący, że Piotr ma książkę?Jeśli zostanie znaleziony pasujący do zapytania fakt, wówczas zostaniezwrócona odpowiedź yes; w przeciwnym razie no.no nie oznacza „nie” , ale „nie wiem”.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Zapytanie?-?- posiada(piotr,ksiazka).Czy Piotr ma książkę?Czy istnieje fakt mówiący, że Piotr ma książkę?Jeśli zostanie znaleziony pasujący do zapytania fakt, wówczas zostaniezwrócona odpowiedź yes; w przeciwnym razie no.no nie oznacza „nie” , ale „nie wiem”.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Zapytanie?-?- posiada(piotr,ksiazka).Czy Piotr ma książkę?Czy istnieje fakt mówiący, że Piotr ma książkę?Jeśli zostanie znaleziony pasujący do zapytania fakt, wówczas zostaniezwrócona odpowiedź yes; w przeciwnym razie no.no nie oznacza „nie” , ale „nie wiem”.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Zapytanie?-?- posiada(piotr,ksiazka).Czy Piotr ma książkę?Czy istnieje fakt mówiący, że Piotr ma książkę?Jeśli zostanie znaleziony pasujący do zapytania fakt, wówczas zostaniezwrócona odpowiedź yes; w przeciwnym razie no.no nie oznacza „nie” , ale „nie wiem”.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Zapytanie?-?- posiada(piotr,ksiazka).Czy Piotr ma książkę?Czy istnieje fakt mówiący, że Piotr ma książkę?Jeśli zostanie znaleziony pasujący do zapytania fakt, wówczas zostaniezwrócona odpowiedź yes; w przeciwnym razie no.no nie oznacza „nie” , ale „nie wiem”.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Zapytanie?-?- posiada(piotr,ksiazka).Czy Piotr ma książkę?Czy istnieje fakt mówiący, że Piotr ma książkę?Jeśli zostanie znaleziony pasujący do zapytania fakt, wówczas zostaniezwrócona odpowiedź yes; w przeciwnym razie no.no nie oznacza „nie” , ale „nie wiem”.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

ZapytanieZamiast: Czy Piotr ma książkę?chcemy zapytać: Co ma Piotr?Czyli szukamy odpowiedzi na zapytanie:Wypisz wszystko co ma Piotrlub inaczej:Szukam tego wszystkiego co ma Piotri jeszcze inaczej:Jeśli Piotr ma X, to X jest tym czego szukam.?- posiada(piotr,X)X to nazwa zmiennej

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

ZapytanieZamiast: Czy Piotr ma książkę?chcemy zapytać: Co ma Piotr?Czyli szukamy odpowiedzi na zapytanie:Wypisz wszystko co ma Piotrlub inaczej:Szukam tego wszystkiego co ma Piotri jeszcze inaczej:Jeśli Piotr ma X, to X jest tym czego szukam.?- posiada(piotr,X)X to nazwa zmiennej

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

ZapytanieZamiast: Czy Piotr ma książkę?chcemy zapytać: Co ma Piotr?Czyli szukamy odpowiedzi na zapytanie:Wypisz wszystko co ma Piotrlub inaczej:Szukam tego wszystkiego co ma Piotri jeszcze inaczej:Jeśli Piotr ma X, to X jest tym czego szukam.?- posiada(piotr,X)X to nazwa zmiennej

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

ZapytanieZamiast: Czy Piotr ma książkę?chcemy zapytać: Co ma Piotr?Czyli szukamy odpowiedzi na zapytanie:Wypisz wszystko co ma Piotrlub inaczej:Szukam tego wszystkiego co ma Piotri jeszcze inaczej:Jeśli Piotr ma X, to X jest tym czego szukam.?- posiada(piotr,X)X to nazwa zmiennej

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

ZapytanieZamiast: Czy Piotr ma książkę?chcemy zapytać: Co ma Piotr?Czyli szukamy odpowiedzi na zapytanie:Wypisz wszystko co ma Piotrlub inaczej:Szukam tego wszystkiego co ma Piotri jeszcze inaczej:Jeśli Piotr ma X, to X jest tym czego szukam.?- posiada(piotr,X)X to nazwa zmiennej

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

. . . i . . .lubi(jas,piernik).lubi(jas,malgosia).lubi(malgosia,cukierek).lubi(malgosia,piernik).

?- lubi(jas,malgosia), lubi(malgosia,jas).

Szukam tego wszystkiego co lubi zarówno Jas jak i Małgosia.

?- lubi(jas,X), lubi(malgosia,X).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

. . . i . . .lubi(jas,piernik).lubi(jas,malgosia).lubi(malgosia,cukierek).lubi(malgosia,piernik).

?- lubi(jas,malgosia), lubi(malgosia,jas).

Szukam tego wszystkiego co lubi zarówno Jas jak i Małgosia.

?- lubi(jas,X), lubi(malgosia,X).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

. . . i . . .lubi(jas,piernik).lubi(jas,malgosia).lubi(malgosia,cukierek).lubi(malgosia,piernik).

?- lubi(jas,malgosia), lubi(malgosia,jas).

Szukam tego wszystkiego co lubi zarówno Jas jak i Małgosia.

?- lubi(jas,X), lubi(malgosia,X).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

. . . i . . .lubi(jas,piernik).lubi(jas,malgosia).lubi(malgosia,cukierek).lubi(malgosia,piernik).

?- lubi(jas,malgosia), lubi(malgosia,jas).

Szukam tego wszystkiego co lubi zarówno Jas jak i Małgosia.

?- lubi(jas,X), lubi(malgosia,X).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

. . . lub . . .lubi(jas,piernik).lubi(jas,malgosia).lubi(malgosia,cukierek).lubi(malgosia,piernik).

?- lubi(jas,malgosia); lubi(malgosia,jas).

Szukam tego wszystkiego co lubi Jas lub Małgosia.

?- lubi(jas,X); lubi(malgosia,X).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

. . . lub . . .lubi(jas,piernik).lubi(jas,malgosia).lubi(malgosia,cukierek).lubi(malgosia,piernik).

?- lubi(jas,malgosia); lubi(malgosia,jas).

Szukam tego wszystkiego co lubi Jas lub Małgosia.

?- lubi(jas,X); lubi(malgosia,X).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

. . . lub . . .lubi(jas,piernik).lubi(jas,malgosia).lubi(malgosia,cukierek).lubi(malgosia,piernik).

?- lubi(jas,malgosia); lubi(malgosia,jas).

Szukam tego wszystkiego co lubi Jas lub Małgosia.

?- lubi(jas,X); lubi(malgosia,X).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

. . . lub . . .lubi(jas,piernik).lubi(jas,malgosia).lubi(malgosia,cukierek).lubi(malgosia,piernik).

?- lubi(jas,malgosia); lubi(malgosia,jas).

Szukam tego wszystkiego co lubi Jas lub Małgosia.

?- lubi(jas,X); lubi(malgosia,X).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

nielubi(jas,piernik).lubi(jas,malgosia).lubi(malgosia,cukierek).lubi(malgosia,piernik).

?- lubi(jas,malgosia)?- \+ lubi(malgosia,jas).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

nielubi(jas,piernik).lubi(jas,malgosia).lubi(malgosia,cukierek).lubi(malgosia,piernik).

?- lubi(jas,malgosia)?- \+ lubi(malgosia,jas).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Jaś lubi WSZYSTKIE pieski.

lubi(jas,azorka).lubi(jas,burka).lubi(jas,cyryla)....

Jaś lubi WSZYSTKIE obiekty, które są psami.X jest psem jeśli:

• X jest zwierzęciem i• X ma cztery łapy i• X ma ogon.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Jaś lubi WSZYSTKIE pieski.

lubi(jas,azorka).lubi(jas,burka).lubi(jas,cyryla)....

Jaś lubi WSZYSTKIE obiekty, które są psami.X jest psem jeśli:

• X jest zwierzęciem i• X ma cztery łapy i• X ma ogon.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Jaś lubi WSZYSTKIE pieski.

lubi(jas,azorka).lubi(jas,burka).lubi(jas,cyryla)....

Jaś lubi WSZYSTKIE obiekty, które są psami.X jest psem jeśli:

• X jest zwierzęciem i• X ma cztery łapy i• X ma ogon.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

Jaś lubi WSZYSTKIE pieski.

lubi(jas,azorka).lubi(jas,burka).lubi(jas,cyryla)....

Jaś lubi WSZYSTKIE obiekty, które są psami.X jest psem jeśli:

• X jest zwierzęciem i• X ma cztery łapy i• X ma ogon.

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

RegułaReguła to ogólne stwierdzenie dotyczące obiektów i ich powiązań.

Jaś lubi X jeśli:• X jest zwierzęciem i• X ma cztery łapy i• X ma ogon.

lubi(jas,X) :- zwierze(X), ma(X,lapy,4), ma(X,ogon).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

RegułaReguła to ogólne stwierdzenie dotyczące obiektów i ich powiązań.

Jaś lubi X jeśli:• X jest zwierzęciem i• X ma cztery łapy i• X ma ogon.

lubi(jas,X) :- zwierze(X), ma(X,lapy,4), ma(X,ogon).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

RegułaReguła to ogólne stwierdzenie dotyczące obiektów i ich powiązań.

Jaś lubi X jeśli:• X jest zwierzęciem i• X ma cztery łapy i• X ma ogon.

lubi(jas,X) :- zwierze(X), ma(X,lapy,4), ma(X,ogon).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

RegułaReguła to ogólne stwierdzenie dotyczące obiektów i ich powiązań.

Jaś lubi X jeśli:• X jest zwierzęciem i• X ma cztery łapy i• X ma ogon.

lubi(jas,X) :- zwierze(X), ma(X,lapy,4), ma(X,ogon).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

RegułaReguła to ogólne stwierdzenie dotyczące obiektów i ich powiązań.

Jaś lubi X jeśli:• X jest zwierzęciem i• X ma cztery łapy i• X ma ogon.

lubi(jas,X) :- zwierze(X), ma(X,lapy,4), ma(X,ogon).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

No właśnie, na czym?!FaktyZapytaniai, lub, nieReguły

RegułaReguła to ogólne stwierdzenie dotyczące obiektów i ich powiązań.

Jaś lubi X jeśli:• X jest zwierzęciem i• X ma cztery łapy i• X ma ogon.

lubi(jas,X) :- zwierze(X), ma(X,lapy,4), ma(X,ogon).

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Do zapamiętania

Do zapamiętania• Co oznacza programowanie w logice?• Jak należy rozumieć pojęcie obiektu występujące w PROLOGU? Tak

samo jak w OOP?• Co nazywamy relacją, faktem, regułą?• Jak zapisujemy koniunkcję, alternatywę i negację?

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Do zapamiętania

Do zapamiętania• Co oznacza programowanie w logice?• Jak należy rozumieć pojęcie obiektu występujące w PROLOGU? Tak

samo jak w OOP?• Co nazywamy relacją, faktem, regułą?• Jak zapisujemy koniunkcję, alternatywę i negację?

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Do zapamiętania

Do zapamiętania• Co oznacza programowanie w logice?• Jak należy rozumieć pojęcie obiektu występujące w PROLOGU? Tak

samo jak w OOP?• Co nazywamy relacją, faktem, regułą?• Jak zapisujemy koniunkcję, alternatywę i negację?

Piotr Fulmański Programowanie w logice

Prolog – czym jest?Obiekty i relacje

Na czym polega programowanie w PROLOGU?Podsumowanie

Do zapamiętania

Do zapamiętania• Co oznacza programowanie w logice?• Jak należy rozumieć pojęcie obiektu występujące w PROLOGU? Tak

samo jak w OOP?• Co nazywamy relacją, faktem, regułą?• Jak zapisujemy koniunkcję, alternatywę i negację?

Piotr Fulmański Programowanie w logice