目前,说到知识图谱,大部分先从本体搞起,本体又从protege软件入门。
protege中,class表示概念,其实就是面向对象中的中的类;object property就是对象属性,相当于面向对象中的方法;data property就是数据属性,相当于面向对象中的属性;individual是实例。
举个栗子:面积20000平方公里的首都北京有2000万人。建立两个类,class: 城市和人口;object property:有;data property:面积 -属于城市,类型是数字吧;数量-属于人口,类型也是数字。然后建立一个实例,北京,挨个填好。还可以加入其它城市。
这中间有个问题容易混淆,加入朝阳区,很多人会在类里面将区作为城市的子类,其实不是。子类应该传承下来的,区不是传承,是包含关系。
建立了这个有什么用,上面的例子基本没毛用。如果想深入,就得建立城市间复杂的空间关系、贸易关系、管理关系等等。
说到这里,protege其实就是语句建模,主谓宾+定语。xxx干了啥,yyy有xxx,zzz是xxx的孙子.......问题来了,主谓宾+定状补基本能概括语法(祈使句啥的你就当缺点啥吧),状语怎么描述呢?比如新冠期间,轨迹重合基本就是判断感染源的唯一方法:xxx12日4点至6点百货大楼买衣服。这个4点至6点就麻烦大了,只能把“去百货大楼”这件事做成一个类,4点至6点做成去百货大楼的属性。这种搞法,有点恶心了!
显然,protege对于一件事(事件,event)描述太局限了!
知识图谱,能够描述边,从实用角度来说,好多了!