gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:42:37 25 4
gpt4 key购买 nike

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

PREFIX prop:<http://dbpedia.org/property/>
select count(?x) where {
?x prop:name ?y
}

SPARQL results

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

PREFIX prop:<http://dbpedia.org/property/>
select count(DISTINCT ?x) where {
?x prop:name ?y
}

SPARQL results

我有两个问题:

  1. 第二个查询中删除的 120 万条记录是否重复、空白节点或其他内容?
  2. 如何从 DBpedia 检索空白节点及其值?

最佳答案

获取空白节点

这样的查询可用于检索(最多 10 个)空白节点:

select ?bnode where {
?bnode ?p ?o
filter(isBlank(?bnode))
}
limit 10

但是,我没有得到任何结果。 DBpedia 数据中看起来并不存在空白节点(无论如何,作为主题)。

使用 DISTINCT 和重复结果

您的查询返回不同数量结果的原因是?x有不止一个名字。像您的第一个查询一样的查询:

select count(?x) where { ?x prop:name ?y }

数据如下:

<somePerson> prop:name "Jim" .
<somePerson> prop:name "James" .

会产生2 ,因为有两种方法可以匹配 ?x prop:name ?y?x绑定(bind)到<somePerson>在两者中,但是 ?y绑定(bind)到不同的名称。在像第二个这样的查询中:

select count(DISTINCT ?x) where { ?x prop:name ?y }

您明确只计算 ?x 的不同值,而我的样本数据中只有其中之一。这是一种可以获得不同数量结果的方法,并且不需要任何空白节点。

关于sparql - 如何在 SPARQL 中从 DBpedia 检索空白节点,并使用 DISTINCT 解释减少的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20094772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com