gpt4 book ai didi

sparql - Sparql 查询中属性的优先级

转载 作者:行者123 更新时间:2023-12-02 04:30:50 28 4
gpt4 key购买 nike

这是一个关于 Sparql 和 Wikidata 的问题。我想制定一个返回实例类型关系的查询,但如果它不可用,则返回其子类。我尝试过:

SELECT DISTINCT  ?ent_type  WHERE { 

{ wd:Q7696957 wdt:P31 ?instanceof . } UNION
{ wd:Q7696957 wdt:P31/wdt:P279? ?subclass . } UNION
{ wd:Q7696957 wdt:P279* ?subclass . }

BIND ( IF (BOUND (?instanceof), ?instanceof, ?subclass ) as ?ent_type )

但不幸的是,这会返回所有解决方案,而我只想要一个解决方案

ent_type
----------
wd:Q811979
wd:Q386724
wd:Q811430
wd:Q7696957

最佳答案

您可以使用coalesce实现这一目标:

select distinct ?ent_type where { 
optional { wd:Q7696957 wdt:P31 ?direct }
optional { wd:Q7696957 wdt:P31/wdt:P279? ?indirect }
optional { wd:Q7696957 wdt:P279* ?ancestor }
bind(coalesce(?direct, ?indirect, ?ancestor) as ?ent_type)
}

关于sparql - Sparql 查询中属性的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36851647/

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