RDF


一、RDF是什么?

是用于描述网络资源的 W3C 标准,比如网页的标题、作者、修改日期、内容以及版权信息。

RDF序列化的方式主要有:RDF/XML,N-Triples,Turtle,RDFa,JSON-LD等几种。

二、RDF/XML

用XML的格式来表示RDF数据。

解释

  • <xmlns:cd > 命名空间,规定了带有前缀 cd 的元素来自命名空间 “http://www.recshop.fake/cd#”。
  • <rdf:Description> 元素包含了对被 rdf:about 属性标识的资源的描述。
  • 元素:<cd:artist>、<cd:country>、<cd:company> 等是此资源的属性。
<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>

1、RDF 元素

  1. rdf:RDF:是 RDF 文档的根元素
  2. rdf:Description :包含描述资源的那些元素
  3. property:定义属性,比方说上面的cd:artist,cd:country等

2、RDF容器

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

1.<rdf:Bag>

  • 用于描述一个规定为无序的成员
  • 可包含重复的值

下面代码是在属性cd:artist下使用容器rdf:Bag :

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

2.<rdf:Seq>

  • 描述一个规定为有序的成员

下面代码是在属性cd:artist下使用容器rdf:Seq

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

3.<rdf:Alt>

  • 用于一个可替换的成员
 <cd:format>
    <rdf:Alt>
      <rdf:li>CD</rdf:li>
      <rdf:li>Record</rdf:li>
      <rdf:li>Tape</rdf:li>
    </rdf:Alt>
  </cd:format>

3、RDF集合

正如在前面的章节所看到的,我们无法关闭一个容器。容器规定了所包含的资源为成员 - 它没有规定其他的成员是不被允许的。

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

集合是通过属性 rdf:parseType=“Collection” 来描述的。

<rdf:Description
rdf:about="http://recshop.fake/cd/Beatles">
  <cd:artist rdf:parseType="Collection">
   ...
  </cd:artist>
</rdf:Description>

4、RDFS

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

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

实例:资源 “horse” 是类 “animal” 的子类。

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

由于一个 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>

5、RDF 都柏林核心元数据倡议

Contributor:一个负责为资源内容作出贡献的实体(如作者)。

Coverage:资源内容的氛围或作用域

Creator:一个主要负责创建资源内容的实体。

Format:物理或数字的资源表现形式。

Date:在资源生命周期中某事件的日期。

Description:对资源内容的说明。

Identifier:一个对在给定上下文中的资源的明确引用

Language:资源智力内容所用的语言。

Publisher:一个负责使得资源内容可用的实体

Relation:一个对某个相关资源的引用

Rights:有关保留在资源之内和之上的权利的信息

Source:一个对作为目前资源的来源的资源引用。

Subject:一个资源内容的主题

Title:一个给资源起的名称

Type:资源内容的种类或类型。

实例:

<?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.runoob.com">
  <dc:description>Run Noob - 奔跑吧!菜鸟</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>

三、N-Triples

即用多个三元组来表示RDF数据集,是最直观的表示方法。每一行表示一个三元组,方便机器解析和处理.

知识图谱通常是用这种格式来发布数据。

<http://www.kg.com/person/1> <http://www.kg.com/ontology/chineseName> "罗纳尔多·路易斯·纳萨里奥·德·利马"^^string.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/career> "足球运动员"^^string.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/fullName> "Ronaldo Luís Nazário de Lima"^^string.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/birthDate> "1976-09-18"^^date.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/height> "180"^^int.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/weight> "98"^^int.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/nationality> "巴西"^^string.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/hasBirthPlace> <http://www.kg.com/place/10086>.
<http://www.kg.com/place/10086> <http://www.kg.com/ontology/address> "里约热内卢"^^string.
<http://www.kg.com/place/10086> <http://www.kg.com/ontology/coordinate> "-22.908333, -43.196389"^^string.

四、Turtle

应该是使用得最多的一种RDF序列化方式了。它比RDF/XML紧凑,且可读性比N-Triples好。

@prefix person: <http://www.kg.com/person/> .
@prefix place: <http://www.kg.com/place/> .
@prefix : <http://www.kg.com/ontology/> .

person:1 :chineseName "罗纳尔多·路易斯·纳萨里奥·德·利马"^^string;
         :career "足球运动员"^^string;
         :fullName "Ronaldo Luís Nazário de Lima"^^string;
         :birthDate "1976-09-18"^^date;
         :height "180"^^int;
         :weight "98"^^int;
         :nationality "巴西"^^string; 
         :hasBirthPlace place:10086.
place:10086 :address "里约热内卢"^^string;
            :address "-22.908333, -43.196389"^^string.

总结

以上就是今天学习的内容,本文仅仅简单介绍了RDF的相关知识。

参考来源:

https://www.runoob.com/rdf/rdf-tutorial.html
https://blog.csdn.net/u011801161/article/details/78833958

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值