我正在尝试使用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。
所以有三个问题:
答案 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.contentpump
到DEBUG
。例如, 包括以下内容:log4j.logger.com.marklogic.mapreduce=DEBUG log4j.logger.com.marklogic.contentpump=DEBUG
显然这与你想要的相反,但由于它只是一个log4j配置,你可以将记录调低到ERROR
,就像你可以将它变为DEBUG
一样,如图所示在他们的例子中。
这有什么进一步的影响(即表现 等)?
如果您需要将数据传递给更严格地解释URI规范的其他RDF或SPARQL工具,则可能会遇到问题