知识库(Knowledge Base,简称“KB”)是一个通过计算机系统来存储复杂结构和非结构化信息的技术。该词最早出现在专家系统中,称为知识库系统。
知识库系统以知识库为基础的,该知识库包括了现实世界中的事实,同时一个推理引擎可以推理出这些事实,也可以使用一些规则或者其他逻辑演绎出新的事实或指出不符的事实。
推理,知识库的杀手锏
数据即信息,只是属于信息,因此知识库当然属于数据库的一种,他保留了数据库的ACID特性,同时较于传统数据库,知识的推理是知识库系统的一个特点,例如知识库中存着一个事实“人都是会死的”,传统数据库中不会单独存这么一个数据,而是建立数以千计的表格,比如“小明会死的”,“小红会死的”等等,但是在知识库里面就可以通过这么一个事实进行推理得出。
之前我一直有一个疑问,就是图数据库和三元组构成的知识库有什么区别?查阅不少资料,找到一些人的评论,比如:https://www.quora.com/What-are-the-differences-between-a-Graph-database-and-a-Triple-store
慢慢的清楚了其中的界限,原因也是在于对图数据的不了解,图数据库可是说是非关系数据库的一种很好的数据存储和表示方式,从Google发布的知识图谱引起的轰动可以看出。当然在此之前,图数据库就已经存在了。图数据库是通过“弧”将两个实体之间联系起来的一种数据库,简单易扩展,能表示非常复杂的数据结构(这是关系型数据库很难做到的,除非建立很多很多的表格)。那么图数据库和三元组构成的知识库的最大区别是什么呢?还是推理的能力。应该说,三元组的知识库就是一个图数据库,但是多了一个推理的能力。
关于知识库的一些资料:
Knowledge base https://en.wikipedia.org/wiki/Knowledge_base
RDF https://www.w3.org/RDF/ W3C出品的资源描述框架
OWL https://www.w3.org/2001/sw/wiki/OWL 互联网本体语言
Virtuoso http://sourceforge.net/projects/virtuoso 知识库的一个高效率的系统框架
Jena https://jena.apache.org/ Apache软件基金会提供的知识库系统框架,应该是比较原生态的。