3 CHƯƠNG III – XÂY DỰNG MÔ HÌNH TRI THỨC VÀ CÀI ĐẶT ỨNG DỤNG
3.2.1 Tập các khái niệm (C-Object)
Mỗi khái niệm được lưu trữ với cấu trúc:
<tên khái niệm>
attributes
<tên thuộc tính> : <kiểu thuộc tính>
facts
<danh sách các sự kiện>
formularelation
<danh sách các quan hệ tính toán>
<danh sách các quan hệ tính toán phụ thuộc>
rules
<danh sách các luật>
Trong đó:
- Tên thuộc tính là các chuỗi kí tự liên tục không có khoảng trắng và kí tự đầu tiên phải in hoa
- Kiểu thuộc tính là tên kiểu đã được định nghĩa bởi ngôn ngữ lập trình (Maple) hoặc các kiểu đã được định nghĩa trước đó (mỗi khái niệm mới sẽ được định nghĩa là 1 kiểu dữ liệu mới)
- Mỗi sự kiện trong danh sách các sự kiện được trình bày thành từng hàng, mỗi sự kiện phải thuộc 10 trong 10 kiểu sự kiện đã được trình bày ở phần trên.
- Các luật trong tập rules được viết dưới dạng
if {<danh sách các sự kiện cần có>} then {<danh sách các sự kiện thu được>}
Mẫu ví dụ về biểu diễn khái niệm Chất (SUBSTANCE):
SUBSTANCE attributes
Symbol : string # ký hiệu
Formula : TChemistryFormula # công thức hóa học
EC : integer # điện tích của chất
M : numeric # phân tử khối
# các thuộc tính trong bài toán
m : numeric # khối lượng (mass)
n : numeric # số mol (moles)
V : numeric # thể tích (volume)
d : numeric # khối lượng riêng
# tính chất vật lý
Solubility : boolean # tính tan của dung dịch
PhysicalState : name # trạng thái vật lý: rắn, lỏng, khí
Temperature : numeric # nhiệt độ hiện tại (25 C)
EvaporativeT : numeric # nhiệt độ bay hơi
MeltingT : numeric # nhiệt nóng chảy
CQuantity : name # constraints quantity
facts M > 0
m > 0
n > 0
PhysicalState in { CSolid, CLiquid, CGas } formula relations
n = m / M n = V / 22.4
depend formula relations rules
# luật xác định đối tượng
if { determined(Formula) } then { determined(this) } # luật xác định công thức hóa học
if { determined(Symbol) and undetermined(Formula) } then
{ test(Formula = ParseChemistryFormula(Symbol)) } if { determined(Formula) and undetermined(M) } then
{ test( M = Formula2M(Formula) ) } # xác định tính tan và trạng thái vật lý
if { test(Temperature >= EvaporativeT) } then { PhysicalState = "GAS" } if { test(Temperature >= MeltingT) } then { PhysicalState = "SOLID" } if { test(Temperature < EvaporativeT) and
test(Temperature > MeltingT) } then { PhysicalState = "LIQUID" }