MarkLogic中的命名图支持

时间:2015-09-02 21:55:05

标签: sparql marklogic marklogic-8 named-graphs

我不了解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}
  }

但不是这样:

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

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

1 个答案:

答案 0 :(得分:4)

MarkLogic在其图表实现中使用集合。 GRAPH keyword documentation中有一个注释提到了收集词典的必要性。

  

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

我补充说,您还可以通过Management API启用收集词典。