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

将所有信息通过以上方式组织串联后,可以形成一张像图一样的数据结构
1539527450079
目前市面上有许多图数据结构,比如Neo4J,OrientDB,能以图的格式存储语义网络。图数据结构将RDF三元组中的Subject和Object都定义为Vertex 或Node,他们之间的关系predicate叫edge或relation,每个Node的拥有属性信息,比如人有出生年月。

参考资料

http://graphdb.ontotext.com/free/devhub/inference.html
https://www.cambridgesemantics.com/blog/semantic-university/learn-owl-rdfs/rdfs-vs-owl/
https://stackoverflow.com/questions/1740341/what-is-the-difference-between-rdf-and-owl
https://en.wikipedia.org/wiki/Web_Ontology_Language
https://en.wikipedia.org/wiki/Graph_database