Java 在sparql查询中使用union

Java 在sparql查询中使用union,java,sparql,dbpedia,Java,Sparql,Dbpedia,我在两个DBpedia资源之间进行了SPARQL查询:法国和阿尔斯通 select * where{ <http://dbpedia.org/resource/France> ?pre ?obj. ?obj ?pre1 <http://dbpedia.org/resource/Alstom> } 选择*where{ ?预?obj。 ?obj?pre1 } 它什么也不返回 但如果我像这样颠倒主语和宾语: select * where{ <http://dbped

我在两个DBpedia资源之间进行了SPARQL查询:法国和阿尔斯通

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

?obj ?pre1 <http://dbpedia.org/resource/Alstom>
}
选择*where{
?预?obj。
?obj?pre1
}
它什么也不返回

但如果我像这样颠倒主语和宾语:

select * where{
<http://dbpedia.org/resource/Alstom> ?pre ?obj.
?obj ?pre1 <http://dbpedia.org/resource/France>
}
选择*where{
?预?obj。
?obj?pre1
}
查询返回一些结果


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

根据您的评论,您只需要使用以下语法进行简单的UNION:

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
}
}
前缀dbpedia: 选择*where{ { dbpedia:法国?前?obj。 ?obj?前1数据库:阿尔斯通。 } 联合{ dbpedia:阿尔斯通?预?obj。 ?obj?前1数据库:法国 } }
目的是什么?当它为空时,您希望通过编写联盟来实现什么?工会只会把满了的那一套退回。我真的不明白这个问题。我想满足如果两个资源之间有关系,第一个查询显示没有,但第二个查询显示有!!