首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
PowerPC
» 有效地使用 RDF/XML 中的 rdf:about 和 rdf:ID
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
有效地使用 RDF/XML 中的 rdf:about 和 rdf:ID
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2018-7-11 09:11
|
显示全部帖子
有效地使用 RDF/XML 中的 rdf:about 和 rdf:ID
本技巧文章涉及到了 2003 年 1 月 23 日的 RDF/XML 语法规范。如果您不熟悉最近的 RDF规范,那么您可能要回顾一下最新的 W3C RDF Primer(请参阅 )。在RDF/XML 中,语句的主语被组织成节点元素,这些元素使用如 rdf:about 和 rdf:ID 这样的属性来设置有关该主语的一组语句的主语。一些规则控制从这些属性构造实际的 RDF 主语 URI的方式,但如果您不小心的话,在不同环境解析结果时,存在很多让人不解之处,甚至是不稳定性。本技巧文章提供一些实践,这些实践可以有助于将这些错误和混乱降至最少。
指定基人们常常按 所示方式来使用 rdf:ID 。
清单 1. rdf:ID 的简单用法(listing1.rdf)
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<rdf
escription rdf:ID="local-record">
<dc:title>Local Record</dc:title>
</rdf
escription>
</rdf:RDF>
在该示例中,RDF/XML 规定了语句的主语是井号和随后的标识名称( #local-resource ),然后会将这个主语附加到
作用域内的基 URI
。后者会使人迷惑。在 中,没有显式地说明这个作用域内的基 URI。解析器通常根据被解析文件的位置来提供这个URI。例如,如果清单 1 位于 URI http://rdfhost/listing1.rdf ,则实际的主语 URI 可能是 http://rdfhost/listing1.rdf#local-resource 。如果这个清单位于本地文件系统路径 /code/rdf/listing1.rdf ,则解析的 URI 可能是 file:///code/rdf/listing1.rdf#local-resource 。解析器也可以用其它较复杂的方式来执行解析。RDF/XML不对被解析 RDF 文档规定任何基 URI 决定过程。
只要解析器的行为合理,根据被解析文件位置的不同,可以按您想的变化主语 URI。您想让文件断言的 RDF语句可能取决于文件本身的上下文。然而,在许多情况下,您只记得文件中所描述的资源的绝对URI,所以这一变化会产生问题。
一种解决方案是总是使用 rdf:about 和绝对 URI — 我将在稍后讨论这一方法。另一种解决方案是使用
XML Base
,这是一种规范,它使我们可以断言一个附加到 XML 文件中某一元素的基 URI。通过将 xml:base 属性放在 XML 文件正确的位置上,您可以控制使用哪个基 URI 来解析 rdf:ID 。 提供了这样一个示例。
清单 2. 使用带 XML Base 的 rdf:ID(listing2.rdf)
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xml:base="http://spam.com/eggs/listing.rdf"
>
<rdf
escription rdf:ID="local-record">
<dc:title>Local Record</dc:title>
</rdf
escription>
</rdf:RDF>
请注意添加的 xml:base 属性。我将它添加到顶层元素,您通常希望用这种方式控制整个文件的基 URI,因为通常元素会继承其父元素的基 URI。不管 是位于 URI(譬如 http://rdfhost/listing.rdf )所指定的地方,还是位于本地文件系统,解析器必须在 rdf
escription 处生成主语 http://spam.com/eggs/listing.rdf#local-resource 。
rdf:about 如何适应这种情况使用 rdf:about 而不使用 rdf:ID 的 RDF 节点元素有另一种解析机制。这种机制最简单,如果属性值是绝对 URI,则逐字将这个 URI 作为主语。所以,从所表达的 RDF 模型这个角度来看, 和 等价。
清单 3. 使用带绝对 URI 的 rdf:about(listing3.rdf)
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<rdf
escription
rdf:about="http://spam.com/eggs/listing.rdf#local-record">
<dc:title>Local Record</dc:title>
</rdf
escription>
</rdf:RDF>
然而,您可以在 rdf:about 中使用相对 URI,这时,会根据基 URI进行解析。这意味着,您可以再次看到 xml:base 的方便之处:可以不管上下文是什么而确保得到用于主语的准确的 URI。从所表达的 RDF 模型这个角度来看, 与 等价。
清单 4. 使用带相对 URI 的 rdf:about(listing4.rdf)
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xml:base="http://spam.com/eggs/"
>
<rdf
escription rdf:about="listing.rdf#local-record">
<dc:title>Local Record</dc:title>
</rdf
escription>
</rdf:RDF>
结束语在相对 URI 方面, rdf:about 的行为也可以应用到类似的属性(譬如 rdf:resource )。 rdf:ID 的行为与 rdf:bagID 等属性的行为类似。在整个 RDF/XML 文件中,您应该充分了解任何有效的基 URI,这样可以确保您理解了生成 RDF 模型的过程。
至于在 rdf:ID 和 rdf:about 两者之间的权衡,如果您正在描述的资源在描述该资源的RDF 文件之外实际没有意义的位置,则您很可能希望用前者。也许它是一条局部或便利的记录,或者甚至是一个抽象或现实世界物体的代理(虽然我建议您,在用 RDF描述这样的事物时要极其小心,因为它会导致各种莫名其妙的混乱;我曾经只用 RDF描述对计算机有意义的记录)。当您正在引用其标识和位置都广为人知的资源时,通常使用 rdf:about 。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电源与功率管理
FPGA/CPLD可编程逻辑
工业控制
嵌入式技术
PCB综合技术
MCU 单片机技术
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议