资源描述框架的用途及实际应用解析
什么是RDF?
RDF代表 资源描述框架
RDF是用于描述网络资源的框架
RDF旨在被计算机阅读和理解
RDF并非设计用于供人阅读
RDF以 XML 编写
示例
- 描述购物商品的属性,如价格和可用性
- 描述网络活动的时间表
- 描述网页的信息(内容,作者,创建和修改日期)
- 描述网络图片的内容和评级
- 为搜索引擎描述内容
- 描述电子图书馆
RDF旨在提供一种通用的描述信息的方式,以便计算机应用程序可以阅读和理解。RDF描述并不是设计用于在网络上显示。RDF文档以XML编写。 RDF使用的XML语言称为RDF/XML。通过使用XML,可以轻松地在使用不同类型的操作系统和应用程序语言的不同类型的计算机之间交换RDF信息。
RDF与“语义网络”
- 网络信息具有确切的含义
- 网络信息可以被计算机理解和处理
- 计算机可以集成来自网络的信息
RDF使用Web标识符(URI)来标识资源。 RDF使用属性和属性值描述资源。RDF资源,属性和属性值RDF使用Web标识符(URI)标识事物,并使用属性和属性值描述资源。
RDF语句
资源,属性和属性值的组合形成语句(称为语句的主题,谓词和宾语)
RDF示例
以下是来自CD列表的两个记录:
| 标题 | 艺术家 | 国家 | 公司 | 价格 | 年份 |
|---|---|---|---|---|---|
| 帝国脱衣舞 | Bob Dylan | 美国 | 哥伦比亚 | 10.90 | 1985 |
| 隐藏你的心 | Bonnie Tyler | 英国 | CBS Records | 9.90 | 1988 |
以下是RDF文档中的几行:
<?xml version="1.0"?>
<rdf:RDF
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque"><cd:artist>Bob Dylan</cd:artist><cd:country>USA</cd:country><cd:company>Columbia</cd:company><cd:price>10.90</cd:price><cd:year>1985</cd:year>
</rdf:Description>
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Hide your heart"><cd:artist>Bonnie Tyler</cd:artist><cd:country>UK</cd:country><cd:company>CBS Records</cd:company><cd:price>9.90</cd:price><cd:year>1988</cd:year>
</rdf:Description>
...
</rdf:RDF>
RDF文档的第一行是XML声明。 XML声明后面是RDF文档的根元素:rdf:RDF。xmlns:cd命名空间指定了带有cd前缀的元素来自命名空间“http://www.recshop.fake/cd#”。rdf:Description元素包含了由rdf:about属性标识的资源的描述。元素:cd:artist,cd:country,cd:company等是资源的属性RDF文档,检查您的语法,并生成您的RDF文档的表格和图形视图。
RDF元素
RDF的主要元素是根元素 <RDF> 和 <Description> 元素,它标识了一个资源。
<rdf:RDF> 元素
<rdf:RDF> 是RDF文档的根元素。 它定义XML文档为RDF文档。 它还包含对RDF命名空间的引用:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">...描述放在这里...
</rdf:RDF>
<rdf:Description> 元素
<rdf:Description> 元素使用 about 属性标识一个资源。
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#"><rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque"><cd:artist>Bob Dylan</cd:artist><cd:country>USA</cd:country><cd:company>Columbia</cd:company><cd:price>10.90</cd:price><cd:year>1985</cd:year>
</rdf:Description></rdf:RDF>
元素 artist,country,company,price 和 year 在 http://www.recshop.fake/cd# 命名空间中定义。 此命名空间位于RDF之外(不是RDF的一部分)。 元素 artist,country,company,price 和 year 必须由其他人(公司,组织,个人等)定义。
属性作为属性
属性元素也可以定义为属性(而不是元素):
<?xml version="1.0"?>
<rdf:RDF
xmlns:cd="http://www.recshop.fake/cd#"><rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque"
cd:artist="Bob Dylan" cd:country="USA"
cd:company="Columbia" cd:price="10.90"
cd:year="1985" /></rdf:RDF>
属性作为资源,属性元素也可以定义为资源:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#"><rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque"><cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />......
</rdf:Description></rdf:RDF>
在上面的示例中,属性 artist 没有值,但是有一个对包含有关艺术家信息的资源的引用。
RDF 容器
RDF容器用于描述一组事物。以下RDF元素用于描述组:<Bag>、<Seq>和<Alt>。
<rdf:Bag> 元素
<rdf:Bag> 元素用于描述一个值列表,这些值不必按特定顺序排列。
<rdf:Bag> 元素可以包含重复值。
示例
<?xml version="1.0"?><rdf:RDF
xmlns:cd="http://www.recshop.fake/cd#"><rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles"><cd:artist><rdf:Bag><rdf:li>John</rdf:li><rdf:li>Paul</rdf:li><rdf:li>George</rdf:li><rdf:li>Ringo</rdf:li></rdf:Bag></cd:artist>
</rdf:Description></rdf:RDF>
<rdf:Seq> 元素
<rdf:Seq> 元素用于描述一个有序的值列表(例如,按字母顺序)。
<rdf:Seq> 元素可以包含重复值
示例
<?xml version="1.0"?><rdf:RDF
xmlns:cd="http://www.recshop.fake/cd#"><rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles"><cd:artist><rdf:Seq><rdf:li>George</rdf:li><rdf:li>John</rdf:li><rdf:li>Paul</rdf:li><rdf:li>Ringo</rdf:li></rdf:Seq></cd:artist>
</rdf:Description></rdf:RDF>
<rdf:Alt> 元素
<rdf:Alt>元素用于描述备选值列表(用户只能选择其中一个值)。
示例
<?xml version="1.0"?><rdf:RDF
xmlns:cd="http://www.recshop.fake/cd#"><rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles"><cd:format><rdf:Alt><rdf:li>CD</rdf:li><rdf:li>Record</rdf:li><rdf:li>Tape</rdf:li></rdf:Alt></cd:format>
</rdf:Description></rdf:RDF>
RDF 术语
在上述示例中,当描述容器元素时,我们提到了值列表。在RDF中,这些值列表被称为成员。因此,我们有以下内容:
- 容器是包含事物的资源
- 所包含的事物称为成员(而不是值列表)
RDF集合
RDF 集合描述只能包含指定成员的组。
rdf:parseType="Collection" 属性
容器说明包含的资源是成员,但并未规定其他成员不允许存在。
RDF 集合用于描述只能包含指定成员的组。
通过属性 rdf:parseType="Collection" 描述集合。
示例
<?xml version="1.0"?><rdf:RDF
xmlns:cd="http://recshop.fake/cd#"><rdf:Description
rdf:about="http://recshop.fake/cd/Beatles"><cd:artist rdf:parseType="Collection"><rdf:Description rdf:about="http://recshop.fake/cd/Beatles/George"/><rdf:Description rdf:about="http://recshop.fake/cd/Beatles/John"/><rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Paul"/><rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Ringo"/></cd:artist>
</rdf:Description></rdf:RDF>
RDF 模式和应用类
RDF 模式(RDFS)是对 RDF 的扩展。RDF 用类、属性和值描述资源。此外,RDF 还需要一种方法来定义特定于应用程序的类和属性。必须使用 RDF 的扩展来定义特定于应用程序的类和属性。
RDF 模式(RDFS)
RDF 模式不提供实际的特定于应用程序的类和属性。相反,RDF 模式提供了描述特定于应用程序的类和属性的框架。RDF 模式中的类与面向对象编程语言中的类非常相似。这允许资源被定义为类的实例,并且类的子类。
RDFS 示例
以下示例演示了一些 RDFS 功能:
<?xml version="1.0"?><rdf:RDF
xml:base="http://www.animals.fake/animals#"><rdf:Description rdf:ID="animal">
</rdf:Description><rdf:Description rdf:ID="horse"><rdfs:subClassOf rdf:resource="#animal"/>
</rdf:Description></rdf:RDF>
在上面的示例中,“horse”资源是“animal”类的子类。
示例简写
由于 RDFS 类是 RDF 资源,我们可以简化上面的示例,使用 rdfs:Class 代替 rdf:Description,并且省略 rdf:type 信息:
<?xml version="1.0"?><rdf:RDF
xml:base="http://www.animals.fake/animals#"><rdfs:Class rdf:ID="animal" /><rdfs:Class rdf:ID="horse"><rdfs:subClassOf rdf:resource="#animal"/>
</rdfs:Class></rdf:RDF>
达布林核心
达布林核心元数据倡议(DCMI)已经创建了一些预定义属性来描述文档。RDF 是元数据(关于数据的数据)。RDF 用于描述信息资源。达布林核心是一组用于描述文档的预定义属性。第一个达布林核心属性是在 1995 年在俄亥俄州达布林的元数据研讨会上定义的,目前由达布林核心元数据倡议维护。
| 属性 | 定义 |
|---|---|
| Contributor | 对资源内容做出贡献的实体 |
| Coverage | 资源内容的范围或覆盖范围 |
| Creator | 对资源内容负主要责任的实体 |
| Format | 资源的物理或数字表示 |
| Date | 资源生命周期中的事件日期 |
| Description | 资源内容的说明 |
| Identifier | 在给定上下文中对资源的明确引用 |
| Language | 资源的知识内容语言 |
| Publisher | 使资源可用的实体 |
| Relation | 到相关资源的引用 |
| Rights | 资源所拥有的和持有的权利信息 |
| Source | 当前资源的来源参考 |
| Subject | 资源内容的主题 |
| Title | 资源的名称 |
| Type | 资源内容的性质或类型 |
快速查看上面的表格表明,RDF 非常适合表示达布林核心信息。
RDF 示例
以下示例演示了 RDF 文档中一些达布林核心属性的使用:
<?xml version="1.0"?><rdf:RDF><rdf:Description rdf:about="http://example.org/resource"><dc:description>W3Schools - Free tutorials</dc:description><dc:publisher>Refsnes Data as</dc:publisher><dc:date>2008-09-01</dc:date><dc:type>Web Development</dc:type><dc:format>text/html</dc:format><dc:language>en</dc:language></rdf:Description>
</rdf:RDF>
RDFS / RDF 类
| 元素 | 类 | 子类 |
|---|---|---|
| rdfs:Class | 所有类 | |
| rdfs:Datatype | 数据类型 | 类 |
| rdfs:Resource | 所有资源 | 类 |
| rdfs:Container | 容器 | 资源 |
| rdfs:Literal | 文字和数字的文字值 | 资源 |
| rdf:List | 列表 | 资源 |
| rdf:Property | 属性 | 资源 |
| rdf:Statement | 声明 | 资源 |
| rdf:Alt | 备选项容器 | 容器 |
| rdf:Bag | 无序容器 | 容器 |
| rdf:Seq | 有序容器 | 容器 |
| rdfs:ContainerMembershipProperty | 容器成员属性 | 属性 |
| rdf:XMLLiteral | XML 文字值 | 文字 |
RDFS / RDF 属性
| 元素 | 域 | 范围 | 描述 |
|---|---|---|---|
| rdfs:domain | 属性 | 类 | 资源的域 |
| rdfs:range | 属性 | 类 | 资源的范围 |
| rdfs:subPropertyOf | 属性 | 属性 | 属性的子属性 |
| rdfs:subClassOf | 类 | 类 | 资源是类的子类 |
| rdfs:comment | 资源 | 文字 | 资源的人类可读描述 |
| rdfs:label | 资源 | 文字 | 资源的人类可读标签(名称) |
| rdfs:isDefinedBy | 资源 | 资源 | 资源的定义 |
| rdfs:seeAlso | 资源 | 资源 | 关于资源的额外信息 |
| rdfs:member | 资源 | 资源 | 资源的成员 |
| rdf:first | 列表 | 资源 | |
| rdf:rest | 列表 | 列表 | |
| rdf:subject | 声明 | 资源 | 资源在 RDF 声明中的主题 |
| rdf:predicate | 声明 | 资源 | 资源在 RDF 声明中的谓词 |
| rdf:object | 声明 | 资源 | 资源在 RDF 声明中的对象 |
| rdf:value | 资源 | 资源 | 用于值的属性 |
| rdf:type | 资源 | 类 | 资源是类的实例 |
RDF 属性
| 属性 | 描述 |
|---|---|
| rdf:about | 定义正在描述的资源 |
| rdf:Description | 资源描述的容器 |
| rdf:resource | 定义要 |
识别属性的资源
| rdf:datatype | 定义元素的数据类型 |
| rdf:ID | 定义元素的 ID |
| rdf:li | 定义一个列表 |
| rdf:_n | 定义一个节点 |
| rdf:nodeID | 定义元素节点的 ID |
| rdf:parseType | 定义应如何解析元素 |
| rdf:RDF | RDF 文档的根 |
| xml:base | 定义 XML 基础 |
| xml:lang | 定义元素内容的语言 |
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
相关文章:
资源描述框架的用途及实际应用解析
什么是RDF? RDF代表 资源描述框架 RDF是用于描述网络资源的框架 RDF旨在被计算机阅读和理解 RDF并非设计用于供人阅读 RDF以 XML 编写 示例 描述购物商品的属性,如价格和可用性描述网络活动的时间表描述网页的信息(内容,作者&a…...
工业级物联网边缘网关解决方案-天拓四方
随着工业4.0时代的到来,越来越多的企业开始寻求智能化升级,以提高生产效率、降低运营成本并增强市场竞争力。然而,在实际的转型升级过程中,许多企业面临着数据孤岛、设备兼容性差、网络安全风险高等问题,这些问题严重制…...
认识微服务,认识Spring Cloud
1. 介绍 本博客探讨的内容如下所示 什么是微服务?什么是springcloud?微服务和springcloud有什么关系? 首先,没有在接触springcloud之前,我写的项目都是单体结构, 但随着网站的用户量越来越大,…...
电脑设置密码怎么设置?让你的电脑更安全!
在如今信息化的社会中,保护个人电脑的安全至关重要。设置密码是最基本的电脑安全措施之一,它可以有效防止未经授权的访问和保护个人隐私,可是电脑设置密码怎么设置?本文将介绍三种设置电脑密码的方法,帮助您加强电脑的…...
搜维尔科技:SenseGlove Nova2使用主动接触反馈来模拟手掌的感觉,结合力反馈和振动触觉反馈,使其成为市场上第一款具有手掌反馈的无线触觉手套
SenseGlove Nova2使用主动接触反馈来模拟手掌的感觉,结合力反馈和振动触觉反馈,使其成为市场上第一款具有手掌反馈的无线触觉手套。 搜维尔科技:SenseGlove Nova2使用主动接触反馈来模拟手掌的感觉,结合力反馈和振动触觉反馈&…...
基于Python的实验室管理系统的设计与实现(论文+源码)_kaic
摘 要 随着实验室设备越来越多,实验室及其设备管理工作变得越来越繁重,还存在些管理模式仍旧处于手工管理模式和一些抢占实验室的不文明现象,传统的手工模式已经满足不了日益增长的管理需求,而本系统摒弃传统模式,开启…...
Windows系统WDS+MDT网络启动自动化安装
Windows系统WDS+MDT网络启动自动化安装 适用于在Windows系统上WDS+MDT网络启动自动化安装 1. 安装准备 1.下载windows server 2019、windows 10 pro的ISO文件,并安装好windows server 2019 2.下载windows 10 2004版ADK及镜像包 1.1 安装平台 Windows 111.2. 软件信息 软件…...
Apple开发者证书创建完整过程
1.创建CSR文件: 打开钥匙串访问程序 选择从证书颁发机构请求 创建证书 保存CSR文件到桌面 成功如下: 开始创建证书: 选择...
for深入学习
目录 练习: 例1: 求解0-100中整除3的数有哪些 例2: 求0-100中含数字9个个数 作业: 练习: 例1: 求解0-100中整除3的数有哪些 代码: #include<stdio.h> int main() {printf("整…...
引用(C++)和内联函数
前言:本文主要讲解C语法中引用如何使用和使用时的一些技巧 基本语法 引用就是取别名 #include <iostream> using namespace std; int main() {int a 10;int& b a;//给a取别名为bcout << a << endl;cout << b << endl;return 0…...
【stm32/CubeMX、HAL库】swjtu嵌入式实验七 ADC 实验
相关电路与IO引脚 注意:串口打印重定向后使用printf打印需要在keil里勾选 Use MicroLIB ,否则会卡住。 参看:https://zhuanlan.zhihu.com/p/565613666 串口重定向: /* USER CODE BEGIN Includes */#include <stdio.h>//…...
springboot 解耦、隔离、异步的原则以及实战
在Spring Boot中实现解耦、隔离和异步的原则,能够提升应用程序的可维护性、可扩展性和性能。下面我会先介绍这三个原则的基本概念和意义,然后通过实战示例展示如何在Spring Boot应用中应用这些原则。 解耦 解耦是减少或消除应用程序组件之间依赖关系的过程,以提高模块的独…...
设计模式详解(八):外观模式——Facade
目录导航 什么是外观模式现实生活类比实战示例门面模式的好处门面模式源码举例 什么是外观模式 外观模式的英文名是Facade,意思是the front of a building,即建筑物的正面(门面),我个人更喜欢翻译成门面模式。门面模式…...
R语言绘图 | 双Y轴截断图
教程原文:双Y轴截断图绘制教程 本期教程 本期教程,我们提供的原文的译文,若有需求请回复关键词:20240529 小杜的生信笔记,自2021年11月开始做的知识分享,主要内容是R语言绘图教程、转录组上游分析、转录组…...
使用PNP管控制MCU是否需要复位
这两台用到一款芯片带电池,希望电池还有电芯片在工作的时候插入电源不要给芯片复位,当电池没电,芯片不在工作的时候,插入电源给芯片复位所以使用一个PNP三极管,通过芯片IO控制是否打开复位,当芯片正常工作的…...
二重,三重积分和曲面,曲线积分的关系和区别
这是我在学习完曲面曲线积分概念后容易和二重三重积分混淆而大概总结和区分了一下,如果有错误请大佬指出,多谢!!!...
处理STM32 DMA方式下的HAL_UART_ERROR_ORE错误
1. 检查并调整DMA和UART配置 确保初始化顺序:需要确保USART的CR寄存器UE位开关留到最后打开,即完成USART和DMA的所有配置初始化后再使能USART。这样可以避免初始化顺序不当导致的通信问题。配置合适的DMA缓冲区:确保DMA缓冲区足够大…...
初学者如何对大模型进行微调?
粗略地说,大模型训练有四个主要阶段:预训练、有监督微调、奖励建模、强化学习。 预训练消耗的时间占据了整个训练pipeline的99%,其他三个阶段是微调阶段,更多地遵循少量 GPU 和数小时或数天的路线。预训练对于算力和数据的要求非…...
【Qt知识】disconnect
在Qt框架中,disconnect函数用于断开信号与槽之间的连接。当不再需要某个信号触发特定槽函数时,或者为了防止内存泄漏和重复执行问题,你可以使用disconnect来取消这种关联。disconnect函数的基本用法可以根据不同的需求采用多种形式࿰…...
String,StringBuffer,StringBuilder的区别?
String是不可变的,StringBuffer和StringBuilder是可变的。StringBuffer是线程安全的,StringBuilder是非线程安全的。 String的 是如何实现的 使用拼接字符串,其实只是Java提供的一个语法糖。 其实String的 底层是new 了一个StringBuilde…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
