Cụ thể, Silk Framework thường được sử dụng trong các trường hợp sau: o Tạo các liên kết giữa các mục dữ liệu có liên quan với nhau trong các nguồn dữ liệu Linked Data khác nhau o Những n
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÁO CÁO GIỮA KỲ
Danh sách sinh viên:
Hà Nội, 12 - 2021
Trang 2MỤC LỤC
I GIỚI THIỆU VỀ SILK FRAMEWORK 3
1 Giới thiệu chung 3
2 Các đặc điểm chính của Silk framework 3
II SILK LINK DISCOVERY ENGINE (SLDE) 4
III CÁCH SỬ DỤNG SILK FRAMEWORK 5
1 Command Line Applications 5
1.1 Giới thiệu Command Line Applications 5
1.2 Link Specification Language 5
1.2.1 Data Source 12
1.2.2 Linkage Rule 15
1.2.3 Outputs 23
1.2.4 Reference Links 27
2 Silk Workbench 28
2.1 Giới thiệu Silk Workbench 28
2.2 Sử dụng Silk Workbench 30
2.2.1 Cài đặt Silk Workbench bằng docker 30
2.2.2 Các bước sử dụng 30
IV KẾT LUẬN 34
V TÀI LIỆU THAM KHẢO 34
Trang 3I GIỚI THIỆU VỀ SILK FRAMEWORK
1 Giới thiệu chung
• Silk là một framework mã nguồn mở, được sử dụng để tích hợp các nguồn dữ liệu không đồng nhất Cụ thể, Silk Framework thường được sử dụng trong các trường hợp sau:
o Tạo các liên kết giữa các mục dữ liệu có liên quan với nhau trong các nguồn dữ liệu Linked Data khác nhau
o Những nhà công bố Linked Data có thể sử dụng Silk để thiết lập các liên kết RDF
từ nguồn dữ liệu của họ đến các nguồn dữ liệu khác trên Web
o Chuyển đổi dữ liệu cho các nguồn dữ liệu có cấu trúc
Dữ liệu trên Web được xây dựng dựa trên hai ý tưởng đơn giản sau:
o Thứ nhất, sử dụng mô hình dữ liệu RDF để công bố dữ liệu có cấu trúc trên Web
o Thư hai, thiết lập các liên kết RDF giữa các thực thể trong các nguồn dữ liệu khác nhau
Silk framework hỗ trợ giải quyết vấn đề thứ hai
• Silk - Link Discovery Framework cung cấp một ngôn ngữ khai báo được gọi là Silk
- Link Specification Language (Silk-LSL) Ngôn ngữ này được các nhà phát triển sử
dụng để chỉ định loại liên kết RDF nên được phát hiện giữa các nguồn dữ liệu cũng như các mục dữ liệu phải đáp ứng các điều kiện nào để được liên kết với nhau Các điều kiện liên kết này có thể áp dụng các độ đo tương đồng khác nhau cho các thuộc tính khác nhau Silk truy cập các nguồn dữ liệu thông qua giao thức SPARQL Do đó, Silk
có thể được sử dụng để khám phá các liên kết giữa nguồn dữ liệu cục bộ và từ xa
• Silk có thể được sử dụng theo hai cách:
o Silk Workbench: là một ứng dụng web cung cấp giao diện cho người dùng
o Command line
2 Các đặc điểm chính của Silk framework
• Cung cấp ngôn ngữ khai báo (Silk-LSL) linh hoạt giúp việc chỉ định các quy tắc liên kết
• Hỗ trợ tạo liên kết RDF
• Làm việc trong môi trường phân tán
• Có thể được sử dụng trong các trường hợp mà các thuật ngữ từ các từ vựng khác nhau bị trộn lẫn và không tồn tại các mô hình RDFS hoặc OWL nhất quán
• Khả năng mở rộng và hiệu suất cao thông qua xử lý dữ liệu hiệu quả:
Trang 4o Giảm tải mạng bằng cách lưu vào bộ nhớ đệm và sử dụng lại bộ kết quả SPARQL
o Tính toán đa luồng so sánh các mục dữ liệu
o Tùy chọn chặn các mục dữ liệu
II SILK LINK DISCOVERY ENGINE (SLDE)
Phần trung tâm của Silk Link Discovery Framework là Silk Link Discovery Engine (SLDE) Đây là phần chịu trách nhiệm nhận dữ liệu và sinh ra các liên kết dựa trên các nguyên tắc liên kết do người dùng cung cấp Silk Linking Discovery Engine xử lý các incoming data items, thường bắt nguồn từ SPARQL endpoint và theo các giai đoạn sau:
o Blocking (tùy chọn): giai đoạn này phân vùng các incoming data items vào các
cụm (cluster) Vì việc so sánh mọi tài nguyên nguồn (source) với từng tài nguyên đích (target) dẫn đến số lần so sánh rất lớn, làm tiêu tốn nhiều thời gian Vì vậy, blocking có thể được sử dụng để giảm số lần thực hiện phép so sánh Blocking phân vùng các mục dữ liệu tương tự nhau vào một cụm, mỗi cụm giới hạn số lần thực hiện phép so giữa các item trong cùng một cụm
o Link Genneration: trong giai đoạn này, SLDE thực hiện đọc các incoming data
items và tính toán các giá trị tương đồng của từng cặp Ở giai đoạn Blocking, incoming data items có thể được phân vào một cụm và được ghi vào bộ đệm ẩn bên trong Từ bộ nhớ đệm, các cặp mục dữ liệu được sinh ra Nếu giai đoạn Blocking bị tắt, thực hiện so sánh toàn bộ các cặp sinh ra từ hai bộ dữ liệu Nếu giai đoạn Blocking được bật, chỉ các mục dữ liệu trong cùng một cụm mới thực hiện so sánh Đối với mỗi cặp mục dữ liệu, điều kiện liên kết được đánh giá, tính toán giá trị tương đồng trong khoảng từ 0 đến 1 Mỗi cặp tạo ra một liên kết sơ bộ với giá trị tin cậy sự theo sự tương đồng của mục dữ liệu nguồn và đích
o Filtering: lọc các liên kết theo 2 giai đoạn:
▪ Trong giai đoạn đầu, tất cả các liên kết có độ tin cậy thấp hơn ngưỡng do người dùng định nghĩa sẽ bị xóa
▪ Trong giai đoạn thứ hai, tất cả các liên kết bắt nguồn từ cùng một chủ đề được nhóm lại với nhau Nếu số lượng liên kết bị giới hạn, chỉ những liên kết có độ tin cậy cao nhất mới được chuyển tiếp đến đầu ra Số lượng liên kết được chuyển tiếp trên mỗi nguồn bằng số lượng liên kết bị giới hạn
o Output: ghi lại các liên kết được sinh ra và lọc các liên kết được người dùng xác
Trang 5III CÁCH SỬ DỤNG SILK FRAMEWORK
1 Command Line Applications
1.1 Giới thiệu Command Line Applications
Ngoài giao diện, Silk còn cung cấp cho người dùng giao diện dòng lệnh để giải quyết các trường hợp khác nhau
• Silk Single Machine dùng để tạo liên kết RDF trên máy cá nhân Các tập dữ liệu
cần được liên kết với nhau có thể nằm trên cùng một máy hoặc trên các máy từ xa được truy cập thông qua giao thức SPARQL Silk Single Machine cung cấp đa luồng
và bộ nhớ đệm Ngoài ra, hiệu suất có thể được nâng cao hơn nữa bằng cách sử dụng tính năng chặn tùy chọn
• Silk MapReduce được sử dụng để tạo liên kết RDF giữa các tập dữ liệu bằng cách
sử dụng một cụm nhiều máy Silk MapReduce dựa trên Hadoop và chẳng hạn như
có thể chạy trên Amazon Elastic MapReduce Silk MapReduce cho phép Silk mở rộng quy mô tới các bộ dữ liệu rất lớn bằng cách phân phối việc tạo liên kết cho nhiều máy
• Silk Server có thể được sử dụng như một thành phần phân giải danh tính trong các
ứng dụng sử dụng Dữ liệu được Liên kết từ Web Silk Server cung cấp một API HTTP để đối sánh các phiên bản từ luồng dữ liệu RDF đến trong khi vẫn theo dõi các thực thể đã biết Chẳng hạn, nó có thể được sử dụng cùng với trình thu thập dữ liệu Dữ liệu được Liên kết để đưa dữ liệu từ Web vào duplicate-free
Để sử dụng Command line application, ta phải cần đến ngôn ngữ đặc tả liên kết
hay Link Specification Language
1.2 Link Specification Language
Silk framework cung cấp một ngôn ngữ khai báo để chỉ định loại liên kết RDF nào được phát hiện giữa các nguồn dữ liệu cũng như các các dữ liệu phải đáp ứng các điều kiện nào để được liên kết với nhau Phần này mô tả cấu trúc ngôn ngữ của Ngôn ngữ đặc
tả Silk Link
Ví dụ dưới đây cung cấp một cái nhìn tổng quan về các cấu trúc ngôn ngữ chính của Silk-LSL
Trang 7Cấu trúc và thành phần
Silk-LSL được thể hiện bằng XML, ví dụ như lược đồ XML Silk tương ứng Tên thẻ gốc
là <Silk> Một tài liệu hợp lệ có thể chứa bốn loại câu lệnh cấp cao nhất bên dưới phần tử gốc:
Trang 8Data Source Definitions
Định nghĩa nguồn dữ liệu cho phép đặc tả các tham số truy cập tới các điểm cuối SPARQL cục bộ hoặc từ xa Các nguồn dữ liệu đã xác định sau đó có thể được tham chiếu và sử dụng bởi ID của chúng trong các câu lệnh đặc tả liên kết
Blocking Data Items
Vì so sánh mọi tài nguyên nguồn với mọi tài nguyên đích duy nhất dẫn đến một số
so sánh n * m có thể tốn quá nhiều thời gian, nên có thể sử dụng phương pháp chặn để giảm số lượng so sánh Chặn phân vùng các mục dữ liệu tương tự thành các cụm làm giảm bớt sự so sánh với các mục trong cùng một cụm
Ví dụ: đưa ra hai tập dữ liệu mô tả sách, để giảm số lượng so sánh, có thể chặn sách theo nhà xuất bản Trong trường hợp này, chỉ các sách của cùng một nhà xuất bản mới được so sánh Với số lượng 40.000 cuốn sách trong tập dữ liệu đầu tiên và 30.000 cuốn sách trong tập dữ liệu thứ hai, việc đánh giá toàn bộ sản phẩm Descartes đòi hỏi 1,2
tỷ phép so sánh
Nếu chặn tập dữ liệu này bởi nhà xuất bản, mỗi cuốn sách sẽ được phân bổ cho một khối dựa trên nhà xuất bản của cuốn sách đó Sử dụng 100 khối, nếu số sách được phân bố đồng đều thì sẽ có 400 cuốn sách tương ứng 300 cuốn mỗi khối, giảm số so sánh
là 12 triệu cuốn
Câu <Blocking>lệnh cho phép thực hiện giai đoạn chặn Không cần cấu hình bổ sung vì Silk sẽ tự động tạo một chức năng chặn từ đặc tả liên kết Thuộc tính blocks tùy chọn chỉ định số lượng khối sẽ được sử dụng Giá trị mặc định của 100 khối phù hợp với hầu hết các trường hợp sử dụng Nếu không có <Blocking>câu lệnh nào được cung cấp trong đặc tả liên kết, thì phép so sánh sẽ lặp lại trên tất cả các cặp tài nguyên
Trang 10Ví dụ như
Link Type
Các Loại Liên kết chỉ thị xác định loại của các liên kết được tạo ra
Ví dụ:
Trang 11Datasets
Dữ liệu nguồn và dữ liệu đích xác định một tập hợp các object được so sánh
Các yếu tố cần được liên kết với nhau được chọn bằng cách cung cấp một giới hạn cho mỗi nguồn dữ liệu Ở dạng đơn giản nhất, một giới hạn chỉ chọn tất cả các thực thể của một kiểu cụ thể bên trong nguồn dữ liệu Ví dụ: để liên kết các thành phố với nhau trong DBpedia, một giới hạn có thể chọn tất cả các thực thể có loại dbpedia: City Đối với các giới hạn phức tạp hơn, cho phép chỉ định các bộ ba Arbritray SPARQL
RestrictTo Hạn chế tập dữ liệu này bằng cách sử
Trang 12Bộ lọc Liên kết cho phép lọc các liên kết được tạo Nó chỉ có một tham số duy nhất là limit
Limit xác định số lượng liên kết bắt nguồn từ một mục dữ liệu N liên kết được đánh giá cáo nhất sẽ được giữ lại Nếu không cung cấp giới hạn, tất cả các liên kết sẽ được trả lại
Ví dụ tạo một liên kết cho mỗi thực thể:
Hoặc không giới hạn
1.2.1 Data Source
Tổng quát
Nguồn dữ liệu giữ các tham số truy cập tới các điểm cuối SPARQL cục bộ hoặc từ xa hoặc tệp RDF Các nguồn dữ liệu đã xác định sau này có thể được tham chiếu và sử dụng bởi ID của chúng Nguồn dữ liệu có thể được xác định bằng cách sử dụng API hoặc XML
Định nghĩa SPARQL Endpoint Data Source
Đối với SPARQL Endpoint, tồn tại một số tham số sau
endpointURI URI của điểm cuối SPARQL
Trang 13instanceList Một danh sách các trường hợp
được truy xuất Nếu không được cung cấp, tất cả các phiên bản sẽ được truy xuất Nhiều thể hiện có thể được phân tách bằng dấu cách
Retrieve all instances
pageSize Giới hạn mỗi truy vấn SPARQL
trong một lượng kết quả cố định
Nguồn dữ liệu SPARQL triển khai cơ chế phân trang để chuyển tham số kích thước trang thành các mệnh đề SPARQL LIMIT và OFFSET
1000
graph Chỉ truy xuất các thực thể từ một
biểu đồ cụ thể
No restriction
pauseTime Để cho phép giới hạn tốc độ truy
vấn đối với máy chủ SPARQL công khai, câu lệnh pauseTime chỉ định số mili giây phải đợi giữa các truy vấn tiếp theo
0
retryCount Để khôi phục các lỗi kết nối điểm
cuối SPARQL không liên tục, tham số retryCount chỉ định số lần thử kết nối lại
3
retryPause Chỉ định thời gian chờ giữa các
lần thử lại
1000
queryParameters Các tham số bổ sung sẽ được
thêm vào mọi yêu cầu, ví dụ: &
soft-limit = 1
Trang 14parallel Nếu nhiều câu truy vấn nên thực
hiện song song để truy xuất nhanh hơn
TRUE
Lưu ý rằng tất cả các tham số ngoại trừ URI điểm cuối là tùy chọn và có thể bị bỏ qua
Ví dụ:
RDF File Data Source Definitions
RDF file có thể chứa một số tham số
format Định dạng của file RDF, một số
Trang 15• Comparison Đánh giá mức độ tương đồng của hai đầu vào dựa trên thước đo
khoảng cách do người dùng xác định và trả về độ tin cậy
• Aggregation Tổng hợp nhiều giá trị tin cậy
Path Input
Một đường dẫn giúp truy xuất tới tất cả các giá trị được kết nối với các thực thể
Mọi câu lệnh đường dẫn đều bắt đầu bằng một biến, có thể được theo sau bởi một loạt các phần tử đường dẫn Nếu không thể giải quyết đường dẫn do thiếu thuộc tính hoặc bộ lọc hạn chế, thì một tập kết quả trống sẽ được trả về
Chuyển tiếp từ subject resource thông qua một thuộc tính đến object resource của
nó
\
reverse operato
<path_segment>\<property>
Di chuyển ngược từ subject resource thông qua một thuộc tính đến subject resource
Trang 16[]
filter operator
<path_segment>[<property> <comp_operator>
<value>]
Giảm tập hợp tài nguyên hiện được chọn thành những tài nguyên phù hợp với biểu thức
Trang 17Chức năng và thông số Mô tả
removeBlanks Loại bỏ khoảng trắng khỏi một chuỗi
removeSpecialChars Xóa các ký tự đặc biệt khỏi một chuỗi
lowCase Chuyển một chuỗi thành chữ thường
upperCase Chuyển một chuỗi thành chữ hoa
viết hoa Viết hoa chuỗi tức là chuyển ký tự đầu tiên thành
chữ hoa Nếu 'all AdWords' được đặt thành true, tất
cả các từ đều được viết hoa và không chỉ ký tự đầu tiên Theo mặc định, 'allWords' được đặt thành false capitalize Viết hoa chữ cái đầu
alphaReduce Tách tất cả các ký tự không phải chữ cái khỏi một
chuỗi
numReduce Tách tất cả các ký tự không phải số khỏi một chuỗi
Trang 18replace Thay thế tất cả các lần xuất hiện của "tìm kiếm"
bằng "thay thế" trong một chuỗi
regexReplace Thay thế tất cả các lần xuất hiện của một regex
“regex” bằng “Replace” trong một chuỗi
stripPrefix Tách tiền tố khỏi một chuỗi
stripPostfix Tách hậu tố khỏi một chuỗi
stripUriPrefix Tách tiền tố URI khỏi một chuỗi
concat Nối các chuỗi từ hai đầu vào
logarithm Biến đổi tất cả các số bằng cách áp dụng hàm
logarit Các giá trị không phải số được giữ nguyên Nếu cơ sở không được xác định, nó mặc định là 10
convert Chuyển đổi chuỗi từ “sourceCharset” thành
“targetCharset”
tokenize Tách chuỗi thành các mã thông báo Tách ở tất cả
các kết quả khớp của “regex” nếu được cung cấp và
ở các khoảng trắng nếu không
removeValues Xóa các giá trị cụ thể khỏi tập giá trị ‘blacklist' là
danh sách các từ được phân tách bằng dấu phẩy
removeParentheses Loại bỏ tất cả các dấu ngoặc bao gồm nội dung của
chúng, ví dụ: biến đổi 'Berlin' → 'Berlin'
Trang 19Các tham số:
Tham số Mô tả
required Nếu yêu cầu là true, thì tập hợp gốc chỉ mang lại giá trị tin
cậy nếu các đầu vào đã cho có giá trị cho cả hai trường hợp
weight Trọng số của sự so sánh này Trọng số được sử dụng bởi một
số tập hợp chẳng hạn như tổng trung bình các trọng số threshold Khoảng cách tối đa Đối với các thước đo khoảng cách chuẩn
hóa, ngưỡng phải nằm trong khoảng từ 0,0 đến 1,0
distanceMeasure Thước đo khoảng cách đã sử dụng Để biết danh sách các
thước đo khoảng cách có sẵn, hãy xem bên dưới
Inputs 2 đầu vào để so sánh
Ví dụ:
Threshold
Ngưỡng được sử dụng để chuyển đổi khoảng cách được tính toán thành giá trị trong khoảng từ -1,0 đến 1,0 Các liên kết cho giá trị >0 được đánh giá cao khi so sánh 2 thực thể
Trang 20là chèn, xóa hoặc thay thế một ký tự
Không
levenshtein Khoảng cách levensthein được chuẩn hóa thành
khoảng [0,1]
đúng
jaro Chỉ số khoảng cách Jaro Chỉ số khoảng cách đơn
giản ban đầu được phát triển để so sánh tên người đúng jaroWinkler Thước đo khoảng cách Jaro-Winkler Chỉ số
khoảng cách Jaro-Winkler được thiết kế và phù hợp nhất cho các chuỗi ngắn như tên người
đúng
equality 0 nếu các chuỗi bằng nhau, 1 nếu không đúng
inequality 1 nếu các chuỗi bằng nhau, 0 nếu ngược lại đúng
Ví dụ:
• Đo khoảng cách dựa trên token-based
Mặc dù các phép đo khoảng cách dựa trên ký tự hoạt động tốt đối với các