我正在尝试在Jena Sparql的过滤器中应用子查询。这是可能的。如果是,如何?例如:
SELECT ?x WHERE(?y <xyz:> ?z . ?y <abc:> ?x .FILTER regex(?z,subquery,"i")}
我的意思是我想在jena中使用一些子查询来过滤表达式。我该怎么做?如果不是它的替换?
答案 0 :(得分:1)
您不能将子查询放在过滤器表达式中,因为子查询不是带有值的表达式。但是,您可以使用子查询来提供在过滤器表达式中使用的值。例如,
# Find persons whose names are also the names of flowers (Rose, Daisy, etc.) by
# performing a subquery to find all the flower names, and then finding people
# whose names match those names.
select ?person where {
?person a :Person ;
:name ?name .
filter regex(?name,?flowerName, "i" )
{ select ?flowerName { ?flower a :Flower ; :name ?flowerName } }
}