Filter SPARQL筛选结果,其中字符串包含另一个变量中的任何项

Filter SPARQL筛选结果,其中字符串包含另一个变量中的任何项,filter,sparql,stardog,Filter,Sparql,Stardog,我可以SPARQL查询两个变量A和B,其中A可以包含B A可以是(“ABC”、“BCD”、“CDE”)和B(“A”、“E”),我想得到结果“BCD” 我可以用 [Query for ?A] FILTER NOT EXISTS{ [Query for ?B] FILTER (CONTAINS(?A, ?B)) } 但对于我相对较大的查询,它的性能并不好。我尝试过将?A查询作为子查询,但不知道如何使其更高效。对?A和?B的单独查询相对较快(对?A为5s,对?B为1s)。您不应该将第二

我可以SPARQL查询两个变量A和B,其中A可以包含B A可以是(“ABC”、“BCD”、“CDE”)和B(“A”、“E”),我想得到结果“BCD”

我可以用

[Query for ?A]

FILTER NOT EXISTS{
   [Query for ?B]
   FILTER (CONTAINS(?A, ?B))
}

但对于我相对较大的查询,它的性能并不好。我尝试过将?A查询作为子查询,但不知道如何使其更高效。对?A和?B的单独查询相对较快(对?A为5s,对?B为1s)。

您不应该将第二个筛选器放在第一个筛选器中吗?另外,将A查询作为子查询是什么意思?这有什么帮助?最后,您必须将A的所有值与B的所有值进行比较。您能否显示正确的SPARQL查询和示例RDF数据?当然是第一个中的第二个。只是打字错误。编辑。