• 沒有找到結果。

網站服務,在後端的伺服器方面,有負責與前端溝通的 App Server,以及處理 RDF 資料的 RDF Management Server,將系統分成兩個伺服器的目的是兩者處理 的資料不同,以及 App Server 應該專注於使用者的請求。

App Server 將直接面對使用者在客戶端給予的一切請求,關於圖片的詮釋資 料在這裡會被挑選出來送到更後端的 RDF Management Server,其餘的使用者資 料則直接存入關聯式資料庫裡。

RDF Management Server 顧名思義只負責關於存成 RDF 格式的詮釋資料的處 理以及保存。

當使用者從客戶端發出照片搜尋的請求時,App Server 會將解讀使用者設定 的搜尋條件,並且轉發成查詢指令向 RDF Management Server 作查詢。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

12

圖表 8:系統設計架構圖

圖表 9:系統設計元件圖

3.3 系統設計元件

在圖 9 中,可以看到 App Server 的部分我們使用 Django,一個 Python 程式

語言實作的 Web Framework,它同時負責客戶端的請求和關連式資料庫的的管理 外,也和後端的 RDF Management Server 作詮釋資料的交換。而 RDF Management Server 則是採用 Jena,一個 Java 程式語言實作,用來管理 RDF 的 Framework。

在兩個伺服器間的資料傳遞上,由於是用兩個不同的程式語言實作的 Framework,

Protocol Buffer 可以在資料收發的程式開發上給予很大的幫助。以下將針對系統 架構裡的每個元件做逐一介紹:

 Django

Django[5]是一個開放原始碼的 Web 應用框架,採用了 MVC[14]的軟體 設計模式,即模型 Model,視圖 View 和控制器 Controller。Django 的主要目 標是使得開發複雜的、資料庫驅動的網站變得簡單。Django 注重組件的重 用性和「可插拔性」,敏捷開發和 DRY 法則(Don't Repeat Yourself)[15]。

在 Django 中 Python 被普遍使用,甚至包括配置文件和資料模型。

Django 框架的核心包括:一個物件導向的映射器,用作資料模型(以 Python 類別的形式定義)和關聯性資料庫間的媒介;一個基於正則表達式的 URL 分發器;一個視圖系統,用於處理請求;以及一個模板系統。

Django 的 MVC 模式在應用開發速度上給予了很大的幫助,同時擁有更 多相關的開源 Library,如 Piston 在定義客戶端對伺服器的四種請求(GET、

POST、DELETE 和 PUT)路徑時讓程式碼架構變得極為簡潔,而 South 在管 理關聯式資料庫上,尤其是 Transaction 的機制變得非常容易。

 Jena

Jena[4]是一個開放原始碼的 Java Framework,提供了一套 API 以供 RDF 資料的讀寫。資料來源可以是檔案、資料庫或是 URLs 以及以上的組合,Jena 也接受使用 SPAQL 來進行資料的查詢。

Jena 有個特點是可以進行 RDF Inference,支持開發者撰寫 OWL(Web Ontology Language),並提供不同的 Reasoners 進行 RDF Inference,此外 Jena

Inference 的功能,在使用者給予一些詮釋資料後,由我們定義幾項推理規則 使得多個詮釋資料能夠發揮一加一大於二的效果。

 Protocol Buffer

Protocol Buffer[16]是 Google 公司內部的混合語言數據標準,目前已經 正在使用的有超過 48,162 種報文格式定義和超過 12,183 個.proto 文件。他 們用於 RPC 系統和持續數據存儲系統。

Protocol Buffer 擁有以下幾項優點:

1. 結構化數據儲存格式(xml, json) 2. 用於通信協議、數據儲存等 3. 高效的序列化和反序列化

4. 語言無關、平台無關、擴展性好 5. 官方支持 C++, Java, Python 三種語言

在我們規劃的系統架構中,後端的 App Server 與 RDF Management Server 分別由兩個語言支持的 Framework 進行實作,第四及第五點與系統的 實作語言正好配合,而在第一點中提到的 json 儲存格式是 Python 語言裡很 容易操作的格式,甚至從客戶端送回來的資料預設就是用 json 格式來作儲 存。Protocol Buffer 在本論文的系統開發上帶來了很大的幫助,並且在資料 傳遞的效能上也會比我們自己去定義 socket 封包的格式與接收來得更好。

見圖 10,照片的相關資料依照整張照片或是局部照片分為兩列清單,photo 的部分是有關整張照片的說明資料,有以下欄位以及描述:

- photo_id:照片的識別 ID,每張照片的 ID 都不同。

- photo_user:照片的上傳者。

- photo_updateTime:照片的上傳時間。

- photo_time:照片的拍攝時間。

- photo_locate:照片的拍攝地點。

在 annotation 清單裡的屬性則是此照片被使用者操作方框選取後,該局部部 分的詮釋資料,因此內容也包刮了方框的描述。

- annot_id:詮釋資料的 ID,每筆詮釋資料的 ID 都不同。

- annot_user:詮釋資料的作者。

- annot_updateTime:詮釋資料的上傳時間。

- annot_type:詮釋資料的型態,有人物、地點及事件。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

17

4.1.2 系統運作流程

表格 1:系統流程工作表(對應圖 9)

圖表 9: 系統架構及流程工作規劃圖(對應表二)

APP Server 會把客戶端送來的資料區分出背景資料及詮釋資料,背景資 料不需要語意的操作,單純的存取在關聯式資料庫就可以。

(4). Protocol Buffer 幫助照片的詮釋資料在兩個伺服器間交換:

前端的 APP Server 將詮釋資料跳選出來之後,就透過 Protocol Buffer 把 資料發送到後端的 RDF Management Server。而當使用者有檢索照片的語意 搜尋請求時,APP Server 將使用者設定的條件限制轉寫成 Spaql 指令,此指 令透過 Protocol Buffer 傳到 RDF Management Server,查詢出語意搜尋的目 標照片 ID 後再傳回 APP Server,APP Server 根據此 ID 向關聯式資料庫取出

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

19

對應的照片以及相關資料。

(5). Jena Reasoner 會利用現有的詮釋資料進行 Inference:

由於使用者能給予的詮釋資料在一張照片上未必總是齊全的,Jena 提供 了 RDF Inference 的機制,我們事先撰寫好一些固定的推理規則,Jena Reasoner 依據這些規則和現有的詮釋資料進行 Inference,進而擴充詮釋資料 的豐富性。

(6). 透過 Jena SDB API 與關聯式資料庫進行資料的永續存取:

RDF Management Server 上的詮釋資料也需要一個永續的儲存空間,而 Jena SDB API 滿足了這項需求,它可以將 RDF 格式的資料序列化成關聯式 資料庫的格式,並提供了一系列用於讀寫的 API 讓開發者使用。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

20

4.2 使用者情境

此章節將展示已完成的介面功能,同時說明該介面下的使用者情境。

4.2.1 照片的資料編輯介面

圖表 10: 4.2.1 的使用者情境介面,照片的詮釋資料編輯

圖 13 中所展示的是整張照片的編輯介面,我們可以看到在照片的上方有四 個文字欄位,供照片的擁有者填寫照片標題以及已知的照片背景詮釋資料,並且 設定該項資料屬性是否可以被其他使用者回答。

圖 13 的下方則是在照片中央有一個黑色方框的選取區以及一個編輯詮釋資 料型態的選單,使用者可以直接拖曳方框的位置或是調整方框的大小以確定選取 的區域符合描述的內容,在方框旁的操作盤則是讓使用者填入描述內容的型態以 及內容說明文字,並設定權限是否允許旁人修改。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

22

三組數字,程式將先判斷最小的兩組數字中的第一組為月,次小的數字 為日,最後的數字為年分;當輸入的數字為兩組時,先判斷是否符合月 日的組成,如果不行則斷定是年月的組合;輸入的數字如果只有一個,

斷定的優先順序是月再來日最後是年。程式採用的年份紀錄方式是西元 紀年。

圖表 15 輸入關鍵字時邏輯符號使用說明

圖表 16: 多重條件的條件搜尋

使用者也可以針對不同的型態都給予不同的關鍵字限制,在每個屬性標籤後 都填入此次搜尋的限制條件之後,留白的欄位視同不限制該欄位,點擊操作盤下 的紅色放大鏡按鈕即可執行多重條件的搜尋功能。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

23

4.2.3 搜尋結果的呈現與建議搜尋介面

搜尋結果的呈現介面如圖 18,我們選用了條列的呈現方式,每一筆搜尋結果會 顯示目標照片的縮圖,以及該照片被標記的詮釋資料的文字內容,詮釋資料對應 的區域並不會在縮圖上顯示,使用者可以直接點擊照片的縮圖以進入整張照片的 詮釋資料瀏覽頁面(即圖 13)。而在清單的最上方使用者可以決定清單的排列方 式是依照時間的遠近或是其他排序依據。

在結果呈現介面的右側會有一個搜尋建議的表單(圖 17),我們根據詮釋資料所 建立的 RDF Graph,去分析出最常一起出現的人物與地點,以及搜尋目標的最早 及最近出現時間。使用者可以簡單的點擊推薦的超連結去做一次快速的新搜尋。

圖表 17: 根據照片結果所給予的延伸搜尋建議

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

24

圖表 18: 多重條件的條件搜尋

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

26

位置並且給予作者與發佈單位及時間,可以是一篇新聞報導的註解,或著是機關 組織公文發布時的註解,有了這些註解之後,可以幫助讀者來快速檢閱被標註的 物件內容,以及在瀏覽內容時做更貼切的閱讀推薦。

搜尋建議也就是上個段落提到的閱讀推薦,在本論文實作的系統中只列了 4 項:與搜尋標的同時出現人物或地點及時間。如果程式能夠對自然語言做一定的 理解,讓使用者可以在延伸搜尋時自由輸入。比如「和某人的最早出現時間」以 及「和某人的最近出現時間」,可以交集出一個時間區間更進一步的對兩人關係 做追蹤搜尋。

[1] George W. Furnas , Caterina Fake , Luis von Ahn , Joshua Schachter , Scott Golder , Kevin Fox , Marc Davis , Cameron Marlow , Mor Naaman, Why do tagging systems work?, CHI '06 extended abstracts on Human factors in computing systems, April 22-27, 2006, Montréal, Québec, Canada.

[2] Lassila, O., Swick, R. (1998). The Resource Description Framework (RDF) Model & Syntax. W3C Working Draft. http://www.w3.org/TR/WD-rdf-syntax.

[3] Stefan Decker, Dan Brickley, Janne Saarela, Jürgen Angele, A Query and Inference Service for RDF, W3C Query Languages Workshop (1998), http://purl.org/net/rdf/papers/QL98-queryservice

[4] B. McBride, "Jena: A Semantic Web Toolkit", IEEE Internet Computing, November - December 2002.

[5] Ariel Ortiz, Web development with python and django, Proceedings of the 43rd ACM technical symposium on Computer science education. ACM, 2012. P. 686.

[6] Datta, R., Joshi, D., Li, J. and Wang, J., Image Retrieval: Ideas, Influences, and Trends of the New Age. in ACM Computing Surveys, (2008).

[7] Yan, R., Natsev, A., and Campbell, M. 2007., An efficient manual image annotation approach based on tagging and browsing. In Workshop on

Multimedia Information Retrieval on the Many Faces of Multimedia Semantics.

ACM, New York, 13–20.

[8] A. Leff and J. Rayfield "Web-application development using the

Model/View/Controller design pattern", Proc. Int. Enterprise Distrib. Object Comput. Conf., pp.118 -127 2001

[9] Lavrenko, V., R. Manmatha, and J. Jeon: 2004, ‘A model for learning the semantics of pictures’. In: Advances in Neural Information Processing Systems 16.

[10] A. Goodrum. Image information retrieval: An overview of current research.

Informing Science, 3(2):63–67, 2000.

[11] Blei, D. M. and M. I. Jordan: 2003, ‘Modeling annotated data’. In: Proc. ACM SIGIR. pp. 127–134.

[12] Carneiro, G. and N. Vasconcelos: 2005a, ‘A database centric view of semantic image annotation and retrieval’. In: SIGIR. pp. 559 – 566.

[13] Makadia, A.; Pavlovic, V.; and Kumar, S. 2010. Baselines for image annotation.

In IJCV, 90(1):88–105.

[14] S.-J. P. Jae-Hun Choi, Seong-Hee Park, "Design and imple-mentation of a concept-based image retrieval system with edge description templates," in SPIE Storage and Retrieval Methods and Application for Multmedia, vol. 5307, 2004, pp. 571–581.

[15] Wilson, G., Aruliah, D., Brown, C.T., Hong, N.P.C., Davis, M., Guy, R.T.,

[15] Wilson, G., Aruliah, D., Brown, C.T., Hong, N.P.C., Davis, M., Guy, R.T.,

相關文件