Biểu diễn dữ liệu: cỏc lớp Predicate, Literal, Model và Program

Một phần của tài liệu Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic (Trang 72 - 74)

Phần này mụ tả cỳ phỏp và ngữ nghĩa của DLV. Chương trỡnh logic phõn biệt (DLV input) là một tập hữu hạn cỏc luật; cỏc mụ hỡnh biểu diễn cho lời giải của chương trỡnh (DLV output) là cỏc tập phần tử nền.

Ta sẽ xem xột cỏch liờn kết vào ra của DLV với thư viện hướng đối tượng. Đầu tiờn là cỏc thư viện Literal Predicate, mụ hỡnh húa cỏc vị từ

nền và cỏc dạng cơ bản của nú (cỏc phần tử nền). Sau đú là cỏc lớp Model

Program tương ứng với mụ hỡnh húa vào ra của DLV. Cần chỳ ý rằng, cỏc phần tử nền cú thể là một phần của một chương trỡnh logic. Ta sử dụng cỏc

lớp LiteralPredicate để điều khiển dễ dàng hơn cả dữ liệu vào và ra của DLV.

Lớp Literal: Lớp Literal mụ hỡnh húa cỏc phần tử nền. Nú cung cấp cỏc phương phỏp truy nhập và thay đổi toỏn hạng và xỏc nhận liệu một phần tử là khẳng định hay khụng và tạo ra dạng bự của nú. Lớp Literal là lớp con của lớp Predicate. Do đú, cỏc đối tượng Literal cú quan hệ gần với cỏc đối tượng của Predicate.

Lớp Predicate: Lớp Predicate mụ hỡnh húa cỏc vị từ nền. Lớp Predicate là một cụng cụ mạnh, cho phộp người lập trỡnh Java quản lý dữ liệu được sử

dụng làm dữ liệu vào của DLV và xử lý dữ liệu ra của DLV. Nú cung cấp việc truy nhập đầy đủ để xỏc định cỏc đặc điểm như là tờn của vị từ, bậc và kớch thước. Hơn thế nữa, nú cung cấp hai giao diện hiệu quảđể truy nhập đến cỏc phần tử nền. Giao diện thứ nhất bắt nguồn từ giao diện nổi tiếng

javạutil.Enumeration và giao diện thứ hai cú cơ sở từ giao diện

javạsql.ResultSet thuộc JDBC.

Cỏc giao diện này đưa ra cỏc điều khiển đầy đủ cho việc tớnh toỏn với cỏc vị từ nền. Enumeration-like hữu ớch nếu ta muốn truy nhập trực tiếp vào cỏc đối tượng Literal. ResultSet-like cú thể giỳp người lập trỡnh Java chuyờn lập trỡnh cơ sở dữ liệu và JDBC cú thể quản lý cỏc vị từ nền theo cỏch tốt nhất.

Mặc dự cỏc cột trong bảng cơ sở dữ liệu cú tờn và kiểu, nhưng cỏc thụng tin kiểu này khụng tồn tại trong cỏc tham số của vị từ. Để thực hiện đầy

đủ giao diện ResultSet-like, ta cú thờm lớp PredicateMetaData. Lớp

PredicateMetaData ỏnh xạ tờn và kiểu dữ liệu đến mỗi tham số trong một vị

từ. Bằng cỏch sử dụng kiểu thụng tin này, ta thực hiện cỏc phương thức giống như int getInt(String name) để khụi phục thụng tin, từ hàng hiện tại (phần tử

một giỏ trị nguyờn. Một ỏnh xạ PredicateMetaData chỉ được yờu cầu thực hiện một số phương thức đặc biệt trong giao diện ResultSet-like, và về mặt tổng quỏt nú khụng cú tớnh chất bắt buộc.

The Model class Lớp Model biểu diễn cỏc mụ hỡnh là kết quả DLV (tức là cỏc tập trả lời). Do cỏc mụ hỡnh là cỏc tập vị từ nền, lớp Model thực hiện một tập cỏc đối tượng Predicate. Ta cú thể khụi phục cỏc đối tượng Predicate bờn trong Model, cú thể xỏc định tờn của nú (sử dụng phương thức getPredicate) hoặc theo một cỏch tuần tự, ta cú thể lựa chọn một trong hai phương thức, một thuộc giao diện javạutil.Enumeration, một thuộc giao diện

javạsql.ResultSet. Một hằng số tĩnh “NO_Model” cho phộp biểu diễn một chương trỡnh khụng cú mụ hỡnh nàọ Ta cú thể kiểm tra một đối tượng Model

cú tờn là m cú mụ hỡnh hay khụng bằng cỏch gọi phương thức m.isNoModel()

hoặc kiểm tra m == Model.NO_ Model.

The Program class Lớp Program mụ hỡnh húa cỏc chương trỡnh logic. DLV cú một cơ cấu mềm dẻo để biểu diễn chương trỡnh đầu vàọ Nú cho phộp chia một chương trỡnh logic thành nhiều file văn bản. Lớp Program đó mở rộng cơ

cấu nàỵ Trờn thực tế, nú cũng cho phộp biểu diễn dữ liệu vào bằng cỏch sử

dụng cỏc đối tượng String Predicate. Sự mở rộng này nhỳng hoàn toàn cỏc chương trỡnh logic vào trong cỏc chương trỡnh Javạ Với cỏch này, DLV cú thể được quản lý trực tiếp bởi cỏc đối tượng Javạ Hơn thế nữa, ta cú thể lấy dữ liệu từ bảng cơ sở dữ liệu quan hệ được hỗ trợ bởi JDBC bằng cỏch sử

dụng lớp JDBCPredicate.

Một phần của tài liệu Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic (Trang 72 - 74)

Tải bản đầy đủ (PDF)

(114 trang)