将IRIs序列作为绑定变量中的值传递给sem:sparql函数-marklogic

将IRIs序列作为绑定变量中的值传递给sem:sparql函数-marklogic,marklogic,Marklogic,我使用的是ML版本8.0-6.3 我需要的是将IRIs序列作为绑定变量中的值传递给sem:sparql,它将在filter子句中使用 例如: let $params := map:new(( map:entry("narrowersQuery", ("term:56564", "term:56564")) )) return sem:sparql( " PREFIX skos: <http://www.w3.org/2004/02/skos

我使用的是ML版本
8.0-6.3

我需要的是将
IRIs
序列作为绑定变量中的值传递给
sem:sparql
,它将在
filter
子句中使用

例如:

let $params := 
    map:new((
        map:entry("narrowersQuery", ("term:56564", "term:56564"))
    ))

return 
sem:sparql(
  "
    PREFIX skos: <http://www.w3.org/2004/02/skos/core#> 
    PREFIX term: <http://www.test.com/term/>

    SELECT ?iri ?pl
    WHERE {
        ?iri skos:prefLabel ?pl .
        ?iri skos:narrower ?narrower .
        filter (?narrower in (?narrowersQuery))
        # ?narrowersQuery should be treated as (term:56564, term:56564)
    } limit 10
  ", 
  $params
)
let$params:=
地图:新((
映射:条目(“窄查询”(“术语:56564”,“术语:56564”))
))
返回
sem:sparql(
"
前缀skos:
前缀词:
选择?iri?pl
在哪里{
?iri skos:预标签?pl。
?iri skos:更窄?更窄。
过滤器(?窄于(?窄于查询))
#?狭义查询应视为(术语:56564,术语:56564)
}限制10
", 
$params
)
上面的查询应该返回(term:56564,term:56564)序列中具有更窄谓词对象的IRI

如果有什么方法可以做到这一点,请帮助我


我遇到了
sem:sparql值
,但该值也不起作用,可能是我使用该函数的方式不对。

我通常使用
=
而不是
中的
运算符,这在不同的场合对我起到了作用

您可能还希望传入
sem:iri
,而不是字符串,如下所示:

import module namespace sem = "http://marklogic.com/semantics" 
  at "/MarkLogic/semantics.xqy";

declare namespace term = "http://www.test.com/term/";

let $params := 
    map:new((
        map:entry("narrowersQuery", (sem:curie-expand("term:56564"), sem:curie-expand("term:56564")))
    ))

return 
sem:sparql(
  "
    PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

    SELECT ?iri ?pl
    WHERE {
        ?iri skos:prefLabel ?pl .
        ?iri skos:narrower ?narrower .
        filter (?narrower = ?narrowersQuery)
    } limit 10
  ", 
  $params
)
导入模块名称空间sem=”http://marklogic.com/semantics" 
位于“/MarkLogic/semantics.xqy”;
声明命名空间术语=”http://www.test.com/term/";
让$params:=
地图:新((
映射:条目(“窄查询”),(扫描电镜:居里展开(“术语:56564”),扫描电镜:居里展开(“术语:56564”))
))
返回
sem:sparql(
"
前缀skos:
选择?iri?pl
在哪里{
?iri skos:预标签?pl。
?iri skos:更窄?更窄。
过滤器(?更窄=?更窄查询)
}限制10
", 
$params
)