RDF圖及SPARQL初步感受

前景提要

FOAF

FOAF艇肴,即Friend-of-a-Friend估灿,簡稱FOAF扫沼。FOAF 是一種 XML/RDF 詞匯表出爹,它以計算機可讀的形式描述您通常可能放在主 Web 頁面上的個人信息之類的信息缎除。
FOAF 詞匯表提供了一種管理社區(qū)內(nèi)信息的有用方法严就。關于其他人的信息常常是最令人感興趣的一類數(shù)據(jù),而且 FOAF 實現(xiàn)了分散器罐、機器可讀和個人描述等需求梢为。但在其自己的應用領域之外,F(xiàn)OAF 提供了用于研究有關構建語義 Web 的概念(鏈接、信任和起源的概念)的有用試驗臺。

RDF圖

RDF圖:RDF圖是由三元組(subject, predicate, object)組成的有向圖危队,subject通過predicate指向object,如圖1-1所示為一個RDF圖粟害。通常用三元組的數(shù)量表示RDF圖的大小。

SPARQL

SPARQL是一組W3C推薦標準樊零,提供了對Web上或RDF存儲(RDF Store)中的RDF圖內(nèi)容進行查詢和處理的語言和協(xié)議。代表 Web 未來的語義 Web 是一個以知識為中心的模型孽文,除了人類可讀的文檔和 XML 消息格式之外驻襟,它還增加了機器可以理解和處理的數(shù)據(jù)。SPARQL Protocol and RDF Query Language (SPARQL) 對于語義 Web 就像 SQL 對于關系數(shù)據(jù)庫一樣重要芋哭。它允許應用程序對分布式 RDF 數(shù)據(jù)庫進行復雜的查詢沉衣,并得到了互相競爭的多種框架的支持。本教程通過一家虛擬公司的團隊跟蹤和日志系統(tǒng)演示了它的用法减牺。


目錄

1.班級同學的foaf文件數(shù)據(jù)規(guī)范
2.fuseki 的使用
3.saprql 的語法
4.FOAF文件可視化人物網(wǎng)絡


正文

跟著老師在學信息情報相關的語義網(wǎng)的知識豌习。老師本著“talk is useless , show me the code”的教育培養(yǎng)方針,帶我們了解了語義網(wǎng)以及相關的rdf圖數(shù)據(jù)庫的存儲拔疚。
所以肥隆,現(xiàn)在的任務是將同學們的FOAF文件導入到RDF TripleStore里面去,再使用SPARQL語法對圖數(shù)據(jù)庫進行簡單的查詢稚失,并且補充相關數(shù)據(jù)栋艳,建立數(shù)據(jù)關聯(lián)。

1.班級同學的foaf文件數(shù)據(jù)規(guī)范

在此處列出一個模板的FOAF文件

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:admin="http://webns.net/mvcb/">

    <foaf:PersonalProfileDocument rdf:about="">
        <foaf:maker rdf:resource="#YangYongquan"/>
        <foaf:primaryTopic rdf:resource="#YangYongquan"/>
        <admin:generatorAgent rdf:resource="http://www.ldodds.com/foaf/foaf-a-matic"/>
        <admin:errorReportsTo rdf:resource="mailto:leigh@ldodds.com"/>
    </foaf:PersonalProfileDocument>

    <foaf:Person rdf:ID="YangYongquan">
        <foaf:name>涌全 楊</foaf:name>
        <foaf:title>Mr</foaf:title>
        <foaf:givenname>涌全</foaf:givenname>
        <foaf:family_name>楊</foaf:family_name>
        <foaf:nick>大大菠菜</foaf:nick>
        <foaf:mbox_sha1sum>1d2de67cfbf6ad11c7e1271579c52bcec85fbb70</foaf:mbox_sha1sum>
        <foaf:homepage rdf:resource="540232234@qzone.com"/>
        <foaf:depiction rdf:resource="https://user.qzone.qq.com/540232234"/>
        <foaf:phone rdf:resource="tel:13880808193"/>
        <foaf:schoolHomepage rdf:resource="http://www.scu.edu.cn/"/>

        <foaf:knows>
            <foaf:Person>
                <foaf:name>范瑋</foaf:name>
                <foaf:mbox_sha1sum>f22657f594637e5958ab0c25cd78e5ff52a7218d</foaf:mbox_sha1sum>
                <rdfs:seeAlso rdf:resource="http://fanw.info/FanWei.rdf"/>
            </foaf:Person>
        </foaf:knows>

        <foaf:knows>
            <foaf:Person>
                <foaf:name>許琰</foaf:name>
                <foaf:mbox_sha1sum>07612716117848bc9741029bd3488f9c1b86f733</foaf:mbox_sha1sum>
            </foaf:Person>
        </foaf:knows>

        <foaf:knows>
            <foaf:Person>
                <foaf:name>李霜</foaf:name>
                <foaf:mbox_sha1sum>5b46827f75c079c116f12b831d703b0830c47d0a</foaf:mbox_sha1sum>
            </foaf:Person>
        </foaf:knows>
    </foaf:Person>
</rdf:RDF>

在班級同學的FOAF文件整理過程中句各,發(fā)現(xiàn)了有如下三個問題:

文件格式不正確吸占。

錯誤代碼為:Result: failed with message "Parse error: [line: 18, col: 12] Invalid byte 1 of 1-byte UTF-8 sequence."
解決方法:只需要把文件格式改為utf-8即可成功導入

<Tag>標簽的閉合不正確

錯誤代碼為:Result: failed with message "Parse error: [line: 27, col: 14] {E202} Expecting XML start or end element(s). String data "??" not allowed. Maybe there should be an rdf:parseType='Literal' for embedding mixed XML content in RDF. Maybe a striping error."
建議使用代碼格式化工具修改晴叨,也可以使用代碼編輯器手動修改

&字符無法在xml中正確解析

錯誤代碼為:Result: failed with message “Parse error: [line: 30, col: 92] The reference to entity ”ADSESSION“ must end with the ‘;’ delimiter.”
解決方法:把&修改為'&amp';

2.fuseki 的使用

fuseki簡介
Fuseki is a SPARQL server. It provides REST-style SPARQL HTTP Update, SPARQL Query, and SPARQL Update using the SPARQL protocol over HTTP.
fuseki下載
http://jena.apache.org/download/index.cgi
fuseki使用
在window平臺商下載安裝包之后運行里面的bat文件,隨后訪問localhost:3030即可

隨后在web端新建一個dataset矾屯,并且將dataset里面把之前的FOAF文件upload進去

我們可以看到兼蕊,我們的文件已經(jīng)上傳到fuseki的圖數(shù)據(jù)庫里面去了

3.saprql 的語法

關于SPARQL的語法網(wǎng)上都很多相關的文檔,在這列出:
https://www.w3.org/TR/2013/REC-sparql11-query-20130321/#WritingSimpleQueries
https://www.ibm.com/developerworks/cn/web/wa-data-integration-at-scale_sparql/index.html

關于我們自己上傳的同學FOAF文件件蚕,我使用SPARQL進行了簡單的查詢:

1.查詢所有同學的名字
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>  
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>  
PREFIX foaf: <http://xmlns.com/foaf/0.1/>  
PREFIX admin: <http://webns.net/mvcb/>  
SELECT ?family_name ?givenname  
WHERE {  
   ?Perssssson foaf:family_name ?family_name;  
     foaf:givenname ?givenname.  
} 

得到結果:

2.查詢楊涌全的所有節(jié)點信息
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>  
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>  
    PREFIX foaf: <http://xmlns.com/foaf/0.1/>  
    PREFIX admin: <http://webns.net/mvcb/>  
    SELECT  ?name ?p ?o 
    WHERE {  
        ?a foaf:name  ?name;
        ?p ?o.
        values ?name {'涌全 楊'}.
    } 

得到結果:

3.查詢所有的朋友關系
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>  
        PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>  
        PREFIX foaf: <http://xmlns.com/foaf/0.1/>  
        PREFIX admin: <http://webns.net/mvcb/>  
        SELECT ?name ?kname
        WHERE {  
      ?a foaf:name ?name.      
      ?a foaf:knows ?x.
      ?x foaf:name ?kname.
        } 

得到結果:

4.FOAF文件可視化人物網(wǎng)絡

根據(jù)3.3的查詢所有朋友關系的數(shù)據(jù)孙技,再套用一個前端的插件,即可實現(xiàn)班級的可視化人物網(wǎng)絡骤坐;
(待更新绪杏。。纽绍。)

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蕾久,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拌夏,更是在濱河造成了極大的恐慌僧著,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件障簿,死亡現(xiàn)場離奇詭異盹愚,居然都是意外死亡,警方通過查閱死者的電腦和手機站故,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門皆怕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人西篓,你說我怎么就攤上這事愈腾。” “怎么了岂津?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵虱黄,是天一觀的道長。 經(jīng)常有香客問我吮成,道長橱乱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任粱甫,我火速辦了婚禮泳叠,結果婚禮上,老公的妹妹穿的比我還像新娘茶宵。我一直安慰自己析二,他們只是感情好,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著叶摄,像睡著了一般属韧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛤吓,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天宵喂,我揣著相機與錄音,去河邊找鬼会傲。 笑死锅棕,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的淌山。 我是一名探鬼主播裸燎,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼泼疑!你這毒婦竟也來了德绿?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤退渗,失蹤者是張志新(化名)和其女友劉穎移稳,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體会油,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡个粱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了翻翩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片都许。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嫂冻,靈堂內(nèi)的尸體忽然破棺而出胶征,到底是詐尸還是另有隱情,我是刑警寧澤絮吵,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布弧烤,位于F島的核電站忱屑,受9級特大地震影響蹬敲,放射性物質發(fā)生泄漏。R本人自食惡果不足惜莺戒,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一伴嗡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧从铲,春花似錦瘪校、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泣懊。三九已至,卻和暖如春麻惶,著一層夾襖步出監(jiān)牢的瞬間馍刮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工窃蹋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留卡啰,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓警没,卻偏偏與公主長得像匈辱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子杀迹,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理亡脸,服務發(fā)現(xiàn),斷路器佛南,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • title: Jena學習筆記(一) RDFdate: 2016/11/26 22:56:02tags: Jena...
    Skye_kh閱讀 22,782評論 4 11
  • 這一部分就不準備用英語了梗掰,因為在這段時間的學習和查找過程中,發(fā)現(xiàn)關于RDF(Resource Descriptio...
    何大炮閱讀 1,404評論 2 1
  • 這是為一位不要回報的支持者寫的,也是為自己绵载,為所有夢想家寫的埂陆。 在這里工作幾個月,終于從朝九晚六的生活中逃離了娃豹,卻...
    目分目分目分閱讀 731評論 0 1
  • 正在看拿破侖焚虱,他說:他的幸福是找到施展才能的地方。很有感觸懂版,同時也結合自身工作進行了內(nèi)省鹃栽,覺得我是幸福的,我在這里...
    翠云碧水閱讀 293評論 0 1