III.3 Màn hình chung

Một phần của tài liệu BIỂU DIỄN NGỮ NGHĨA BẰNG RDF VÀ ỨNG DỤNG VÀO LẬP TRÌNH SEMATIC WEB (Trang 60)

PHẦN III. Ứng dụng RDF vào lập trình semantic web

III.3 Màn hình chung

dữ liệu theo id công ty tuyển dụng. Thông tin bao gồm tập hợp tất cả các subjects và objects của id đã cho (trong triple). Có nghĩa tất cả những gì liên quan đến id đó.

con=connection('http://localhost:8180/openrdf-sesame/')

con.addnamespace('rdf',RDF)

con.addnamespace('foaf',FOAF)

con.addnamespace('jb',JB)

con.addnamespace('jobs',JOBS)

con.addnamespace('company',COMPANY)

con.addnamespace('dc',DC)

con.use_repository('joblistings')

namefields=set([str(DC['title']),str(COMPANY['name'])])

class Main(object):

@cherrypy.expose

def index(self):

id=quote_plus('http://semprog.com/schemas/jobboard#tumblr') return 'Try visiting <a href="viewgeneral?id=%s">here</a>' % id

@cherrypy.expose

def viewgeneral(self,id):

sa=con.query('select ?pred ?obj where {<%s> ?pred ?obj .}' % id) oa=con.query('select ?pred ?sub where {?sub ?pred <%s> .}' % id) name=id

for row in sa:

if row['pred']['value'] in namefields: name=row['obj']['value']

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

Đoạn code trên lấy ra danh sách của các subjects và objects, sau đó tìm tên ứng với id và truyền cả 3 tham số này xuống template để hiển thị. Template Viewgeneric.html có nội như sau

<html> <head>

<title>Viewing ${name}</title> </head>

<body>

<h1>${name}</h1>

<h3>Subject assertions</h3> <table>

% for row in sa: <tr>

<td style="font-weight:bold">${row['pred']['value']}</td> % if row['obj']['type']=='uri':

<td><a href="view?id=${qp(row['obj']['value'])}">${row['obj'] ['value']}</a></td> % else: <td>${row['obj']['value']}</td> % endif </tr> % endfor </table> <h3>Object assertions</h3> <table>

% for row in oa: <tr>

<td style="font-weight:bold">${row['pred']['value']}</td> % if row['sub']['type']=='uri':

<td><a href="view?id=${qp(row['sub']['value'])}">${row['sub'] ['value']}</a></td> % else: <td>${row['sub']['value']}</td> % endif </tr> % endfor </table> </body> </html>

Hình 3-7: kết quả của màn hình liên kết subject – predicate - object

Nếu như hệ thống có càng nhiều triple liên kết với nhau qua uri, thì hệ màn hình này cho phép và có thể lưới tới mọi ngóc ngách như bạn đang di chuyển trên các node của một đồ thị.

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

Một phần của tài liệu BIỂU DIỄN NGỮ NGHĨA BẰNG RDF VÀ ỨNG DỤNG VÀO LẬP TRÌNH SEMATIC WEB (Trang 60)

Tải bản đầy đủ (DOC)

(72 trang)
w