16 October 2011

Knowledge Representation (Application Prolog)

ความรู้ (Knowledge) หมายถึง ความเข้าใจในเชิงทฤษฎีและปฏิบัติ ในขอบเขตเรื่องใดเรื่องหนึ่ง(Domain)
เชิงทฤษฎีมี Data  เชิงปฏิบัติมี Rules

ถ้าพูดถึง เรื่องนี้ คงไม่แค้วภาษา Prolog นี้เนี้ย เป็นภาษามีหลักการไม่เหมือนชาวบ้านเค้าเลย ผมว่าเป็นภาษาที่ คนต่างดาวมาสร้างภาษาไว้แน่นอน ครับ 5555555++++ 
ตัวอย่าง Code 
% From the book
% PROLOG PROGRAMMING IN DEPTH
% by Michael A. Covington, Donald Nute, and Andre Vellino
% (Prentice Hall, 1997).
% Copyright 1997 Prentice-Hall, Inc.
% For educational use only

% File CAPITALS.PL or KB.PL
% Knowledge base for several examples in Chapter 2

:- dynamic(capital_of/2).      % Remove if not needed. See text, section 2.8.

capital_of(georgia,atlanta).
capital_of(california,sacramento).
capital_of(florida,tallahassee).
capital_of(maine,augusta).

print_a_capital :- capital_of(State,City), write(City), write(' is the capital of '), write(State), nl.

print_capitals :- print_a_capital, fail.
print_capitals.
% From the book
% PROLOG PROGRAMMING IN DEPTH
% by Michael A. Covington, Donald Nute, and Andre Vellino
% (Prentice Hall, 1997).
% Copyright 1997 Prentice-Hall, Inc.
% For educational use only

% File CAPITALS.PL or KB.PL
% Knowledge base for several examples in Chapter 2

:- dynamic(capital_of/2).      % Remove if not needed. See text, section 2.8.

capital_of(georgia,atlanta).
capital_of(california,sacramento).
capital_of(florida,tallahassee).
capital_of(maine,augusta).

print_a_capital :- capital_of(State,City), write(City), write(' is the capital of '), write(State), nl.

print_capitals :- print_a_capital, fail.
print_capitals.
แหล่งข้อมูลเอาไว้ อ่านครับ http://samet.skru.ac.th/~tsasalak/ai/lab.htm

Download Prolog ที่ http://www.swi-prolog.org/download/devel



เริ่มต้นกันเลยดีกว่า อิอิ ^^ 

เปิดโปรแกรม SWI-Prolog ขึ้นมา ไป File--->New


จะได้ หน้าต่างให้บันทึก ให้เป็น *.pl นะครับ  แล้วคลิก Save


จากนั้น มีหน้าต่าง Editor ให้เรา เขียน code นะครับ  เมื่อเขียน Code เสร็จ ไปที่
Compile ---> Make , Compile----> Compile buffer

จากนั้นคลิกไปที่หน้าต่างหลักของ SWI-Prolog จะเห็นว่ามีการ Compile แล้ว
ลองทดลองป้อน คำถามเข้าไป ว่า  Capital_of(maine,augusta).  ต้องมีจุด เพื่อบอกว่าจบคำสั่งนะครับ ในการพิมพ์คำถามสามารถ Tab ได้ครับ


จะได้คำตอบ ว่า True เพราะว่าการเรากำหนดข้อเท็จจริงไว้ 

ในภาษา Prolog นั้นการตอบคำถาม นั้น เมื่อมีการกำหนดค่าข้อเท็จจริงไว้จะตอบตามนั้น แต่ถ้าไม่ได้กำหนดข้อเท็จจริงไว้ แล้วจะตอบเป็นเท็จ (False) เสมอ ครับ 

Download เอกสารได้ https://sites.google.com/site/strumjub/internet

1 comment:

  1. The popularity of the Rakish structure has been referenced a piece as of now. The applications created in it have publicized its coolness without additional promoting. Be that as it may, as clients, we just partake in the accommodation of utilizing those. As business visionaries, thinking about the following beneficial item to pour the market down, we realize that there is time, cash, and notoriety to contribute. This actually intends that "since it's cool" won't be persuading enough when the assets are in question>> angular developer salary per hour

    ReplyDelete