在 ANSI SQL 中,您可以编写如下内容:
Select * From DBTable Where DBTable.Description LIKE "MEET"
或者
Select * From DBTable Where DBTable.Description LIKE "%MEET%"
我需要帮助的是编写与上述等效的 SPARQL。
在 ANSI SQL 中,您可以编写如下内容:
Select * From DBTable Where DBTable.Description LIKE "MEET"
或者
Select * From DBTable Where DBTable.Description LIKE "%MEET%"
我需要帮助的是编写与上述等效的 SPARQL。
使用正则表达式过滤器。你可以在这里找到一个简短的教程
这是它的样子:
PREFIX ns: <http://example.com/namespace>
SELECT ?x
WHERE
{ ?x ns:SomePredicate ?y .
FILTER regex(?y, "YOUR_REGEX", "i") }
YOUR_REGEX
必须是XQuery 正则表达式语言的表达式
i
是一个可选标志。这意味着匹配不区分大小写。
如果您有要匹配的固定字符串,您可以直接在图形模式中使用它,例如
PREFIX ns: <http://example.com/namespace>
SELECT ?x
WHERE
{ ?x ns:SomePredicate "YourString" }
请注意,这并不总是有效,因为模式匹配基于 RDF 术语相等,这意味着"YourString"
不被视为与所说相同的术语,"YourString"@en
所以如果这可能是一个问题,请使用REGEX
Tom 建议的方法
一些 SPARQL 引擎还提供全文搜索扩展,允许您将 Lucene 样式查询集成到您的 SPARQL 查询中,这可能更适合您的用例,并且几乎可以肯定对于通用搜索更有效,否则需要REGEX