gpt4 book ai didi

sparql - 如何正确使用 SPARQL OPTIONAL 来检索可能存在的资源的属性?

转载 作者:行者123 更新时间:2023-12-03 23:44:41 24 4
gpt4 key购买 nike

我正在尝试使用 SPARQL 查询来检索有关 DBpedia 资源(人员)的信息。我想使用相同的查询通过参数化资源 URI 来检索有关任何人员的数据。由于特定资源可能不存在某些属性,因此我正在使用 OPTIONAL陈述。这是我的查询:

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?label ?abstract ?placeOfBirth
?birthPlace ?birthDate ?deathDate ?page ?thumbnail
WHERE {
<http://dbpedia.org/resource/Neil_Simon> rdfs:label ?label ;
dbo:abstract ?abstract ;
foaf:page ?page .
OPTIONAL {
<http://dbpedia.org/resource/Neil_Simon> dbpprop:placeOfBirth ?placeOfBirth ;
dbpprop:birthPlace ?birthPlace ;
dbo:birthDate ?birthDate ;
dbo:deathdate ?deathDate ;
dbo:thumbnail ?thumbnail .
}
FILTER (LANG(?label) = 'en')
FILTER (LANG(?abstract) = 'en')
}
LIMIT 1

我把标签、摘要和页面之外的所有东西都留在了 OPTIONAL ,因为如果我对另一个人使用相同的查询,他们可能没有这些属性。问题是,这些可选属性都没有出现在结果中。在 Neil Simon 的案例中,您可以看到 birthDate 的值。 , birthPlacethumbnail : http://dbpedia.org/resource/Neil_Simon .但是,当我运行查询时,这些值不会显示: DBpedia SPARQL query .我做错了什么,我怎样才能有选择地检索这些属性?

最佳答案

尽管您使用了 OPTIONAL构建 map 模式本身需要匹配其中的所有属性。所以只有当你有 birthPlace , birthDate , deathDatethumbnail内部可选结构得到满足

我建议打破 OPTIONAL构造成多个 OPTIONAL结构体。

关于sparql - 如何正确使用 SPARQL OPTIONAL 来检索可能存在的资源的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5161568/

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