在sparql查询中使用union

时间:2015-07-02 18:55:52

标签: java sparql dbpedia

我在2个DBpedia资源之间获得了这个SPARQL查询:法国和阿尔斯通

select * where{
<http://dbpedia.org/resource/France> ?pre ?obj.

?obj ?pre1 <http://dbpedia.org/resource/Alstom>
}

并且它什么都不返回

但是如果我像这样反转主题和对象:

select * where{
<http://dbpedia.org/resource/Alstom> ?pre ?obj.
?obj ?pre1 <http://dbpedia.org/resource/France>
}

查询返回一些结果..

SPARQL Result

有没有办法使用UNION合并两个查询?

1 个答案:

答案 0 :(得分:0)

根据您的评论,您只需要使用以下语法直接结合:

prefix dbpedia: <http://dbpedia.org/resource/>
select * where{
{
    dbpedia:France ?pre ?obj.
    ?obj ?pre1 dbpedia:Alstom.
}
Union {
    dbpedia:Alstom ?pre ?obj.
?obj ?pre1 dbpedia:France
}
}