Tải bản đầy đủ (.pdf) (56 trang)

Giám sát và tự động hóa các hợp đồng nghiệp vụ trong một hoặc vài lĩnh vực hẹp ứng dụng blockchain

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.69 MB, 56 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA

HỌC VIÊN
PHẠM THÀNH CÔNG (1770317)

ĐỀ TÀI
GIÁM SÁT VÀ TỰ ĐỘNG HOÁ CÁC HỢP ĐỒNG
NGHIỆP VỤ TRONG MỘT HOẶC VÀI LĨNH VỰC HẸP
ỨNG DỤNG BLOCKCHAIN

Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 07 năm 2020


ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA

HỌC VIÊN
PHẠM THÀNH CÔNG (1770317)
ĐỀ TÀI
GIÁM SÁT VÀ TỰ ĐỘNG HOÁ CÁC HỢP ĐỒNG
NGHIỆP VỤ TRONG MỘT HOẶC VÀI LĨNH VỰC HẸP
ỨNG DỤNG BLOCKCHAIN

Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01



LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 07 năm 2020


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG HỒ CHÍ MINH

Cán bộ hướng dẫn khoa học: TS. Lê Lam Sơn
Cán bộ chấm nhận xét 1: TS. Nguyễn Văn Vũ
Hỏi: Nêu rõ đóng góp chính của tác giả?
Trả lời: Có định nghĩa và sửa đổi tất cả các bước
Cán bộ chấm nhận xét 2: TS. Nguyễn An Khương
Hỏi: Phân tích ưu/nhược của ngơn ngữ mơ hình hố?
Trả lời: Cho phép cập nhật tri trức/rule mới mà không cần quay lại từ đầu
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG TP. HCM
ngày 29 tháng 08 năm 2020.
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
1. Chủ tịch: PGS.TS Trần Minh Quang
2. Thư ký: TS. Lê Hồng Trang
3. Phản biện 1: TS. Nguyễn Văn Vũ
4. Phản biện 2: TS. Nguyễn An Khương
5. Uỷ viên: TS. Đặng Trần Trí

Xác nhận của Chủ tịch Hội đồng đánh giá luận văn và Trưởng Khoa quản lý chuyên
ngành sau khi luận văn đã được sửa chữa.

CHỦ TỊCH HỘI ĐỒNG


PGS.TS Trần Minh Quang

TRƯỞNG KHOA


ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Phạm Thành Công ..........................................MSHV:1770317 ..............
Ngày, tháng, năm sinh: 24/01/1994 ...........................................Nơi sinh: Quảng Ngãi .....
Chuyên ngành: Khoa Học Máy Tính .........................................Mã số : 60.48.01.01 ........
I. TÊN ĐỀ TÀI: Giám sát và tự động hoá các hợp đồng nghiệp vụ trong một hoặc vài lĩnh
vực hẹp ứng dụng Blockchain .........................................................................................
.............................................................................................................................................
.............................................................................................................................................
II. NHIỆM VỤ VÀ NỘI DUNG: Hoàn thành nội dung luận văn thạc sĩ đã báo cáo trong
đề cương ........................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
III. NGÀY GIAO NHIỆM VỤ : 24/02/2020 ..................................................................
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 21/06/2020 ..................................................
V. CÁN BỘ HƯỚNG DẪN: TS. Lê Lam Sơn .................................................................
.............................................................................................................................................

Tp. HCM, ngày . .26. tháng .07. năm 2020..
CÁN BỘ HƯỚNG DẪN

(Họ tên và chữ ký)

CHỦ NHIỆM BỘ MÔN ĐÀO TẠO
(Họ tên và chữ ký)

TRƯỞNG KHOA
(Họ tên và chữ ký)


LỜI CÁM ƠN

Đầu tiên, tôi xin gửi lời cảm ơn chân thành nhất đến TS. Lê Lam Sơn, giảng
viên hướng dẫn luận văn và cũng là người thầy gắn bó với tơi trong suốt thời gian
tham gia chương trình cao học vừa qua. Mặc dù giai đoạn vừa rồi chịu ảnh hưởng rất
lớn của dịch COVID-19, làm ảnh hưởng và gián đoạn đến lịch trình của cả hai bên
nhưng thầy vẫn rất tận tình chỉ dẫn, định hướng nghiên cứu và tạo điều kiện để tơi
thực hiện luận văn. Chính nhờ những kiến thức thầy truyền đạt cùng với sự quan tâm,
những góp ý khoa học của thầy đã giúp tơi hồn thành luận văn này một cách tốt nhất.
Xin chân thành cảm ơn các thầy cô của trường đại học Bách Khoa TP. Hồ Chí
Minh, đặc biệt là các thầy cơ khoa Khoa Học và Kỹ Thuật Máy Tính đã tận tình dạy
bảo và hướng dẫn trong quá trình đào tạo sau đại học. Tôi cũng xin cảm ơn các tác
giả của những cơng trình nghiên cứu mà tơi tham khảo đã sẵn lòng hỗ trợ, chia sẻ, giải
đáp thắc mắc, cùng tơi giải quyết những khó khăn gặp phải trong suốt q trình thực
hiện luận văn.
Cuối cùng, tơi xin cảm ơn gia đình, bạn bè, những người ln đứng bên cạnh động
viên, luôn sát cánh cùng tôi trong suốt thời gian qua.
Xin chân thành cảm ơn.


TĨM TẮT LUẬN VĂN


Trong bối cảnh các loại hình dịch vụ phát triển mạnh mẽ như ngày nay, việc quản
lý, tổ chức các hợp đồng nghiệp vụ trở nên phức tạp và yêu cầu nhiều nỗ lực, chi phí
về con người và thời gian. Bên cạnh đó, các cơng nghệ mới ra đời, như Blockchain hay
smart contract, dần được tiếp cận và nghiên cứu để đưa vào giải quyết các bài tốn
của doanh nghiệp, cơng ty phát triển dịch vụ.
Qua đó, đề tài đưa ra phương pháp tự động hố các hợp đồng nghiệp vụ truyền
thống trên cơ sở mô hình hố các dạng hợp đồng, sử dụng ontologies để mô tả các
ràng buộc, và hiện thực công cụ để sinh mã smart contract hồn chỉnh có thể triển
khai ngay trên Hyperledger Fabric blockchain mà không cần bất cứ can thiệp thủ cơng
nào. Đề tài cịn thể hiện tính ứng dụng của phương pháp nghiên cứu trên ví dụ thực
tế của một dạng hợp đồng dịch vụ cho thuê xe.
Báo cáo này được tổ chức như sau: Phần 1 sẽ giới thiệu khái quát vấn đề, các giá
trị đề tài mang lại và các cơng trình nghiên cứu liên quan. Phần 2 sẽ mô tả mục tiêu
nghiên cứu của đề tài, cũng như giới hạn mà phương pháp nghiên cứu triển khai. Kế
đến, phần 3 sẽ trình bày các kiến thức nền tảng cần thiết trong đề tài. Phần 4 giới
thiệu chi tiết nội dung triển khai phương pháp thực hiện qua từng bước, áp dụng trên
mẫu ví dụ chung về hợp đồng dịch vụ cho thuê xe. Tiếp theo, phần 5 sẽ trình bày các
kết quả thực nghiệm và đánh giá về tính khả thi, ưu điểm cũng như nhược điểm đang
mắc phải của phương pháp. Cuối cùng, phần 6 & 7 lần lượt trình bày về hướng phát
triển mở rộng, kết luận chung và các tài liệu liên quan mà đề tài đã tham khảo.
Từ khóa: business contract, smart contract, automation, hyperledger fabric chaincode,
ontology, OWL, SWRL.


ABSTRACT

The services keep growing up fast, so does business contract construction & management cost. It does require a lot of effort regarding human resources & time. Besides
that, state-of-the-art techniques such as Blockchain or Smart contract are in their
adoption phase and their applications are applied in solving the enterprise and service

provider’s problems.
Thus, this study will present an approach to automate the business contract based
on contract modeling. It takes advantage of ontologies to represent the business constraints, provide a practical example to generate a fully-functional smart contract that
can deploy onto Hyperledger Fabric blockchain without additional manual effort. This
study will demonstrate a sample business contract represented a car-sharing service.
This study will comprise of those following sections: Section 1 will give a first look
at the given problem, any values implied by this study, and its related works. The
scope and objective of this study will be listed on section 2. Section 3 will represent the
fundamental required for this study. Section 4 will deep dive into the detail of the implementation, which is based on the example of a car-sharing service contract. Section
5 will provide experimental results and evaluate its capabilities, given the advantages
as well as disadvantages derived by this approach. Lastly, section 6 & 7 will present
the possible improvements, sum up the study and its references respectively.
Keywords: business contract, smart contract, automation, hyperledger fabric chaincode, ontology, OWL, SWRL.


LỜI CAM ĐOAN CỦA TÁC GIẢ

Tôi xin cam đoan rằng ngoại trừ các kết quả tham khảo từ các công trình khác như
đã ghi rõ trong luận văn, các nội dung trình bày trong luận văn này là do chính tác
giả thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy bằng
cấp ở một trường khác.

TP. Hồ Chí Minh, 07/2020


Mục lục
1 Giới thiệu đề tài
1.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Ý nghĩa khoa học & thực tiễn . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Giá trị khoa học . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.2 Giá trị thực tiễn . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Các cơng trình liên quan . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Service-level agreement . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 Imperative & declarative smart contract . . . . . . . . . . . . .
1.3.3 Auto-Generation of Smart Contracts from Domain-Specific Ontologies and Semantic Rules . . . . . . . . . . . . . . . . . . . .
1.3.4 Overview of Blockchain Technology . . . . . . . . . . . . . . . .
1.3.5 A Semantic Contract Model and Knowledge-driven Process for
Supporting Controllability in Service-oriented Approaches . . .

1
1
2
2
2
3
3
4

2 Mục tiêu, giới hạn & đối tượng nghiên cứu
2.1 Mục tiêu nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Giới hạn & đối tượng nghiên cứu . . . . . . . . . . . . . . . . . . . . .

7
7
9

3 Kiến thức nền
3.1 Ontology . . . . . .
3.2 Semantic Web Rule
3.3 Ngữ pháp LL . . .

3.4 Blockchain . . . . .
3.5 Hyperledger Fabric
3.6 Smart contract . .

4
5
6

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

11
11
13

16
18
19
21

4 Phương pháp nghiên cứu
4.1 Định nghĩa ontology cho miền tri thức . . . . . . . . . . . .
4.2 Định nghĩa các luật ngữ nghĩa . . . . . . . . . . . . . . . . .
4.3 Hiện thực bộ duyệt ngữ pháp LL1 . . . . . . . . . . . . . . .
4.4 Duyệt luật bằng bộ duyệt LL(1) và sinh ra các ràng buộc . .
4.5 Tạo mẫu cho smart contract . . . . . . . . . . . . . . . . . .
4.6 Cập nhật smart contract bằng các ràng buộc thông qua AST

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.

.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

28
28
29
30
34

36
36

5 Kết quả thực nghiệm & đánh giá
5.1 Kiểm tra tính đúng đắn của smart contract hoàn chỉnh . . . . . .
5.2 Đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1 Khi các ràng buộc của hợp đồng hay các tập luật thay đổi
5.2.2 Giới hạn về tập luật OWL . . . . . . . . . . . . . . . . . .
5.2.3 Tỉ lệ tự động sinh mã . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

39
39

40
41
41
42

. . . . . . . . . . .
Language (SWRL)
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.


.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

6 Hướng phát triển & kết luận


43

7 Tài liệu tham khảo

44


1

1
1.1

Giới thiệu đề tài
Giới thiệu

Trong các lĩnh vực, ngành kinh doanh dịch vụ như du lịch, nhà hàng, ăn uống,...
các nhà cung cấp dịch vụ thường phải xây dựng các thoả thuận, điều khoản dịch vụ
(service-level agreement, viết tắt là SLA). Các SLA thường phản ánh sự thoả thuận
giữa bên cung cấp và khách hàng, cũng như các hình thức thưởng/phạt nếu vi phạm
hợp đồng dựa trên nhiều yếu tố như phản hồi của khách hàng, độ tin tưởng, sự hài
lịng, khả năng thanh tốn, ... Các SLA thể hiện mối quan tâm, cầu nối giữa những
người mang lại dịch vụ cho khách hàng, qua đó thể hiện chất lượng cũng như độ tin
cậy của dịch vụ đối với người dùng cuối. Việc giám sát các SLA một cách thủ cơng
mang lại những khó khăn về mặt quản lý cũng như cịn duy trì tính chủ quan trong q
trình giám sát truyền thống. Vượt qua các rào cản trên, việc tự động hoá các SLA sẽ là
một bước đột phá trong quy trình vận hành và giám sát các hợp đồng nghiệp vụ. Với
bối cảnh đó, đề tài đề xuất bài toán giải quyết việc tự động hoá các hợp đồng nghiệp vụ.
Business contract automation. Tự động hoá các hợp đồng nghiệp vụ là một
chương trình được thiết kế để quản lý các thoả thuận pháp lý, lưu trữ các hồ sơ, hợp

đồng nghiệp vụ và phát triển các tài liệu, triển khai các điều khoản đã thoả thuận từ
trước. Việc này mang lại nhiều lợi thế giúp quá trình vận hành doanh nghiệp, triển
khai các mơ hình kinh doanh nhanh hơn, tốt hơn và an toàn hơn [2].
Blockchain lần đầu được giới thiệu vào năm 2008 và hiện thực vào năm 2009
[3]. Nó được xem là sổ cái cơng cộng, nơi lưu trữ toàn bộ các giao dịch dưới danh sách
các khối liên kết với nhau. Khả năng ghi nhận các giao dịch theo cách an toàn và khả
xác nhận giúp cho Blockchain khơng bị giới hạn tính ứng dụng ở lĩnh vực tài chính hay
bất kỳ lĩnh vực hẹp nào khác. Ngày nay, việc áp dụng Blockchain được mở rộng sang
các lĩnh vực giám sát & tự động hố. Hơn nữa, q trình thực thi các điều khoản cũng
như các quy tắc phạt/thưởng theo các SLA một cách thủ cơng dễ dẫn tới các tranh
chấp mang tính chủ quan khơng đáng có. Bởi vậy, việc áp dụng Blockchain vào trong
ngữ cảnh này được xem như phương thức đáng tin cậy và an toàn nhờ vào cơ chế đồng
thuận. Smart contract giúp quá trình thực thi các luật thưởng/phạt một cách tự động
giúp giảm thiểu thời gian cũng như khả năng xảy ra các tranh chấp.
Kết hợp tự động hoá các hợp đồng nghiệp vụ và ưu điểm mà smart contract
mang lại, đề tài đề xuất phương pháp tự sinh mã smart contract dựa trên tập hợp các
luật định nghĩa sẵn về một miền tri thức đại diện cho một lĩnh vực, nghiệp vụ cụ thể.


1.2 Ý nghĩa khoa học & thực tiễn

1.2
1.2.1

2

Ý nghĩa khoa học & thực tiễn
Giá trị khoa học

Bài toán và cách giải quyết của đề tài mang lại các ý nghĩa về mặt khoa học.

Phương pháp đề xuất có khả năng mở rộng. Giải pháp đề tài đưa ra nhằm
tự động hoá một phần các ràng buộc được định nghĩa trong smart contract cuối. Các
ràng buộc này được chia thành nhiều loại [13]. Hướng giải quyết có thể mở rộng để áp
dụng cho tất cả các loại cịn lại và có thể phát triển thành giải pháp cuối cùng có khả
năng áp dụng cho công nghiệp.
Bộ công cụ làm việc với tập luật. Đề tài hiện thực các bộ duyệt luật cung cấp
dưới định dạng OWL và tương thích với các ràng buộc của các SLA. Các bộ duyệt này
có thể mở rộng để đáp ứng đa dạng các tập luật khác nhau, cho các lĩnh vực, miền tri
thức khác nhau.
Sinh mã nguồn smart contract cuối cùng. Smart contract cuối cùng, cũng là
đầu ra của đề tài, là phiên bản hoàn chỉnh, có thể được triển khai và vận hành trực
tiếp trên mạng lưới Blockchain mà không cần bất kỳ thay đổi thủ công nào.
1.2.2

Giá trị thực tiễn

Bên cạnh các giá trị khoa học, đề tài mang lại ý nghĩa thực tiễn, có giá trị với các
ngành lĩnh vực kinh doanh khác nhau.
Áp dụng trực tiếp. Giải pháp đề ra chưa phải là giải pháp cuối để triển khai
cho các nhà cung cấp dịch vụ như là người dùng cuối. Tuy nhiên, đề tài có đưa ra ví
dụ trong q trình hiện thực việc áp dụng nó trong các dịch vụ thường nhật như cho
thuê xe, giảm giá dịch vụ (phần 5), cho thấy khả năng áp dụng trực tiếp của đề tài vào
thực tiễn là có sẵn và hồn tồn tuỳ biến theo nhu cầu của các ngành dịch vụ khác nhau.
Tăng tốc xử lý. Lấy ví dụ về cải thiện một quy trình bán hàng cơ bản, áp dụng
tự động hoá hợp đồng nghiệp vụ. Nhân viên bán hàng sẽ không phải tốn thời gian và
công sức ngồi viết và tổng hợp tài liệu, thay vào đó chỉ cần chú trọng vào việc tìm kiếm
các khách hàng tiềm năng. Tự động hoá hợp đồng nghiệp vụ giúp giảm thiểu thời gian
trong trường hợp này. Phần lớn các quy trình phát triển hợp đồng liên quan tới sự
phê duyệt, và các phê duyệt này thường thay đổi qua nhiều vòng khác nhau. Thông
thường các thay đổi này bị lạc khi mang sang từ tài liệu này sang tài liệu khác, hay bị

đặt sai chỗ.
Một số công ty sử dụng email, bảng tính hay tài liệu Word để theo dõi và quản lý
các chỉnh sửa, thì các phần mềm tự động hoá hợp đồng nghiệp vụ giúp các thay đổi,
chỉnh sửa luôn được giám sát và đồng bộ xuyên suốt quá trình. Hay nói cách khác, các
cơng ty khơng phải giám sát từng phiên bản của hợp đồng nữa.
Tận dụng tự động hố quy trình, q trình phê duyệt được đơn giản hoá: Giảm
thiểu các bước trung gian, giảm thiểu thời gian xử lý cũng như các lỗi thuộc về con


1.3 Các cơng trình liên quan

3

người được giảm thiểu đáng kể. Đương nhiên, các nhân viên bán hàng vẫn phải thương
thảo chi tiết hợp đồng với khách hàng, nhưng với sự tự động hố hợp đồng, họ khơng
phải tốn hàng giờ liền viết hay chỉnh sửa hợp đồng cho từng khách hàng.
Cải thiện tính nhất quán. Bên cạnh việc rút ngắn thời gian xử lý, các phần mềm
tự động hoá hợp đồng cịn mang lại các lợi ích hữu hình khác. Ví dụ, các chương trình
này giúp các phiên bản của hợp đồng luôn tuân thủ một khuôn mẫu (ngôn ngữ, định
dạng, cấu trúc, ...), qua đó loại bỏ các rủi ro về pháp lý do lỗi của con người.
Ngoài ra, các phần mềm tự động giúp tất cả các hợp đồng có thể được xem trong
một giao diện thuận tiện và thống nhất. Nhân viên khơng cịn phải lục tìm trong hàng
chục, thậm chí hàng trăm email để tìm bản thảo hợp đồng gần đây nhất hoặc cố gắng
để nhớ hợp đồng hiện đang ở giai đoạn nào. Với phần mềm tự động hóa hợp đồng,
thơng tin này được thể hiện theo cùng một cách, trong cùng một nơi, mang lại sự
thống nhất toàn cục.
Chữ ký số. Các hệ thống hợp đồng được tính hợp chữ ký số. Người ký được xác
thực, các tài liệu được bảo vệ khỏi sự giả mạo và tất cả các bên liên quan có quyền
truy cập tài liệu - đảm bảo tính hợp pháp để thực hiện hợp đồng. Đây là tính năng
mặc định của các smart contract, sẽ được trình bày ở phần sau, giúp doanh nghiệp tiết

kiệm thời gian và chi phí phải mua các phần mềm bổ sung.

1.3
1.3.1

Các cơng trình liên quan
Service-level agreement

Trong nghiên cứu Leveraging Blockchain in Monitoring SLA-oriented Tourism Service
Provisioning [4], các tác giả đã chỉ ra rằng các hệ thống đánh giá dịch vụ nhằm giúp
người dùng đưa ra quyết định sử dụng dịch vụ đó hay không, là không đáng tin đối
với người dùng cuối. Lý do chính bởi vì các kết quả đánh giá có thể bị làm giả bởi một
bên thứ ba hay các cuộc tấn cơng mạng. Qua đó, nhóm tác giả giới thiệu khái niệm
về service-level agreement (SLA). SLA có thể được hiểu theo các góc độ khác nhau, có
thể từ góc nhìn của khách hàng, hay từ phía nhà cung cấp dịch vụ. Nó chỉ ra các chi
tiết về dịch vụ cũng như quy mô mà dịch vụ mang lại. Trong một bản SLA, nhà cung
cấp liệt kê một hoặc nhiều tiêu chuẩn mà họ phải triển khai hoặc bị phạt nếu vi phạm
theo điều khoản đề ra.
SLA giúp nhà cung cấp dịch vụ có cơ hội thể hiện những mong muốn rõ ràng đến
với từng du khách. Tất cả các bên liên quan đều hiểu được mong muốn từ các bên
cịn lại. Do đó, du khách và nhà cung cấp dịch vụ có thể thực hiện nghĩa vụ, trách
nhiệm mà mỗi bên đảm nhiệm. Khi có tranh chấp xảy ra trong điều khoản giữa các bên,
SLA giúp việc xử lý nhanh hơn nhờ có các kỳ vọng cũng như các luật phạt đã quy định.
Bên cạnh đó, nghiên cứu cịn đề xuất kiến trúc mang tên BlockSLA giúp đánh giá
và thực thi các thoả thuận dựa trên nền tảng Blockchain. BlockSLA cho phép q
trình thẩm định được giữ an tồn, bảo mật và tin cậy thông qua cơ chế đồng thuận
của Blockchain. Từ các thẩm định này, smart contracts trên nền tảng Blockchain tự
động thực thi các hoạt động bồi thường, thưởng phạt ngay lập tức và các bên liên quan



1.3 Các cơng trình liên quan

4

(du khách, nhà cung cấp dịch vụ) có thể theo dõi các thay đổi này ngay trên các thiết
bị của họ.
1.3.2

Imperative & declarative smart contract

Như Guido Governatori và các đồng tác giả [5] đã chỉ ra các khía cạnh và so sánh các
đặc điểm của ngôn ngữ mệnh lệnh (imperative language) và ngôn ngữ khai báo (declarative language) trong ngữ cảnh các kiến trúc blockchain. Trong khi ngôn ngữ mệnh
lệnh thường đựợc dùng để hiện thực các smart contract, thì ngơn ngữ khai báo phù
hợp để giải quyết các vấn đề của các hợp đồng pháp lý cũng như quản lý sự tự động hố.
Nhóm tác giả cũng đưa ra các khái niệm về hợp đồng pháp lý (legal contract) và
hợp đồng thông minh (smart contract). Ở đó, hợp đồng pháp lý đại diện cho ngôn ngữ
tự nhiên, ngôn ngữ của con người, xác lập bởi các bên liên quan, trong khi đó, hợp
đồng thơng minh được định nghĩa dựa trên nội dung được đồng thuận và hiện thực
một cách tự động. Khi khơng có tài liệu nào ghi lại các thoả thuận giữa các bên, bản
thân smart contract sẽ chứa các biểu diễn ràng buộc của các thoả thuận này.
Các hệ thống sổ cái phân tán hỗ trợ xây dựng các smart contract bằng khả năng
lưu trữ hoặc tự động thực thi. Hơn nữa, tính sẵn sàng của các loại hình tiền điện tử
giúp tự động chuyển nhận tiền, như là một nhu cầu của việc hiện thực hợp đồng. Do
đó, các hệ thống sổ cái phân tán đóng góp nhiều hơn việc chỉ đơn giản là một hệ thống
cơ sở dữ liệu phân tán [6]; các nền tảng tính tốn phi tập trung giúp các dịch vụ tích
hợp có thể chạy trên số lượng lớn các smart contract. Các hệ thống sổ cái phân tán
được vận hành bởi các node ngang hàng (peer-to-peer network), chúng có thể phá vỡ
cấu trúc cũng như hoạt động truyền thống nơi cần có các bên thứ ba đáng tin cậy phụ
trách. Chúng cũng mở ra nhiều cơ hội mới cho tự động hoá hợp đồng nghiệp vụ, được
ứng dụng trong nhiều mảng ứng dụng và lĩnh vực khác nhau, nhưng cũng dấy lên các

vấn đề về tính pháp lý.
Qua nghiên cứu của Guido Governatori, đề tài đã xác định được loại ngôn ngữ để
áp dụng xây dựng các cấu trúc thể hiện ràng buộc hợp đồng nghiệp vụ, cũng như ngôn
ngữ để thể hiện liên kết giữa cấu trúc trên sang kiến trúc của smart contract.
1.3.3

Auto-Generation of Smart Contracts from Domain-Specific Ontologies and Semantic Rules

Trong nghiên cứu của mình [7], Olivia Choudhury và các đồng tác giả đã chỉ ra các
ràng buộc về thời gian và chi phí trong q trình sinh mã cho các smart contract. Nhóm
tác giả đã đề xuất nền tảng cho phép thơng dịch các ràng buộc đã được mã hoá trong
miền biểu diễn tri thức sang các yêu cầu đối với blockchain. Nền tảng này sử dụng các
bản thể luận (ontologies [8]) và các luật ngữ nghĩa (semantic rules) để mã hoá các tri
thức trong một lĩnh vực nhất định, sau đó xây dựng cây cú pháp trừu tượng (abstract
syntax tree) để kết hợp các ràng buộc cần thiết. Nhóm tác giả đã chứng minh được
tính hiệu quả của phương pháp này trong hai lĩnh vực riêng biệt: Thông dịch các điều
kiện y học lâm sàng và ứng dụng cho thuê xe.


1.3 Các cơng trình liên quan

5

Nghiên cứu trình bày về việc sử dụng các khái niệm cần thiết như ontology để thể
hiện các ý tưởng và tri thức về lĩnh vực cụ thể nào đó dưới định dạng mà máy có thể
hiểu được. Ontologies có thể được biểu diễn dưới nhiều hình thức khác nhau, nhưng
phổ biến nhất là Web Ontology Language (OWL) [9]. OWL có hạn chế nhất định khi
không thể biểu diễn mối quan hệ giữa các thuộc tính kết hợp (composite properties),
ví dụ như mối liên kết giữa các thuộc tính "cha", "con" với các thuộc tính "chú". Hạn
chế này được chỉ ra trong OWL2, cho phép xác định chuỗi thuộc tính chỉ khi thuộc

tính tổng hợp là thuộc tính phụ của một trong các thuộc tính tổng hợp đó. Semantic
Web Rule Language (SWRL) [10] được sinh ra để mở rộng khả năng biểu diễn của
OWL.
Sau khi đã xây dựng được bộ các quy tắc ngữ nghĩa cho bài tốn của mình, nghiên
cứu trên tiến hành xây dựng một khuôn mẫu smart contract bằng ngôn ngữ Golang
nhằm thể hiện các chức năng, dựa trên các luật dẫn xuất từ các ontologies và giao thức.
Việc này giống như xây dựng khung sườn cho việc tạo ra phiên bản smart contract cuối
cùng để vận hành trên mạng lưới blockchain. Trong q trình này, lúc chuyển đổi từ
khn mẫu sang biểu diễn dưới dạng AST [11], một quá trình duyệt cây diễn ra nhằm
tìm các giá trị ràng buộc và cập nhật lại bằng các giá trị quy định trong các luật đề
ra.
Nghiên cứu trên đã đề xuất một phương pháp xây dựng cơ chế chuyển đổi các luật
ngữ nghĩa sang smart contract thông qua các bước xây dựng trung gian. Quá trình này
cho phép cập nhật các mối liên kết giữa các thuộc tính một cách linh hoạt, cũng như
các giá trị ràng buộc được đảm bảo nhất quán xuyên suốt. Đề tài đề xuất sử dụng các
bước trung gian này để tham khảo áp dụng và xây dựng cơ chế chuyển đổi phù hợp
với ngữ cảnh bài toán đề ra.
1.3.4

Overview of Blockchain Technology

Trong nghiên cứu này [12], nhóm tác giả đã trình bày các khái niệm cơ bản của một
mạng lưới Blockchain. Nhóm tác giả đã đưa ra so sánh về các hình thức Blockchain
khác nhau như: Public Blockchain, Consortium Blockchain và Private Blockchain.
Property
Consensus determination
Read permission
Immutability
Efficiency
Centralized

Consensus process

Public blockchain
Consortium blockchain
All miners
Selected set of nodes
Public
Could be public or restricted
Nearly impossible to tamper Could be tampered
Low
High
No
Partial
Permissionless
Permissioned

Private blockchain
One organization
Could be public or restricted
Could be tampered
High
Yes
Permissioned

Bảng 1: So sánh Public & Consoritum & Private Blockchain

Theo mục tiêu và bài toán đặt ra, đề tài chọn Private Blockchain để lưu trữ và thực
thi các smart contract sinh ra, cụ thể sử dụng nền tảng Hyperledger Fabric 1 .
1


/>

1.3 Các cơng trình liên quan

1.3.5

6

A Semantic Contract Model and Knowledge-driven Process for Supporting Controllability in Service-oriented Approaches

Trong nghiên cứu của mình [13], tác giả Jaramillo đã đề xuất một mơ hình ngữ nghĩa
để xây dựng bộ chuẩn hố các thành phần của một hợp đồng dịch vụ. Tác giả sử dụng
logic mô tả (Description Logic - DL) và các ontologies để thể hiện các chuẩn hố này.
Mơ hình đề xuất được xác thực thông qua biểu diễn dưới định dạng XML với các ví
dụ thực tiễn được áp dụng.
Tác giả đã chỉ ra ngữ pháp của DL bao gồm:
• Các khái niệm (Concepts): Là các đối tượng hay lớp các đối tượng cùng thuộc
về một miền tri thức cụ thể nào đó. Ví dụ như lớp Khách hàng, lớp Dịch vụ, lớp
Nhà cung cấp, ...
• Các vai trị (Roles): Thể hiện quan hệ giữa các khái niệm.
• Các cá thể (Individuals): Các đối tượng cụ thể của mỗi khái niệm, hay là các
phần tử thuộc cùng một lớp. Ví dụ như Khách hàng Nguyễn Văn A, Nhà cung
cấp Entp, ...
• Các tiên đề (Axioms): Là các câu khẳng định mô tả mối liên kết giữa các khái
niệm và vai trị. Ví dụ Nhà cung cấp cung cấp dịch vụ cho Khách hàng.
• Bộ khởi tạo (Constructors): Tạo nên các mô tả phức tạp bằng các giới hạn của
khái niệm hay các vai trị. Ví dụ, một Dịch vụ có chính xác một nhà Cung cấp.
Việc mơ hình hố các khái niệm liên quan tới hợp đồng đóng vai trị quan trọng
trong xây dựng các bước tiền xử lý, xác định vai trò các ngữ nghĩa xuất hiện trong các
tập luật.

Trong giới hạn đề tài, việc hiện thực xoay quanh việc tự động trích xuất và cập
nhật các ràng buộc của các Roles trong khái niệm mơ hình của một hợp đồng dịch vụ
(hình 1). Trong đó, tập trung vào tập con của Roles gồm các thành phần: hasAttribute,
hasClassValue, hasLiteralValue sẽ được trình bày chi tiết trong phần 2.2.


7

Hình 1: Ngữ pháp của các hợp đồng dịch vụ

2

Mục tiêu, giới hạn & đối tượng nghiên cứu

2.1

Mục tiêu nghiên cứu

Nhìn lại lịch sử phát triển của cơng nghệ, đặt trong bối cảnh các cơng trình cần thiết
mang tính hỗ trợ cho sự phát triển của thương mại điện tử, chúng ta có Secure Socket
Layer (SSL) 2 lần đầu được thêm vào trình duyệt Netscape vào năm 1994, hay Tim
Berners-Lee đã giới thiệu trình duyệt web đầu tiên vào năm 1990 [14]. Giao thức mạng
TCP/IP đặt nền tảng cho Internet được thử nghiệm lần đầu bởi hai trường đại học vào
năm 1975 và chỉ được khám phá một cách miễn cưỡng trong các phòng nghiên cứu vào
những năm 1984 3 . Về cơ bản, phải mất 20 năm để hình thành nên khái niệm thương
2
3

/> />


2.1 Mục tiêu nghiên cứu

8

mại điện tử, và mất thêm 20 năm nữa để thương mại điện tử có thể phát triển & trưởng
thành. Tuy nhiên, trong thời đại Internet of Transactions, khoảng cách ấy có thể được
rút ngắn. Đặc biệt, trong bối cảnh của nền kinh tế B2B, nơi mà cơ sở hạ tầng pháp lý
còn hạn chế, hay trong các khu vực vốn có hành lang pháp lý tương đối ít phức tạp,
việc thử nghiệm và phát triển các smart contracts là hoàn toàn khả thi và giúp cho quá
trình phát triển của nền kinh tế thương mại điện tử được rút ngắn thời gian hơn nhiều.
Về lâu dài, các hình thức tự động hố ngang hàng được hỗ trợ bởi Internet, Web
agents, smart transaction hay smart contract sẽ ngày càng trở nên hứa hẹn. Cuối thập
niên 20 của thế kỷ XXI sẽ giống như giai đoạn bùng nổ của kỷ nguyên dot-com cuối
những năm 1990. Lúc đó, hàng trăm các công ty khởi nghiệp về lĩnh vực Blockchain
được thành lập cùng với sự hỗ trợ từ các nhà đầu tư sẽ giúp cho lĩnh vực này phát triển
cả về chiều rộng lẫn chiều sâu. Giai đoạn này diễn ra giống như cách mà Gartner gọi là
Làn sóng của sự giác ngộ (Trough of Disillusionment) [15] nhằm tiếp cận, thích nghi
và áp dụng một mơi trường giao dịch rất khác biệt so với những gì đang xảy ra hiện tại.

Hình 2: Tính ứng dụng của smart contract từ đơn giản đến phức tạp
Như hình 2 có thể thấy tính ứng dụng của smart contract khơng chỉ dừng ở việc
xây dựng các ứng dụng trao đổi giá trị điện tử (đại diện là các loại tiền điện tử) mà
nó cịn có thể ứng dụng trong vận chuyển mạng ngang hàng P2P, thanh tốn các loại
chi phí giao thơng đường bộ, chi phí điện nước hay phức tạp hơn, hướng tới xây dựng
chính phủ tự trị phân tán hay xã hội tự trị phân tán bằng việc thiết lập các thoả thuận
tự động thực thi đáng tin cậy.
Tốc độ tiếp cận, chấp nhận và áp dụng công nghệ Blockchain cũng như smart contract ngày càng lớn. Do đó, nhìn nhận một cách khách quan, chúng ta có thể thấy
được sự cần thiết của các công cụ, các nền tảng thông dịch nhằm chuyển đổi các ràng
buộc từ các giao thức hay thoả thuận pháp lý sang smart contract. Quá trình tự động
sinh tạo, sinh mã smart contract giúp giảm thời gian, cũng như tăng tính tái sử dụng



2.2 Giới hạn & đối tượng nghiên cứu

9

khi áp dụng trên các lĩnh vực khác nhau thông qua một khuôn mẫu chung.
Đó là một trong những động lực giúp đề tài xác định mục tiêu nghiên cứu và định
hình rõ ràng mong muốn mà đề tài muốn đạt được - đó là xây dựng cơng cụ tự động
hố các hợp đồng nghiệp vụ và chuyển đổi sang smart contract để tự động thực thi với
nỗ lực tối thiểu cần thiết, giúp giảm thiểu thời gian cần phát triển một smart contract
hồn chỉnh. Ngồi ra đề tài cịn mong muốn chứng minh phương pháp nghiên cứu có
khả năng mở rộng và tăng khả năng tuỳ biến với đa dạng ứng dụng khác nhau. Qua
đó, đóng góp vào sự phát triển chung của việc ứng dụng smart contract nói riêng và
cơng nghệ Blockchain nói chung vào các khía cạnh thực tiễn của đời sống.
Mục tiêu đề tài đặt ra như sau:
1. Xây dựng công cụ tự động sinh mã smart contract dựa trên tập luật OWL định
sẵn trong một lĩnh vực thực tế và mẫu smart contract định nghĩa luồng luận lý
của chương trình. Smart contract sinh ra sẽ là phiên bản hoàn chỉnh để triển khai
trên nền tảng Fabric blockchain mà không cần chỉnh sửa hay can thiệp thủ công
nào từ phía lập trình viên.
2. Biểu diễn tính ứng dụng của công cụ trong lĩnh vực cho thuê xe và chứng minh
tính tuỳ biến của phương pháp nghiên cứu đề ra. Qua đó, có thể mở rộng sang
các lĩnh vực hay đa dạng các loại hình khác nhau của tập luật OWL định nghĩa
ban đầu.

2.2

Giới hạn & đối tượng nghiên cứu


Đề tài tập trung vào giải quyết bài toán Tự động sinh mã smart contract dưa trên tập
luật định sẵn, thuộc tập con của bài toán mà đề tài đưa ra đó là Giám sát & tự động hố.
Việc tự động hoá nội dung các điều khoản của một hợp đồng dịch vụ cần nỗ lực và
thời gian rất lớn. Như trong nghiên cứu của Jaramillo [13] đã chỉ ra, ngữ pháp để mơ
hình hố một hợp đồng có nhiều thành phần khác nhau, trong đó mỗi thành phần lại
chia thành nhiều tập con nhỏ hơn. Trong giới hạn nghiên cứu, đề tài tập trung vào các
tập luật thuộc phân loại hasAttribute, hasClassValue, hasLiteralValue của thành phần
Roles. Do đó, các tập luật đầu vào sẽ giới hạn trong 3 phân loại này.
Ngoài ra, mạng lưới Blockchain là rất đa dạng, tuỳ thuộc vào từng mục đích sử
dụng khác nhau. Nhu cầu của đề tài sẽ tập trung vào hình thức Private blockchain,
nhằm mang lại tính khả thi khi áp dụng vào trong các bài toán cụ thể của doanh
nghiệp, tổ chức hay các công ty riêng biệt. Cụ thể, trong giới hạn đề tài, phương pháp
nghiên cứu sẽ triển khai trên nền tảng Hyperledger Fabric.
Các lĩnh vực được sử dụng để thể hiện tính ứng dụng của đề tài thuộc về các loại
dịch vụ chia sẻ, ví dụ như dịch vụ cho thuê xe, dịch vụ tặng voucher ăn uống trên nền
tảng giao đồ ăn nhanh, ... Đây là các loại hình dịch vụ có các mơ tả điều khoản về
thành lập hợp đồng, hoặc thưởng/phạt cụ thể, các điều khoản này có thể lượng hố
để phù hợp với các thành phần quan hệ trong tập luật đề ra.


2.2 Giới hạn & đối tượng nghiên cứu

10

Bên cạnh đó, kết quả của đề tài sẽ bao gồm:
• Đối với ứng dụng thực tế, đầu ra sẽ là mẫu smart contract sinh ra từ tập luật,
với các giá trị ràng buộc và điều kiện được định sẵn bởi người dùng, là smart
contract hồn chỉnh có thể triển khai trên mạng lưới Blockchain mà khơng cần
can thiệp thủ cơng nào.
• Đối với hướng mở rộng nghiên cứu, các thành phần của đề tài có thể được sử

dụng để phát triển như bộ duyệt luật theo ngữ pháp LL (sẽ trình bày ở phần
3.3) và phương pháp cập nhật smart contract mẫu bằng AST.


11

3

Kiến thức nền

3.1

Ontology

Ontology khái niệm hoá và biểu diễn tri thức của một lĩnh vực cụ thể sang định dạng
mà máy móc có thể đọc đươc. Nó biểu diễn một tập các khái niệm và quan hệ giữa
chúng (hay còn gọi là các terms) bằng các từ khoá. Ontologies thường được sử dụng
trong việc quản lý tri thức nhằm hỗ trợ khả năng tổ chức và phân tích các thơng tin
hơn là chỉ thể hiện thông tin [16].
Các thành phần cơ bản của ontology là lớp (class), cá thể (individual), thuộc tính
(property) và quan hệ (relation). Lớp đại diện cho các khái niệm trong một lĩnh vực
nào đó. Nó là khái niệm trừu tượng nhằm gom cụm các đối tượng có chung một hoặc
vài đặc tính. Một lớp con (subclass) chỉ ra một tập con của lớp chứa các đặc tính độc
nhất mà khơng có mặt trên tồn bộ các đối tượng của lớp đó. Qua đó, các lớp có thể
được tổ chức dưới dạng thừa kế, ở đó, mỗi lớp có thể có nhiều lớp cha. Ví dụ, tồn tại
một lớp Staff chứa toàn bộ các nhân viên của một trường đại học, thì lớp Professor
chỉ ra lớp con là các đối tượng nhân viên của trường nhưng đảm nhận vị trí giảng dạy
trong trường đó. Các cá thể là các thể hiện của lớp và đóng vai trị là các thành phần
mang tính phân chia cấp độ của một ontology. Chúng có thể là các đối tượng riêng
biệt (trái cây, con người hay xe cộ), đồng thời cũng có thể là các cá thể mang tính

trừu tượng (chữ viết, con số). Sự kết hợp của một ontology và các thể hiện của nó tạo
nên cơ sở tri thức. Thuộc tính thể hiện các đặc tính phổ biến của các thể của một lớp.
Nó thường được dùng để chỉ ra các quan hệ trong các ontologies. Một thuộc tính định
nghĩa một mối quan hệ giữa các cá thể đó. Một thuộc tính dữ liệu liên quan một cá
thể với một giá trị dữ liệu hoặc giá trị nguyên (literal). Ví dụ thuộc tính hasStudent
liên kết một cá thể professor với một cá thể student, và là một thuộc tính đối tượng;
thuộc tính hasID là thuộc tính dữ liệu, liên kết một đối tượng với một giá trị ID cụ
thể. Các thuộc tính có thể dùng để thêm các ràng buộc như cá ràng buộc về mặt giá
trị, hay các giá trị thay thế.
Ontology thường được biểu diễn dưới dạng ngơn ngữ luận lý, do đó mang lại sự
khác biệt về độ chi tiết, tính chính xác, thống nhất cũng như ý nghĩa thơng qua các
lớp, thuộc tính và quan hệ. Một số công cụ cho phép biểu diễn các luận lý một cách
tự động sử dụng ontology. Qua đó, cung cấp các chức năng tiên tiến cho các ứng dụng
thơng minh như: tìm kiếm và trích xuất các ngữ nghĩa/khái niệm, hệ hỗ trợ ra quyết
định, công cụ hiểu ngơn ngữ/lời nói tự nhiên, hệ quản trị cơ sở tri thức thông minh và
các ứng dụng thương mại điện tử.
Ontology có thể được sử dụng để cải tiến các ứng dụng nền tảng Web hiện có. Một
số ứng dụng của web ontology có thể kể đến như:
1. Cổng thơng tin web (Web portal): Một cổng thông tin web cung cấp các nội dung
về một vấn đề nổi bật, ví dụ như một thành phố nào đó hay một lĩnh vực đang
được quan tâm. Một cổng thông tin cho phép các cá nhân quan tâm tới một chủ
đề có thể nhận tin tức, tìm kiếm và nói chuyện với các cá nhân khác, xây dựng
cộng đồng, hay tìm kiếm các đường dẫn tới các tài nguyên web về các vấn đề họ
quan tâm.


3.1 Ontology

12


2. Bộ sưu tập đa phương tiện: Ontology có thể được sử dụng để cung cấp các chú
thích ngữ nghĩa về một tập các hình ảnh, âm thanh hay các đối tượng phi văn
bản khác nhau. Việc trích xuất các ngữ nghĩa có ích từ các tài liệu đa phương
tiện khó hơn nhiều so với trích xuất từ ngơn ngữ tự nhiên đối với máy móc. Do
đó, các loại tài liệu này thường được lập chỉ mục bằng cách đặt tiêu đề hoặc đánh
thẻ metatag. Tuy nhiên, vì mỗi người khác nhau có thể biểu diễn các loại tài liệu
này theo các cách khác nh, do đó việc tìm kiếm chỉ dựa trên các từ khoá đơn
giản này là rất khó khăn. Lý tưởng hơn cả là áp dụng ontology để phân tích các
thơng tin thêm về miền tri thức qua đó có thể dùng để cải thiện việc tìm kiếm,
truy xuất hình ảnh, âm thanh hay bất kỳ tài liệu phi văn bản nào khác.
3. Quản lý website cho các tập đồn: Các tập đồn có quy mơ thường có số lượng
lớn các trang web liên quan đến thống cáo báo chí, dịch vụ sản phẩm, quy trình
hoạt động, các sản phẩm nội bộ, bản tóm tắt và so sánh, các bài báo, hay các
bản mô tả quy trình. Ontology có thể được dùng để lập chỉ mục cho các loại tài
liệu này giúp cho quá trình truy xuất tối ưu hơn. Mặc dù các tổ chức lớn thường
hay phân loại để tổ chức thông tin, nhưng điều này là không đủ. Một ontology
đơn thường bị giới hạn bởi tính phân loại trong một góc nhìn hay một miền tri
thức nào đó. Cho nên, khả năng tìm kiếm với nhiều thông số khác nhau, một
cách đồng thời, thường đem lại nhiều kết quả tốt hơn so với việc tìm kiếm trên
một từ khố thơng qua phân loại.
4. Thiết kế tài liệu: Thường được áp dụng trong các tài liệu kỹ thuật. Các loại tài
liệu này có thể là tài liệu thiết kế, tài liệu sản xuất hay tài liệu thử nghiệm. Các
ontologies có thể được sử dụng để xây dựng một mơ hình thơng tin cho phép
khám phá khơng gian thơng tin theo các mục được trình bày, các liên kết giữa
các mục, các thuộc tính của các mục và các liên kết đến tài liệu mô tả và định
nghĩa chúng.
5. Web agents & web services: Semantic Web có thể cung cấp cho các agents khả
năng hiểu và tích hợp các nguồn thơng tin đa dạng. Một ví dụ cụ thể là một
người lập kế hoạch hoạt động xã hội, có thể lấy sở thích của người dùng (chẳng
hạn như thể loại phim nào họ thích, loại thực phẩm nào họ hay dùng, v.v.) và sử

dụng thông tin này để lên kế hoạch cho các hoạt động của người dùng cho buổi
tối. Nhiệm vụ lập kế hoạch cho các hoạt động này sẽ phụ thuộc vào sự phong
phú của môi trường dịch vụ được cung cấp và nhu cầu của người dùng. Trong
quá trình xác định/kết hợp dịch vụ, các dịch vụ xếp hạng và đánh giá cũng có
thể được đề xuất để tìm ra sự phù hợp nhất với sở thích của người dùng (ví dụ:
tư vấn đánh giá và xếp hạng phim và nhà hàng để tìm ra nơi phù hợp nhất với
khách hàng).
Các kỹ thuật biểu diễn tri thức dựa trên các ontologies đã được triển khai trong
các dịch vụ web ở cấp độ Business-to-Business để tự động hóa việc tích hợp các dịch
vụ, tạo ra các lĩnh vực nghiên cứu mới gọi là dịch vụ web ngữ nghĩa (semantic web
service) và web ngữ nghĩa hướng dịch vụ (service-oriented semantic web).
Logic mô tả (Description Logic - DL) là cốt lõi của việc định nghĩa các ontologies
bằng cách cho phép thêm một ngữ nghĩa vào các đặc tả sẵn có của các khái niệm hiện


3.2 Semantic Web Rule Language (SWRL)

13

tại cũng như hỗ trợ cho các cơ chế suy luận. DL có tính diễn đạt cao hơn logic mệnh đề,
nhưng kém hơn logic ưu tiên thứ tự (First Order Logic - FOL). Theo nghiên cứu [13]
đã trình bày, cấu thành của một DL bao gồm: Concepts, Roles, Individuals, Axioms,
Constructors. Trong đó, các thuộc tính (Attributes) là một phần không thể thiếu khi
định nghĩa các Concepts của contract bằng cách mơ tả các thuộc tính liên quan tới nó.
Các thuộc tính thường được mơ tả bởi quan hệ hasAttribute. Mô tả này được thể
hiện trong FOL theo cấu trúc quan hệ ba ngôi sau:
hasAttribute(< concept >, < attrN ame >, < attrV alue >)
Hay có thể biểu diễn dưới dạng quan hệ hai ngôi như sau:
hasV alue(a, < attrV alue >)
với a ∈ hasAttribute(< concept >, < attrN ame >).

Ontology có thể được thể hiện dưới nhiều định dạng khác nhau, trong đó ngơn ngữ
phổ biến và được sử dụng rộng rãi nhất là Web Ontology Language (OWL) [17]. OWL
được mơ hình hố theo hướng tiếp cận hướng đối tượng, nhằm thể hiện các tri thức
dưới dạng lớp và các thuộc tính của nó. OWL cung cấp một tập các từ vựng lớn hơn
và thể hiện ngữ nghĩa tốt hơn so với các định dạng nguyên thuỷ như XML, RDF hay
RDF Schema. OWL chia làm ba nhánh ngôn ngữ bao gồm: OWL Lite, OWL DL, và
OWL Full. Mỗi ngơn ngữ đều có các đặc trưng về cách diễn đạt riêng biệt, việc lựa
chọn ngôn ngữ phụ thuộc vào mục đích sử dụng ontology.

3.2

Semantic Web Rule Language (SWRL)

Một trong các điểm hạn chế của OWL đó là khả năng biểu diễn bị giới hạn. Mặc dù
OWL cung cấp tập hợp khá đầy đủ các cách xây dựng lớp, nhưng nó khơng thể biểu
diễn mối quan hệ giữa các thuộc tính kết hợp (composite properties), ví dụ liên kết
giữa thuộc tính "cha" và "anh trai" với thuộc tính "chú". Hạn chế này đã được chỉ ra
trong phiên bản OWL2, ở đó cho phép định nghĩa các chuỗi thuộc tính chỉ khi một
thuộc tính kết hợp là thuộc tính con của một trong các thuộc tính kết hợp đó. Semantic
Web Rule Language (SWRL) [18] là một ngơn ngữ quy tắc được thiết kế để mở rộng
khả năng diễn đạt của OWL. SWRL kết hợp OWL DL hoặc OWL Lite với một tập
con của Rule Markup Language [20]. SWRL mang lại khả năng suy diễn mạnh mẽ
bằng cách cho phép người dùng viết các luật dạng Horn (Horn-like rules) được xây
dựng trên các khái niệm của OWL. Các luật này tương tự như các ngôn ngữ Prolog
hay Datalog. SWRL được dựa trên nền tảng miêu tả luận lý giống OWL và có các cơ
chế tương tự nhằm đảm bảo tính lý luận và suy diễn. Một luật SWRL bao gồm tiền
đề (antecedent) hay còn gọi là body, và kết quả (consequent) hay còn gọi là head. Khi
các điều kiện trong body đúng, thì các điều kiện trong head bắt buộc phải đúng. Body
và head bao gồm các liên kết dương của các atoms, ví dụ:
atom ∧ atom ∧ ... → atom ∧ atom

Một atom là biểu thức có dạng:
p(arg1 , arg2 , ...argn )


3.2 Semantic Web Rule Language (SWRL)

14

Với p là ký hiệu vị ngữ (predicate symbol) và arg1 , arg2 , ...argn là các tham số
của biểu thức p. SWRL hỗ trợ năm dạng vị ngữ: lớp OWL (class), thuộc tính OWL
(property), kiểu dữ liệu (data type), phạm vi dữ liệu (data range), và hàm dựng sẵn
(built-in). Các tham số có thể là các cá thể OWL, các giá trị dữ liệu hoặc các biến
tham chiếu. Tất cả các biến trong OWL dược coi là định lượng, và có giới hạn nhất
định theo một quy tắc nào đó [21].
Atom Type
Class atom
Individual property atom
Data valued property atom
Different individuals atom
Same individuals atom
Built-in atom
Data range atom

Example
Person(?p), Car(?c)
hasCar(?p, ?c)
hasAge(?p, ?age)
differentFrom(“Mike”, “John”)
sameAs(“Mike”, “Michael”)
swrlb:greaterThan(?age, “18”)

xsd:int(?x)

Bảng 2: Các loại atom hỗ trợ bởi SWRL và ví dụ

SWRL hỗ trợ bảy dạng atoms khác nhau (bảng 2). P erson, Car là các lớp của
OWL, hasCar, hasAge là thuộc tính đối tượng và thuộc tính giá trị, ...
• Class Atom bao gồm một lớp OWL hoặc biểu thức lớp và một đối số duy nhất
đại diện cho một cá thể OWL. Ví dụ P erson(?p), M an(F red). Ở đây, P erson
và M an là các lớp OWL , ?p là một biến đại diện cho một cá thể OWL và F red
là tên của một cá thể OWL. Một quy tắc ví dụ đơn giản sử dụng các class atom
để chỉ rằng tất cả các cá thể thuộc loại M an cũng hoặc loại P erson được biểu
diễn:
M an(?p) → P erson(?p)
• Individual Property Atom bao gồm một thuộc tính đối tượng OWL và hai tham
số đại diện cho các cá thể OWL. Ví dụ hasBrother(?x, ?y), hasSibling(F red, ?y).
Ở đây, hasBrother và hasSibling là các thuộc tính đối tượng OWL , ?x và ?y
là các biến đại diện cho các cá thể OWL và F red là tên của một cá thể OWL.
Một quy tắc SWRL ví dụ một người có anh chị em có anh trai, do đó sẽ yêu cầu
nắm bắt các khái niệm về người, nữ, anh chị em và anh trai trong OWL. Theo
trực giác, khái niệm người và con trai có thể được nắm bắt bằng cách sử dụng
lớp OWL có tên là P erson với một lớp phụ M an; mối quan hệ anh chị em và
anh trai có thể được thể hiện bằng cách sử dụng các thuộc tính đối tượng OWL
hasSibling và hasBrother với một miền và phạm vi của P erson. Luật trong
SWRL được thể hiện:
P erson(?p) ∧ hasSibling(?p, ?s) ∧ M an(?s) → hasBrother(?p, ?s)
• Data Valued Property Atom bao gồm một thuộc tính dữ liệu OWL và hai tham
số, với tham số đầu tiên đại diện cho một cá thể OWL và tham số thứ hai là một
giá trị dữ liệu. Ví dụ hasAge(?x, ?age), hasHeight(F red, ?h), hasAge(?x, 232),



3.2 Semantic Web Rule Language (SWRL)

15

hasN ame(?x, ”F red”). Ở đây, hasHeight, hasAge và hasN ame là các thuộc
tính dữ liệu của OWL , ?x là một biến đại diện cho một cá thể OWL, F red là
tên của một cá thể OWL và ?h và ?age là các biến đại diện cho các giá trị dữ
liệu. Sử dụng một thuộc tính có giá trị dữ liệu boolean, một luật khẳng định rằng
tất cả những người sở hữu một chiếc xe nên được phân loại là người lái xe sau
đó có thể được viết là:
P erson(?p) ∧ hasCar(?p, true) → Driver(?p)
Các cá thể được đặt tên trong ontology cũng có thể được gọi trực tiếp. Ví dụ, có
thể viết lại luật trên để phân loại một cá thể tên Fred làm tài xế như sau:
P erson(F red) ∧ hasCar(F red, true) → Driver(F red)
Cần lưu ý là luật này chỉ đúng với một cá thể biết trước tên là F red. Không thể
tạo một cá thể mới bằng cách sử dụng các luật của hình thức này.
• Different Individuals Atom bao gồm các ký hiệu dif f erentF rom và hai tham số
đại diện cho hai cá thể OWL. Ví dụ dif f erentF rom(?x, ?y) và
dif f erentF rom(F red, Joe), ở đây ?x, ?y là hai biến đại diện cho hai cá thể còn
F red, Joe là tên của các cá thể.
• Same Individual Atom tương tự như Different Individuals Atom nhưng mang ý
nghĩa đối nghịch, được biểu diễn bởi ký hiệu sameAs. Ví dụ sameAs(?x, ?y) và
sameAs(F red, Joe).
• Data Range Atom bao gồm một tên kiểu dữ liệu hoặc một tập hợp các giá trị
(literal) và một tham số duy nhất biểu thị một giá trị dữ liệu. Ví dụ xsd :
int(?x), [3, 4, 5](?x), ở đây ?x đại diện cho một giá trị dữ liệu.
• Built-In Atom: Một trong những tính năng mạnh mẽ nhất của SWRL là khả
năng hỗ trợ các built-in do người dùng định nghĩa. Một built-in là một vị từ
nhận một hoặc nhiều tham số và có giá trị true nếu các tham số số thỏa mãn vị
ngữ. Ví dụ, built-in equal nhận vào hai tham số x, y và trả về giá trị true nếu

hai tham số này bằng nhau. Một ví dụ sử dụng built-in để biểu diễn ràng buộc
kiểm tra một người có phải là vị thành niên không như sau:
P erson(?p) ∧ hasAge(?p, ?age) ∧ swrlb : greaterT han(?age, 17) → Adult(?p)
Theo quy ước, các built-in của SWRL sẽ có tiền tố là swrlb. Khi thực thi, luật
trên sẽ phân loại các cá thể thuộc lớp P erson có giá trị của thuộc tính hasAge
lớn hơn 17 sẽ được xếp vào lớp Adult.
Một luật dùng built-in xử lý chuỗi dùng để xác định số điện thoại của một người
có bắt đầu bằng mã ký tự quốc tế "x" hay khơng có thể thể hiện như sau:
P erson(?p) ∧ hasN umber(?p, ?number) ∧ swrlb : startsW ith(?number, ” + ”)
→ hasInternationalN umber(?p, true)


3.3 Ngữ pháp LL

16

SWRL cho phép việc định nghĩa các thư viện built-in để sử dụng trong các luật.
Người dùng có thể tự định nghĩa để thực hiện một loạt các tác vụ như chuyển
đổi tiền tệ, thao túng thời gian và tìm kiếm phân loại.
Quay lại hạn chế đã trình bày ở trên về OWL, một luật SWRL có thể giải quyết
hạn chế này như sau:
parent(?x, ?y) ∧ brother(?y, ?z) → uncle(?x, ?z)
Kết hợp các ontology OWL và các luật SWRL mang lại nền tảng tri thức có thể
khai thác để suy luận và tham khảo.

3.3

Ngữ pháp LL

Trong lý thuyết ngôn ngữ [19], ngữ pháp LL là một ngữ pháp phi ngữ cảnh (contextfree grammar ) có thể được phân tích cú pháp bởi bộ duyệt LL. Bộ duyệt này sẽ đọc

đầu vào từ trái sang phải (Left to right) và sinh ra một dẫn xuất ngoài cùng bên trái
(Leftmost derivation). Do đó, ngữ pháp này được gọi là LL. Đề tài sẽ xây dựng bộ
duyệt ngữ pháp LL1, do đó sẽ tập trung vào chi tiết của phần này.
Bộ duyệt LL(1). Một bộ duyệt ngữ pháp bất kỳ thường được chia làm 2 loại: Topdown và Bottom-up. Bộ duyệt LL được xếp vào loại Top-down (hình 3). Trong đó, bộ
duyệt dự đốn (predictive parser ) là một bộ duyệt đệ quy giảm, với khả năng dự đoán
dẫn xuất nào được sử dụng để thay thế cho chuỗi đầu vào.
Một bộ duyệt LL được gọi là LL(k), nếu như đọc vào k ký tự/từ (token) để xử lý.
Do đó, bộ duyệt LL(1) được thiết kế để đọc vào 1 token tại một thời điểm để đưa ra
các hành động xử lý tiếp theo. Nhiệm vụ của bộ duyệt LL(k) là phải dự đoán được luật
dẫn xuất nào được sử dụng để thay thế cho các ký tự non-terminal. Một giải thuật LL
căn bản sẽ bắt đầu với stack [S, $] và thực hiện một trong các bước sau:
1. Nếu đỉnh của stack là non-terminal, thay thế đỉnh đó bằng các dẫn xuất. Sử
dụng k token tiếp theo để đưa vào stack (khơng thay đổi vị trí duyệt chuỗi đầu
vào hiện tại).
2. Nếu đỉnh của stack là terminal, đọc token tiếp theo từ đầu vào. Nếu trùng nhau,
pop ra khỏi stack và tiếp tục. Nếu khơng, q trình duyệt thất bại, kết thúc
chương trình.
3. Nếu stack rỗng, bộ duyệt kết thúc và xem như q trình duyệt thành cơng (thường
sẽ xác định dựa vào ký tự kết thúc chuỗi - $).
Một ngữ pháp LL phải thoả mãn 2 tiêu chí là: Không tồn tại left-factoring và leftrecursion.
Left-factoring & Left-recursion. Ngữ pháp được gọi là left-factored khi có dạng
sau:
A → αβ1 | αβ2 | αβ3 |....| αβn | λ


×