Proces tworzenia prostych prologowych aplikacji przebiega zazwyczaj podobnie. Zaczynamy od stworzenia bazy wiedzy, definiujemy niezbędne predykaty (niekiedy również w tym samym pliku), a następnie odpalamy interpreter i pytamy o fakty oraz łączące je relacje. Czy oznacza to, że zdefiniowana na samym początku baza jest czymś niemodyfikowalnym z punktu widzenia programu? Czy możemy zmieniać fakty przy […]
Read MoreTag: prolog
Podsumowanie prologowego wyzwania
Jak zapowiadałem pod koniec października, moim celem na listopad była nauka języka programowania Prolog. Czytałem książki i opracowania, pisałem kod, szukałem realnych zastosowań tej technologii. Czas nie pozwolił mi na zgłębienie w ciągu miesiąca tyle wiedzy, ile bym pragnął, jak również nie udało mi się opublikować wszystkich wpisów w zamierzonym okresie. Naocznym rezultatem mojego wyzwania […]
Read MoreRelacje przechodnie w Prologu
W jednym z wcześniejszych wpisów poruszałem temat definiowania relacji symetrycznych w języku Prolog. Rozwiązaniem problemu okazało się tam zdefiniowanie relacji pomocniczej, dzięki której pozbywaliśmy się nieskończonej pętli wywołań. Podobnie jest i w tym przypadku, bowiem i tu definiowanie takiej relacji w sposób „naiwny” i „naturalny” nie zdaje egzaminu. Rozważmy taki oto przykład, w którym szeregujemy kraje […]
Read MoreRealne zastosowania języka Prolog
Trudno nie zgodzić się z opinią, że Prolog jest językiem pod wieloma względami ciekawym. Chociażby dlatego, iż reprezentuje on paradygmat programowania logicznego, który zdecydowanie nie należy do najczęściej używanych. Sądzę, że owa odmienność od tego, z czym mamy styczność na co dzień jest jednym z powodów, dla których warto poznać pewne podstawy Prologa. Zyskujemy w […]
Read MoreRelacje symetryczne w Prologu
Jeśli potrzebujemy zdefiniować jakąś relację (dajmy na to małżeństwo) jako symetryczną, to posługując się językiem logiki matematycznej możemy ją zapisać mniej więcej tak:
Read More