FOAF文件的清洗、檢索、繪圖

# 信息系統前沿課--范老師授課 #第二次作業## 一、重新使用Markdown ##熟悉語法,了解Markdown的用法,選擇在線編輯工具簡書進行編輯。## 二、回顧xml、rdf、Foaf###1、xml語言xml語言與HTML語言既相識有不同,在我的理解看來HTML語言更加注重的是簡潔、規范化的網絡設計語言,用來顯示網頁就好。xml語言我認為其復雜性是高于HTML語言的,設計其的主要作用應該是著重于對于其要表現的內容的數據表示。以后的可讀性、遷移性、更新的難度應該要低一些。###2、rdf資源描述框架我覺得就是結構化的xml框架,能夠描述xml文件中的各種數據區分數據與元數據。###3、Foaffoaf文件是一種 XML/RDF 詞匯表,通過URL來找朋友,構建關聯數據,然后形成一種人與人之間相互聯系的社交網絡的一種小工具。##三、清洗數據項目要求是清洗整理班級同學FOAF文件,使其符合RDF數據規范和關聯數據發布原則,首先我根據要求找不到FOAF清洗,RDF規范檢查的工具。所以我先退而求其次選擇了xml檢查工具,通過DTD的w3c在線檢查工具檢查并沒有發現時什么問題。我發現就文件是否正確的角度來說中英文并沒有檢測出什么不同的地方。![image.png](http://upload-images.jianshu.io/upload_images/6083033-f85c897ee5c5c963.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)那么問題來了,范老師究竟是想要我們做什么樣的數據清洗呢?我決定進一步的探索,我選擇了網上推薦的一款開源編輯軟件editix xml editor![image.png](http://upload-images.jianshu.io/upload_images/6083033-fd802430175afecc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)安裝后,新建工程并開始使用通過檢測全部的文件我試圖發現全班同學的rdf是否有問題![image.png](http://upload-images.jianshu.io/upload_images/6083033-bbe201de9b25b2c2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)結果不出所料![](http://upload-images.jianshu.io/upload_images/6083033-d6c37bb8f6b0bf36.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)那么我想這里單單從語法、從用法的角度是沒有必要清洗foaf數據的必要了,那么問題來了,我們該怎么做?我先分析了同學們的foaf文件發現有幾點不同* 1、有的同學使用中文字符(其中中文字符在editxml中存在亂碼現象----懷疑應該改成拼音或者英文表達)![image.png](http://upload-images.jianshu.io/upload_images/6083033-758698dd05fa57b2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)* 2、有的同學認識的人數不同* 3、具體的在認識的人的標簽下全部的同學都有范煒762ec4260f2e1f25685e918a2f8adf9da6712be0兩個標簽但是并不是所有的都有![image.png](http://upload-images.jianshu.io/upload_images/6083033-3b9c8705e7c22777.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)標簽。去foaf網站查找后其實這本是![image.png](http://upload-images.jianshu.io/upload_images/6083033-5f11cba37f9d8293.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)針對以上的幾點不同是我們需要優先考慮的清洗的部分。但是我發現還是沒有什么問題,所以我決定不要信任軟件的全部檢查,一個個查看同學的foaf文件結果:軟件真是不能相信的![image.png](http://upload-images.jianshu.io/upload_images/6083033-0c44216d521a248a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)![image.png](http://upload-images.jianshu.io/upload_images/6083033-36f2727953fc52a2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)有的是少了person(06號)學號尾號是17的同學少了person![image.png](http://upload-images.jianshu.io/upload_images/6083033-6b49eff6fcd7f7d9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)尾號為18的同學刪除qq號后面數字后正常22號也是相同的問題經過長時間認真的篩查后,清洗foaf的工作圓滿的完成了。##四、將FOAF文件存入RDF TripleStore下載apache jena .zip解壓然后下載fusiki![image.png](http://upload-images.jianshu.io/upload_images/6083033-f79158402f51ca6e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)解壓后打卡cmd![image.png](http://upload-images.jianshu.io/upload_images/6083033-0bc37e602c33dd08.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)![image.png](http://upload-images.jianshu.io/upload_images/6083033-6b284c4fe9bfd4b1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)打開localhost:3030,然后進行上傳工作。![image.png](http://upload-images.jianshu.io/upload_images/6083033-2ad760024a49faf1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)![image.png](http://upload-images.jianshu.io/upload_images/6083033-568881e0b101766f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)然而在上傳的時候出現了很多的錯誤。為什么呢,出現編碼問題經過仔細的排查我發現有兩個解決途徑:1、將中文全部表示為英文標識2、通過notepad++將編碼格式改變![image.png](http://upload-images.jianshu.io/upload_images/6083033-30aa7058ffdfe20c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)但是增加這一行后沒有解決問題通過軟件更改編碼模式最后我通過更改編碼格式來解決這個額問題![image.png](http://upload-images.jianshu.io/upload_images/6083033-c10f3807fb62751c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)都上傳成功了點擊edit![image.png](http://upload-images.jianshu.io/upload_images/6083033-dd63b4ac26cab681.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)點擊info查看信息## 五、使用SPARQL語法進行簡單查詢SPARQL是為rdf開發的一種查詢語言和數據獲取協議,反正就把它當作關系型數據庫的sql語言進行nosql數據庫的查詢。進行最簡單的3元組查詢![image.png](http://upload-images.jianshu.io/upload_images/6083033-5b0e771d65046bc4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)調整limit可以改變查詢獲得的數量調整offset可以跳過開始的條數并且通過實驗我發現大小寫在sparql中都是可以的查詢個人![image.png](http://upload-images.jianshu.io/upload_images/6083033-7eb865e76853cb9a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)![image.png](http://upload-images.jianshu.io/upload_images/6083033-fabeb25b212e5ade.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)在我看來這個data文件形成了一個大表,把所有foaf文件鏈接起來![image.png](http://upload-images.jianshu.io/upload_images/6083033-d2e70c9137e288c7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)接下來查詢失敗![ ](http://upload-images.jianshu.io/upload_images/6083033-5c047bb54231ab5e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)查詢名字(賓語部分)![image.png](http://upload-images.jianshu.io/upload_images/6083033-d9b3ef3aa0fd506c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)##六、補充相關數據,建立數據關聯。這里我查詢了一下并沒有具體的做法。1、創建新的節點2、通過D2R服務器在語義Web上發布關系數據庫的工具##七、建立可視化關系圖![image.png](http://upload-images.jianshu.io/upload_images/6083033-f88330ba175c8bb6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)![image.png](http://upload-images.jianshu.io/upload_images/6083033-d77307d2839a3c4c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)然而下載失敗使用另外一個軟件![image.png](http://upload-images.jianshu.io/upload_images/6083033-608f6d4bda9c0f4f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)再次更換技術路線使用progege![image.png](http://upload-images.jianshu.io/upload_images/6083033-1e2721f7d5468b3d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)在Protege中應該是不能編輯OWL代碼的,但可以生成或導出OWL、RDF代碼。如果想直接編輯OWL代碼,然后在針對這種可視化的語言進行操作。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容