1. Trang chủ
  2. » Luận Văn - Báo Cáo

TÌM HIỂU VỀ RDF VÀ ỨNG DỤNG VÀO LẬP TRÌNH SEMATIC WEB

32 1,1K 7

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 1,62 MB

Nội dung

RDF được thiết kế sao cho hệ thống máy tính có thể hiểu được và có thể đọc được thông tin, chứ không phải để trình bày dữ liệu cho người dùng.Là một thành phần của Semantic Web, được đặt

Trang 1

TIỂU LUẬN BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG

Trang 2

LỜI CẢM ƠN

Em xin gửi lời cảm ơn chân thành đến thầy PGS.TS Đỗ Văn Nhơn, người đã dành nhiều thời gian quý báu của mình để truyền đạt cho lớp CH CNTT K6 những kiến thức bổ ích, lý thú về biểu diễn tri thức và ứng dụng Đây là những kiến thức hết sức cần thiết cho hành trang của chúng em trong công việc nghiên cứu về lĩnh vực tin học Đặt biệt thầy đã truyền đạt các kiến thức và ví dụ minh họa rất bổ ích cho chúng em về ontology Đây chính là tiền đề, là kiến thức nền tảng đã thôi thúc

em thực hiện đề tài tiểu luận về “Tìm hiểu về RDF và ứng dụng vào lập trình Semantic Web”

Xin chân thành cảm ơn sự giúp đỡ của các bạn bè, anh chị, những người đã thảo luận và đóng góp ý kiến, giúp đỡ em tìm kiếm thông tin và động viên tinh thần cho em trong suốt quá trình thực hiện tiểu luận

Một lần nữa xin chân thành cảm ơn đến tất cả những người đã quan tâm đến tiểu luận của em Tuy nhiên, trong quá trình làm việc không thể tránh khỏi những sai sót, rất mong sự đóng góp ý kiến nhiệt tình của Thầy và các bạn

Học viên thực hiện

Phan Đình Duy Lớp: CH CNTT K6

Trang 3

Mục lục

Chương 1 BIỂU DIỄN DỮ LIỆU BẰNG RDF 3

1.1 Định nghĩa RDF 3

1.2 Mô hình dữ liệu RDF 3

1.2.1 URIs 4

1.2.2 Blank Nodes 4

1.2.3 Literal values - Giá trị nghĩa đen 5

1.3 Các định dạng lưu trữ RDF 6

1.3.1 N-Triples 7

1.3.2 N3 7

1.3.3 RDF/XML 8

1.4 Ontology 8

Chương 2 ỨNG DỤNG RDF VÀO LẬP TRÌNH SEMANTIC WEB 11

2.1 Sử dụng Sesame như công cụ lưu trữ và truy vấn 12

2.1.1 Cài đặt ứng dụng web Sesame 12

2.1.2 Tạo mới kho dữ liệu 12

2.1.3 Load dữ liệu thô tạo đồ thị ngữ nghĩa 14

2.1.4 Đẩy dữ liệu từ đồ thị lên sesame(qua định dạng RDF/XML) 16

2.2 Tạo ứng dụng web 18

2.3 Màn hình chung 18

2.4 Mở rộng các tập dữ liệu từ các nguồn công cộng 20

2.5 Tạo màn hình theo chức năng 24

2.6 Trực quan hóa giao diện 25

Chương 3 KẾT LUẬN 29

Trang 4

DANH MỤC HÌNH ẢNH

Hình 1-1 Blank nodes trong mạng xã hội thể hiện thành viên 4

Hình 1-2 Blank node mô hình hóa một địa chỉ liên lạc 5

Hình 1-3 Đồ thị các mối quan hệ của TobySegaran 6

Hình 2-1 Màn hình cấu hình của Sesame 12

Hình 2-2 Tạo mới kho dữ liệu 13

Hình 2-3 Kho dữ liệu được tạo với id là joblistings 14

Hình 2-4 Kết quả tìm danh sách các công ty tuyển dụng 17

Hình 2-5 Xem danh sách Triple bằng export 17

Hình 2-6 Kết quả của màn hình liên kết Subject - Predicate - Object 20

Hình 2-7 Kết quả truy xuất tìm thông tin về công ty trên Crunchbase dựa vào keys 21

Hình 2-8 Nội dung của đồ thị trên kho seasame 23

Hình 2-9 Thông tin bổ sung đã được cập nhật 23

Hình 2-10 Màn hình cụ thể về các vị trí tuyển dụng và thông tin về công ty 25

Hình 2-11 Kết quả JSON trả về bởi hàm exhibit_job_data 26

Hình 2-12 Màn hình thể hiện biểu đồ jobs theo salary và funding dạng plot 28

Trang 5

Chương 1 BIỂU DIỄN DỮ LIỆU BẰNG RDF 1.1 Định nghĩa RDF

Chúng ta thấy rằng việc chuyển sang mô hình dữ liệu đồ thị là khá dễ dàng, và là một

ý tưởng tốt Nhưng với dữ liệu đã được nạp vào đồ thị, làm thế nào để chia sẽ dữ liệu đó cho người khác? Đó chính là lý do của sự xuất hiện Resource Description Framework(RDF) của W3C RDF cung cấp một cách biểu diễn chuẩn của đồ thị, cho phép chia sẽ chúng với người khác, và quan trọng hơn là với máy tính Bởi vì nó là một chuẩn mà W3C “khuyến khích", một tập lớn các công cụ và dịch vụ đã xuất hiện quanh khái niệm về RDF.RDF là một “bộ khung” được sử dụng để mô tả các nguồn tài nguyên trên Internet RDF cung cấp một mô hình dữ liệu, và một cú pháp đơn giản sao cho các hệ thống độc lập có thể trao đổi và sử dụng nó

RDF được thiết kế sao cho hệ thống máy tính có thể hiểu được và có thể đọc được thông tin, chứ không phải để trình bày dữ liệu cho người dùng.Là một thành phần của Semantic Web, được đặt trên XML, RDF sử dụng cú pháp của XML để biểu diễn thông tin, điều này có nghĩa là các tài liệu RDF được viết bằng XML Ngôn ngữ XML dùng để biểu diễn thông tin trong RDF được gọi là RDF/XML Thông qua định dạng này, các thông tin trong RDF có thể được trao đổi dễ dàng giữa các hệ thống máy tính cũng như các hệ điều hành hay các ngôn ngữ lập trình ứng dụng khác nhau

RDF mô tả siêu dữ liệu về các tài nguyên trên Web RDF dựa trên cú pháp XML tuy nhiên XML chỉ mô tả dữ liệu, RDF còn có khả năng biểu diễn ngữ nghĩa giữa chúng thông qua các tài nguyên được định danh bằng URI

1.2 Mô hình dữ liệu RDF

Hiểu một cách cực kỳ đơn giản dựa vào những khái niệm về mô hình ngữ nghĩa mà chúng ta đã tìm hiểu trong phần trước, RDF chẳng qua là một cách chuẩn hóa mô hình ngữ nghĩa bằng triple, là một cấu trúc gồm 3 thành phần chính (Subject-Predicate-Object) Điểm khác biệt duy nhất chính là liên quan đến tài nguyên sử dụng thể hiện trong triple và các định dạng lưu trữ của chúng

Trang 6

1.2.1 URIs

Universal Resource Identifier (URI): tức là định danh tài nguyên duy nhất Trong đó URL là tập con của URI chỉ vị trí tài nguyên duy nhất mà chúng ta đã quá quen thuộc khi

sử dụng web

Mô hình DRF sử dụng URI như tài nguyên cho tất cả các thành phần trong mô hình

từ subject, predicate đến object nhằm đảm bảo tính duy nhất và đồng thời cũng là giá trị

để truy xuất đến các thông tin có nghĩa thực sự

Điều quan trọng là cần lưu ý rằng URI không phải là URL (mặc dù mỗi URL là một URI) Một cách thực tế, điều này có nghĩa là bạn không nên cho rằng URI sẽ tạo ra bất kỳ thông tin nào nếu bạn gõ vào một trình duyệt web Mà nó có nghĩa rằng, cố gắng làm càng nhiều thông tin tài nguyên sẵn có tại địa chỉ là một cách tốt

Một cách sử dụng phổ biến và ngắn gọn của URI trong RDF là chỉ ra khái niệm namespace (không gian sử dụng chung) để định nghĩa phần cơ sở của URI (base) và chỉ thể hiện bằng tên namespace cộng với thành phần phân biệt còn lại của URI

Trang 7

Trong biểu diễn triple, Blank node được thể hiện bằng quy tắc đặt tên _:id, trong đó

id là tùy ý nhưng phải suy nhất trong phạm vi đồ thi

Ví dụ , biểu thức định dạng triple cho mô hình ở Hình 1-1như sau

(_:ax1, "weblog", "http://blog.kiwitobes.com")

(_:ax1, "surName", "Segaran")

(_:ax1, "givenName", "Toby")

nguyên Mã ISO 639 được sử dụng để chỉ định ngôn ngữ; Ví dụ, en cho tiếng Anh hoặc

ja cho Nhật Bản

Trang 8

1.3 Các định dạng lưu trữ RDF

Cách sử dụng RDF thì dường như khá đơn giản nhưng cấu trúc lưu trữ chúng thì khá phức tạp, tuy nhiên chúng ta không lo lắng về điều này vì RDF đã có sẵn những chuẩn định dạng lưu trữ khá tốt

Chúng ta sẽ tìm hiểu bốn định dạng tuần tự hóa ở đây: N-Triples, mô tả đơn giản nhất; N3, phiên bản ngắn gọn của N-Triple; RDF / XML, một trong những định dạng sử dụng thường xuyên nhất và cuối cùng, "RDF in attributes" (RDFa), được nhúng vào các

Trang 9

1.3.1 N-Triples

Định dạng đơn giản và gần với cấu trúc gốc của Triple nhất, có định dạng

Subject1 Predicate1 Object1

Subject2 Predicate2 Object2

Trong đó mỗi triple là một dòng đơn gồm 3 thành phần và kết thúc bằng dấu chấm Các thành phần được thể hiện bằng URI được bao quanh bởi dấu <> bao quoanh, ngoại trừ

 Blank Node thể hiện bằng _:id ( id là chuỗi tự do tuân theo nguyên tắc đặt tên)

 Literal values : thể hiện bằng chuỗi trong ngoặc kép

Chỉ định @lang theo sau để chỉ ngôn ngữ : ISO 639 Chỉ định ^^type theo sau để chỉ kiểu dữ liệu : XSD

 N-Triples được lưu xuống file dưới đuôi là nt

1.3.2 N3

N3 là phiên bản nâng cấp khắc phục tình trạng bị lặp lại của N-Triples, bằng cách đưa

ra một số cách định nghĩa trước và quy tắc thể hiện theo nhóm Một số bổ sung sau

Định nghĩa @prefixsemperp: <http://semprog.com/people/>

Sử dụng semperp:colin thay cho <http://semprog.com/people/colin>

Nhóm các predicate và object vào chung một nhóm để tranh lặp lại subject

 Subject1 P1_1O1_1;P1_2 O1_2

Với Subject là Blank Node nhóm các predicate và object vào chung và đặt bên

trong ngoặc vuông []

 Subject1 Predicate S2,[P2_1 O2_1;P2_2 O2_2]

Kí tự a, được thể hiện cho predicate thuộc kiểu dữ liệu (URI =

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type> )

 <http://www.w3.org/2002/07/owl#sameAs> hoặc owl:sameAs được thể hiện bởi dấu =

Trang 10

1.3.3 RDF/XML

RDF/XML là mô hình dữ liệu của RDF được biểu diễn bằng XML

Ở phần đầu tiên là nơi định nghĩa namespace ví dụ

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>

Phần nội dung, định dạng này được thể hiện theo mô hình tree, bám theo các giá trị subject gốc ban đầu Trong cấu trúc phân cấp các giá trị con chính là các thành phần kế tiếp trong dãy liên kết O-P-O-P-O…

Sử dụng tên của kiểu dữ liệu để làm node biểu diễn dữ liệu cho đối tượng thuộc kiều

đó ví dụ

<foaf:Person rdf:about="http://kiwitobes.com/toby.rdf#ts">

 Foaf:Person là kiểu dữ liệu cho đối tượng thể hiên cho tody

 Rdf:about là uri của đối tượng doty

 Literal values được thể hiện bằng nội dung text của xml node hoặc như một thuột tính trong rdf:Description

 Giá trị đối tượng trong node rdf:Description có kiểu là X thì nó được thể hiện bằng cách thay thế tên rdf:Description thành tên X

1.4 Ontology

Mô hình dữ liệu RDF đã cho chúng ta một khá tổng quát về tổ chức ngữ nghĩa Tuy nhiên, cũng vì tính quá chung chung đó mà tất cả các thực thể, đối tượng, quan hệ của chúng trở nên cực kì lộn xộn, không rõ ràng phạm vi sử dụng trong một lĩnh vực xác định.Ontology đã được áp dụng vào mô hình RDF để làm nó trở nên rõ ràng hơn về ý nghĩa và tính trong sáng cua mô hình

Sau khi khi trãi qua một loạt các mô hình ngữ nghĩa, chúng ta thấy rằng mô hình sử dụng Subject-predicate-object là một phương pháp hữu ích và linh hoạt cho việc biểu diễn tri thức.Các nhà triết học từ thời Aristotle đã quan tâm rất nhiều về việc biết những

gì tồn tại và làm thế nào để mô tả nó.Và một khi bạn nghĩ rằng bạn biết rằng một cái gì đó tồn tại, bước tiếp theo là tìm phạm vi cho nó trong số tất cả những thứ khác.Trong lĩnh vực triết học, nỗ lực này được gọi là ONTOLOGY

Trang 11

Vì sao chúng ta lại quan tâm đến vấn đề của triết học ? bởi vì triết học đưa ra những khái niệm chung nhất về thế giới và vũ trụ, chúng ta làm phần mềm liên quan tới ngữ nghĩa cần mô hình của thế giới Do đó chúng ta cũng cần tới những khái niệm liên quan đến thế giới

Xây dựng mô hình của thế giới là không có gì mới đối với các nhà thiết kế hệ thống Chúng ta đã và đang làm điều này mọi lúc mọi nơi, tạo các mô hình cơ sỡ dữ liệu và quan

hệ Tuy nhiên, với các hệ thống ngữ nghĩa, chúng ta cần phải thể hiện các mô hình này theo cách mà hệ thống phân phối trên Web có thể đọc và hiểu chính xác các mô hình của chúng ta và sử dụng chúng

Ontology cung cấp một tập từ vựng chính xác với những tri thức mà nó mang theo

Từ vựng này cho phép chúng ta xác định các thực thể sẽ được biểu diễn, làm thế nào chúng có thể được nhóm lại và các mối quan hệ của chúng

Vì vậy, làm thế nào để chúng ta biết được Ontology của chúng ta là thứ chính xác?

Nó chỉ đúng khi mà mọi người và các hệ thống sử dụng nó có thể để tương tác thành công Đây là cùng một tiêu chuẩn mà chúng ta áp dụng phần mềm máy tính Chương trình chạy không? Chúng ta nhận được câu trả lời chạy? Nếu vậy, chúng ta thành công Tương tự như mô hình hướng đối tượng (object-oriented - OO), mô hình ngữ nghĩa (sematic) cũng sử dụng khái niệm class để mô tả nhóm các thực thể cùng tính chất và quan hệ Trong hầu hết các mô hình hướng đối tượng một đối tượng là một thể hiện của một lớp bởi vì chúng nó được tạo bởi định nghĩa của lớp đó Một khi một thể hiện được tạo ra nó sẽ chứa tất cả các thuộc tính và hành động của lớp tạo ra nó

Dữ liệu ngữ nghĩa, như chúng ta đã thấy nó tập trung vào mối quan hệ giữa các thực thể Vì vậy mô hình ngữ nghĩa lại là mô hình hướng thuộc tính chứ không phải hướng đối tượng

Các thực thể ngữ nghĩa không được sinh ra từ trong một lớp, mà chúng được hiểu là một thành phần của lớp dựa vào những thuộc tính của chúng cùng chung một nhóm Chúng ta thấy phân biệt kiểu này thì quá chi tiết, nhưng việc tập trung vào các mối quan

hệ sẽ cho mô hình trở nên tuyệt vời và mềm dẽo hơn

Trang 12

Trong hệ thống hướng đối tượng, một thuộc tính là 1 phần của lớp, một khi bạn biết đối tượng là nằm trong lớp nào bạn sẽ biết danh sách các thuộc tính của đối tượng đó Trong hệ thống ngữ nghĩa, thuột tính được định nghĩa độc lập, một thuộc tính có thể khai báo nó thuộc kiểu tài nguyên nào ( resouce – tương tự class trong OO) Tập hợp các kiểu

( tài nguyên) sử dụng thuộc tính đó được gọi là domain ( lĩnh vực,phạm vi) của thuộc

tính Có nghĩa là một thuộc tính nằm có thể nằm trong nhiều kiểu khác nhau Tương tự

như vậy, tập hợp các giá trị của nó có thể nhận được thì gọi là range (miền xác định) của

thuộc tính

Trang 13

Chương 2 ỨNG DỤNG RDF VÀO LẬP TRÌNH SEMANTIC WEB

Phần này chúng ta sẽ kết hợp mọi thứ lại với nhau và sử dụng một số công cụ thể tạo thử một ứng dụng đơn giản tìm hiểu thông tin về các vị trí tuyển dụng trên web

Yêu cầu của ứng dụng

 Cài đặt và chạy các chức năng cơ bản một cách nhanh chóng

 Cần mềm dẽo cho việc mở rộng các chức năng

 Được thiết kế hỗ trợ cho việc truy xuất và chia sẽ thông tin theo dạng chuẩn(ngữ nghĩa)

 Tương tác nhanh

Hệ thống sẽ bao gồm 2 phần chính ( mà có thể sẽ mở rộng trong tương lai)

 Lưu trữ và truy vấn mô hình ngữ nghĩa RDF

 Tạo ứng dụng web truy xuất và thể hiện ra giao diện

Để bắt đầu thực hiện, giả sử chúng ta có sẵn một số dữ liệu dạng bảng có sẵn trên web đã được rút trích ra là danh sách các nghề nghiệp (jobs) Bạn có thể download tại đây

http://semprog.com/psw/chapter10/joblist.csv

Nội dung như sau:

"JobTitle","Salary","Location","Company","Crunchbase","Ticker"

"Tugboat Captain",10000,"San Francisco,CA","Metaweb","metawebtechnologies”

"Ancient Mariner",20000,"New York, NY","Google","google","GOOG"

"Fisherman",30000,"Seattle, WA","Microsoft",,"MSFT"

"Third Mate",40000,"Sunnyvale, CA","Yahoo",,"YHOO"

"Stevedore",50000,"New York, NY","Tumblr","tumblr"

Đây chỉ là cách tạo một ứng dụng ban đầu nên giả sử rằng có sẵn tập dữ liệu này, trong thực tế tập dữ liệu này sẽ được rút trích trực tiếp trên các hệ thống website về jobs.Việc cần làm đầu tiên là sẽ lấy danh sách dữ liệu này chuyển sang dạng lưu trữ RDF trước khi tiếp tục công việc

Trang 14

2.1 Sử dụng Sesame như công cụ lưu trữ và truy vấn

2.1.1 Cài đặt ứng dụng web Sesame

http://www.openrdf.org/download.jsp

Giải nén tìm và chép 2 files webapp openrdf-sesame.war và openrdf-workbench.war vào thư mục webapps của web server (giả sử ta đã có web server)

Cấu hình lại port cho web server tới 8180

Sau khi hoàn tất ta có thể truy xuất vào địa chỉ workbench để xem màn hình thiết lập của sesame như Hình 2-1 sau

http://localhost:8180/openrdf-Hình 2-1 Màn hình cấu hình của Sesame 2.1.2 Tạo mới kho dữ liệu

Để tạo mới một nơi chứa dữ liệu mô hình, chọn “New Repository”

Trang 15

Hình 2-2 Tạo mới kho dữ liệu Thông tin cần quan tâm ở đây là ID = joblistings , nó sẽ là id để sử dụng phân biệt

với các kho dữ liệu khác

Như vậy là chúng ta đã có một kho chứa dữ liệu trên sesame với dữ liệu là rỗng Hình 2-3 Chúng ta có thể thêm dữ liệu vào kho bằng các dữ liệu được định dạng chuẩn theo RDF trên file hoặc url trên mạng

Tuy nhiên những gì ta có chỉ là một danh sách các jobs trong file csv Do đó điều đầu tiên cần làm là cần phải thêm dữ liệu vào kho bằng cách code ( cũng để tìm hiểu rõ hơn bằng cách thêm dữ liệu động)

Trang 16

Hình 2-3 Kho dữ liệu được tạo với id là joblistings 2.1.3 Load dữ liệu thô tạo đồ thị ngữ nghĩa

Tạo một module nhỏ của Python để thực hiện công việc này, module này ta đặt tên là convert_jobs.py (trong source code đi kèm)

from rdflib import ConjunctiveGraph

from rdflib import Namespace , BNode , Literal , RDF , URIRef

Ngày đăng: 10/04/2015, 08:50

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w