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 và 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 và
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 Literal và Predicate để đ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 và 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.