所以我想要合并3个SPARQL查询:
查询1
PREFIX entity: <http://.../entity/>
PREFIX p: <http://.../prop/>
PREFIX ps: <http://.../prop/statement/>
PREFIX pd: <http://.../prop/direct/>
entity:Q276 p:P19 ?statement .
?statement ps:P19 ?next .
?next pd:P18 ?kpa .
查询2
PREFIX entity: <http://.../entity/>
PREFIX p: <http://.../prop/>
PREFIX ps: <http://.../prop/statement/>
PREFIX pd: <http://.../prop/direct/>
entity:Q276 p:P19 ?statement .
?statement pq:P20 ?nav_rule .
?nav_rule pd:P18 ?kpb .
查询3
PREFIX entity: <http://.../entity/>
PREFIX p: <http://.../prop/>
PREFIX ps: <http://.../prop/statement/>
entity:Q276 p:P19 ?statement .
?statement ps:P19 ?next .
?next rdfs:label ?kpc .
我想在变量名?kpa
下的列表中输出?kpb
和?key_phrase
。如果?kpa
和?kpb
都为空或无,则?key_phrase
应为包含?kpc
的列表。此外,?kpa
和?kpc
可能有多个值,因此如果您可以在同一个列表中包含所有这些值,则需要额外的道具。这个新查询将用作更大的sparql查询的子查询,所以我认为我不能使用GROUP-CONCAT
和ORDER BY
。
示例
例如,我想为电视节目(Q15416)或歌曲<的子类的每个条目提取 AAT ID (P1014) / strong>(Q7366)或流派游戏节目(Q846662)。如果 AAT ID 属性不存在,则改为提取条目的标题。提取的所有值都应列在字段名称?key_phrase 。
下