rdf:Bag、rdf:Seq 和 rdf:Alt 在使用时有何不同?

2024-01-25

我正在读RDF 模式 1.1 http://www.w3.org/TR/rdf-schema/#ch_bag建议,其中包括以下内容(强调是后加的):

5.1.2 rdf:袋子 http://www.w3.org/TR/rdf-schema/#ch_bag

rdf:Bag 类是 RDF“Bag”容器的类。它是一个 rdfs的子类:Container。虽然形式上它与 rdf:Seq 或 rdf:Alt,rdf:Bag 类通常用于 向人类读者表明该容器的目的是 无序的。

5.1.3 rdf:序列

rdf:Seq 类是 RDF“序列”容器的类。它是一个 rdfs的子类:Container。虽然形式上它与 rdf:Bag 或 rdf:Alt,rdf:Seq 类通常用于 向人类读者表明该数字的顺序 容器的容器成员属性旨在 重要的。

5.1.4 rdf:替代

rdf:Alt 类是 RDF“Alternative”容器的类。这是 rdfs:Container 的子类。虽然形式上没有什么不同 从 rdf:Seq 或 rdf:Bag 中,使用 rdf:Alt 类 通常向人类读者表明典型的处理 将选择容器的成员之一。首先 容器的成员,即 rdf:_1 属性的值是 默认选择。

我尝试理解它们的最后一行(以粗体显示)。还google了一下,很好理解。但不知道他们想如何区分这 3 个集装箱在人类/逻辑层面上。以及如何在 rdf:Seq 中维护顺序。

为了理解排序,我还尝试使用 rdf 文件中的 rdf 解析器读取它们,如下所示:

<rdf:Alt rdf:about="http://eresources.nlb.gov.sg/ID/NLBDM/entity/XYZContainer">
     <rdf:li>http://eresources.nlb.gov.sg/ID/NLBDM/resource/c85a5e82-b357-4168-a31e-1c8fd7f46101</rdf:li>
     <rdf:li>http://eresources.nlb.gov.sg/ID/NLBDM/vocab/tqS1cM1h</rdf:li>
     <rdf:li>http://eresources.nlb.gov.sg/ID/NLBDM/vocab/rQhlIgDw</rdf:li>
     <rdf:li>http://eresources.nlb.gov.sg/ID/NLBDM/vocab/AaNRoEP6</rdf:li>
</rdf:Alt>

使用 rdf:Bag 或 rdf:Seq 或 rdf:Alt,所有这些都给出相同的有序 Urisrdf:li

例如。 www.w3.org/1999/02/22-rdf-syntax-ns#_1,www.w3.org/1999/02/22-rdf-syntax-ns#_2,www.w3.org/1999/02/ 22-rdf-syntax-ns#_3 等等...

我想用清晰的例子来理解如何使用这些集装箱不同场景下有不同的做法,rdf:Seq 维护顺序有什么特别之处。


规范还这样说:

D.2 RDF 容器 http://www.w3.org/TR/rdf11-mt/#rdf-containers

容器词汇表没有特殊的语义条件: RDF 假定其容器具有的唯一结构是 可以从这个词汇的使用和一般的RDF中推断出 语义条件。这相当于知道容器的类型, 并对容器中的项目进行部分枚举。这 预期的使用模式是 rdf:Bag 类型的事物被认为是 无序但允许重复; rdf:Seq 类型的东西是 被认为是有序的,并且 rdf:Alt 类型的事物被认为是 代表备选方案的集合,可能带有偏好 订购。如果容器是有序类型,则排序 容器中的物品旨在用数字表示 容器成员资格属性的排序,假设为 是单值的。但这些非正式的条件并没有得到体现 在任何正式的 RDF 蕴涵中。

使用 rdf:Bag 或 rdf:Seq 或 rdf:Alt,都给出相同的结果 为 rdf:li 订购 Uris

例如。 www.w3.org/1999/02/22-rdf-syntax-ns#_1,www.w3.org/1999/02/22-rdf-syntax-ns#_2,www.w3.org/1999/02/ 22-rdf-语法-ns#_3 等等...

是的,没有formal这些容器之间的区别。请注意 rdf:li 是notRDF 属性。它是在 RDF/XML 序列化中使用的特殊 URI,当从 RDF/XML 文档中提取三元组时,它们实际上使用 rdf:_n 属性,该属性areRDF 属性。您将获得相同的 rdf:_n 属性序列,因为这是它们在 RDF/XML 文档中出现的顺序。

对于 Bag,顺序并不重要,这意味着您ignore的特定值i在 rdf:_i 中,并将它们全部视为成员。对于 Seq,顺序确实很重要,因此您应该注意i在 rdf:_i 中。命令mightAlt 中的内容;这取决于应用程序。

我想用清晰的例子来理解如何使用这些 不同场景下的容器有不同,有什么特别之处 维护 rdf:Seq 的顺序。

区别在于consumer is intended与数据有关。实际数据并没有真正改变,但其意图是:

  • 如果你看到一个包,那么你就会把它当作一个数学模型set。它有一堆元素,没有特殊的顺序。当然,当它写成 RDF/XML 文件时,元素必须写成some顺序,但这只是偶然的。
  • 如果您看到 Alt,那么其意图是它是项目的集合,但您实际上只需要其中一个,并且可能有也可能没有顺序。例如,如果某人喜欢红色和蓝色,但不喜欢黄色或橙色,并且您需要知道为他们购买什么颜色的衬衫,您可以从仅包含红色和蓝色的替代颜色中选择任意颜色。
  • 如果您看到 seq,那么顺序很重要。

现在想象一下我们不使用 RDF,而是使用数组的编程语言。我可以使用一个数组来表示所有这些结构。区别在于consumer与数组一起做。但从形式上来说,它们都只是数组。

尽管如此,人们似乎并没有真正经常使用这些集合。它们没有明确的语义,因此它们并没有真正明确的用例。如果你需要它们,你可以使用它们,但工具通常不会对它们做任何特殊的事情;您可能需要考虑其他选择。

Related

这些不是重复的问题,但它们是相关的,并且可能有用或有趣的阅读:

  • rdf:_1....rdf_n 和 rdf:_li 有什么区别? https://stackoverflow.com/q/20181369/1281433
  • RDF 容器和集合之间的区别? https://stackoverflow.com/q/17588804/1281433

各部分D.2 RDF 容器 http://www.w3.org/TR/2014/REC-rdf11-mt-20140225/#rdf-containers and D.3 RDF 集合 http://www.w3.org/TR/2014/REC-rdf11-mt-20140225/#rdf-collections of the RDF 语义 W3C 推荐标准 http://www.w3.org/TR/rdf11-mt/也是很好的资源。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rdf:Bag、rdf:Seq 和 rdf:Alt 在使用时有何不同? 的相关文章

  • 基于 SParQL 中的 URI 进行过滤 [重复]

    这个问题在这里已经有答案了 您可以在以下位置运行以下查询链接 MDB SPARQL 资源管理器 http www linkedmdb org snorql 的价值观 imdbID 最后一个变量 包含来自三个可能域 freebase com
  • 如何在任意长度的sparql路径中使用Union/or?

    我使用下面的查询从 DBPedia 本体中查找具有城市域 或城市超类 或国家范围 或国家超类 的所有属性 当我使用固定长度的路径时没有问题但是当我把 要定义任意长度的路径 我收到此错误 Virtuoso 37000 错误 SP031 SPA
  • Freebase 中所有标题/主题标题的文本文件

    我需要一个文本文件来包含 txt 文件中每个标题 每个主题的标题 每个项目的标题 每个标题都占一行 如果我已经下载了 freebase rdf 转储 我该如何执行此操作或进行此操作 如果可能 我还需要一个单独的文本文件 其中每个主题 项目的
  • 从 dbpedia 获取改编成电影的书籍列表

    我正在尝试获取改编自 dbpedia 书籍的美国电影列表 这是我到目前为止所拥有的 PREFIX onto
  • 使用 nginx 缓存 POST 响应:我应该将 Cache-Control 标头转发到客户端吗?

    我们的系统使用 POST 请求来预加载资产列表 给定相同的资产标识符列表 服务器将使用相同的资产数据列表进行响应 由于标识符列表可能非常长 它实际上是包含 JSON 列表的多部分请求 因此我们使用 POST 而不是 GET 尽管它is幂等的
  • 如何使用 DBpedia 属性构建主题层次结构?

    我试图通过遵循下面提到的两个 DBpedia 属性来构建主题层次结构 skos 更广泛的财产 dcterms 主题属性 我的目的是给这个词确定它的主题 例如 给出这个词 支持向量机 我想从中识别主题 例如分类算法 机器学习等 然而 有时我对
  • 如何使用 SPARQL 查询生成适合特定节点类型或/和边类型的所有三元组?

    这是一个后续问题 如何使用SPARQL查询列出并统计图数据中不同类型的节点和边实体 https stackoverflow com questions 24187351 how to list and count the different
  • 使用 Jena 解析 RDF 递归

    我正在尝试使用 Apache Jena 递归解析 RDF 文档 它由如下数据集组成
  • XRX 是唯一完全符合 W3C 的全栈 Web 应用程序“框架”吗?

    XRX 是指前端完全用 XML 方言编写 后端完全用 XML 方言编写的应用程序 并且数据在它们之间以 XML over REST 的形式传递 这是唯一完全由 W3C 维护的技术组成的 Web 应用程序堆栈 对吗 我认为回答这个问题的最佳方
  • 投影中的变量“x”不存在于 GROUP BY 中

    我想计算城市和括号中的内容 但是 我也想获得另一个变量 但是当我将它添加到 SELECT 时 我得到 org openrdf query MalformedQueryException 投影中的变量 region name 不存在于 GRO
  • RDF 文件转换为 Excel 可读格式

    我下载了 ttl 格式的 rdf 文件 我是 RDF 新手 我想看看是否可以以某种简单的 txt csv 格式获取数据 有谁知道如何做到这一点 RDF 有一个非常简单的数据模型 它只是subject predicate object 您可以
  • Jena PrefixMapping:当模型是从数据集中获取的命名模型时,基本命名空间缺失

    这是我用来加载的代码OntModel to a Dataset作为命名模型 然后我尝试检索PrefixMapping以两种不同的方式实现相同的目的 public static void loadDatasetwithNamedModels
  • 有修订的三重存储

    我需要存储 RDF 三元组 同时跟踪修改 有这项服务吗 或者 在使用上下文感知三重存储时如何跟踪修订 Edit 请注意 我不仅仅需要变更集 我还需要查看过去任何时间的三元组 我试图通过存储额外的三元组来解决这类问题 这些三元组描述了谁在何时
  • 如何将嵌入的 Blazegraph 内容转储到 RDF 文件?

    I have 创建了 blazegraph RDF4J 存储库和连接 https wiki blazegraph com wiki index php Sesame API Tutorial在斯卡拉中 val props new Prope
  • OWL 限制 - 定义仅包含具有特定属性值的属性的类

    我目前正在玩 OWL 尤其是有限制的情况 我正在尝试创建一个执行以下操作的查询 假设我有一个类 Cinema 它具有属性 movies 包含 Movie 类型的对象 Movie 类包含一个名为 genre 的属性 现在我想创建一个 Acti
  • 如何推断两个人之间的财产是兄弟

    我需要推断一个人是另一个人的兄弟 如果他们有同一个父亲 所以 如果我有这个 巴特有父亲荷马 丽莎有父亲荷马 Because Bart and Lisa有同一个父亲 我想推断 丽莎有弟弟巴特 有没有什么方法可以利用任何属性特征来做到这一点 使
  • 不带单位的 CSS 属性的后备

    考虑 CSS 属性缺少单位 px em pt 的场景 div style width 170 border 1 dotted PaleGreen background color MistyRose The quick brown div
  • 了解使用 Overflow:hidden 的内联块元素的换行行为

    我想要两个inline block元素保留在同一行 无论它们如何width or margin 快速解决方案是申请white space nowrap到容器 Flex 和 float 是同样有效的替代方案 我只是坚持找出特定的包装行为whi
  • 如何将dbpedia导入neo4j? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要将 dbpedia 导入 neo4j 我从这里下载 dbpedia http wiki dbpedia org Download
  • 将 SWRL 与 Jena 和 Pellet 结合使用

    我无法找到一些使用 SWRL 和 Jena 的简单代码示例 佩莱 或者至少使用 SWRL 我研究了 Pellet 文档中的一些示例 但没有关于使用 SWRL 的示例 网络上的大多数示例都不完整且令人困惑 我找到的唯一解决方案是使用 Jess

随机推荐