Co to jest język Prolog?
Prolog to komputerowy język programowania oparty na logice. Większość języków komputerowych opiera się na czynnościach niezbędnych do rozwiązania problemu. Z drugiej strony język Prolog jest językiem „deklaratywnym”, który wskazuje na logiczne relacje między jednostkami. Sposób rozwiązania problemu należy do komputera. Nazwa Prolog pochodzi od francuskiego PROgrammation en LOGique, czyli PROgramming LOGic.
Oto prosty program Prolog:
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 truizmy. Jeśli F jest ojcem C, to F jest przodkiem C. Jeśli P jest ojcem jakiejś osoby R, która jest przodkiem Q, to P jest przodkiem Q. Podaje się wtedy kilka prawdziwych faktów, takich jak: John jest ojcem Jim. Jeśli wówczas pojawi się problematyczne pytanie, czy John jest przodkiem Jeffa, otrzymamy odpowiedź „Tak”, jak poniżej:
? - przodek (John, Jeff).
tak
Jeśli przodkowie Jozuego są zainteresowani, 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 przeprowadzić ocenę. Na przykład nie wskazywał, czy zacząć od starszej osoby i czy dotrzeć do młodszej osoby, czy odwrotnie. Również zamieniaj części, jak poniżej:
przodek (P, Q): - przodek (R, Q), ojciec (P, R)
Nie miałoby to żadnego znaczenia dla programu, ponieważ obie 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 wykonywania programu Prolog tworzy wiele prawdziwych instrukcji, tworząc bazę wiedzy. W powyższym przykładzie baza wiedzy, w żadnej określonej kolejności, miałaby przodka (John, Jim), przodka (Jim, Jerry), przodka (John, Jerry), przodka (Jim, Jason), przodka (John, Jason), przodka (John, Jason), i tak dalej. Ta baza wiedzy może się powiększać w miarę działania programu i może być skutecznie przeszukiwana w celu uzyskania rozwiązań. Wykonanie może wykorzystywać przetwarzanie równoległe, jednoczesne wykonywanie przez wiele komputerów.
Język Prolog jest używany w wielu obszarach. Zaczęło się od systemów dostosowanych do języków naturalnych, takich jak angielski; język naturalny jest jednym z obszarów sztucznej inteligencji. Język Prolog jest również używany w matematyce symbolicznej, w tym w algebrze. Jest stosowany w dowodzeniu twierdzeń, w systemach eksperckich i systemach sterowania, wśród wielu innych aplikacji.