RDF数据模型

边读边写有利于理解,这篇转载自http://www.w3school.com.cn/rdf

RDF数据模型

1、RDF简介

资源描述框架 (RDF) 是描述**网络中资源**的 W3C 标准。

RDF 是一个框架,用来描述网络资源(RDF描述的是网络中的资源,而非其他地方的资源),诸如网页的标题、作者、修改日期、内容以及版权信息等。

2、RDF规则

RDF 资源、属性和属性值

RDF 使用 Web 标识符 (URIs) 来标识资源。RDF 使用属性和属性值来描述资源。

RDF规则分为两条,第一条是资源的标识 ,是使用Web标志符(URIs)来标志资源;第二条是资源的描述,使用资源的属性和属性值来描述资源。
对资源、属性和属性值的解释:

  • 资源是可拥有 URI 的任何事物,比如 “http://www.w3school.com.cn/rdf
  • 属性是拥有名称的资源,比如 “author” 或 “homepage”
  • 属性值是某个属性的值,比如 “David” 或 “http://www.w3school.com.cn” (请注意一个属性值可以是另外一个资源

下面的 RDF 文档可描述资源 “http://www.w3school.com.cn/rdf”:

<?xml version="1.0"?>

<RDF>
  <Description about="http://www.w3school.com.cn/RDF">
    <author>David</author>
    <homepage>http://www.w3school.com.cn</homepage>
  </Description>
</RDF>

RDF 陈述

资源、属性和属性值的组合可形成一个陈述(被称为陈述的主体、谓语和客体)。

请看一些陈述的具体例子,来加深理解:

陈述:“The author of http://www.w3school.com.cn/rdf is David.”

陈述:“The homepage of http://www.w3school.com.cn/rdf is http://www.w3school.com.cn”.

3、RDF实例

这是一个 CD 列表的其中几行:
在这里插入图片描述
这是一个 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>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:rdf 命名空间,规定了带有前缀 rdf 的元素来自命名空间 “http://www.w3.org/1999/02/22-rdf-syntax-ns#”。
xmlns:cd 命名空间,规定了带有前缀 cd 的元素来自命名空间 “http://www.recshop.fake/cd#”。
rdf:Description 元素包含了对被 rdf:about 属性标识的资源的描述。
元素:cd:artistcd:countrycd:company 等是此资源的属性。

RDF 在线验证器

W3C 的 RDF 验证服务 在您学习 RDF 时是很有帮助的。在此您可对 RDF 文件进行试验。
RDF 在线验证器可解析您的 RDF 文档,检查其中的语法,并为您的 RDF 文档生成表格和图形视图。
把下面这个例子拷贝粘贴到 W3C 的 RDF 验证器:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:si="http://www.recshop.fake/siteinfo#">
  <rdf:Description rdf:about="http://www.w3school.com.cn/RDF">
    <si:author>David</si:author>
    <si:homepage>http://www.w3school.com.cn</si:homepage>
  </rdf:Description>
</rdf:RDF>

在您对上面的例子进行解析后,结果将是类似这样的。

4、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#">
.
. Description goes here
.
</rdf:RDF>

<rdf:Description> 元素

<rdf:Description> 元素可通过 about 属性标识一个资源。
<rdf:Description> 元素可包含描述资源的那些元素:

<?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 的组成部分)。RDF 仅仅定义了这个框架。而 artist、country、company、price 以及 year 这些元素必须被其他人(公司、组织或个人等)进行定义。

属性(property)来定义属性(attribute)

属性元素(property elements)也可作为属性(attributes)来被定义(取代元素):

<?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:country="USA"
  cd:company="Columbia"  cd:price="10.90"
  cd:year="1985" />
  
</rdf:RDF>

属性定义资源

属性元素(property elements)也可被作为资源(resources)来被定义:
在下面的例子中,属性 artist 没有值,但是却引用了一个对包含有关艺术家的信息的资源。

<?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>

5、RDF容器

RDF 容器用于描述一组事物。举个例子,把某本书的作者列在一起。
下面的 RDF 元素用于描述这些的组:<Bag><Seq> 以及 <Alt>

<rdf:Bag>

<rdf:Bag> 元素用于描述一个规定为无序的值的列表
<rdf:Bag> 元素可包含重复的值。
实例:

<?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/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:Bag> 元素可包含重复的值。
实例:

<?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/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: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/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 中,这些“值的列表”被称为成员(members)。
因此,我们可以这么说:

  • 一个容器是一个包含事物的资源
  • 被包含的事物被称为成员(不能称为“值的列表”)

6、RDF集合

RDF 集合用于描述仅包含指定成员的组。

rdf:parseType=“Collection” 属性

正如在前面的章节所看到的,我们无法关闭一个容器。容器规定了所包含的资源为成员 - 它没有规定其他的成员是不被允许的。
RDF 集合用于描述仅包含指定成员的组
集合是通过属性 rdf:parseType=“Collection” 来描述的。
实例:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
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>

7、RDF Schema(RDFS)

RDF Schema (RDFS) 是对 RDF 的一种扩展。

RDF Schema 和 应用程序的类

RDF 通过类、属性和值来描述资源。
此外,RDF 还需要一种定义应用程序专业的类和属性的方法。应用程序专用的类和属性必须使用对 RDF 的扩展来定义。
RDF Schema 就是这样一种扩展。

RDF Schema (RDFS)

RDF Schema 不提供实际的应用程序专用的类和属性,而是提供了描述应用程序专用的类和属性的框架。

RDF Schema 中的类与面向对象编程语言中的类非常相似。这就使得资源能够作为类的实例和类的子类来被定义。

RDFS 实例

下面的实例演示了 RDFS 的能力的某些方面:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf= "http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base=  "http://www.animals.fake/animals#">

<rdf:Description rdf:ID="animal">
  <rdf:type 
   rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdf:Description>

<rdf:Description rdf:ID="horse">
  <rdf:type
   rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  <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 
xmlns:rdf= "http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
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>

就是这样的!

8、RDF 都柏林核心

都柏林核心元数据倡议 (DCMI) 已创建了一些供描述文档的预定义属性。
RDF 是元数据(关于数据的数据)。RDF 被用于描述信息资源。

都柏林核心是一套供描述文档的预定义属性。

第一份都柏林核心属性是于1995年 在俄亥俄州的都柏林的元数据工作组被定义的,目前由都柏林元数据倡议来维护。
在这里插入图片描述
通过浏览上面这个表格,我们可以发现 RDF 是非常适合表示都柏林核心信息的。
RDF 实例
下面的例子演示了都柏林核心属性在一个 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.w3school.com.cn">
  <dc:title>D-Lib Program</dc:title>
  <dc:description>W3School - Free tutorial</dc:description>
  <dc:publisher>w3school Data as</dc:publisher>
  <dc:date>2008-01-01</dc:date>
  <dc:type>Web Development</dc:type>
  <dc:format>text/html</dc:format>
  <dc:language>en</dc:language>
</rdf:Description>

</rdf:RDF>

9、

OWL 是一门供处理 web 信息的语言。

什么是 OWL?

  • OWL 指的是 web 本体语言
  • OWL 构建在 RDF 的顶端之上
  • OWL 用于处理 web 上的信息
  • OWL 被设计为供计算机进行解释
  • OWL 不是被设计为供人类进行阅读的
  • OWL 由 XML 来编写
  • OWL 拥有三种子语言
  • OWL 是一项 web 标准

Why OWL?

OWL 是“语义网远景”的组成部分 - 目标是:

  • Web 信息拥有确切的含义
  • Web 信息可被计算机理解并处理
  • 计算机可从 Web 上整合信息

OWL 被设计为供计算机来处理信息

OWL 被设计为提供一种通用的处理 Web 信息的内容的方法(而不是把它显示出来)。
OWL 被设计为由计算机应用程序来读取(而不是被人类)

猜你喜欢

转载自blog.csdn.net/weixin_43682721/article/details/86687955