问题标签 [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 回答
2800 浏览

rdf - RDF 中的空白节点

我刚开始学习 RDF,我的问题是:空白节点的目的是什么?

例子:

这意味着约翰认识一个出生于 04-21 的人。

但我无法理解其目的。

0 投票
1 回答
759 浏览

sparql - 如何在 SPARQL 中从 DBpedia 检索空白节点,并使用 DISTINCT 解释减少的结果

我想用 SPARQL 查询检索空白节点。我使用 DBpedia 作为我的数据集。例如,当我使用以下查询时,我得到了大约 340 万条结果。

SPARQL 结果

当我使用DISTINCT解决方案修改器时,我得到了大约 220 万个结果。

SPARQL 结果

我有两个问题:

  1. 在第二个查询中消除的 120 万条记录是重复的还是空白节点或其他?
  2. 如何从 DBpedia 检索空白节点及其值?
0 投票
1 回答
818 浏览

rdf - Property with blank node as range

When I define property in ontology, how would I define that range of this property is a "blank" node? For example I want to define property hasPhoneNumber with domain Person. Than I know that person can have more than one phone numbers, so instance of Person will have blank node attached to hasPhoneNumber property and then phone numbers attached to this blank node.

0 投票
1 回答
2851 浏览

sparql - 带有空白节点的 Sparql 查询可能很复杂

我阅读了这篇博客文章,RDF 模型的问题:空白节点,其中提到使用空白节点会使数据处理复杂化。

你能举个例子,为什么使用空白节点很难执行 SPARQL 查询?我不明白空白节点的复杂性。你能解释一下存在变量的含义和语义吗?我不清楚 RDF 语义建议1.5 中给出的解释。空白节点作为存在变量

0 投票
3 回答
8425 浏览

sparql - SPARQL查询中空白节点和变量的区别

我研究了有关该主题的SPARQL 规范,也发现这个答案很有趣。但是定义足够复杂,所以我仍然看不到我的问题的答案。

我找不到任何带有空白节点的查询示例,它返回的结果与使用变量代替空白节点的相同查询不同。

例如,是否存在以下查询返回不同结果的情况:

  1. /li>
  2. /li>

也许有更复杂的查询会导致不同的行为?

特别是我想知道在没有空白节点的 RDF 图上执行的查询的不同结果是否有任何示例。

谢谢。

PS。是的,我知道空白节点只能用于一个 BasicGraphPattern 而不是变量。但这不是我所说的区别。

0 投票
1 回答
966 浏览

rdf - 在耶拿规则中创建个人

我有很多人的本体,并使用 Jena 推理器来获取有关他们的信息。我的目标是根据规则内的给定信息创建新个体,并为他们分配属性。个人不必命名,但他们需要一个类型并且必须是一些属性的一部分。目前我可以创建匿名个人(在邮件列表帖子的帮助下),但我只能给他们一种类型或一种属性。

这是我的问题的一个小例子;我的规则是这样的(本体和推断结果可以在底部找到):

[test2: (?X rdf:type NS:Test1) ->
    [(?Y rdf:type NS:Test2) <- makeSkolem(?Y, ?X)]]

这意味着当找到一个 Test1 个体时,将创建一个新的空白节点,然后将类型 Test2 赋予该节点。它工作正常,但我想给这个新个体一个分类和一个指向 ?X(Test1 个体)的指针(属性)。

像下面这样的东西是行不通的,因为“向后的规则只允许一个头子句”。但是,它的每个子句都可以正常工作。

[test2: (?X rdf:type NS:Test1) ->
    [(?Y rdf:type NS:Test2), (?Y NS:hasClassification 'test'), <- makeSkolem(?Y, ?X)]]

这是我的本体:

这是第一条规则的结果(具有 ID 的空白节点A0A1新个体):

0 投票
1 回答
793 浏览

php - EasyRDF:如何创建空白节点并设置 rdf:about 属性?

我正在使用EasyRdf在图中创建一些节点。我的问题是我正在尝试创建一个新的空白节点并为其设置一个rdf:about指向正确资源的属性。

这段代码的问题在于它创建了一个新rdf:Description节点,但我无法将其添加rdf:about为属性。

我需要的是


我尝试添加rdf:about为资源,但 W3C 验证器输出错误“ rdf:about is not allowed as an element tag here ”。

所以这行不通,也可能不是一个好主意。


创建新的空白节点时如何添加rdf:about或您有什么其他建议?

0 投票
1 回答
943 浏览

java - 检索空白节点映射

我的小组目前正在开发一个点击界面,用于从 RDF 图中导航和提取信息。作为其中的一部分,我们使用 Jena 的 sparqlservice 方法连接到各种三重存储端点。为了移动用户当前正在查看的点,用户可以选择一个节点并将其作为中心。然后程序使用下面的表达式获取该节点的邻居:

其中 URI 是用户选择的节点(我们对文字做了一些稍微不同的事情)。然后按如下方式执行该表达式:

我们面临的问题是关于空白节点。当 Jena 从端点获得一个空白节点时,它会立即被分配一个 Jena bNode ID。这个 ID 不会和端点提供的 ID 相同,如果用户在客户端选择一个空白节点作为新的中心,这显然会引起问题。

因此,我的问题是:有什么方法可以在 Jena 中保留原始端点 ID?通过浏览 Jena 的腹部,我可以看到有几个ResultSet类使用一个类来处理端点 ID 和 Jena ID 之间的映射,称为LabelToNodeMap. 有没有办法检索这个映射?或者,阻止 Jena 使用其自己的 ID 架构,而是使用端点。

0 投票
1 回答
341 浏览

sparql - 带有可选部件的 SPARQL 更新

考虑以下 SPARQL 更新:

如果我不提供值(例如,在 Jena 的ParameterizedSparqlString.setIri()for ?performer?singer?composer中,此更新将不会插入带有相应对象的语句,这是预期的。

[] a mo:Composition但是,如果?composer丢失,我该如何压制。在第二个 INSERT 中创建它,其 WHERE 过滤器ISIRI(?composer)似乎不是一个选项,因为该 INSERT 不会知道第一个已经创建的空白节点。

那么如何在单个 SPARQL 更新中支持这种可选参数呢?例如,有没有办法在两个 INSERT 之间“存储”空白节点?

0 投票
1 回答
1343 浏览

sparql - DELETE/INSERT 操作可用于删除包含空白节点的三元组:如何?

我想使用 SPARQL DELETE/INSERT来确保在重复更新?performance和某些连接的空白节点后没有多个属性值,而只有零(对于可选情况)或一个(对于强制情况)。

如果我将 DELETE/INSERT(见下文)发送到 Jena Fuseki 1.1.1 服务器,我会收到以下错误消息:“DELETE 模板中不允许有空白节点”。

但是,规范包含这句话:“DELETE/INSERT 操作可用于删除包含空白节点的三元组。”

那么在这种情况下,有效的 DELETE/INSERT 形式是什么?为便于维护,最好 DELETE 和 INSERT 部分可以保持结构相似。(这是一个后续问题。)