问题标签 [blank-nodes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
741 浏览

rdf - 如何区分 RDF 中的两个空白节点?

我很难理解来自 w3.org 的一段话。令人困惑的段落可能是一个错误,或者我可能只是感到困惑。

以下是RDF 概念规范的第 6.6 节

6.6 空白节点

RDF 图中的空白节点是从无限集合中绘制的。这组空白节点、所有 RDF URI 引用的集合和所有文字的集合是成对不相交的。

否则,这组空白节点是任意的。

RDF 不参考空白节点的任何内部结构。给定两个空白节点,可以确定它们是否相同。

所以,我很困惑的是:如果没有办法知道“空白笔记的内部结构”,如何区分它们?这是一个错字吗?

0 投票
2 回答
360 浏览

python - Adding blank nodes in triples

The code written below gives the following output:

Code:

Output:

But I need following output, could you please guide what is wrong with it.

Thanks in advance.

0 投票
3 回答
4124 浏览

sparql - 如何递归扩展 SPARQL 构造查询中的空白节点?

可能很容易回答这个问题,但我什至不知道如何制定谷歌查询来找到它。

我正在针对包含空白节点的数据集编写 SPARQL 构造查询。所以如果我做一个像这样的查询

CONSTRUCT {?x ?y ?z .} WHERE {?x ?y ?z .}

那么我的结果之一可能是:

nm:John nm:owns _:Node

如果所有的都是一个问题

_:Node nm:has nm:Hats

三元组也不会以某种方式进入查询结果(因为我使用的一些解析器,比如 Python 的 rdflib 真的不喜欢悬空的 bnodes)。

有没有办法编写我的原始 CONSTRUCT 查询以递归地添加附加到任何 bnode 结果的所有三元组,以便在我的新图中没有任何 bnode 悬空?

0 投票
1 回答
372 浏览

sparql - 将空白节点从 stardog 映射到 pubby

所以我有这个加载到Stardog上的 .rdf,然后我使用Pubby在 Jetty 上运行,以浏览三重商店。

在我的 rdf 文件中,我有几个空白节点,stardog 为它们提供了一个空白节点标识符。所以这是 rdf 文件的一个片段。

所以基本上我有一些资源“res1”,它具有指向空白节点的链接,该节点具有提及开始和提及结束偏移值。

Pubby 的 config.ttl 文件片段如下所示。

所以关键是 datasetBase 将 URI 映射到 URL。

当我尝试映射它时,有一个“匿名节点”链接,但点击后,什么都没有显示。我的猜测是,这是因为空白节点有一些像 _:bnode1234 这样的标识符,它没有被 Pubby 映射。

我想知道是否有人知道如何映射这些空白节点。

(注意:如果我将这个 rdf 作为静态 rdf 文件直接加载到 Pubby 上,它可以正常工作。但是当我使用 stardog 作为三重存储时,这个映射就不能正常工作了)

0 投票
1 回答
198 浏览

sparql - 有没有办法使用变量而不用 SPARQL“select *”返回它?

有没有办法在使用 SPARQL 时使用一种占位符变量而不返回它SELECT *

例如:

在我不想返回?s变量的地方,只返回?title?name?s2变量,同时离开SELECT *.

我知道我可以通过使用来限制选择结果SELECT ?title ?name ...,但我只是好奇是否有某种占位符变量的表示法或某种方式来管理它。


编辑:

我了解您可以在某些情况下使用空白节点来完成此操作,例如:

但是,由于空白节点不能跨基本图形模式使用,这不会引起问题吗?例如,这在这种情况下会中断:

谢谢!

0 投票
1 回答
721 浏览

sparql - 如何在 SparqlParameterizedString 中分配参数值

我正在玩一些 Dotnetrdf 的 sparql 引擎,我正在尝试创建参数化查询但尚未成功。

假设我正在处理带有标识为 _:1690 的空白节点的图 g,其代码

每当我运行它时,我都会让所有节点都具有 rdfs:label 属性,而不是仅在我的空白节点上过滤结果。

请问,如何正确设置参数的值,以便我在结果中只得到一项?

在此先感谢,马克斯。

0 投票
1 回答
1293 浏览

rdf - Jena 删除一个带有匿名节点的三元组

我一直在尝试使用 Jena 从模型中删除三元组,但没有成功。当主语、谓词和宾语是 URI 或文字时,一切都很好,但对于匿名节点,它似乎不起作用。例如,考虑模型中的这个三元组:

我想使用以下方法删除它:

无论我使用createAnon或,我都无法删除三元组Node.ANY。我不想使用 AnonId 只是因为如果我在另一台机器上运行我的代码,我怀疑是否会生成相同的匿名 id。

0 投票
2 回答
266 浏览

rdf - 确保多个主题指向相同的空白节点列表

考虑以下实例SomeClass

我需要每个实例(some_thing2,some_thing3等)将其hasChainTo属性点放在相同的空白节点列表中(因为它只有一个副本)。我需要维护空白节点语法列表,因为链变得非常深,并且这种语法对于写出每个链(for , 等)非常SomeClass2流畅SomeClass3

如果我只是从中创建一个基类和 subClassOf,则该hasChainTo属性会继承而不是它指向的对象。这在直觉上是有道理的,但我需要其他行为。

如何实现?

0 投票
1 回答
684 浏览

sparql - 如何使用 Sesame 获得资源的简明有界描述?

我一直在测试Sesame 2.7.2 ,当面对DESCRIBE查询不包括空白节点关闭这一事实时,我感到非常惊讶

如果我正确理解,SPARQL 规范对此非常宽松,并说返回的内容实际上取决于提供者,但我仍然对选择感到惊讶,因为不能使用 bnodes(在 describe 查询的结果中)在随后的 SPARQL 查询中。

所以问题是:我怎样才能在<uri1>不这样做的情况下获得对资源的封闭描述:

  1. 询问DESCRIBE <uri1>
  2. 遍历结果以确定哪些对象是空白节点
  3. 然后DESCRIBE ?b WHERE { <uri1> pred_relating_to_bnode_ ?b }
  4. 只要找到 bnode,就递归执行并链接

如果我没记错的话,深度 2 bnodes 必须用

除非有更简单的方法可以做到这一点?

最后,让DESCRIBE返回一个资源的封闭描述不是更好更简单,您仍然可以获得当前返回的结果,如下所示?

编辑:这是一个我想从芝麻回来的封闭结果的例子

目前:DESCRIBE <urn:sites#1>返回与查询相同的结果CONSTRUCT WHERE {<urn:sites#1> ?p ?o},所以我只得到那个

0 投票
1 回答
1099 浏览

rdf - Protege 4 - 保存 RDF 重新格式化嵌套的空白节点

我刚从 TopBraid 切换到试用 Protege。

我有一个类似于这样的 RDF 的本体:

这个想法是,这种嵌套的空白节点语法非常有效,因为链变得非常深,并且这种语法是流动的并且具有高度可读性和可维护性,因为链可能会不时更改并且可以添加新链。

不仅如此,我已经为结果图编写了查询。

问题是,如果我将其导入 Protege 然后将其保存回来,结果将重新格式化为:

生成的 RDF 完全破坏了查询系统以及使用这种方法表示“链接”的其他好处。

有什么办法可以解决这个问题吗?如果不是,我可能会被迫切换回 TopBraid。

更新:这是问题的再现:

我写了bugTest.ttl然后在 Protege 中打开它并立即 Save As > Turtle > bugTestOutput.ttl

https://dl.dropboxusercontent.com/u/13814624/bugTest.ttl https://dl.dropboxusercontent.com/u/13814624/bugTestOutput.ttl