距离上一篇读书笔记已经有一段日子了,中间打了很多代码,也摸了很多🐟。有时候还是比较细化打代码的,感觉比码字有意思。但是有意思的事做太多就不会有积累了,所以接着填这个坑叭!
互联网时代的语义网知识表示框架
上一篇文章中提到的“语义网”让知识表示迎来了新的春天,不过也出现了新的挑战——标准语言在哪里?HTML和XML已经跟不上这个时代了(时代变了,大人)。W3C提出了新的标准语言RDF和OWL,我们一起来欣赏一下吧。
核心成员RDF
RDF中的知识永远是以三元组的形式呈现出来,就是(subject,predicate,object), 亦即(主语,谓语,宾语)。我们可以把它看成一个传统意义上的句子结构中的主谓宾,比如“我喜欢吃冰淇淋,吃完就长肉”👉(我,喜欢,吃冰淇淋)(我,长,肉)。同时我们也可以用(我,在什么时候吃雪糕,“12点”^xsd:date)表示“我在12点吃了雪糕”。从中我们可以看出,RDF中的主语一定是一个个体(individual),书中也解释了个体是类的实例,比如我是人“类”的一个实例,谓语表示属性,宾语可以是个体也可是实例。
我们拿我怎么变胖来构建来建立一个图谱,如下
我变胖的一个图谱
再来把他写成英文,如下
a KG of my growing weights
由于在RDF中的主谓宾都有一个全局标识,所以我们再给这个图谱中的元素加点料
看起来是不是更像回事了?
全局URL可以简化为前缀URL,当然也可以出现没有前缀的空白节点(BlankNode),长这样
空白节点可以代入你我他哦
开放世界假设
这个假设听起来是不是很酷呢?实际上他比听起来更酷。开放世界假设使得RDF图谱里的知识可以是不完整的,例如我喜欢吃冰激凌,并不意味着我只喜欢吃冰激凌,雪糕当然也是不错的选择😋,(i,enjoy,ice-cream)代表冰淇淋至少是我的一个爱好!采用开放世界假设有什么好处呢?答案是可以实现分布式存储,像这样:
我喜欢冰淇淋&冰淇淋是光明牌的
我喜欢吃光明的冰淇淋
RDF Schema——RDFS
RDFSchema(RDF模式,简称RDFS)提供了对类和属性的简单描述,包括上下级关系(subclass_of),定义域(domian),值域(range)等。这一步我直接上书上的图:
可谓图糙理不糙,上面是本体视图,下面是实例视图
主力成员OWL🦉
RDF(S)可以表示一些简单的语义,但是如果场景更加复杂的化,RDF就不太行了。RDF本身缺少很多常用的特征,把书中写出来的几个简单罗列:
1.无法准确的描述属性的定义、特征;
2.无法描述类、个体属性是否等价(是我杀了我?)
3.基数约束,即一个人不可能有两个爸爸(出了于谦儿子郭小宝)
总之,RDF在描述事实的时候就像是一个年幼的孩子👶,很多事情很多关系他还不懂,我们需要一个更成熟的本体语言来替我们表达知识!
OWL语言特征
OWL1.0有三个子语言,OWL Lite<OWL DL<OWL Full。书中写道这三者选择的原则
●选择OWL Lite还是OWL DL主要取决于用户需要整个语言在多大程度上给出约束的可表达性;
●选择OWL DL还是OWL Full主要取决于用户在多大程度上需要RDF的元模型机制,如定义类型的类型以及为类型赋予属性;
●当使用OWL Full而不是OWL DL时,推理的支持可能不能工作,因为目前还没有完全支持OWL Full的系统实现。
OWL不是完全独立于RDF的,他们在很多地方都有相似之处,不过我觉得知道这个没用!
OWL重要词汇
- 等价性声明
- 属性传递声明👉a大于b,b大于c 可以推出 a大于c
- 属性互逆声明 👉a大于b,b小于a 大于小于这两个属性互逆
- 属性的函数声明👉a的大写是A
- 属性的对称性声明👉a=b,b=a
- 属性的全称限定声明👉如:母亲一定是女人
- 属性的存在限定声明👉如:我一部分的文章发在知乎上
- 属性的基数限定声明👉如:我只能有“一个”父亲
- 相交的类声明👉如:妈妈是有孩子的人,即有孩子和人的交集
这些词汇在书上写的很详细,这个笔记抄下来就没意思了。
OWL版本
OWL2的三大子语言是OWL 2 RL、OWL 2 QL和OWL 2 EL,关于这三种语言的词汇,书中有写错的地方,需要去别处找更准确的总结。
语义Markup表示语言
语义网进一步定义了在网页中嵌入语义Markup的方法和表示语言。被谷歌知识图谱以及Schema.Org采用的语义Markup语言主要包括JSON-LD、RDFa和HTML5 MicroData。
我似乎感觉到这本书不怎么样了,因为书里一直在罗列概念也没说要自己动手做。还是只看自己感兴趣的内容吧
To Be Continued