关联数据入门——RDF应用
2023-06-13 09:14:46 时间
引言
语义网(SemanticWeb)是一种数据的网络,让数据得以共享,而不仅仅是被应用程序束缚。
但语义网也不仅仅是把数据放在互联网上,而是试图将数据联系起来,并产生数据与现实事物的联系,以方便人与机器阅读与理解这些数据。
TheSemanticWebisn"tjustaboutputtingdataontheweb.Itisaboutmakinglinks,sothatapersonormachinecanexplorethewebofdata.
——LinkedDataDesignIssues.TimBerners-Lee
关联数据(LinkedData)是第一种可行的语义网表达形式,它采用RDF数据模型,利用URI(统一资源标识符)命名数据实体,来发布和部署实例数据和类数据,从而可以通过HTTP协议揭示并获取这些数据,同时强调数据的相互关联、相互联系以及有益于人机理解的语境信息。
LinkeddataisasetofbestpracticesforpublishinganddeployinginstanceandclassdatausingtheRDFdatamodel,andusesuniformresourceidentifiers(URIs)tonamethedataobjects.TheapproachexposesthedataforaccessviatheHTTPprotocol,whileemphasizingdatainterconnections,interrelationshipsandcontextusefultobothhumansandmachineagents.
——LinkedDataFAQ.M.K.Bergman
因为语义网是一项庞大的工程,并相伴着各种困难,使其成为一种长期目标与愿景,而关系数据是一类实践活动,其可行并实用,成为当前语义网实现的一种最佳可行方案。
RDF的特点
资源描述框架(ResourceDescriptionFramework),作为XML(ExtensibleMarkupLanguage)的一种衍生版本,他是关联数据的基本数据模型。蒂姆·伯纳斯-李(TimBerners-Lee)在设计它的时候面临了以下两个问题:
•怎样去设计方便易学易于传播并适合标准化的语言?
•怎样去设计离散数据的入口和出口?
为了解决这两个问题,RDF有以下一些特点:
•使用XML作为基本语言
•使用URIs作为现实事物的名字
•使用HTTPURIs使人们知道如何通过名字在网络中寻找数据(即创建离散数据入口)
•包含与其他URIs的联系,使人们可以通过其找到更多有用的东西(即创建离散数据出口)
•使用三元组(Triple)形式存储数据
实际上,一些RDF版本并非使用XML语言,这里主要指的是初始版本。
一个简单的RDF例子
复制代码代码如下:
语义网(SemanticWeb)是一种数据的网络,让数据得以共享,而不仅仅是被应用程序束缚。
但语义网也不仅仅是把数据放在互联网上,而是试图将数据联系起来,并产生数据与现实事物的联系,以方便人与机器阅读与理解这些数据。
TheSemanticWebisn"tjustaboutputtingdataontheweb.Itisaboutmakinglinks,sothatapersonormachinecanexplorethewebofdata.
——LinkedDataDesignIssues.TimBerners-Lee
关联数据(LinkedData)是第一种可行的语义网表达形式,它采用RDF数据模型,利用URI(统一资源标识符)命名数据实体,来发布和部署实例数据和类数据,从而可以通过HTTP协议揭示并获取这些数据,同时强调数据的相互关联、相互联系以及有益于人机理解的语境信息。
LinkeddataisasetofbestpracticesforpublishinganddeployinginstanceandclassdatausingtheRDFdatamodel,andusesuniformresourceidentifiers(URIs)tonamethedataobjects.TheapproachexposesthedataforaccessviatheHTTPprotocol,whileemphasizingdatainterconnections,interrelationshipsandcontextusefultobothhumansandmachineagents.
——LinkedDataFAQ.M.K.Bergman
因为语义网是一项庞大的工程,并相伴着各种困难,使其成为一种长期目标与愿景,而关系数据是一类实践活动,其可行并实用,成为当前语义网实现的一种最佳可行方案。
RDF的特点
资源描述框架(ResourceDescriptionFramework),作为XML(ExtensibleMarkupLanguage)的一种衍生版本,他是关联数据的基本数据模型。蒂姆·伯纳斯-李(TimBerners-Lee)在设计它的时候面临了以下两个问题:
•怎样去设计方便易学易于传播并适合标准化的语言?
•怎样去设计离散数据的入口和出口?
为了解决这两个问题,RDF有以下一些特点:
•使用XML作为基本语言
•使用URIs作为现实事物的名字
•使用HTTPURIs使人们知道如何通过名字在网络中寻找数据(即创建离散数据入口)
•包含与其他URIs的联系,使人们可以通过其找到更多有用的东西(即创建离散数据出口)
•使用三元组(Triple)形式存储数据
实际上,一些RDF版本并非使用XML语言,这里主要指的是初始版本。
一个简单的RDF例子
<?xmlversion="1.0"?>
<rdf:RDFxmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Descriptionrdf:about="http://www.w3.org/">
<dc:title>WorldWideWebConsortium</dc:title>
</rdf:Description>
</rdf:RDF>
将该RDF例子通过W3CRDF验证服务,会出现以下列表:
TriplesoftheDataModel
这是啥东东?
三元组(Triple),RDF数据模型的基本表现单元。所谓三元组就是:主(Subject)-谓(Predicate)-宾(Object)。
Atriplestoreisdesignedtostoreandretrieveidentitiesthatareconstructedfromtriplexcollectionsofstrings(sequencesofletters).Thesetriplexcollectionsrepresentasubject-predicate-objectrelationshipthatmoreorlesscorrespondstothedefinitionputforthbytheRDFstandard.
——TripleStore.JackRusher
不同于关系数据,其数据本身没有庞大的联系(这在数据网络如此庞大的数据面前也是不可行的),而是使用类似人类陈述语句(Statement)的方式来存储数据,例如:
•Tomisaman.(Tom是个男人)
•Tomlivesinaredhouse.(Tom住在一个红房子里)
•TommarriedwithLili.(Tom和Lili结婚了)
可见三元组形式也有强大的数据存储表达潜力,人类正是这种形式的长期受益者。当然像上面这么表述对人类友好,但对机器却不怎么友好,因为这种谓语对于宾语并没有良好的限定,至少机器不这么认为。所以我们应该写成这样的模式:
•Tom(Tom)sex(性别)man(男)
•Tom(Tom)house(房子)red(红色)
•Tom(Tom)wife(妻子)Lili(Lili)
回到标题,这是什么东东?其表述了下列内容:
1.http://www.w3.org(表示该陈述是描述的主体是什么,由于HTTPURI映射现实事物,所以可以看做该是对什么现实事物的描述)
2.http://purl.org/dc/elements/1.1/title(主体的属性,一般表示宾体的类型,例如dc:title是都柏林核心中用来指明资源名称的,即客体是该资源的一个名字)
3.WorldWideWebConsortium(客体)
别人是如何获得RDF的?
下图说明了这个过程:
•首先先对HTTPURI进行请求。
•通常浏览器HTTP请求头是:text/html、application/xhtml+xml类型,故服务器返回一般html/xhtml文档。
•但对于语义浏览器,其HTTP请求头是:application/rdf+xml类型,故服务器进行303重定向,得到相应RDF文件。
也就是说,对于一个HTTPURI可以返回两种表达形式:文档和数据。这样就建立了两种不同的网络,一个利于人类阅读的文档网,另一种是利于机器阅读的数据网。
相关文章
- webpack打包多页应用
- 【品牌专场】视频化升级新思路 —— StreamLake音视频技术创新与应用
- 简单了解区块链和其应用场景
- 《数据密集型应用系统设计》 - 应用系统概览
- 【Android 应用开发】 Ubuntu 安装 Android Studio (旧版本|仅作参考)
- 重构实时离线一体化数仓,Apache Doris 在思必驰海量语音数据下的应用实践
- MySQL与PHP的基础与应用专题之数据查询
- Hadoop入门进阶课程6–MapReduce应用案例详解大数据
- MySQL在大数据分析中的应用(mysql大数据解决方案)
- Java应用中Redis数据过期清理策略(redisjava过期)
- 【Oracle】触发器类型及其应用(oracle触发器类型)
- 探索Linux应用开发创造新未来(linux应用开发项目)
- MySQL如何应用于游戏开发中的数据存储和管理?(mysql游戏)
- MySQL中MMP架构的优势及应用场景(mysql中mmp)
- 给Redis应用存储表数据的技巧(表数据如何存到redis)
- 乌班图加速构建数据弹性 Redis 应用(乌班图 redis)
- 高效利用数据资源,MySQL下钻报表应用助您深度挖掘商业价值(mysql下钻报表)
- Oracle中如何使用接口创建应用(oracle中的接口)
- Oracle中小于号运算的应用(oracle中小于运算)
- Oracle中的对象定义与应用(oracle中对象是指)
- Redis锁技术优化多线程应用(redis锁多线程)
- 向数据库中插入数据并返回当前插入的行数及全局变量@@IDENTITY应用