如何使用GRUFF
GRUFF是一款強大的RDF可視化工具,下面將簡要介紹如何使用Gruff。
本文主要內容翻譯自Franz的Gruff-Tutorial文檔,原文檔地址:https://franz.com/agraph/gruff/Gruff-Tutorial.pdf
但由于版本更新,文檔中的某些菜單按鍵等已與新版不符,本文中略微做了調整,另外補充了一些原文檔中沒有的內容,供讀者學習。
一、簡介
本文簡單描述了如何使用三元組數據庫、如何上傳開放關聯數據以及如何使用圖模式進行SPARQL查詢。這會讓新接觸這些話題的用戶更好地理解這些方法和技術,以便更加深入地理解本書后面地例子。
二、什么是三元組,什么是RDF
為了完整起見,我們將在這里介紹三元組的概念,但是我們假設我們的讀者是熟悉RDF的。RDF語言是用來描述有關資源的數據,這里的資源是指任何事物。RDF的基本構建就是三元組,由主語、謂語、賓語組成。主語是一個URI,謂語被定義為主語的某些屬性,賓語就是字符串或者其他主語的URI,下面我們來看一組描述:
bb:YogiBerra rdf:type bio:Person .
bb:YogiBerra bb:playsPosition bb:Catcher .
bb:YogiBerra bb:careerHomeRuns 358 .
第一行說主語Yogi Berra(它的URI被定義在命名空間bb中)的類型是一個人(這個類型被定義在命名空間bio中),他的的職位是捕手,他的職業生涯全壘打是358次,第二三行的謂語和賓語都定義在命名空間bb中。以上就是RDF中數據的形式,用主謂賓組成三元組,其中用空格隔開,用句號結尾。
上述的描述來自一個RDF的小教程,在網站Franz中可以找到。
三、什么是三元組數據庫,一個關于AllegroGraph的介紹
大部分的開放關聯數據以包含三元組的文件形式出現,為了有效地使用三元組,您需要一個三元組數據庫,專門用于儲存三元組格式數據。一個好的三元組數據庫可以對它們進行索引,以便快速地檢索,執行SPARQL語句,并實現推理。AllegroGraph就是這樣一個數據庫,還具有一些額外的功能。
AllegroGraph提供:
? 所有您在關系型數據庫中所期望地基本企業功能:ACID、備份和回復、時間點回復、安全性、復制、故障處理、集群、三元組安全等級。
? 地理空間推理,時間推理,社交網絡分析。這些功能可以在SPARQL中直徑訪問。
? 業務規則上與ISO兼容的Prolog編譯器。
? 服務器端JavaScript存儲處理。
? Gruff,一個功能強大的可視化工具,允許用戶友好地進行三元組導航。Gruff的圖查詢編輯器可以與SPARQL結合。
? 自動發現高亮的節點并將其轉換成SPARQL查詢的功能。
四、實際操作指南
我們接下來要用到的數據集提取自DBpedia,是維基百科的三元組版本。我們收集了關于電影、演員、導演和制片人的信息,存儲成一個單獨的文件(N-triples的格式),這個文件可以在我們的網站下載。
我們要用到的這個強大的可視化導航工具叫做GRUFF,Gruff是AG的一個接口,它允許用戶創建新的三元組,上傳三元組以及進行查詢或在屏幕上可視化展現。Gruff有兩個版本,一個獨立版本(包含AG的基本版本),另一個是服務器版本,如果由上億級的數據需要處理,那么需要服務器版本,如果僅有幾百萬條數據,并且不能直接訪問服務器,用獨立版本就足夠了。我們將演示的是獨立版本。
下載程序文件
http://www.franz.com/agraph/gruff
下載完成解壓,雙擊exe文件進行安裝。
下載示例數據
http://www.franz.com/franzdownload/agraph/allegrograph/data/actors.ntriples
4.1創建一個新的三元組數據庫
通過File->New Triple-Store創建新的數據庫。需要注意的是因為我們使用的是獨立版本,所以這里主機就是我們自己的計算機,端口號也不必填寫,確保目錄不是已存在的文件夾,因為它會覆蓋已有的信息。
點擊OK,數據庫就創建完成了,數據庫會問你期望有多少條數據,直接接受默認的數字即可。
4.2上傳數據到Gruff
通過File->Load Triples->Load N-Triples上傳,數據庫會詢問是通過文件還是web,選擇文件進行上傳。找到你之前下載好的數據文件,選擇它上傳,幾秒鐘后你可以看到提示已上傳成功。
4.3在屏幕上展示一些三元組
通過Display->Display Some Sample Triples可以顯示一些示例三元組,經過幾秒鐘后,你可以在屏幕上看到一些三元組的圖示,可以用鼠標滑輪進行縮放,然后按鍵盤上的R鍵使其到屏幕中心。當你雙擊節點,你會看到表視圖,可以通過View->Graph View或者按鍵盤的G鍵回到圖形界面。
我們可以通過Remove->Remove-All-Nodes來移除屏幕中的所有信息,不必擔心,這些信息并不會在數據庫中被刪除,只是在圖形界面上被清空。
4.4查找一些信息
(Note:這里和官網中的指導文檔略有不同,因為版本已經更新,功能上作出了一些改動)
Gruff將建立索引的選項放在了Text Search里面,我們可以通過Text Search->Edit the Current Text Index建立索引,在建立索引時會要求你選擇謂語,按照你的需求或者全選即可。然后通過Text Search->Find and Display Nodes來查找我們需要的信息。現在我們想找Kevin Bacon相關的信息,按照上面的路徑,打開對話框后,我們輸入Kevin Bacon,所有和Kevin Bacon有關的節點都會出現,在結果中找到Kevin Bacon這個節點,點擊OK,然后你會看到一個節點在屏幕中,我們可以進行下一步啦!
補充:使用Gruff時必須以一個或多個節點開始,除了Text Search外可以使用Display菜單里的Display a Node by URI or Literal。
4.5體驗Graph View
現在我們有了Kevin Bacon這個節點,我們想看到更多的關于Kevin作為主語或者賓語的三元組,第一步是選擇我們想看到的謂語或者說屬性,按下鍵盤上的P鍵,你會看到一個關于謂語的列表,我只想看Ds,Director,Starring,所以我只選擇這三個謂語,點擊OK。
接下來點擊選中Kevin Bacon這個節點,然后按下F鍵,若干新的節點會出現在屏幕上,但你選擇了其他的電影節點,再按F鍵,又會有新的節點出現,再嘗試幾次后你會發現你的屏幕變得擁擠,用鼠標縮放后按下R你會看到一個縮略圖在你的屏幕中心。
注意屏幕的左側,不同的謂語(箭頭)和不同的類(圓角矩形)都是用了不同的顏色標明。除了上述的呈現方式和途徑,你也可以在最初對Kevin Bacon這個節點進行鼠標右鍵單擊,在菜單中選擇前兩個,分別通過菜單和大綱進行選擇,你可以去嘗試一下。
Note:按Z鍵就可以返回上一步操作。
補充:在Gruff中,提供了多種視圖的布局選擇,在Layout菜單中,可以多嘗試一下。
4.6找到兩個節點的最短路徑
使用三元組數據庫的一個顯著優勢就是通過數據庫找到兩個節點之間的關系。
讓我們清空屏幕,按照上面的方法找到Kevin Bacon這個節點,然后用同樣的方法找到Arnold Schwarzenegger這個節點。這是你會發現屏幕中有兩個孤立的節點,選中Arnold這個節點,按下Shift+F,會有一條線在這個節點上出現,把連線的另一端拖到Kevin這個節點上,然后點擊一下鼠標,你的屏幕中也會出現類似下面的截圖了。
Note:Shift+F就是Link->Display Paths Between Two Nodes的快捷鍵。
4.7表視圖瀏覽
接下來我們討論表視圖,假設你的Kevin Bacon節點還在屏幕中,雙擊它或者選中后按B鍵,你就來到了表示圖中,如下圖所示,可以瀏覽關于Kevin的一些信息和數據,注意表中粗的灰線,加粗灰線以上是Kevin作主語的三元組,灰線以下是Kevin作賓語的三元組。我們可以在表視圖中點擊一些非Literal的節點,可以通過這種方式瀏覽我們數據,為我們提供了一些便捷的查找途徑。
Note:例如通過下表我們可以看到Kevin是在賓州費城出生的,我們點擊這個節點就可以查找到其他出生在費城的電影演員。
還有另外一種瀏覽視圖,Outline View,可以通過View->Outline View打開,也可以選中節點按下字母O鍵,黑色字體表示這個節點還有更深的層級可以展示,藍色字體表示該節點可以點回Kevin Bacon這個節點。多嘗試幾次就會明白其中的奧秘。
4.8在查詢視圖中構造SPARQL檢索式
Gruff可以支持SPARQL查詢,通過View->Query View進入查詢視圖,或者按下W鍵,例如在SPARQL的輸入欄中輸入以下查詢命令,即可得到100條三元組的結果,點擊Run Query按鈕得到結果,再點擊Create Visual Graph可以得到RDF圖。
Select * where { ?x ?y ?z . } limit 100
4.9用圖形化查詢構建SPARQL檢索式
你可以不必寫出SPARQL檢索式,Gruff支持用圖形化的方式構造檢索式,這里有一個簡短的例子。
當我們需要檢索這個問題:“Who directed the movies that Kevin Bacon starred in?”(Kevin Bacon演的電影都是誰導演的?)
總結
- 上一篇: 爬取酷6网小视频
- 下一篇: 阿里云ACP云计算健康检查