Q:語(yǔ)義網(wǎng)和知識(shí)圖譜有區(qū)別嗎城看?如果有女气,區(qū)別何在?
當(dāng)下關(guān)于知識(shí)圖譜的討論越來(lái)越熱烈测柠,但是經(jīng)常聽到有人用“語(yǔ)義網(wǎng)”來(lái)代替“知識(shí)圖譜”炼鞠,或者說(shuō)認(rèn)為知識(shí)圖譜本質(zhì)上就是語(yǔ)義網(wǎng)。這種想法不無(wú)道理轰胁,我也聚德這兩者很大程度上是相通的谒主,甚至知識(shí)圖譜本來(lái)本就脫胎于語(yǔ)義網(wǎng)(Google收購(gòu)Freebase改造后推出Google Knowledge Graph)。然而赃阀,我個(gè)人認(rèn)為語(yǔ)義網(wǎng)和知識(shí)圖譜還是有區(qū)別的霎肯。
首先從兩者的源流來(lái)看。
語(yǔ)義網(wǎng)是Tim Berners Lee 在1998年提出來(lái)的概念榛斯。他本人在當(dāng)年W3C的《Semantic Web Road map》里面對(duì)語(yǔ)義網(wǎng)的描述是:
Machine-Understandable information: Semantic Web
The Semantic Web is a web of data, in some ways like a global database.
他的理想和1990年提出Word Wide Web的時(shí)候并沒(méi)有大不同观游,都是整合全球的信息,讓每個(gè)人都能觸達(dá)每一份信息驮俗。差別是1998年的時(shí)候World Wide Web 本質(zhì)是是一個(gè)全球文件系統(tǒng) (global file system)懂缕,因?yàn)閣eb上的內(nèi)容絕大多數(shù)都是HTML文件,以及少量的PDF意述、視頻、音頻之類的多媒體文件吮蛹。他希望更進(jìn)一步荤崇,把web變成一個(gè)全球數(shù)據(jù)庫(kù) (global database)。這樣一來(lái)不僅每個(gè)人能得到每一份信息潮针,而且機(jī)器也能處理這些信息(即便在今天术荤,機(jī)器處理文本信息都是的能力都還是不如處理數(shù)據(jù)庫(kù)中結(jié)構(gòu)化信息的能力)。
知識(shí)圖譜是Google在2012年提出來(lái)的概念每篷。Google的做法是在自家建立了一個(gè)大型的圖數(shù)據(jù)系統(tǒng)瓣戚,把自己的信息組織成一個(gè)圖譜。有了這個(gè)圖數(shù)據(jù)系統(tǒng)焦读,Google在搜索上的能力上升了一個(gè)臺(tái)階子库,最起碼多了一道新的程序,而且和原本基于向量空間模型的方案很不同矗晃。有了知識(shí)圖譜后仑嗅,Google不僅僅能返回信息量大但密度低文檔,還能返回信息量小但密度高的知識(shí)卡片。
我認(rèn)為語(yǔ)義網(wǎng)和知識(shí)圖譜仓技,兩者的最初的動(dòng)機(jī)是不一樣的鸵贬。一個(gè)是開放的、共享的脖捻、全球的數(shù)據(jù)庫(kù)阔逼,另一個(gè)是封閉的、排外的地沮、自家的數(shù)據(jù)庫(kù)(雖說(shuō)Google的數(shù)據(jù)也是全球范圍的)嗜浮。目標(biāo)的不同會(huì)導(dǎo)致方法的不同。
語(yǔ)義網(wǎng)使用的數(shù)據(jù)模型RDF和W3C制定的語(yǔ)義網(wǎng)技術(shù)棧就是圍繞其開放性诉濒、共享性周伦、全球性等特點(diǎn)設(shè)計(jì)的。1998年時(shí)數(shù)據(jù)庫(kù)采用的主流的數(shù)據(jù)模型是關(guān)系數(shù)據(jù)模型(現(xiàn)在也是)未荒。但是關(guān)系數(shù)據(jù)庫(kù)的一個(gè)缺點(diǎn)是需要事前定義好schema专挪,也可以認(rèn)為是表結(jié)構(gòu)和表關(guān)系。這就帶來(lái)幾個(gè)問(wèn)題片排,最大的問(wèn)題是改動(dòng)起來(lái)很麻煩寨腔,當(dāng)數(shù)據(jù)量極大的時(shí)候成本會(huì)很高。所以語(yǔ)義網(wǎng)采用的數(shù)據(jù)模型是RDF率寡。RDF最初其實(shí)不是數(shù)據(jù)模型迫卢,而是一種數(shù)據(jù)交換格式,由Ramanathan V. Guha在蘋果公司開發(fā)冶共,最初名叫Meta Content Framework乾蛤,后來(lái)改進(jìn)成Resource Description Framework。用RDF對(duì)數(shù)據(jù)建模捅僵,不需要事先定義schema家卖,所以也有人把RDF稱作schemaless的建模語(yǔ)言。RDF本質(zhì)上也是對(duì)實(shí)體和關(guān)系建模庙楚,首先用Unicode將數(shù)據(jù)(實(shí)體entity上荡、關(guān)系predicate和字面量literal)編碼,然后用URI唯一標(biāo)識(shí)實(shí)體和關(guān)系馒闷。這樣一來(lái)酪捡,一個(gè)RDF數(shù)據(jù)模型也成了一個(gè)圖數(shù)據(jù)模型,各種實(shí)體通過(guò)關(guān)系鏈接在一起纳账,實(shí)體又有自己屬性(字面量)逛薇,形成了一個(gè)網(wǎng)。為什么使用URI來(lái)標(biāo)識(shí)疏虫?我認(rèn)為這是因?yàn)檎Z(yǔ)義網(wǎng)上的數(shù)據(jù)應(yīng)該像文檔一樣能被訪問(wèn)金刁,而文檔就是通過(guò)URI訪問(wèn)的帅涂,于是這個(gè)傳統(tǒng)就被應(yīng)用到語(yǔ)義網(wǎng)上了。至于為什么文檔用URI標(biāo)識(shí)尤蛮,Tim Berners Lee的原話是:
A Uniform Resource Identifier (URI) provides a simple and extensible means for identifying a resource
更多URI的好處可以查看相應(yīng)的RFC文檔
知識(shí)圖譜呢媳友?一說(shuō)起知識(shí)圖譜,人們想起的應(yīng)該不是一個(gè)開放共享的全球數(shù)據(jù)庫(kù)产捞,而是一個(gè)自有的圖數(shù)據(jù)系統(tǒng)醇锚,就好像自家的關(guān)系數(shù)據(jù)庫(kù)一樣。Google的知識(shí)圖譜就是一個(gè)私有的圖數(shù)據(jù)系統(tǒng)坯临『富#互聯(lián)網(wǎng)是全體使用,全體維護(hù)的(W3C之類的也是公共組織)看靠,但是Google的知識(shí)圖譜是一個(gè)自家使用赶促,自家維護(hù)的數(shù)據(jù)庫(kù)。既然是自家經(jīng)營(yíng)挟炬、自負(fù)盈虧鸥滨,而且規(guī)模也沒(méi)有全球數(shù)據(jù)庫(kù)那么大、功能上也不要求全世界的人自由編輯谤祖,那就可以怎么容易怎么來(lái)婿滓。想一下互聯(lián)網(wǎng)和自家的文件系統(tǒng)。我們自己的文件系統(tǒng)可不是網(wǎng)狀的而是樹狀的粥喜,標(biāo)識(shí)用的是文件名而不是URI凸主。當(dāng)然我們可以把文檔轉(zhuǎn)化成HTML文檔,把個(gè)文檔連城一個(gè)網(wǎng)额湘,然后放在服務(wù)器上卿吐,那么網(wǎng)上其他人就可以通過(guò)URI訪問(wèn)了。而且現(xiàn)在我們也不是把文檔直接放在服務(wù)器目錄下锋华,而是放進(jìn)數(shù)據(jù)庫(kù)嗡官,需要時(shí)用后臺(tái)程序從該數(shù)據(jù)庫(kù)中把相應(yīng)內(nèi)容調(diào)出來(lái),加上HTML模板渲染成一個(gè)HTML文檔供置,然后發(fā)到客戶端去谨湘。
所以現(xiàn)在工業(yè)界做知識(shí)圖譜绽快,做的都是像Google那樣自家的數(shù)據(jù)庫(kù)芥丧,底層可以用的是關(guān)系數(shù)據(jù)庫(kù),或者改造后的關(guān)系數(shù)據(jù)庫(kù)坊罢,如postgresql续担,配合一些nosql的數(shù)據(jù)庫(kù)。對(duì)于數(shù)據(jù)模型活孩,目前業(yè)界采用的主流圖數(shù)據(jù)模型是LPG(Labeled Property Graph)物遇。其標(biāo)準(zhǔn)是Apache的TinkerPop。至于LPG和RDF的優(yōu)劣勢(shì)對(duì)比,這是一篇典型的文章询兴,作者是Neo4j的開發(fā)者乃沙。雖然里面一些觀點(diǎn)我很不同意,但作為思考的起點(diǎn)還是不錯(cuò)的诗舰。(PS:本人不在工業(yè)界警儒,本段觀點(diǎn)純屬道聽途說(shuō)。)
經(jīng)過(guò)以上對(duì)比眶根,我認(rèn)為語(yǔ)義網(wǎng)和知識(shí)圖譜不是一個(gè)東西蜀铲,他們的目標(biāo)和使用的技術(shù)都不一樣。但既然有人把它們混在一起說(shuō)属百,那就說(shuō)明這兩個(gè)東西還是很像的记劝。事實(shí)上也確實(shí)如此,它們本質(zhì)上都是圖數(shù)據(jù)模型族扰,應(yīng)該都可以做(至少大部分)相同的事情厌丑。而且兩者之間轉(zhuǎn)換起來(lái)也很簡(jiǎn)單。Google的知識(shí)圖譜就是從Freebase導(dǎo)入的别伏,F(xiàn)reebase就是一個(gè)語(yǔ)義網(wǎng)項(xiàng)目蹄衷,使用了RDF模型、用URI標(biāo)識(shí)數(shù)據(jù)厘肮、能用SPARQL查詢數(shù)據(jù)愧口、還定義了自己的本體結(jié)構(gòu)。而現(xiàn)行的圖數(shù)據(jù)庫(kù)类茂,要把數(shù)據(jù)導(dǎo)出成RDF也不難耍属,Neo4j就支持直接導(dǎo)出RDF數(shù)據(jù)。
如今語(yǔ)義網(wǎng)和知識(shí)圖譜都很繁榮巩检,應(yīng)該都是前景不錯(cuò)的研究和產(chǎn)業(yè)方向厚骗。
本作品首發(fā)于簡(jiǎn)書 和 博客園平臺(tái),采用知識(shí)共享署名 4.0 國(guó)際許可協(xié)議進(jìn)行許可兢哭。