2017-11-27
以前写过几个进阶指南,可能都太难,不接地气。这里重新写一个更实事求是、更便于工程落地的版本
0级:掌握正则表达式、SQL、JSON和一门支持if-then-else的高级语言 —— 是的,这些不是知识图谱技术,但是这些可以解决问题。我们要的是解决问题,不是吗?
1级:学会ER建模(对,就是数据库里的ER建模),理解实体(Entity)和关系(Relation)的概念。这个可能比你想象得难很多。学会更复杂的SQL,能熟练掌握至少一种主流的关系数据库,至少学会一种语言的数据库操作。
2级:学会两种给实体命名的方法:数据库里的主键,Web上的URI。理解分类树。这时候可以学下RDF了,掌握Turtle和JSON-LD两种语法。会用Java或者Python操作RDF。(小白一般到这里就开始大批阵亡)
3级:如果还未阵亡,可能发现RDF数据库不是太好用,需要学会一个图数据库(如Neo4j或OrientDB)或者支持JSON的关系数据库(如PostgreSQL)。学会用这些数据库表达关系-实体,和表达分类树。这可以保证以后可以活得再久一点。
4级:这时候作为一名老兵,你可能已经学会了查询语言SPARQL、Cypher或Gremlin。然后你发现查询语言可以用来写!规!则!天啊,天堂的大门已经打开了。
5级:你会发现把智能放在数据里要远远好于放在代码里。你会开始鄙视在代码里写大量if-then-else的伪知识图谱爱好者。而且你开始不满足用查询语言客串规则(如用SPIN)。你需要一些真正的推理规则。你开始对OWL感兴趣……然后彻底被搞晕了。
6级:你发现OWL很强大但是也很难理解,它背后的描述逻辑如同三体人一样充满敌意。然后你发现其实if-then-else也蛮不错的,而且有一个更容易理解的规则语言:logic program。然后你突然发现SQL其实就是一种LP啊(Datalog)!突然一下世界豁然开朗,喜悦充满全身,圣洁的阳光从天上映下。
7级:在各种奇怪的规则语言中游弋:RIF-BLD,RIF-PRD,SWRL,RuleML,JESS,DLV,XSB,Prolog。发现世界的各种东西都可以按此建模。理解各种推理机的性能。谙熟各种知识建模套路。
8级:从头到尾设计过一个完整的语义或知识应用,经历落地过程种种工程的巨大陷阱,入坑、爬出来,再入坑、再爬出来,再再入坑……直到爬不出来。
9级:开始思考人性问题。从认知的角度、社会的角度、组织的角度、经济的角度思考什么是知识,怎么才能真正实施知识系统。
10级:综合运用正则表达式、SQL、JSON和一门支持if-then-else的高级语言 ,举重若轻解决以上1-9级中遇到的的各种问题。其实你设计出了自己的知识表现语言。
发表回复