Chương trình cho phép người dùng chọn (i) dịch chương trình; (ii) khai thác. Người dùng sẽ cho đích suy luận vào cửa sổ GOAL. Nếu không, xuất hiện thông báo “thiếu đích”.
Nếu khai thác, rồi xem OUPUT, sẽ thấy thông báo của việc dịch và khai thác chương trình Datalog.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trong phần dưới chương trình, có thể thấy :
Các quan hệ, hay các vị từ EDB và IDB. Khi chọn một trong các quan hệ, bên cạnh sẽ hiện ra dữ liệu của quan hệ đó.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Quay lại cơ sở dữ liệu quan hệ, các quan hệ IDB được cập nhật, với số bộ như thể hiện trong chương trình Datalog. Xử lí dữ liệu trong hệ quản trị cơ sở dữ liệu này là quen thuộc đối với người dùng.
Một số tệp trung gian : Trong thư mục TEMP của phần mềm, có các tệp liên quan đến chương trình Datalog vừa xét.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trong đó tệp mô tả phụ thuộc cho biết :
digraph PREDICATES_DEPENDENCIES { a0 [label = "totien"]; a1 [label = "cha"]; a0 -> a1; a0 -> a0; a0 -> a1; } Có tệp dạng XML.
Tệp GRAMMAR cho thấy văn phạm dùng cho DQL. <z!> ::= <program> <end>
<program> ::= <p1> <p2>
<p1> ::= <declare section> | <rules section> | <restriction section> | <goal section>
<p2> ::= <program> | <lambda>
<declare section> ::= <declare#> <ds> ; <ds> ::= <predicate declaration!> <ds1> <ds1> ::= <ds> | <lambda>
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
<predicate declaration!> ::= <predicate scheme!> <predicate kind> ;
<predicate scheme!> ::= <name?> (<field list>) <field list> ::= <field!> <fl1>
<fl1> ::= <fl2> | <lambda> <fl2> ::=, <field list>
<field!> ::= <primary field> | <common field> <primary field> ::= <common field> <pkey#> <common field> ::= <field name?> <type>
<type> ::= <complex type> | <simple type>
<complex type> ::= <string#> [ <integer constant?> ] <simple type> ::= <counter#> | <int#> | <real#> | <date#> | <string#>
<predicate kind> ::= <ext#> | <lambda> <rules section> ::= <rules#> <rs>
<rs> ::= <rule!> <rs1> <rs1> ::= <rs> | <lambda>
<restriction section> ::= <restrictions#> <rss> <rss> ::= <restriction!> <rss1>
<rss1> ::= <rss> | <lambda>
<restriction!> ::= <restriction1> | <restriction2> <restriction1> ::= <incorr_db#> (<argument!>) :- <body> ;
<restriction2> ::= <:-#> <body> ;
<rule!> ::= <predicate!> :- <body> ; <predicate!> ::= <name?> (<arguments>)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
<arguments> ::= <argument!> <args1> <args1> ::= <args2> | <lambda>
<args2> ::=, <arguments>
<body> ::= <predicate or attributive> <b1>
<predicate or attributive> ::= <~ full attributive!> | <full attributive!> | <~ partial attributive!> | <partial attributive!> | <predicate!>
<~ full attributive!> ::= ~ [ <body> ] <full attributive!> ::= [ <body> ]
<~ partial attributive!> ::= ~ { <body> } <partial attributive!> ::= { <body> } <b1> ::= <b2> | <lambda>
<b2> ::=, <body>
<argument!> ::= <t!> <e1!>
<e1!> ::= <e2> | <e3> | <lambda> <e2> ::= + <argument!> <e3> ::= - <argument!> <t!> ::= <m!> <t1!> <t1!> ::= <t2> | <t3> | <lambda> <t2> ::= * <t!> <t3> ::= / <t!> <m!> ::= <s!> <m1!> <m1!> ::= <m2> | <lambda> <m2> ::= ^ <m!> <s!> ::= <s1> | <s2> <s1> ::= - <s2>
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
<s2> ::= <variable?> | <real constant?> | <integer constant?> | <string constant?> | <atom> |
<null_function> | <function> <atom> ::= ( <argument!> )
<function> ::= <name?> (<func_arguments>) <func_arguments> ::= <argument!> <args1> <null_function> ::= <name?> ()
<goal section> ::= <goal#> <goal!> <goal!> ::= <abbr_goal> | ? <name?> (<simple_arguments>) ;
<abbr_goal> ::= ? <name?> ;
<simple_arguments> ::= <simple_argument!> <simple_args1>
<simple_args1> ::= <simple_args2> | <lambda> <simple_args2> ::=, <simple_arguments>
<simple_argument!> ::= <variable?> | <real constant?> | <integer constant?> | <string constant?>
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
2.5. Kết luận
Chương 2 cho thấy công cụ cho phép xử lí tri thức trong cơ sở dữ liệu quan hệ. Ngôn ngữ DQL sẽ được sử dụng trong ứng dụng thực tế tại trường Cao đẳng sư phạm Yên Bái, trong chương 3.
Ngôn ngữ DQL mới thể hiện một số khái niệm sơ lược. Người ta có một vài nhận xét sau :
DQL chỉ có một số khả năng, thể hiện luật, điều kiện ràng buộc;
Người sử dụng chưa được mô tả các sự kiện như trong chương
trình Prolog, mà mô tả trong cơ sở dữ liệu ACCESS;
DQL chưa phổ biến, nên có nhiều lỗi người dùng không tự sửa
được.
Trong phạm vi đơn giản của vấn đề quản lý sinh viên, học viên tại cơ sở, ngôn ngữ DQl và công cụ suy diễn trong hệ quản trị cơ sở dữ liệu ACCESS đáp ứng yêu cầu đặt ra.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Chương 3 –
SUY DIỄN VỚI KẾT QUẢ ĐÀO TẠO
Chương 3 dành cho vấn đề thực tế cần giải quyết tại Trường cao đẳng sư phạm Yên bái. Một số tìm hiểu lí thuyết trong các chương trước được ứng dụng để giải quyết vấn đề thực tế.