发新话题
打印

知识表示

知识表示

知识表示(Knowledge Representation,KR)是如何将结构化数据组织,以便于机器处理和人的理解的方法。从结构出新的结构,这就是推理。传统上KR属于逻辑的分支,但在实践中我们会用很简单、可读、可维护的数据结构。

经典的教科书中的KR,主要关注的是如何方便机器处理。但是在现实的工程中,如何方便人的理解也是极为关键的。在工程实践中,人才是知识不能被处理好、不能快速交换、不能规模化的核心。
知识表现的瓶颈不在于机器处理能力的不足,而在于人的认知能力的不足。因此,我们在学习知识表现方法的时候,要始终牢记知识的可读性、可维护性要远远比它的表达力、计算速度重要。知识是为人阅读而设计的,只是偶尔被机器执行。
作为工程师,我们时时刻刻把可行性放在心中。传统的知识图谱的KR,从逻辑和推理讲起,有一阶逻辑(first-order logic)和描述逻辑(description logic),后来又有逻辑程序(logic program)和生成规则(Production Rule)。但是我反对从逻辑开始理解知识图谱。语义网和知识图谱是关于数据的,关于结构促进数据的流动,用结构化数据增进其他系统的自动化能力的。逻辑只是很小的一个插件。
语义网,或者现在的知识图谱,在应用中,核心问题不是“应该怎么样”,而是“不得不怎么样”。语义推理对数据质量的要求很高,在工程上成本就承受不了。现实的应用,只能逐步提高数据的质量,从数据清洗开始就要承担巨额的投入,然后做实体抽取,实体链接,对齐,消歧,关系抽取,对齐,词库提取,本体建模,这每一步都是海一样的银子砸进去。
然后在推理中,推理规则都需要人生成。现在机器生成规则的能力很弱,几乎不可用。仅仅是属性和直接关系的查找可以机器做,稍微复杂的长程关系都需要人来写。这在工程部署中有巨大的困难,因为这样的工程师很少,写出来的东西可维护性,性能,普适性都成问题。所以现实中的系统,很少有做推理的。即使是做推理,也很少是一阶逻辑推理,一般也就是if then else,命题逻辑。很多时候还要容忍数据中的噪声,和正则表达式等结合在一起用。所以学术派的推理机,一般都用不了。
所以我们会了解RDF和OWL,但是并不推荐使用这些W3C标准作为工程的选择。我们认为JSON和关系数据库是工程中成本较小的解决方案。在某些特定场合,图的表示也是合理的。这会在之后的“知识存储”的章节继续讨论。
其他一些个人观点

我对关联数据的看法 http://baojie.org/blog/2014/12/21/on-linked-data/
语义网的工具演化 http://baojie.org/blog/2014/02/12/semantic-tool-evolution/
语义网不需要描述逻辑 http://baojie.org/blog/2013/02/05/semantic-web-and-description-logic/
--------------------------------------
以下未完待续(其实W3C的官方文档并不是学习的好起点)
JSON和YAMLJSON/REST在和XML/SOAP的竞争中胜利不是偶然的。JSON成为Web API的事实标准,部分实现了当初语义网的一些目标。

YAML:JSON的超集,有更简洁的语法 http://yaml.org/
RDF和OWLRDF 1.1 Primer https://www.w3.org/TR/rdf11-primer/
OWL 2 Primer http://www.w3.org/TR/owl2-primer/
Turtle语法 http://www.w3.org/TR/turtle/
OWL语法速查表 https://www.w3.org/TR/2012/REC-owl2-quick-reference-20121211/
JSON-LDJSON和RDF的混合 http://json-ld.org/
https://www.w3.org/TR/2014/REC-json-ld-20140116/



TOP

发新话题

郑州档案数字化