有没有关于在MarkLogic中使用RDF Annotation的好文档?

时间:2015-03-06 01:48:57

标签: rdf marklogic

MarkLogic文档宣布注释并向RDF添加元数据,但是我找不到任何细节。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

在MarkLogic中,三元组可以以与RDFa类似的样式注释文档,也可以在特定的三元库xml文档中保留。

Semantics Developer's Guide的Uses for Triples in XML Documents部分展示了如何注释三重存储文档和三元组本身的示例:

<?xml version="1.0" encoding="UTF-8"?>
<sem:triples xmlns:sem="http://marklogic.com/semantics">
  <source>AP Newswire</source>
  <sem:triple date="1972-02-21" confidence="100">
    <sem:subject>http://example.org/news/Nixon</sem:subject>
    <sem:predicate>http://example.org/wentTo</sem:predicate>
    <sem:object>China</sem:object>
  </sem:triple>
</sem:triples>

在这种情况下,三元商店文档已经注释显示其来源(AP Newswire),三元组本身已经被日期和我们对这一事实的信心所激发。

然后使用以下查询来回答问题:

尼克松访问了哪些国家?

  • 1974年之前?
  • 只显示我至少有80%信心的答案
  • ,来源是AP Newswire或BBC

...

import module namespace sem = "http://marklogic.com/semantics" at "/MarkLogic/semantics.xqy";
sem:sparql ('
  SELECT ?country
  WHERE {
    <http://example.org/news/Nixon> <http://example.org/wentTo> ?country
  }',
  (),
  (),
  cts:and-query( (
    cts:path-range-query( "//sem:triple/@confidence", ">", 80) ,
    cts:path-range-query( "//sem:triple/@date", "<",xs:date("1974-01-01") ),
    cts:or-query( (
      cts:element-value-query(xs:QName("source"), "AP Newswire" ),
      cts:element-value-query(xs:QName("source"), "BBC" )
    ) )
  ) )
)

希望有所帮助! 编