Ontology
中文將Ontology翻譯成本體,我覺得這個翻譯應用於哲學還行,應用於資訊科學,簡直是誤導眾生。翻譯成知識圖譜或語義網路更為貼切。當然知識圖譜有自己的專有英文Knowledge Graph。本文就叫語義網路吧。
我們目前的全球資訊網,是非結構化的,計算機無法自動的將全球資訊網中的文字內容所隱含的資訊組織起來,並基於這些資訊做出一些推理
語義網路包含了實體、命名、分類、屬性、關係、繼承等概念。通過這些去描述整個資訊網路。同時通過一些標準,使得所有的資訊能夠在這一套描述體系下,互聯互通,建立一張網路,從而能夠理解語義,並能夠根據已知事實,做出一些推理。這一特點,可以應用於許多知識問答、資料分析等業務。
為了達成這個目的,需要定義一些標準化的資料結構,使得遵循這個資料結構的資料能夠互聯互通,同時一些軟體也能夠基於這些標準化的資料結構,進行資料的儲存和查詢,以及對資料背後隱含資訊的挖掘,也即推理。這些資訊描述標準(相當於資料結構)有
- RDF &RDFS
- OWL
RDF &RDFS
全稱Resource Description Framework。它是一種主謂賓的三元結構(subject–predicate–object, known as triples),來描述資訊。RDFS 全稱RDF Schema ,是全球資訊網聯盟採用RDF後製定的標準。比如使用Turtle格式來描述john這個人的資訊
@prefix : <http://www.example.org/> .
:john rdf:type :Man .
:Man rdfs:subClassOf :Human .
:john :livesIn "New-York" .
:livesIn rdf:type rdf:Property .
# After reasoning
:john rdf:type :Human ..
複製程式碼
其表達的資訊為:
john是一個男人
男人是人類的子集
john住在紐約
“住在”這個relation是一個rdf屬性
#以上是原本的資料,但rdf:type和rdfs:subClassOf這兩個關係,使得我們可有推理得出
jon是一個人類
複製程式碼
可以看到,RDFS可以將一個人的資訊通過主謂賓,三元組的形式進行描述。同時,規範的RDFS標準,還是使得,我們基於已知的資訊推論出隱含資訊成為可能
Turtle是RDF的一種序序列化格式。其他資料格式還有XML,JSON等
OWL
全稱Web Ontology Language,是全球資訊網聯盟制定的新一代的資訊描述結構。包含了RDFS,同時做了一些擴從。RDFS,只能定義是什麼,而不能對資訊做限制和裁剪。OWL提供了這方面的語義支援,從而在構建語義網路底層資料時更為靈活
Graph Database
將所有資訊通過以上方式組織串聯後,可以形成一張像圖一樣的資料結構
目前市面上有許多圖資料結構,比如Neo4J,OrientDB,能以圖的格式儲存語義網路。圖資料結構將RDF三元組中的Subject和Object都定義為Vertex 或Node,他們之間的關係predicate叫edge或relation,每個Node的擁有屬性資訊,比如人有出生年月。