3.3.1 Giới thiệu về Cơ sở dữ liệu Graph
CSDL Graph là mô hình dữ liệu tổng quan cho Web ngữ nghĩa. Sau đây là một số hình ảnh mô tả CSDL Graph thông qua so sánh với các loại hình tổ chức dữ liệu khác với loại CSDL khác.
Hình 3.2 Các loại Biểu đồ dữ liệu.
Hình 3.2 thể hiện sự khác biệt giữa CSDL Graph với các hệ quản trị CSDL khác. Với CSDL Quan hệ thông thường, các dữ liệu được trích xuất thông qua quan hệ giữa các bảng như JOIN, LEFT JOIN...; còn với CSDL Thứ bậc thì dữ liệu được tổ chức phân thứ bậc cha con. Trong CSDL Graph, bởi các thực thể dữ liệu có quan hệ ngữ nghĩa với nhau, nên sau khi xây dựng các luật suy diễn giữa các thực thể trong Ontology thì việc trích xuất dữ liệu trở lên linh hoạt và dễ dàng và hiệu năng hơn. Đồng thời qua ví dụ dưới đây, chúng ta sẽ hiểu rõ hơn về CSDL Graph
Bengie là tên một con chó. Bonnie là tên một con mèo
Bengie và Bonnie làm bạn với nhau.
Hình 3.3 Mô hình Graph mô tả quan hệ giữa Bengie và Bonnie
Chúng ta sẽ phân tích mô hình này được ánh xạ vào trong RDF ra sao. “Thing 1” và “Thing 2” có các thuộc tính name, animalType và friendsWith. Vì có mệnh đề
“Bengie và Bonnie làm bạn với nhau” nên ta suy ra thuộc tính friendsWith cho cả “Thing 1” và “Thing 2”.
Điều quan trọng ở đây những mũi tên một chiều là các thuộc tính, trong RDF còn
gọi là các predicate. Và hai khái niệm property và predicate có thể chuyển đổi cho
nhau và các mũi tên diễn tả các thuộc tính trong đồ thị. 3.3.2 Truy vấn thông qua SPARQL
3.3.2.1 Sự giống nhau giữa SPARQL và SQL
Giống với SQL, SPARQL cũng lấy dữ liệu từ tập các truy vấn dữ liệu sử một phát biểu SELECT để xác định tập con của tập dữ liệu được chọn ra là được trả về. Với SPARQL sử dụng mệnh đề WHERE để định nghĩa mẫu mô hình cho việc tìm kiếm một ánh xạ cho tập truy vấn dữ liệu.
3.3.2.2 Câu lệnh Select
Một mẫu mô hình trong một mệnh đề WHERE SPARQL gồm subject, predicate
và đối tượng thứ ba, nơi ánh xạ đến và trả về dữ liệu cho truy vấn trong ví dụ bảng 3.13 sau:
1.PREFIX sch-ont: <http://education.data.gov.uk/def/school/> 2.SELECT ?name WHERE {
3. ?school a sch-ont:School.
4. ?school sch-ont:establishmentName ?name.
5. ?school sch-ont:districtAdministrative <http://statistics.data.gov.uk/id/local-authority- district/00AA>.
6.}
7.ORDER BY ?name
Bảng 3.1 Ví dụ câu lệnh truy vấn Select của SPARQL
Từ Hình 3.1, ta nhận thấy trong SPARQL các tên biến được thêm vào tiền tố “?”. Trong mệnh đề WHERE của mẫu tìm kiếm trên đối tượng thứ hai của mẫu tìm kiếm (dòng 4). Tuy nhiên ?school cũng là một biến. Bởi vì một URI cụ thể chưa được quy định cho một phù hợp nhưng là một biết một biến, Do đó bất kỳ subject nào phù hợp với URI sẽ được trả lại cho phần này của mô hình truy vấn và kết quả sẽ được ánh xạ vào tên biến. Vì vậy, trong câu truy vấn SPARQL trên, ?name sẽ trả về tất cả tên của các trường mà thỏa mãn ba mẫu tìm kiếm trong câu truy vấn. Nếu chúng ta muốn lọc thêm điều kiện nữa, chỉ cần add thêm các tiêu chí tìm kiếm là có thể tìm ra kết quả mong muốn.
Cuối cùng, ?school là biến ràng buộc cho cả ba mẫu tìm kiếm, bất kỳ subject nào phù hợp với mẫu tìm kiếm và sẽ được trả về cho biến này. Nhưng chú ý rằng,
trong câu truy vấn SELECT, thì ?school không phải là cái cần trả về, mà nó chỉ là điều kiện để lọc ra giá trị trả về cho biến ?name.
SPARQL không phải là một ngôn ngữ truy vấn mà nó là một giao thức, và nó trả về các kết quả trong schema xác định mà phần mềm bạn có thể đọc. Hầu hết tập kết quả trả về đều ở dưới định dạng là XML.
Tương tự như truy vấn trong SQL, trong SPRQL cũng có các truy vấn CREATE, UPDATE, DELETE. Chi tiết về các loại truy vấn này được trình bày rất chi tiết và rõ ràng trong nghiên cứu [35].
Chương 4 Thiết kế hệ thống
Nội dung trong chương này sẽ đề cập tới các định nghĩa, khái niệm cùng các ký hiệu được sử dụng xuyêt suốt luận văn. Ở chương này, chúng ta sẽ nhìn mặt tổng thể và chi tiết hệ thống về mặt kiến trúc, sau đó là mặt chức năng hệ thống, thiết kế dữ liệu và thuật toán xử lý nhằm đáp ứng yêu cầu của đề tài.