关联数据入门——RDF

关联数据入门——RDF本文是语义网的入门级读本,试图描述一些语义网基本知识……

大家好,又见面了,我是你们的朋友全栈君。

引言

语义网(Semantic Web)是一种数据的网络,让数据得以共享,而不仅仅是被应用程序束缚。

但语义网也不仅仅是把数据放在互联网上,而是试图将数据联系起来,并产生数据与现实事物的联系,以方便人与机器阅读与理解这些数据。

The Semantic Web isn’t just about putting data on the web. It is about making links, so that a person or machine can explore the web of data.

——Linked Data Design Issues . Tim Berners-Lee

关联数据(Linked Data)是第一种可行的语义网表达形式,它采用RDF数据模型,利用URI(统一资源标识符)命名数据实体,来发布和部署实例数据和类数据,从而可以通过HTTP协议揭示并获取这些数据,同时强调数据的相互关联、相互联系以及有益于人机理解的语境信息。

Linked data is a set of best practices for publishing and deploying instance and class data using the RDF data model, and uses uniform resource identifiers (URIs) to name the data objects. The approach exposes the data for access via the HTTP protocol, while emphasizing data interconnections, interrelationships and context useful to both humans and machine agents.

——Linked Data FAQ . M.K. Bergman

因为语义网是一项庞大的工程,并相伴着各种困难,使其成为一种长期目标与愿景,而关系数据是一类实践活动,其可行并实用,成为当前语义网实现的一种最佳可行方案。

 

RDF的特点

资源描述框架(Resource Description Framework),作为XML(Extensible Markup Language)的一种衍生版本,他是关联数据的基本数据模型。蒂姆·伯纳斯-李(Tim Berners-Lee)在设计它的时候面临了以下两个问题:

  • 怎样去设计方便易学易于传播并适合标准化的语言?
  • 怎样去设计离散数据的入口和出口?

为了解决这两个问题,RDF有以下一些特点:

  • 使用XML作为基本语言
  • 使用URIs作为现实事物的名字
  • 使用HTTP URIs使人们知道如何通过名字在网络中寻找数据(即创建离散数据入口)
  • 包含与其他URIs的联系,使人们可以通过其找到更多有用的东西(即创建离散数据出口)
  • 使用三元组(Triple)形式存储数据

实际上,一些RDF版本并非使用XML语言,这里主要指的是初始版本。

一个简单的RDF例子

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  <rdf:Description rdf:about="http://www.w3.org/">
    <dc:title>World Wide Web Consortium</dc:title> 
  </rdf:Description>
</rdf:RDF>

将该RDF例子通过W3C RDF验证服务,会出现以下列表:

Triples of the Data Model

Number Subject Predicate Object
1 http://www.w3.org/ http://purl.org/dc/elements/1.1/title “World Wide Web Consortium”

 

这是啥东东?

三元组(Triple),RDF数据模型的基本表现单元。所谓三元组就是:主(Subject)-谓(Predicate)-宾(Object)。

A triple store is designed to store and retrieve identities that are constructed from triplex collections of strings (sequences of letters). These triplex collections represent a subject-predicate-object relationship that more or less corresponds to the definition put forth by the RDF standard.

——Triple Store . Jack Rusher

不同于关系数据,其数据本身没有庞大的联系(这在数据网络如此庞大的数据面前也是不可行的),而是使用类似人类陈述语句(Statement)的方式来存储数据,例如:

  • Tom is a man.(Tom是个男人)
  • Tom lives in a red house.(Tom住在一个红房子里)
  • Tom married with Lili.(Tom和Lili结婚了)

可见三元组形式也有强大的数据存储表达潜力,人类正是这种形式的长期受益者。当然像上面这么表述对人类友好,但对机器却不怎么友好,因为这种谓语对于宾语并没有良好的限定,至少机器不这么认为。所以我们应该写成这样的模式:

  • Tom(Tom)   sex(性别)       man(男)
  • Tom(Tom)   house(房子)   red(红色)
  • Tom(Tom)   wife(妻子)       Lili(Lili)

回到标题,这是什么东东?其表述了下列内容:

  1. http://www.w3.org   (表示该陈述是描述的主体是什么,由于HTTP URI映射现实事物,所以可以看做该是对什么现实事物的描述)   
  2. http://purl.org/dc/elements/1.1/title   (主体的属性,一般表示宾体的类型,例如dc:title是都柏林核心中用来指明资源名称的,即客体是该资源的一个名字)
  3. World Wide Web Consortium   (客体)

 

 别人是如何获得RDF的?

 下图说明了这个过程:

<span role="heading" aria-level="2">关联数据入门——RDF

  • 首先先对HTTP URI进行请求。
  • 通常浏览器HTTP请求头是:text/html、application/xhtml+xml类型,故服务器返回一般html/xhtml文档。
  • 但对于语义浏览器,其HTTP请求头是:application/rdf+xml类型,故服务器进行303重定向,得到相应RDF文件。

也就是说,对于一个HTTP URI可以返回两种表达形式:文档和数据。这样就建立了两种不同的网络,一个利于人类阅读的文档网,另一种是利于机器阅读的数据网。

 

参考资料

Linked Data Design Issues . Tim Berners-Lee . 2009/06/18

Linked Data FAQ . Structured Dynamic – M.K. Bergman . October 9, 2011

Triple StoreJack Rusher . 2003/11/13

 

扩展阅读

RDF入门 . W3CHINA.ORG开放翻译计划

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154744.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RSA加密算法详细解说[通俗易懂]

    RSA加密算法详细解说[通俗易懂]RSA加密算法是一种非对称加密算法,于1977年由罗纳德·李维斯特(RonRivest)阿迪·萨莫尔(AdiShamir)伦纳德·阿德曼(LeonardAdleman)一起提出的。RSA的优势:对极大整数做因数分解的难度决定了RSA算法的可靠性,对一极大整数做因数分解愈困难,RSA算法愈可靠加密由公钥,私钥,明文,密文,四部分组成。质数与互质数一个大于1的自然数,除了1和它本身…

    2022年6月14日
    44
  • 探索Java的日志世界

    探索Java的日志世界本文的思维导图一、主题打开日志的大门,探索的Java日志世界二、目标了解常用的日志框架掌握日志框架的选择和使用以及开发规范了解日志框架中的一些设计思想三、内容1、日志及日志框架简介1.1 、日志简介1.1.1 、 什么是日志?1)基本字义是指工作日志 ,详细介绍一个过程和经历的记录。 日志(汉语词汇)…

    2022年2月27日
    37
  • opencv相机内参标定_opencv分割算法

    opencv相机内参标定_opencv分割算法LM算法在相机标定的应用共有三处。(1)单目标定或双目标定中,在内参固定的情况下,计算最佳外参。OpenCV中对应的函数为findExtrinsicCameraParams2。(2)单目标定中,在内外参都不固定的情况下,计算最佳内外参。OpenCV中对应的函数为calibrateCamera2。(3)双目标定中,在左右相机的内外参及左右相机的位姿都不固定的情况下,计算最佳的左右相机的内外参及最佳的…

    2022年9月28日
    4
  • can总线板卡_CAN接口

    can总线板卡_CAN接口现有市场下,智能化程度越来越高,特别是AGV、机器人、物流车、动力电池检测等等行业中工控机应用越来越频繁。然而这些产品核心控制器与电池都是走的CAN总线通讯,而工控机本身是没有CAN通讯,那么工控机就需要通讯桥梁(025-68250795)来扩展CAN通道。而在工控机当中有nimipcie接口,如此就用可以用minipcie接口转CAN的一个模块来实现扩充CAN口。miniPCIe接口CAN卡是PCIExpressmini卡槽的工控机或单板电脑快速扩展CAN通道的利器。产品特性PCIExpr

    2025年9月1日
    5
  • java中sqrt函数的详解[通俗易懂]

    java中sqrt函数的详解[通俗易懂]一、原理:牛顿迭代法具体解释:牛顿迭代法求平方根那我们怎么用牛顿迭代法呢?首先要明白,牛顿迭代法求的是函数和X轴的交点的横坐标,也就是我们说的根1)那么第一步就是构建曲线了。假设有一个数c,我们求它的平方根x,那么有一个等式,x^2=c;挪到一边就是求f= x^2-c的根x2)带入上面的公式也就是 3)既然是个迭代,那么

    2022年5月7日
    80
  • mybatis xml 格式化时间查询

    mybatis xml 格式化时间查询格式化到时分秒也可以到天<iftest=”beginTime!=null”>andDATE_FORMAT(send_time,’%Y-%m-%d%H:%M:%S’)&gt;=DATE_FORMAT(#{beginTime},’%Y-%m-%d%H:%M:%S’)</if><iftest=”endTime!=null”&g…

    2022年7月16日
    76

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号