当前位置: 首页 > 知识库问答 >
问题:

rdf:resource和rdfs:resource之间有什么区别?

汪鸿志
2023-03-14

在RDF 1.1 XML语法文档中,定义空属性元素时使用RDF:resource作为缩写形式:

当RDF图中的谓词弧指向一个没有其他谓词弧的对象节点时,该对象节点在RDF/XML中以空节点元素(或)的形式出现,这种形式可以缩短。这是通过使用对象节点的IRI作为包含属性元素上的XML属性rdf:resource的值,并使属性元素为空来实现的。

在RDF模式1.1中,rdfs:resource定义为类:

这两者有何关联?rdf:resource值总是属于rdfs:resource类吗?

共有1个答案

巢宏富
2023-03-14

他们一点关系也没有。他们只是碰巧共享一个名字,因为他们都与资源有关。

术语“资源”是RDF数据模型的核心(毕竟它是资源描述框架)。一般而言,RDF中的资源是任何可以由URI标识的东西(关于空白节点和文字如何属于这个定义,有大量的技术细节,但为了简单起见,这里我们将忽略这些)。

rdf:resource只是RDF/XML语法中的一个语法元素,即标识属性值即资源的属性。例如,下面是一个简单的RDF模型(1个三元组),用RDF/XML表示:

<rdf:Description rdf:about="http://example.org/Bob">
    <foaf:address rdf:resource="http://example.org/address1"/>
</rdf:Description>

这里,http://example.org/bob是主题资源,foaf:address是该主题的属性(用于将主题资源链接到值)。本例中的属性值也是一个资源(http://example.org/address1),因此在RDF/XML语法中,我们使用rdf:resource属性来链接它。但是,如果您要用不同的语法编写相同的RDF模型(例如,Turtle),则根本不会看到RDF:resource:

<http://example.org/Bob> foaf:address <http://example.org/address1> .

在RDF模式中,rdfs:resource类是所有资源的类。它是一个概念,而不是语法特定的机制。由于RDF中的任何东西都是资源,所以它是“顶级”类的东西。所有的东西都是资源,所以如果您引入一个新类,例如“Person”,它将(自动)是rdfs:resource的子类。

<http://example.org/Bob> rdf:type <http://example.org/Person> . 
<http://example.org/Bob> rdf:type rdfs:Resource . 

注意,第二个三元组是第一个三元组的逻辑结果。因此,在实践中,bob是一个资源这一事实几乎从未在RDF模型中显式写下来--如果需要的话,可以推断出来。

 类似资料:
  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型

  • 问题内容: 今天,我按照一些说明在Linux中安装软件。有一个脚本需要首先运行。它设置一些环境变量。 指令告诉我要执行,但是我执行错误了。因此未设置环境。最后,我注意到了这一点并继续进行。 我想知道这两种调用脚本方法的区别。我对Linux完全陌生,所以请尽可能详细。 问题答案: 运行脚本,将启动一个新的运行脚本的外壳。新的外壳程序不会影响启动脚本的父外壳程序。 是的简写形式,它将在当前shell中

  • 问题内容: 我刚开始使用Spring。我遇到了很多教程。我看到使用更多的例子比。我查看了Spring文档,但无法弄清楚使用其中一个的好处。有人可以提供一些解释吗? 问题答案: 是的便捷子类。 JavaDoc描述了一些添加的属性,这些属性在某些情况下可能有用: UrlBasedViewResolver的便利子类,它支持InternalResourceView(即Servlet和JSP)以及诸如Jst

  • 问题内容: 我刚刚看到了包含标签的CSS代码。我看着MDN看看是什么,但我真的不明白。 有人可以解释它是如何工作的吗? 它会在我们通过CSS选择之前创建DOM元素吗? 问题答案: 根据这些文档,它们是等效的: 唯一的区别是CSS3中使用了双冒号,而单冒号是旧版本。 推理: CSS 3中引入了:: before表示法,以便在伪类和伪元素之间建立区别。浏览器还接受:在CSS 2中引入的表示法。

  • 问题内容: 以下哪个更好? 要么 我知道的唯一区别是,当“ a”为null时,第一个返回false,而第二个抛出异常。除此之外,它们是否总是给出相同的结果? 问题答案: 使用时,你需要B在编译时知道类。使用时可以是动态的,并且可以在运行时更改。

  • 问题内容: 根据MDN: 在许多情况下,revert关键字的工作原理与未设置的关键字完全相同。唯一的区别是属性具有由浏览器或用户创建的自定义样式表(在浏览器侧设置)设置的值。 我不了解浏览器和自定义样式表。浏览器和自定义样式表也都可以替换,对吗? 问题答案: 从MDN: 如果未设置CSS关键字从其父级继承,则将其重置为继承的属性,如果不是,则将其重置为初始值。换句话说,在第一种情况下,其行为类似于