1. 程式人生 > >知識圖譜學習與實踐(3)——知識表示

知識圖譜學習與實踐(3)——知識表示

構建知識圖譜的時候,首先是要建立知識表達的的資料模型,也就是知識圖譜整個的資料組織體系,主要是資料的分類及層次關係,還有屬性及屬性的關係。資料組織體系建立之後,我們就要考慮資料如何表達的問題,這種表達方式應該是既可以讓人們容易理解,也要讓計算機能夠理解和使用。

1 Linked Data

 

 

在語義網的技術棧中,資料表示佔了很大比重,按照語義網技術標準要求,所有的實體或屬性資料都應該用URI/IRI來表示,除了文字描述的資料,所有資料都應該有一個統一的標識,標識的形式可以是XML、RDF、RDFS或者本體語言OWL,這些都說明資料表示是整個語義網的基礎。

全球資訊網之父,也是語義網的創始人,Tim Berners-Lee也一直呼籲建立互聯的資料(Linked Data),還在TED上發表了演講,演講題目是raw data now,號召人們開放共享原始資料,讓整個世界成為一個互通互聯的世界。他的演講既說明了資料共享的重要性,也說明了資料互聯互通的重要性。

Tim Berners-Lee為了鼓勵人們開放共享資料,制定了Linked Data的五星規則,資料每加一顆星,這樣的資料就更容易被得到和利用,能夠增強資料的互聯互通。

一星:以開放的協議提供到網際網路上(不論什麼格式),稱為開放資料

二星:能夠被機器識別的結構化資料(比如excel,而不是表格的掃描圖片)

三星:非專有格式(比如csv代替excel)

四星:加上以上要求,使用開放標準從W3C(RDF和SPARQL)到實體,讓人們能夠根據表述就能確定你所要表達的東西。

五星:滿足以上所有要求,並且能夠將你的資料與其他人的資料鏈接起來,提供上下文。

 

 

2 RDF

上面提到讓資料互聯互通,那麼,資料以何種形式展示,才能更好的互聯互通呢,知識圖譜中,資料的展示形式就是RDF,RDF是應為Resource Description Framework的縮寫,即資源描述框架,它可以看作是一個數據模型,也可以看作是表示資料的方法手段。

其中Resource,資源,顧名思義,是一種資料資源,可以是圖片、視訊,也可以是人、物或者概念等等,是用URI可以唯一標識的物件。

Description,描述,是對資源的描述,資源被IRI標識之後,我們能夠確定資源,這個資源得內涵外延等具體的內容,還是需要資源的屬性和關係來確定。描述就是對資源的屬性和關係的內容。

Framework,框架,是描述資源的語言、語法和模型。

在RDF中,知識總是以三元組的形式出現,一條知識都是分解為主語(subject)、謂語(predicate)和賓語(object)的三元組(triple)來表示。

我們以維基百科裡面的莎士比亞為例,來看一下RDF的表示方式,莎士比亞的作品有哈姆雷特,用RDF表示為:

https://www.wikidata.org/wiki/Q692   https://www.wikidata.org/wiki/Property:P800 https://www.wikidata.org/wiki/Q41567

其中https://www.wikidata.org/wiki/Q692是莎士比亞的URI,https://www.wikidata.org/wiki/Property:P800是notable work的URI

https://www.wikidata.org/wiki/Q41567是哈姆雷特的URI。

在維基資料裡,關於莎士比亞的知識,都是通過這樣的RDF,將一條條的知識匯聚起來,形成莎士比亞的知識卡片。以下是莎士比亞的知識卡片的一部分。

 

 

在實際的應用中,RDF還有幾種序列化方法,也就是儲存和傳輸RDF資料的具體實現形式,主要有RDF/XML,N-Triples,Turtle,RDFa,JSON-LD等。這些都是滿足RDF規則的資料表現形式,各有特點,適於不同的應用場景。

XML格式技術成熟,儲存和解析方便,但該格式比較冗長,不便於閱讀,知識圖譜很少使用這種格式來表示資料。N-Triples,比較直觀簡單,一行一個三元組表示一條知識,方便解析和處理,在知識圖譜中應用較多。Turtle可以看作是N-Triples的全面版本,比N-Triples要複雜一些,但相對原始的RDF要簡潔,語法規則也比較嚴謹清晰,在知識圖譜中使用比較廣泛。RDFa,RDF in Attributes,是將RDF資料嵌到網頁中,對於前端顯示沒有影響,對於瀏覽器來說,能夠在非結構化資料中較方便的提取結構化資訊,有利於資料的獲取和共享。JSON-LD,JSON for Linking Data,用鍵值對的形式儲存RDF資料,也是為了網路資料的共享和傳播。

和RDF一起使用的還有RDFS(RDF Schema),RDF表示的是資料層的內容,RDFS表示的是模型層的內容,RDFS為RDF資料提供一個型別系統,定義了資料的型別、子型別、屬性、子屬性、主語的範圍、賓語的範圍等資訊,RDFS為資料定義了一個規則範圍,RDF資料按照RDFS制定的規則組織資料。

3 OWL

OWL,不是貓頭鷹,是Web Ontology Language,Web本體語言,是W3C制定一種適用於語義網使用的資料模型規範,它融合了哲學中的本體的概念,研究世界上的各種實體以及它們是如何關聯的。OWL是對RDFS的一種擴充套件,彌補了RDFS在表達能力的一些缺陷。OWL也是遵循RDF規範的,比RDF更加嚴謹,豐富了屬性以及屬性約束,定義域、值域的約束等等。

OWL又分為OWL Lite、OWL DL和OWL Full三個子語言。OWL Lite是最簡單的OWL,可以看作是OWL Full的簡化版本。OWL DL在OWL Lite的基礎上,包括了OWL的所有屬性約束。OWL Full允許在預定義的詞彙上增加詞彙,導致邏輯蘊含不可判定。

OWL的新版本是OWL2,OWL2也有三個子語言,OWL2 QL、OWL2 EL和OWL2 RL,OWL2 QL代表Query Language,專為基於本體的查詢設計,可以使用標準關係型資料庫技術(例如SQL)來實現,僅需要依據公理擴充套件查詢。OWL2 EL為概念術語描述、推理而設計,擁有一個具備相對錶達力的類表示式語言,並且對類表示式如何可以用在公理中沒有限制。應用在大型生物健康本體模型的構建中。OWL2 RL面向需要可擴充套件又不能犧牲太多表達能力的應用程式,被設計用來適應可以犧牲語言的完整表達力以換取效率的OWL2應用程式,以及需要一些來自OWL2的額外表達力的RDF(S)應用程式。

OWL和OWL2屬於W3C推薦的語義網資料模型組織語言,結構嚴謹,邏輯全面,但在實際的企業級應用中較少使用,主要是因為OWL相對來說比較複雜,不如直接使用Turtle或者N-Triples來的方便。

參考資料

1 https://www.w3.org/DesignIssues/LinkedData.html

2 https://zhuanlan.zhihu.com/p/32122644

3 https://my.oschina.net/airship/blog/92