如何使用模式过滤 sparql 查询结果?

How to filter sparql query result with a pattern?

当尝试使用以下模式过滤 MarkLogic 中的 sparql 结果时,

SELECT ...
WHERE
{
    ...
    FILTER ( EXISTS { ?parent <http://www.w3.org/2004/02/skos/core#broader>+ ?root } )
}

我收到以下错误:

[1.0-ml] XDMP-UNEXPECTED: (err:XPST0003) Unexpected token syntax error, unexpected {, expecting (
Stack Trace

At line 17 column 19:
In xxxx
17. FILTER ( EXISTS { ?parent <http://www.w3.org/2004/02/skos/core#broader>+ ?root } )

MarkLogic 不支持 Sparql 1.1 语法还是我的查询不正确?

我也尝试了以下方法:

FILTER EXISTS { ?parent <http://www.w3.org/2004/02/skos/core#broader>+ ?root } 

错误信息是:

[1.0-ml] XDMP-UNEXPECTED: (err:XPST0003) Unexpected token syntax error, unexpected {, expecting (

MarkLogic 当前有针对此特定案例的增强请求。 MarkLogic 的更新版本即将发布,其中已更正。联系您的 MarkLogic SE 或 AE,他们可以为您提供进一步的时间表和其他信息。

如果您需要特定的模式,您可以使用正则表达式

例如,如果您的查询是这样的:

 SELECT ?subject ?term
 WHERE {
 ?subject <http://www.smartlogic.com/schemas/docinfo.rdf#tagged_with> ?term 
 FILTER regex(?term, "red", "i" )
 }

其中 "i" 不区分大小写。