Marklogic语义:处理rdf:关于属性值

时间:2015-06-29 15:50:59

标签: rdf marklogic

我正在尝试使用mlcp 1.3.3将RDF数据源(RDF / XML)导入Marklogic 8.02。

在导入过程中,我被这样的警告淹没了:

  

15/06/29 15:03:58 WARN contentpump.RDFReader:   57fad317-4744-4f88-a8f7-6c21c662ad08.rdf:{W107}错误的URI:      代码:45 / UNEMEGISTERED_NONIETF_SCHEME_TREE in SCHEME:方案名称   有一个" - "在它,但它没有开始" x - "并且前缀不是   称为URI方案的替代树的前缀。

查看源数据(RDF / XML),它是由以下语句引起的:

  

< rdf:Description的
  的rdf:about =" RVR-jurisprudentie:HTTP%3A%2F%2Flinkeddata.overheid.nl%2Fterms%2Fjurisprudentie%2Fid%2FECLI%3ANL%3ARVS%3A2013%3A549:HTTP%3A%2F%2Flinkeddata.overheid。 NL%2Fterms%2Fbwb%2Fid%2FBWBR0005181%2F2986364%2F2015-01-01%2F2015-01-01">

所以看起来ML认为这个rdf:about属性包含一个URI并抱怨它不是一个有效的URI。

所以有三个问题:

  1. 为什么ML认为这必须是一个URI。我还没有遇到过其他工具集的这个问题。
  2. 是否有一个可以忽略警告的开关(终端中的管道输出似乎不起作用)
  3. 这有什么进一步的影响(即演出等)?

1 个答案:

答案 0 :(得分:3)

  

为什么ML认为这必须是一个URI。我还没有遇到过   其他工具集存在这个问题。

因为这是RDF/XML syntax specification所说的:

aboutAttr = 
      attribute rdf:about { 
          URI-reference 
      }

rdf:about属性期望接收URI,并且您的数据确实具有与该属性中的URI类似的内容:

rvr-jurisprudentie:http%3A%2F%2Flinkeddata.overheid.nl%2Fterms%2Fjurisprudentie%2Fid%2FECLI%3ANL%3ARVS%3A2013%3A549:http%3A%2F%2Flinkeddata.overheid.nl%2Fterms%2Fbwb%2Fid%2FBWBR0005181%2F2986364%2F2015-01-01%2F2015-01-01

它使用的是自定义URI方案,但它并不完全符合RFC 3986 Generic URI Syntax,因此MarkLogic会发出警告。但是,它仍然是一个有效的URI,如果一个人可能无法被某些/所有工具解释。

  

是否有一个可忽略警告的开关(管道输出)   终端似乎没有工作)

似乎没有一个,但在MarkLogic内容泵documentation中,它们会显示启用DEBUG级别的消息:

  

编辑文件MLCP_INSTALL_DIR/conf/log4j.properties。例如,   如果在/opt/mlcp中安装了mlcp,请进行编辑   /opt/mlcp/conf/log4j.properties。在log4j.properties中,设置   属性log4j.logger.com.marklogic.mapreduce和   log4j.logger.com.marklogic.contentpumpDEBUG。例如,   包括以下内容:

log4j.logger.com.marklogic.mapreduce=DEBUG
log4j.logger.com.marklogic.contentpump=DEBUG

显然这与你想要的相反,但由于它只是一个log4j配置,你可以将记录调低到ERROR,就像你可以将它变为DEBUG一样,如图所示在他们的例子中。

  

这有什么进一步的影响(即表现   等)?

如果您需要将数据传递给更严格地解释URI规范的其他RDF或SPARQL工具,则可能会遇到问题

相关问题