语义网技术栈的理解
先上图
一.各层概念:
阐述之前,先说下资源的概念:
可以是任意拥有URI(这是最重要的)的对象,人,物体,概念,文档,文件,音频.等等
URI:统一资源标识符
1.1 URI与UNICODE
UNICODE:规定了资源的编码形式;
URI规定了每个资源的唯一标识符.
1.2XML
XML规定了资源的内容及其数据结构(XML tree,标签来描述),最重要的是没有语义的描述能力.(就是不知道资源之间的关系是怎样的).
同时XML的标签可以人为定义,这就导致不能很好地被计算机处理,为了规范化标签,增强可处理性,所以推出了xml schema来规定所拥有的标签,形式为
但是由于标签的数量减少了,就很容易带来重复,这就引入了了命名空间的概念,xmlns (namespace–ns),在不同的命名空间下,同名的标签不受影响.形式为:xmlns:前缀=地址.具体代码如下:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
1.3 RDF
RDF: 主要是用来描述资源之间的关系.采用SPO三元组 形式.
subject predict object
#subject 与object是节点,节点可以是资源或描述资源的属性值(不是属性),predict是关系:只要能够描述两个节点的关系都可以称之为关系/属性
#(资源,属性,属性值/资源)
RDF资源描述框架,是一种图模型,数据模型,不是具体的数据类型.主要有三部分构成:
RDF data model
就是单纯描述资源的方式:SPO三元组形式,但是没有语义信息
RDF schema
在RDF data model上增加了语义信息,就是描述资源的关系,方式就是增加资源的属性及其资源所属的类的描述.具体方法如下:
概念 | 语法形式 | 描述 |
---|---|---|
Class(类) | C rdf:type rdfs:Class | C(资源)是一个RDF类 |
Property(类) | P rdf:type rdf:Property | P(资源)是一个RDF属性 |
type(属性) | I rdf:type C | I(资源)是C(类)的实例 |
subClassOf(属性) | C1 rdfs:subClassOf C2 | C1 (类)是C2(类)的子类 |
subPropertyOf (属性) | P1 rdfs:subPropertyOf P2 | P1(属性)是P2(属性)的子属性 |
domain (属性) | P rdfs:domain C | P(属性)的定义域是C(类) |
range (属性) | P rdfs:range C | P(属性)的值域是C(类) |
RDF sytanx
就是讲如何将RDF数据存入到计算机当中,也就是我们所说的RDF序列化方法,这就是RDF sytanx的作用.主要有如下集中方式:
JSON-LD:“JSON for Linking Data”,用键值对的方式来存储RDF数据,基于json基础扩展的一种语法,以键值对的形式来存储RDF
RDFA:将RDF数据嵌入到网页中
RDF/XML:用XML来存储RDF数据,但是由于XML格式冗长,阅读不方便不推荐
N-Triples,即用多个三元组来表示RDF数据集,是最直观的表示方法。在文件中,每一行表示一个三元组,方便机器解析和处理。开放领域知识图谱DBpedia通常是用这种格式来发布数据的。
Turtle, 应该是使用得最多的一种RDF序列化方式了。它比RDF/XML紧凑,且可读性比N-Triples好.
turtle语法形式如下:
@prefix person: <http://www.kg.com/person/> . @prefix place: <http://www.kg.com/place/> . @prefix : <http://www.kg.com/ontology/> . person:1 :chineseName "罗纳尔多·路易斯·纳萨里奥·德·利马"^^string. person:1 :career "足球运动员"^^string. person:1 :fullName "Ronaldo Luís Nazário de Lima"^^string. person:1 :birthDate "1976-09-18"^^date. person:1 :height "180"^^int. person:1 :weight "98"^^int. person:1 :nationality "巴西"^^string. person:1 :hasBirthPlace place:10086. place:10086 :address "里约热内卢"^^string. place:10086 :coordinate "-22.908333, -43.196389"^^string.
1.4.RDF schema 与SPARQL
RDF schema:主要还是为了增强资源关系的描述能力(上面讲了),
SPARQL是一个查询图,RDF是一个存储图,是查询RDF数据的语言.
1.5 OWL ,RIF/SWRL
OWL:在RDF schema的基础上,增加了对属性及其类的约束,也就是对资源的属性及其类增加了性质,这样能实现两个功能:分类,推理
实现对概念的分类,因为根据属性及类的约束,容易确定概念的边界
有利于RIF(规则交换)–实现推理,因为某些属性含有某些性质,例如:传递性.
1. 6 Logic + Proof + Trust
分别对应逻辑层,验证层,信任层
逻辑层:提供公理及其规则,实现逻辑操作.
验证层:则是对推理结果进行验证
信任层:根据验证层的结果和一些数字签名,建立信任
1.7 interaction
就是语义网的交互层,通过实现各种应用来进行交互
1.8 参考
https://blog.youkuaiyun.com/hohaizx/article/details/80043623