Download - Prolog - Input and output
![Page 1: Prolog - Input and output](https://reader035.vdocuments.us/reader035/viewer/2022072014/56812fa4550346895d952291/html5/thumbnails/1.jpg)
Prolog - Input and output
• Prolog uses the write predicate to present output to the user.
• Prolog uses the read predicate to read Terms from standard input. Standard involve must be followed by a period.
• LPA Prolog has the ability to create and manipulate dialog boxes.
test :-
write('Enter an atom'),
nl,
read(Atom),
atom(Atom),
assertz(Atom),
call(Atom),
listing.
NOTE: Some new built in predicates are introduced here.
![Page 2: Prolog - Input and output](https://reader035.vdocuments.us/reader035/viewer/2022072014/56812fa4550346895d952291/html5/thumbnails/2.jpg)
Listing the contents
• You can use the listing predicate to list all dynamic predicates loaded.
• Alternately you can use a combination of write and the fail predicate.
• See capitals.pl
capital_of(georgia,atlanta).
capital_of(california,sacramento).
capital_of(florida,tallahassee).
capital_of(maine,augusta).
print_capitals :-
capital_of(State,City),
write(City), write(‘ is the capital of),
write(State), nl,
fail.
![Page 3: Prolog - Input and output](https://reader035.vdocuments.us/reader035/viewer/2022072014/56812fa4550346895d952291/html5/thumbnails/3.jpg)
Loading Prolog terms
• To load clauses from the listing file into the Prolog interpreter use consult or reconsult
• ensure_loaded can be used to automatically load files when a buffer is being consulted.
• You can use the compiler directive :- in front of any of these commands and they will be carried out as a buffer is being re-consulted.
![Page 4: Prolog - Input and output](https://reader035.vdocuments.us/reader035/viewer/2022072014/56812fa4550346895d952291/html5/thumbnails/4.jpg)
File handling
• This see predicate is used to stream input from a file.
• After the see predicate all reads refer to the input stream from the file.
• seen is used to close input stream.
• That tell predicate is used to redirect output to a file.
• All subsequent write statements are redirected to the file named in tell predicate.
• told closes the output stream.
You can see these features in learner.pl used with kb.pl
![Page 5: Prolog - Input and output](https://reader035.vdocuments.us/reader035/viewer/2022072014/56812fa4550346895d952291/html5/thumbnails/5.jpg)
A sample Expert system
• See car.pl• Basic Components
– Inference Engine (Prolog’s built in backward chaining).
– Knowledge base defect_may_be/1.
– Knowledge acquisition mechanism ask_questions/1.
– Recording what the user answers stored_answer/2.
– An explanation facility explain/1.