繁体   English   中英

如何在 SPARQL 查询结果(以及变量)中返回已为 UNION 指定的属性?

[英]How to return already specified properties for UNION in the SPARQL query result (as well as variables)?

是否有一种(好的)方法可以在 SPARQL 查询结果(以及变量)中返回已为 UNION 指定的属性?

任何端点都可以,但下面使用 Wikidata 作为示例( https://query.wikidata.org/sparql )。 例如,

SELECT DISTINCT ?item ?person
WHERE {
 {? item wdt:P170 ?person . }
 UNION { ?item wdt:P50 ?person . }
}

这会返回类似:

|?项目 |?人 |

| http://www.wikidata.org/entity/Q51136119 | http://www.wikidata.org/entity/Q736847 |

| http://www.wikidata.org/entity/Q51136131 | http://www.wikidata.org/entity/Q736847 |


我需要的是在结果中得到 wdt:170 和 wdt:P50,这样我就可以看到每个关系使用了哪些属性:

|?item |?property |?person |

| http://www.wikidata.org/entity/Q51136119 | 宽:170 | http://www.wikidata.org/entity/Q736847 |

| http://www.wikidata.org/entity/Q51136131 | 宽:P50 | http://www.wikidata.org/entity/Q736847 |


笔记

该示例已简化。 只有一个 UNION 和两个结果,但会有更多的 UNION,因此了解所有使用的属性很重要。

如果属性部分可以是完整的 URI,则没问题(例如http://www.wikidata.org/prop/direct/P50

谢谢

您可以使用VALUES而不是UNION

SELECT DISTINCT ?item ?property ?person
WHERE {
  
  VALUES ?property {
    wdt:P170 
    wdt:P50
  }
  
  ?item ?property ?person .

}

结果:

带有“属性”列的结果表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM