gpt4 book ai didi

马克逻辑 CTS :search with sparql

转载 作者:行者123 更新时间:2023-12-02 22:24:42 26 4
gpt4 key购买 nike

在marklogic中,三元组可以嵌入到现有文档中。我如何使用 cts 搜索查询返回文档。文档的示例可以是

<ContentVersion>
<Name>Testing</Name>
<Status>Approved</Status>
<sem:triples xmlns:sem="http://marklogic.com/semantics">
<sem:triple>
<sem:subject>http://mycontent/content/Testing</sem:subject>
<sem:predicate>is</sem:predicate>
<sem:object>Approved</sem:object>
</sem:triple>
</sem:triples>
</ContentVersion>

如果尝试以下查询

let $query := cts:word-query('Testing',"case-insensitive")
let $sparql := "PREFIX cts: <http://marklogic.com/cts#>
DESCRIBE ?s
WHERE{
?s ?p ?o .
FILTER cts:contains(?o, cts:word-query('Testing'))
}"
let $results := sem:sparql($sparql,(),("default-graph=magician"),($query))
return(sem:rdf-serialize($results,'rdfxml'))

我得到一个空结果。关于为什么没有返回任何想法?我正在使用 MarkLogic 7

最佳答案

cts:contains 的焦点是 ?o,它只包含“Approved”。这就是 sem:sparql 不返回结果的原因,而不是因为您以错误的方式使用 cts 查询。

(更新..)

为了确认该方法是否有效,我尝试了这个方法,它对我有用:

xquery version "1.0-ml";

let $xml := <ContentVersion>
<Name>Testing</Name>
<Status>Approved</Status>
<sem:triples xmlns:sem="http://marklogic.com/semantics">
<sem:triple>
<sem:subject>http://mycontent/content/Testing</sem:subject>
<sem:predicate>is</sem:predicate>
<sem:object>Approved</sem:object>
</sem:triple>
</sem:triples>
</ContentVersion>
return xdmp:document-insert("/test.xml", $xml, (), "magician")
;

let $query := cts:word-query('Testing',"case-insensitive")
let $sparql := "PREFIX cts: <http://marklogic.com/cts#>
DESCRIBE ?s
WHERE{
?s ?p ?o .
FILTER cts:contains(?o, cts:word-query('Approved'))
}"
let $results := sem:sparql($sparql,(),("default-graph=magician"),($query))
return $results

针对启用了三重索引的任何数据库使用 QC 运行此操作。

您确定插入包含“magician”集合的文档吗?这就是如何使用 MarkLogic 在特定图形中嵌入三元组。

呵呵!

关于马克逻辑 CTS :search with sparql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35205569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com