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

Một phần của tài liệu TÌM HIỂU VỀ RDF VÀ ỨNG DỤNG VÀO LẬP TRÌNH SEMATIC WEB (Trang 26)

Một ứng dụng thực tế không thể nào ra màn hình lộn xộn như trong màn hình chung ở trên và người sử dụng họ sẽ chẳng biết nó là cái gì.

Do đó phần này chúng ta sẽ tạo một màn hình có giao diện hướng tới người sử dụng hơn theo chức năng.

Ví dụ này sẽ thể hiện riêng biệt theo Organization và Vacancy.Đoạn mã dưới đây sẽ tìm các Organization và Vacancy của id hiện hành, và ứng với mỗi trường hợp sẽ gọi hàm trả về kết quả thể hiện nội dụng của nó. Lưu ý: type_views là một hash lưu các hàm render ứng với từng kiểu dữ liệu như Organization,Vacancy.

@cherrypy.expose

defview(self,id):

# Get the list of types for this object

q='select ?type where {<%s> rdf:type ?type .}'%id tq=con.query(q)

ob_types=[t['type']['value']fortintq]

# Look to see if there's a special handler

fortypename,funcinself.type_views:

ifstr(typename)inob_types:

returnfunc(self,id)

# If not, use the generic view

type_views=[(JOBS['Organization'],view_company),

(JOBS['Vacancy'],view_job)]

Việc cài đặt cái hàm view_company, view_job sẽ không được bàn ở đây vì về cách thức hoàn toàn tương tự cách đã làm ở màn hình chung (tham khảo module job_site.py trong source code)

25 Phan Đình Duy

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 2.6 Trực quan hóa giao diện

Thể hiện dữ liệu lên giao diện có nhiều cách khác nhau, các phần trước chúng ta đã sử dụng dạng bảng để thể hiện đến cho người dùng, trong phần này ta sẽ tìm hiểu một công cụ thể hiện trực quan , cụ thể hơn là dạng biểu đồ của các dữ liệu cần quan tâm.

Ví dụ thể hiện là một biểu đổ dạng điểm, thể hiện tất cả các jobs trên đó, trong đó funding và salary thể hiện như trục thể hiện thông tin.

Bổ sung đoạn code sau dung để hỗ trợ yêu cầu lấy dữ liệu trả về trình duyệt. @cherrypy.expose

defexhibit(self):

t=lookup.get_template('exhibit1.html')

returnt.render() @cherrypy.expose

defexhibit_job_data(self):

jobs=con.query("""select ?job ?title ?salary ?amount ?cid ?location ?cname where {?job jobs:vacancywith ?cid .

?job dc:title ?title . ?cid company:name ?cname . ?job jobs:salaryrange ?range . ?range jobs:minimumsalary ?salary .

26 Phan Đình Duy

?job jb:location ?location . ?cid jb:funding_round ?round . ?round jb:amount ?amount .}""")

items=[]

forrowinjobs: (adsbygoogle = window.adsbygoogle || []).push({});

items.append({'id':row['job']['value'],

'label':row['title']['value'],

'uri':'view?id='+quote_plus(row['job']['value']),

'funding':float(row['amount']['value']),

'company':row['cname']['value'],

'location':row['location']['value'],

'salary':float(row['salary']['value'])})

returndumps({'items':items})

hàm exhibit_job_data sẽ liệt kê ra tất cả các thông tin cần thiết vẽ chart của sanh sách các jobs. Sau đó chuyển nó sang dạng mảng đối tượng trong JSON và trả về yêu cầu gọi.

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

Template thể hiện sử dụng công cụ vẽ chart của Exhibit, vì đây là một trang thuần html + javascript nên đầu vào của chúng phải là một url trả về cấu trúc thuộc kiểu json.

<html> <head>

27 Phan Đình Duy

<title>Exhibit example</title>

<link href="exhibit_job_data" type="application/json" rel="exhibit/data"/>

<scriptsrc="http://static.simile.mit.edu/exhibit/api-2.0/exhibit- api.js"type="text/javascript"></script>

<scriptsrc="http://static.simile.mit.edu/exhibit/extensions-2.0/chart/chart- extension.js"type="text/javascript"></script>

</head> <body>

<table><tr><td>

<divex:role="viewPanel"> <divex:role="view"

ex:viewClass="Exhibit.ScatterPlotView"

ex:label="Funding vs. Salary"

ex:x=".funding" ex:xLabel="Funding" ex:y=".salary" ex:yLabel="Salary"> </div> </div> </td><tdwidth="20%"> <divex:role="facet"

ex:expression=".company"

ex:facetLabel="Company"

ex:height="10em"></div> <divex:role="facet"

ex:expression=".label"

ex:facetLabel="Title"

ex:height="10em"></div> </td></tr>

</body> </html> (adsbygoogle = window.adsbygoogle || []).push({});

Bên trong là cấu trúc sử dụng chỉ định các thuộc tính trong json dung để vẽ biểu đồ. Khi trang web hiển thị, nó sẽ dò theo href="exhibit_job_data"để gọi truy xuất dữ liệu, sau khi lấy được nó sẽ render ra trình duyệt.

28 Phan Đình Duy

29 Phan Đình Duy Chương 3. KẾT LUẬN

Qua tiểu luận này em đã lần lược tìm hiểu và sử dụng RDF , Ontology để biểu diễn ngữ nghĩa và ứng dụng vào sematic web. Qua đó em nhận định việc sử dụng mô hình bộ ba triple ngữ nghĩa có một số ưu và khuyết điểm sau:

Ưu điểm:

 Có khả năng biểu diễn một cách mềm dẽo tất cả các loại dữ liệu.

 Thể hiện theo cấu trúc ngôn ngữ tự nhiên nên mức độ trừu tượng khá cao và đồng thời bao hàm ngữ nghĩa bên trong nó, ví dụ khả năng tự suy luận để tìm ra nhiều tập luật mới dựa vào các luật hiện có kết hợp với 1 vài luật mới.

 Là một mô hình theo hướng đồ thị nên có thể ứng dụng tất cả các thế mạnh của đồ thị.

Khuyết điểm:

 Tốc độ truy xuất hạn chế trong những hệ thống dữ liệu lớn so với các hệ quản trị cơ sở dữ liệu.

 Do tính khái quát cao nên để có thể sử dụng tốt trong một lĩnh vực chuyện biệt thì cần kết hợp với ontology.

Đây chỉ là một tiểu luận nói sơ lược về ngữ nghĩa và một ứng dụng đơn giản của nó. Một số hướng phát triển mà em nghĩ đến là:

 Ứng dụng lưu trữ thay thế hệ cơ sỡ dữ liệu quan hệ ở mức tầm nhỏ và vừa (có được các truy vấn ngữ nghĩa và tận dụng khả năng của đồ thị).

 Xây dựng các ứng dụng trong các lĩnh vực chuyện biệt theo hướng chuẩn hóa (sử dụng RDF + ontology) để phục vụ cho việc tra cứu và tư vấn. ví dụ như : y khoa, tài liệu, pháp luật, khoa học cơ bản toán-lý-hóa, kinh tế, tài chính…Các hệ thống này có thể được hoạt động trên các web services, mô hình clouds computing(đặt ở nhiều server khác nhau), chứa tất cả các API để phục vụ cho các hệ thống phát triển ứng dụng.

 Sử dụng để biểu diễn cho mô hình COKB, để tạo một hệ thống dịch vụ toàn cầu hóa chuyên giải quyết một số vấn đề đặc thù nào đó, ví dụ: hệ tư vấn giải toán. Các dữ liệu lưu trữ và động cơ suy diễn được đặt hết trên server của dịch vụ ( bao gồm các công cụ hỗ trợ như maple). Người phát triển ứng dụng chỉ cần yêu cầu và nhận kết quả trả về dưới dạng một định dạng chuẩn và thể hiện ra ứng dụng (có thể hình dung ứng dụng là một hệ giải toán trên mobile phát triển trên nền Android hoặc max os iPhone có kết nối internet).

30 Phan Đình Duy TÀI LIỆU THAM KHẢO

[1] Toby Segaran, Colin Evans, Jamie Taylor. Programming the Semantic Web. Nhà xuất bản O’Reilly Media, 2009, 302 trang.

[2]Ora Lassila, Ralph R. Swick, World Wide Web Consortium. Resource Description Framework Model and Syntax Specification, 1998.

[3] Dan Brickley, World Wide Web Consortium. Rdf Specifications: Containing Resource Description Framework Rdf Schema and Resource Description Framework Rdf Model and Syntax Specification. Nhà xuất bản Iuniverse Inc, 2000, 136 trang.

[4] Decker, Melnik, Van Harmelen, Fensel, Klein, Broektra, Erdmann, Horrocks. The Semantic Web: the roles of XML and RDF. Interner Computing IEEE, 2002.

Một phần của tài liệu TÌM HIỂU VỀ RDF VÀ ỨNG DỤNG VÀO LẬP TRÌNH SEMATIC WEB (Trang 26)