CHƯƠNG 5 HIỆN THỰC HỆ THỐNG 5.1Các khối xử lý và giao diện các lớp quan trọng 5.1.1Ứng dụng web phía Client
Ứng dụng web phía client được hiện thực dưới dạng JSP. Người dùng cung cấp đầu vào, gửi yêu cầu cho server và nhận trả lời từ server. Người dùng có thể sử dụng 1 trong 3 dịch vụ:
-
Câu truy vấn ngôn ngữ tự nhiên.
-
Tìm kiếm mở rộng.
-
Lựa chọn thực thể thỏa truy vấn để tìm tài liệu.
Ứng dụng client sử dụng các dịch vụ chính sau:
Kiểu trả về
|
Tên dịch vụ
|
Đặc tả
|
String
|
parse(String query)
Web service operation
|
Trả về đồ thị ý niệm từ câu truy vấn tiếng Việt
|
String
|
lucene(String query)
Web service operation
|
Trả về các thực thể thỏa truy vấn
|
String
|
getDocuments(String query)
Web service operation
|
Trả về các tài liệu thỏa truy vấn dựa trên API query của Semantic Lucene
|
5.1.2Hệ thống xử lý trên server
Dưới đây trình bày giao diện của một số lớp chính trong các khối:
Khối nhận diện thực thể và từ quan hệ:
Lớp ENSearch
Kiểu trả về
|
Tên phương thức
|
Đặc tả
|
String
|
GetAnnotation (String query, QueryBuffer output)
|
Kết nối vào KIM để nhận diện thực thể có tên trong câu query, chèn vào bộ đệm output.
Dùng Gate để nhận diện thực thể không tên và từ quan hệ, tính từ, liện từ luận lý có trong câu query, chèn vào bộ đệm output
|
String
|
getNS (String classname)
|
Trả về namespace của lớp truyền vào dưới dạng chuỗi
|
String
|
runSeRQL (String query)
|
Kết nối vào KB của KIM, thực thi câu lệnh SeRQL để tìm các thực thể thỏa mãn truy vấn
|
Khối phân tách câu truy vấn nguyên tử:
Lớp QuerytoCG
Kiểu trả về
|
Tên phương thức
|
Đặc tả
|
void
|
splitQueryToAtomicQuery(String fullQuery, List query, List result, RelationType defaultRel)
|
Tách câu truy vấn có AND, OR, NOT (đã được nhận diện thành phần) thành danh sách các câu truy vấn nguyên tử. Danh sách này là tham số “result”
|
Khối xác định quan hệ đỉnh:
Lớp QuerytoCG
Kiểu trả về
|
Tên phương thức
|
Đặc tả
|
TopRelationType
|
identifyTopRel(QueryBuffer buf)
|
Nhận diện quan hê đỉnh là “COUNT”, “MAX”, “MIN”, “MOST”, hayt “AVERAGE”
|
Khối hiệu chỉnh tập thực thể và từ quan hệ:
Lớp ProcessingXML
Kiểu trả về
|
Tên phương thức
|
Đặc tả
|
void
|
FindClassofAgent(QueryBuffer buffer)
|
Xác định lớp của “What”
|
void
|
CombineEntitys(QueryBuffer buffer)
|
Gom các thực thể cùng ngữ nghĩa
|
void
|
AddRealtion(QueryBuffer buffer)
|
Thêm từ quan hệ giữa các thực thể
|
Khối xác định quan hệ ngữ nghĩa giữa thực thể và từ quan hệ:
Lớp ProcessingQuery
Kiểu trả về
|
Tên phương thức
|
Đặc tả
|
QueryTriple
|
ProcessQuery2Triple(QueryBuffer buffer)
|
Sử dụng các thực thể có tên, không tên, từ quan hệ đã nhận biết được để sinh ra các bộ ba quan hệ. Giá trị trả về là các tập các bộ ba quan hệ.
|
TripleType
|
CheckRE(ItemType subject, ItemType relation, ItemType object)
|
Tìm bộ 3 bằng cách kiểm tra tập luật
|
TripleType
|
InterRE(ItemType subject, ItemType relation, ItemType object)
|
Tìm bộ 3 bằng phương pháp giao
|
Khối xác định quan hệ ngữ nghĩa giữa tính từ và thực thể:
Lớp ProcessingQuery
Kiểu trả về
|
Tên phương thức
|
Đặc tả
|
void
|
processQuantitativeAdjective(QueryTriple tripleset, QueryBuffer buffer)
|
Sử dụng các tính từ định lượng (thường, so sánh nhất, so sánh hơn) đã nhận biết được để sinh ra các bộ ba quan hệ. Tập các bộ ba quan hệ kết quả là “tripleset”
|
void
|
processQuanlitativeAdjective(QueryTriple tripleset, QueryBuffer buffer)
|
Sử dụng các tính từ định lượng (thường, so sánh nhất) đã nhận biết được để sinh ra các bộ ba quan hệ. Tập các bộ ba quan hệ kết quả là “tripleset
|
Khối xây dựng đồ thị ý niệm:
Lớp QueryOutput
Kiểu trả về
|
Tên phương thức
|
Đặc tả
|
String
|
generatelistJsCG(ListCG lsCG)
|
Tạo đồ thị cho toàn bộ câu truy vấn dưới dạng JavaScript
|
String
|
generateJsCG(QueryBuffer buffer, int currentleft, int currentTop, boolean isCoverByBox)
|
Tạo đồ thị con dưới dạng JavaScript
|
Khối sinh câu truy vấn SeRQL
Lớp SeRQLMapping
Kiểu trả về
|
Tên phương thức
|
Đặc tả
|
String
|
getSeRQLQuery(QueryBuffer buffer)
|
Sinh ra câu SeRQL cho từng câu truy vấn nguyên tử. Trả về dưới dạng String.
|
Lớp QuerytoCG
Kiểu trả về
|
Tên phương thức
|
Đặc tả
|
String
|
appendWhereClauseForSQTA(String query, QueryBuffer buf, TopRelationType topRe)
|
Thêm các phần cần thiết vào câu SeRQL truyền vào để xử lý trường hợp có tính từ định lượng so sánh nhất. Trả về câu SeRQL đã được chỉnh sửa
|
String
|
appendOrderByClause(String query, QueryBuffer buf)
|
Thêm các phần cần thiết vào câu SeRQL truyền vào để xử lý trường hợp có tính từ định lượng ở dạng nguyên mẫu. Trả về câu SeRQL đã được chỉnh sửa
|
String
|
appendWhereClauseForCQTA(String query, QueryBuffer buf)
|
Thêm các phần cần thiết vào câu SeRQL truyền vào để xử lý trường hợp có tính từ định lượng so sánh hơn. Trả về câu SeRQL đã được chỉnh sửa
|
Chia sẻ với bạn bè của bạn: |