在一个查询中返回一个与搜索所有主题、谓词和对象中的文本字符串匹配的列表



我希望返回一个匹配的URI或文本节点列表,其中包含某个文本字符串。

这允许我搜索任何具有匹配字符串的主题,但我也希望返回任何匹配的谓词或对象——所有这些都在同一个查询中。

select ?s ?p ?o WHERE {
?s ?p ?o .
FILTER (REGEX(STR(?s), "SEARCHTEXT", "i"))
}

你知道我该怎么修改吗?

select ?s ?p ?o WHERE {
?s ?p ?o .
FILTER ( REGEX(STR(?s), "SEARCHTEXT", "i") ||
REGEX(STR(?p), "SEARCHTEXT", "i") ||
REGEX(STR(?o), "SEARCHTEXT", "i") )
}

您打算将其用于什么用例?既然你想搜索它,你的正则表达式似乎表达了一些关于它匹配的令牌的有价值的信息。如果是这样的话,那么用一些关系来标记你的数据似乎是明智的,让这些知识变得明确!

您想要的正则表达式搜索似乎只有在极少数情况下才合理,例如对于DBMS管理前端。如果你只是想解决这个问题,我会做这样的事情(在代码中,而不是作为查询):

result = data.subjectSet().add(data.predicateSet()).add(data.objectSet())
FOREACH (token ε result) {
result.remove(token) unless(token ≙ regex)
}
return result;

相关内容

  • 没有找到相关文章

最新更新