gpt4 book ai didi

sparql - 如何按限定符显示或过滤?

转载 作者:行者123 更新时间:2023-12-02 02:52:24 24 4
gpt4 key购买 nike

见例如。 P297 at Q37024 ,有一个限定符(P582)。

显示/调试

这个查询是错误的,如何像Q37024一样显示endtime?

SELECT ?item ?iso2_code ?endtime 
WHERE {
?item wdt:P297 ?iso2_code
OPTIONAL { ?iso2_code pq:P582 ?endtime }
}

筛选

我需要所有没有结束时间的项目。

关于真实案例的说明

我在查询
SELECT DISTINCT ?iso2_code  ?wd_id
WHERE {
?item wdt:P297 ?iso2_code
BIND(strafter(STR(?item),"http://www.wikidata.org/entity/") as ?wd_id).
} ORDER BY ?iso2_code

但检索重复项,
  • 人工智能 | {Q25228,Q1450765} | Q1450765使用P582,Q25228不使用
  • 客户服务 | {Q33946,Q37024} ...
  • 丹麦 | {Q35,Q756617}
  • 通用电气 | {Q230,Q1050859}
  • 荷兰 | {Q55,Q29999}
  • PS | {Q219060,Q407199}
  • 于 | {Q83286,Q838261}

  • 所以我需要排除一个,但正确的一个:到结束时间。

    PS:有一本关于 WIKIDATA Qualifiers的手册但没有检索数据集的真实案例。

    最佳答案

    SELECT DISTINCT (?simple_value AS ?iso2_code) ?wd_id
    WHERE {
    ?item p:P297 ?statement .
    ?statement ps:P297 ?simple_value .
    # ?statement a wikibase:BestRank
    OPTIONAL { ?statement pq:P582 ?qualifier . }
    FILTER ( !bound(?qualifier) )
    BIND ( strafter(str(?item), str(wd:)) AS ?wd_id ).
    } ORDER BY ?iso2_code

    Try it!

    您可以使用 FILTER NOT EXISTS { ?statement pq:P582 ?qualifier . }代替 OPTIONAL { ?statement pq:P582 ?qualifier . } FILTER ( !bound(?qualifier) ) .

    Wikidata 数据模型已记录在案 here . this page上有很多查询示例,e。 G。 this one .

    关于sparql - 如何按限定符显示或过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51673685/

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