Co to jest język prolog?
Prolog to język programowania komputerowego oparty na logice. Większość języków komputerowych opiera się na krokach potrzebnych do rozwiązania problemu. Z drugiej strony język prolog jest językiem „deklaratywnym”, który wskazuje logiczne relacje między bytami. Sposób rozwiązania problemu jest pozostawiony komputerowi. Nazwa Prolog pochodzi od francuskiego programu logiki, to znaczy logika programowania.
Poniżej znajduje się prosty program prologii:
przodek (f, c):- ojciec (f, c)
Przodek (P, Q):- Ojciec (P, R), Przodek (R, Q)
Ojciec (John, Jim).
Ojciec (Jim, Jerry).
Ojciec (Jerry, Jason).
Ojciec (Jerry, Jeff).
Ojciec (Jason, Joshua).
Powyższy program wskazuje na truizm. Jeśli F jest ojcem C, to F jest przodkiem C. Jeśli P jest ojcem jakiejś osoby, która jest przodkiem Q, to P jest przodkiem Q. Podano wówczas szereg prawdziwych faktów, takich jak Jan jest ojcem Jima. Jeśli wówczas pojawia się pytanie, czy Jan jestPrzodek Jeffa, otrzymujemy odpowiedź „Tak”, jak poniżej:
?- przodek (John, Jeff).
Tak
Jeśli przodkowie Jozuego są interesujący, wówczas program wyświetla wszystkich przodków w następujący sposób:
?- przodek (A, Joshua)
A = Jason
A = Jerry
A = Jim
A = John
Zauważ, że w obu powyższych przypadkach program nie powiedział, jak dokonać oceny. Na przykład nie wskazało, czy zacząć od osoby starszej i przejść do młodszej osoby, czy odwrotnie. Również wymiany części jak poniżej:
Przodek (P, Q):- Przodek (R, Q), Ojciec (P, R)
nie miałoby to znaczenia dla programu, ponieważ obie te części po prawej stronie muszą być prawdziwe, aby lewa strona była prawdziwa.
Język prolog koncentruje się zatem na relacjach, a nie na tym, jak rozwiązać problem. Podczas realizacji programu Prolog buduje szereg prawdziwych stanówMent, tworzenie bazy wiedzy. W powyższym przykładzie baza wiedzy, w żadnej konkretnej kolejności, byłaby przodka (John, Jim), przodek (Jim, Jerry), przodek (John, Jerry), przodek (Jim, Jason), przodek (John, Jason) i tak dalej. Ta baza wiedzy może nadal się rozwijać w miarę wykonywania programu i można ją skutecznie wyszukiwać w celu uzyskania rozwiązań. Wykonanie może zastosować przetwarzanie równoległe, jednoczesne wykonywanie przez wiele komputerów.
Język prolog jest używany w wielu obszarach. Zaczęło się w systemach ukierunkowanych na języki naturalne, takie jak angielski; Język naturalny jest jednym z obszarów sztucznej inteligencji. Język prolog jest również używany w symbolicznej matematyce, w tym algebrze. Jest używany do udowodnienia twierdzeń, w systemach ekspertów i w systemach sterowania, wśród wielu innych aplikacji.