Marklogic sparql查询默认检索顺序

时间:2016-10-26 21:49:43

标签: marklogic marklogic-8

我们使用语义在Marklogic数据库中保存树结构。我们创建了一个名为" childof"的自定义谓词。并存放孩子。

Java对象:

public class HierarchyTree {

private String documentUri;

private List<HierarchyTree> children;

public String getDocumentUri() {
    return documentUri;
}

public void setDocumentUri(String documentUri) {
    this.documentUri = documentUri;
}

public List<HierarchyTree> getChildren() {
    return children;
}

public void setChildren(List<HierarchyTree> children) {
    this.children = children;
}
}

Tee结构如下所示:

enter image description here

在保存树时,我们正在进行深度优先搜索并为每个节点创建三元组: < documenturi > childof < documenturi > 并将其保存在一个集合中。

每次迭代我们都会添加一个新的三元组,其中child成为下一个孩子的父母,直到到达树的底部并将其添加到同一个集合中。

该集合包含特定层次树的所有三元组。

现在问题是从集合中检索三元组时我们无法控制三元组的顺序。

1。当我们触发SPARQL查询时,Marklogic检索三元组的默认顺序是什么?

2。有没有办法可以按插入的相同顺序或反向顺序检索三元组?

1 个答案:

答案 0 :(得分:2)

MarkLogic中没有关于插入顺序等内容的概念。此外,在运行SPARQL查询时(如MarkLogic中的许多优化查询),原始文档不会被触及,而只是保存值的索引。我没有想到任何事情&#39;默认&#39;会帮助你。您可能需要根据三元组中的信息或通过RDF的其他信息来构建更强大的SPARQL查询以进行推理。

这两个文件可能有所帮助:

https://developer.marklogic.com/features/semantics/path-examples

https://developer.marklogic.com/features/semantics/inference-examples