资源描述框架的用途及实际应用解析

小万哥
• 阅读 446

什么是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:artistcd:countrycd: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>

元素 artistcountrycompanypriceyearhttp://www.recshop.fake/cd# 命名空间中定义。 此命名空间位于RDF之外(不是RDF的一部分)。 元素 artistcountrycompanypriceyear 必须由其他人(公司,组织,个人等)定义。

属性作为属性
属性元素也可以定义为属性(而不是元素):

<?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,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
(三)Kubernetes 快速入门
 Kubernetes的核心对象APIServer提供了RESTful风格的编程接口,其管理的资源是KubernetesAPI中的端点,用于存储某种API对象的集合,例如,内置Pod资源是包含了所有Pod对象的集合。资源对象是用于表现集群状态的实体,常用于描述应于哪个节点进行容器化应用、需
Stella981 Stella981
3年前
HTML5 audio 如何实现播放多个MP3音频
<audio标签是HTML5中的新标签,定义声音用于嵌入音频内容,比如音乐或其他音频流。用的比较多音频格式是.mp3。<audio标签常用属性如下表属性值描述autoplayautoplay添加该属性后,音频会自动播放controlscontrols设置后,显示控件,如播放按钮、音量looploop添加
Easter79 Easter79
3年前
Tomcat
web.xml配置什么是Web.xmlWeb.xml是Web应用部署的重要的描述条件,它支持的元素及属性来自于Servlet规范定义。在tomcat中,Web应用的部署描述信息文件包括tomcat/conf/web.xml以及Web应用的WEBINF/web.xml下的文件。ServletContext
Stella981 Stella981
3年前
CSS 分类 (Classification)
★★CSS分类属性(Classification)★★⑴CSS分类属性允许你控制如何显示元素,设置图像显示于另一元素中的何处,相对于其正常位置来定位元素,使用绝对值来定位元素,以及元素的可见度。⑵下面是常用的属性以及描述:!(https://oscimg.oschina.net/oscnet/00cb565
Stella981 Stella981
3年前
Python中的property()函数
property() 函数的作用是在新式类中返回属性值1.语法: classproperty(fget,fset,fdel,doc)2.参数:fget获取属性值的函数fset设置属性值的函数fdel删除属性值函数doc属性描述信息
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Wesley13 Wesley13
3年前
Java多线程:线程属性
\线程属性id:线程唯一标识。自动生成。不允许修改。name:线程的名字,可以自定义成有具体含义的名字,便于识别不同作用的线程。(可同名)isDaemon:是否是守护线程。true守护线程,false用
小万哥 小万哥
6个月前
XML Schema(XSD)详解:定义 XML 文档结构合法性的完整指南
XMLSchema描述了XML文档的结构。XMLSchema语言也称为XMLSchemaDefinition(XSD)。xmlXMLSchema的目的是定义XML文档的合法构建块可以出现在文档中的元素和属性子元素的数量(和顺序)元素和属性的数据类型元素和属
小万哥 小万哥
5个月前
XML Web 服务技术解析:WSDL 与 SOAP 原理、应用案例一览
XMLWeb服务是一种用于在网络上发布、发现和使用应用程序组件的技术。它基于一系列标准和协议,如WSDL、SOAP、RDF和RSS。下面是一些相关的内容:WSDL(Web服务描述语言):用于描述Web服务的基于XML的语言,定义了服务的接口、操作和消息格式
小万哥 小万哥
5个月前
RSS 解析:全球内容分发的利器及使用技巧
RSS(ReallySimpleSyndication)是一种XML格式,用于网站内容的聚合和分发,让用户能快速浏览和跟踪更新。RSS文档结构包括&lt;channel&gt;和&lt;item&gt;元素,允许内容创作者分享标题、链接和描述。通过RSS,用户可以定制新闻源,过滤不相关信息,提高效率。RSS支持不同版本,如RSS0.91和RSS2.0,其中RSS2.0语法简单且广泛使用。RSS提高网站流量,适用于新闻、博客、日历等频繁更新的站点。RSS的历史始于1997年,至今仍无官方标准,但已成为内容共享的重要工具。