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


    什么是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文档中的几行:

    <rdf:RDF
    xmlns:cd="http://www.recshop.fake/cd#">
    <rdf:Description
    rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
    <cd:artist>Bob Dylancd:artist>
    <cd:country>USAcd:country>
    <cd:company>Columbiacd:company>
    <cd:price>10.90cd:price>
    <cd:year>1985cd:year>
    rdf:Description>
    <rdf:Description
    rdf:about="http://www.recshop.fake/cd/Hide your heart">
    <cd:artist>Bonnie Tylercd:artist>
    <cd:country>UKcd:country>
    <cd:company>CBS Recordscd:company>
    <cd:price>9.90cd:price>
    <cd:year>1988cd: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文档的根元素。 它定义XML文档为RDF文档。 它还包含对RDF命名空间的引用:

    <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    ...描述放在这里...
    rdf:RDF>

    元素
    元素使用 about 属性标识一个资源。

    <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 Dylancd:artist>
    <cd:country>USAcd:country>
    <cd:company>Columbiacd:company>
    <cd:price>10.90cd:price>
    <cd:year>1985cd:year>
    rdf:Description>
    rdf:RDF>

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

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

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

    属性作为资源,属性元素也可以定义为资源:

    <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元素用于描述组:

    元素

    元素用于描述一个值列表,这些值不必按特定顺序排列。

    元素可以包含重复值。

    示例

    <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>Johnrdf:li>
    <rdf:li>Paulrdf:li>
    <rdf:li>Georgerdf:li>
    <rdf:li>Ringordf:li>
    rdf:Bag>
    cd:artist>
    rdf:Description>
    rdf:RDF>

    元素

    元素用于描述一个有序的值列表(例如,按字母顺序)。

    元素可以包含重复值

    示例

    <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>Georgerdf:li>
    <rdf:li>Johnrdf:li>
    <rdf:li>Paulrdf:li>
    <rdf:li>Ringordf:li>
    rdf:Seq>
    cd:artist>
    rdf:Description>
    rdf:RDF>

    元素

    元素用于描述备选值列表(用户只能选择其中一个值)。

    示例

    <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>CDrdf:li>
    <rdf:li>Recordrdf:li>
    <rdf:li>Taperdf:li>
    rdf:Alt>
    cd:format>
    rdf:Description>
    rdf:RDF>

    RDF 术语

    在上述示例中,当描述容器元素时,我们提到了值列表。在RDF中,这些值列表被称为成员。因此,我们有以下内容:

    • 容器是包含事物的资源
    • 所包含的事物称为成员(而不是值列表)

    RDF集合

    RDF 集合描述只能包含指定成员的组。

    rdf:parseType="Collection" 属性

    容器说明包含的资源是成员,但并未规定其他成员不允许存在。

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

    通过属性 rdf:parseType="Collection" 描述集合。

    示例

    <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 功能:

    <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 信息:

    <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 文档中一些达布林核心属性的使用:

    <rdf:RDF>
    <rdf:Description rdf:about="http://example.org/resource">
    <dc:description>W3Schools - Free tutorialsdc:description>
    <dc:publisher>Refsnes Data asdc:publisher>
    <dc:date>2008-09-01dc:date>
    <dc:type>Web Developmentdc:type>
    <dc:format>text/htmldc:format>
    <dc:language>endc: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,关注后即可获取最新文章推送

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

  • 相关阅读:
    nvidia-persistenced 常驻
    SpringMVC(Rest+映射请求数据+模型数据+视图和视图解析器)
    远程连接ubuntu的mysql服务报错10061的解决方案
    OpenGL进阶(二)之像素缓冲PixelBuffer
    网页开发从无到有——html前端学习(五)
    恒峰|高压森林应急消防泵|守护森林安全
    Java经典300例-基础篇-001:Hello Kitty
    产品新闻稿撰写流程是怎样的,纯干货
    linux软连接与硬连接
    【EMC专题】传导骚扰源和辐射骚扰源1
  • 原文地址:https://www.cnblogs.com/xiaowange/p/18236179