我不了解 MarkLogic 如何支持FROM NAMED
graph。我正在尝试使用 SPARQL 查询来查找三元组来自哪个集合。结果真的令人困惑。例如:
select *
FROM <http://x.y.z/c>
FROM NAMED <http://x.y.z/c>
WHERE {
# GRAPH ?g
{?s ?p ?o}
}
返回一组三元组。但是,如果我 un-comment 行# 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 回答
MarkLogic 在其图形实现中使用集合。 GRAPH 关键字文档中有一个注释提到了收集词典的必要性。
我将补充说,您还可以通过管理 API启用收集词典。