我们正在对MarkLogic服务器中的一些临床本体数据运行SPARQL查询。我们的查询如下所示:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX cts: <http://marklogic.com/cts#>
SELECT *
FROM <http://example/ontologies/snomedct>
WHERE {
?s rdfs:label ?o .
FILTER cts:contains(?o, cts:word-query("Smoke*", "wildcarded"))
}
LIMIT 10
我们期望得到基于相关评分的排序结果,但结果似乎是随机的。在查询中尝试了许多方法,但都没有效果。经过一些研究,我们在MarkLogic文档中找到了这样的语句:
当理解表达式返回的顺序时,有两个主要规则需要考虑:
这是否意味着cts: in是一个始终按文档顺序返回的XPath表达式?如果是这样的话,我们如何构造一个按关联顺序返回的SPARQL查询?
谢谢,凯文
发布于 2017-02-24 14:10:14
在您所使用的示例中,您使用的语言是SPARQL --带有cts:contains的片段筛选器。
在本例中,cts:contains仅用于隔离匹配的片段ID,从而过滤SPARQL查询中使用的候选文档。因此,我认为没有考虑到反恐战略的相关性。
但是,您可能会以另一种方式获得正在寻找的结果:对所讨论的文档执行实际的cts:搜索,然后使用cts:triple查询对它们进行筛选。
https://stackoverflow.com/questions/42447920
复制相似问题