从Documents到SPARQL变量的BIND值(MarkLogic)

问题描述 投票:0回答:1

我目前正在尝试查看是否可以从文档中提取某个值并将其绑定到SPARQL中的变量

例如,如果我在MarkLogic中有这样的文档。

/人/约翰·

<person_data>
   <name>John</name>
   <age>25</age>
</person_data>

使用这些数据我尝试了各种方法来绑定它,例如在sem:sparql中使用XPath,如下所示

xquery version "1.0-ml";
import module namespace sem = "http://marklogic.com/semantics" at "/MarkLogic/semantics.xqy";

sem:sparql('
PREFIX fn : <http://www.w3.org/2005/xpath-functions>
SELECT *
WHERE {
?s ?p ?o .
BIND (fn:doc("/person/John")//name/text() AS ?name)
}
',
(),
(),
()
)

但是,这导致了错误。因此,我非常感谢任何有关实现这一目标的建议。

sparql bind marklogic
1个回答
1
投票

SPARQL引擎无法访问文档,但无论如何都有更好的解决方案。你可以使用Template Driven Extraction。它可以在文档上公开SQL视图,但也可以在'Identify Triples in Documents'上公开。它实际上意味着可以将特定值投影到三重索引中,并且可以像数据库中的任何其他RDF数据一样作为RDF数据进行访问。

HTH!

© www.soinside.com 2019 - 2024. All rights reserved.