5.1.2.1 Khai báo sự kiện:
5.1.2.1.1 Khai báo giá trị cho sự kiện:
Cú pháp:
fact
[not] Tên_sự_kiện;
[not] Tên_sự_kiện( Tham_số_1, Tham_số_2, …);
Mục đích: khai báo tên và giá trị ban đầu cho sự kiện. Giá trịởđây là giá trị ban đầu của sự kiện hay biến dữ liệu (và do đĩ đây là giá trị của sự kiện hay biến dữ liệu trong suốt quá trình suy diễn). Chúng ta sử dụng cú pháp trên để khai báo cho các sự kiện nguyên thủy ban đầu trong hệ cơ sở tri thức hay gán các giá trị định danh cho biến dữ liệu định danh.
Để khai báo các sự kiện quạn hệ 2 hay nhiều ngơi, ta đưa quan hệ ra làm tên của sự kiện và đưa các đối tượng quan hệ làm các tham số cho sự kiện đĩ, sử dụng cú pháp khai báo số 2.
Ví dụ: khi cần khai báo cho các sự kiện • "Thủy sinh Mộc" ,
• "Thủy khắc Hỏa" • …
KHOA CNTT – ĐH KHTN 86 Sinh(Thủy, Mộc) Khắc(Thủy,Hỏa) …
Tương tự như thế cho các sự kiện nguyên thủy ban đầu.
5.1.2.1.2 Khai báo mơ tả cho sự kiện:
Cú pháp
fact_define
Tên_sự_kiện: Định nghĩa;
Mục đích: dùng để khai báo một định nghĩa cho một sự kiện. Mơ tả trong trường hợp này là một câu cĩ nghĩa (cĩ sử dụng khoảng trắng và dấu tiếng Việt), chuỗi này dùng để giải thích cho sự kiện. Ta dùng cú pháp trên để khai báo các giải thích cho những sự kiện suy diễn được (những sự kiện kết luận), như thế, sau quá trình suy diễn ta sẽ thu được những câu giải thích cho việc dữđốn của mình. Và chương trình sẽ lấy và hiển thị kết luận từ bên trong động cơ.
5.1.2.2 Khai báo kiểu dữ liệu:
Cú pháp type
Tên_kiểu= (Tên_Kiểu_1 Trường_1, Tên_Kiểu_2 Trường_2,…) Mục đích: khai báo một kiểu cĩ cấu trúc. Các kiểu bên trong cĩ thể là một kiểu cĩ cấu trúc khác.
Ví dụ:
• khai báo cho kiểu can (chứa thơng tin về can của bát tự), các thơng tin bao gồm tên của can, hành, nghi và thần của trụ.
kcan= (symbol ten, symbol hanh, symbol nghi, symbol than) • khai báo cho kiểu trụ: bao gồm 1 thiên can và 1 địa chi cho mỗi trụ
KHOA CNTT – ĐH KHTN 87 5.1.2.3 Khai báo biến dữ liệu Cú pháp: var Tên_kiểu Tên_biến;
Mục đích: khai báo 1 biến dữ liệu. Các biến dữ liệu cĩ thểđược gán (lấy) giá trị từ bên ngồi, hoặc được gán (lấy) giá trị bên trong động cơ trong quá trình suy diễn. 5.1.2.4 Khai báo luật: Cú pháp: rule [group Tên_nhĩm_luật] if <Điều kiện> then <Kết quả> Mục đích: khai báo 1 luật. <Điều kiện> và <Kết quả> là những biểu thức logic. Khi suy diễn, động cơ sẽ lượng giá điều kiện (và cả kết quả) của luật, nếu thỏa điều kiện thì biểu thức kết quả sẽđược thực hiện. Luật trên thỏa khi:
• <điều kiện> của luật là đúng
• và <kết luận> phải thỏa theo cách lượng giá đặc biệt trình bày bên dưới. Biểu thức logic cĩ thể cĩ một trong các dạng sau:
• Dạng 1:
[not] Tên_sự_kiện hay
[not] Tên_sự_kiện(Tham_số_1, Tham_số_2…)
Các tham số cĩ thể là ký hiệu hay là tên biến dữ liệu. Nếu là tên biến dữ liệu thì giá trị của dữ liệu sẽđược thay vào khi tính tốn.
o Đối với biểu thức điều kiện: khi lượng giá, động cơ sẽ tìm kiếm sự kiện trên trong tập sự kiện và lấy giá trị của sự kiện thay vào biểu
KHOA CNTT –
ĐH KHTN
88
thức lượng giá. Nếu nhưđộng cơ khơng tìm thấy sự kiện trên thì giá trị mặc nhiên false sẽđược thay vào vị trí biểu thức (giả thiết về thế giới đĩng).
o Đối với biểu thức kết quả:
• kết luận của luật được xem là thỏa khi và chỉ khi sự kiện khai báo trong kết luận chưa được gán giá trị.
• nếu luật thỏa, <kết luận> được thực hiện bằng cách gán giá trị cho sự kiện.
• Dạng 2: Vế_trái Tốn_tử Vế_phải;
o Vế trái, vế phải là những biểu thức symbol. o Tốn tử bao gồm các phép so sánh {=,<>}
o Biểu_thức_symbol cĩ thể là một ký hiệu (symbol), một tên biến hay một biểu thức cĩ chứa biến…
o Đối với biểu thức điều kiện: điều kiện được lượng giá dựa trên phép so sánh giá trị giữa hai vế.
o Đối với biểu thức kết quả: vế_trái phải là một tên biến, tốn tử chỉ nhận phép so sánh =
kết luận chỉ được xem là thỏa khi biến dữ liệu chưa cĩ giá trị (từ bên ngồi đưa vào hay trong quá trình suy diễn). nếu luật thỏa, giá trị của vế phải được gán cho biến ở vế trái. • Dạng 3: dạng nối liền
Điều_kiện_1 and Điều_kiện_2 …
o Điều_kiện_i là những biểu thức dạng 1 hay dạng 2, được nối với nhau bằng phép nối and.
o Đối với biểu thức điều kiện: giá trị của biểu thức được tính tốn dựa trên phép nối and giữa giá trị các vế.
o Đối với biểu thức kết luận: nếu luật thỏa thì tất cả các biểu thức trong kết luận sẽđược thực hiện.
KHOA CNTT –
ĐH KHTN
89
5.1.2.5 Khai báo các siêu luật
Cú pháp: meta
refer Nhĩm_luật_trước to Nhĩm_luật_sau