命名图形支持在MarkLogic



我不明白MarkLogic如何支持FROM NAMED图。我正在尝试使用SPARQL查询来查找三元组来自哪个集合。结果确实令人困惑。例如:

select *
FROM <http://x.y.z/c>
FROM NAMED <http://x.y.z/c>
WHERE {
#  GRAPH ?g 
  {?s ?p ?o}
  }

返回一个三元组。但是,如果取消注释# GRAPH ?g行,则返回以下错误:

[1.0-ml] XDMP-COLLXCNNOTFOUND: amped-qconsole:qconsole-sparql($query, (), (), (), ()) -- Collection lexicon not enabled

和高亮显示在WHERE {行。

另外,下面的操作可以工作并返回一组三元组:

select *
FROM <http://x.y.z/c>
WHERE {
  {?s ?p ?o}
  }

而不是this:

select *
FROM NAMED <http://x.y.z/c>
WHERE {
  {?s ?p ?o}
  }

返回一个空集合。添加GRAPH ?g行会导致返回与上面相同的错误。我真的很困惑。有人能解释一下这种行为吗?

MarkLogic在它的图形实现中使用集合。GRAPH关键字文档中有一个注释,提到需要集合词典。

在SPARQL查询中使用GRAPH构造时,必须启用集合词典。您可以从数据库配置页面或管理界面启用集合词典。

我还要补充一点,您还可以通过Management API启用集合词典。

相关内容

  • 没有找到相关文章

最新更新