Làm việc với SWI-Prolog 1 Đặt câu hỏ

Một phần của tài liệu BIỂU DIỄN DỮ LIỆU SUY DIỄN VÀ ỨNG DỤNG (Trang 48)

IV. Chương V I: CHƯƠNG TRÌNH ỨNG DỤNG

3Làm việc với SWI-Prolog 1 Đặt câu hỏ

1 Đặt câu hỏi

Sau khi một chương trình Prolog được biên dịch hoặc được tải vào bộ nhớ, NGƯỜI DÙNG có thể đặt câu hỏi truy vấn ( kết thúc bằng một dấu chấm ) tùy theo câu hỏi , Prolog sẽ trả lời đúng (Yes), hoặc sai (No) và kèm theo kết quả X= value, nếu trong đích có chứa biến X nào đó. Trong trường hợp có nhiều câu trả lời , ngay sau kết quả trả lời đầu tiên, người dùng có thể đặt một dấu chấm phẩy, nếu muốn tiếp tục Swi-Prolog đưa ra các câu trả lời khác. Tiếp tục quá trình này, Prolog lần lượt đưa các kết quả khác nhau cho đến khi, hoặc prolog trả lời No, Thì có nghĩa là không còn câu trả lời nào nữa, hoặt Yes nếu muốn dừng lại bằng cách gõ Enter. Người dùng có thể nhận được thông báo lỗi nếu câu hỏi có vấn đề

Error : Undefinde proceduce <…/…> % người dùng đã gõ sai thủ tục hoặc

12)Chạy chương trình demo

Sau đây là ví dụ chạy chương trình demo likes.pl của SWI-Prolog. Nội dung tệp Likes.pl như sau

%% Demo coming from http://clwww.essex.ac.uk/course/LG519/2-facts/index_18.html %%

%% Please load this file into SWI-Prolog %%

%% Sam's likes and dislikes in food %%

%% Considering the following will give some practice %% in thinking about backtracking.

%% ?- likes(sam,dahl). %% ?- likes(sam,chop_suey). %% ?- likes(sam,pizza). %% ?- likes(sam,chips). %% ?- likes(sam,curry). likes(sam,Food) :- indian(Food), mild(Food). likes(sam,Food) :- chinese(Food). likes(sam,Food) :- italian(Food). likes(sam,chips). indian(curry). indian(dahl). indian(tandoori). indian(kurma). mild(dahl). mild(tandoori). mild(kurma). chinese(chow_mein). chinese(chop_suey).

Sau khi tệp likes.pl được tải vào bộ nhớ, Người dùng đặt các câu hỏi và nhận được kết quả sau

Một phần của tài liệu BIỂU DIỄN DỮ LIỆU SUY DIỄN VÀ ỨNG DỤNG (Trang 48)