0

我正在尝试复制 DBpedia 进行实验。

我从http://downloads.dbpedia.org/2015-10/core/下载最新的 DBpedia 数据集 并将它们存储在一个目录dbp_201510/中。

我尝试使用 tdbloader2 加载数据集。

tdbloader2 --loc tdb dbp_201510/*

但是,我收到以下错误。

ERROR [line: 2, col: 145] Illegal character in IRI (codepoint 0x60, '`'): <http://www4.wiwiss.fu-berlin.de/gutendata/resource/people/[`]...>
org.apache.jena.riot.RiotException: [line: 2, col: 145] Illegal character in IRI (codepoint 0x60, '`'): <http://www4.wiwiss.fu-berlin.de/gutendata/resource/people/[`]...> at org.apache.jena.riot.system.ErrorHandlerFactory$ErrorHandlerStd.fatal(ErrorHandlerFactory.java:136)
at org.apache.jena.riot.lang.LangEngine.raiseException(LangEngine.java:165)
at org.apache.jena.riot.lang.LangEngine.nextToken(LangEngine.java:108)
at org.apache.jena.riot.lang.LangNTriples.parseOne(LangNTriples.java:71)
at org.apache.jena.riot.lang.LangNTriples.runParser(LangNTriples.java:58)
at org.apache.jena.riot.lang.LangBase.parse(LangBase.java:42)
at org.apache.jena.riot.RDFParserRegistry$ReaderRIOTLang.read(RDFParserRegistry.java:176)
at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:861)
at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:667)
at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:637)
at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:626)
at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:617)
at org.apache.jena.tdb.store.bulkloader2.CmdNodeTableBuilder.exec(CmdNodeTableBuilder.java:165)
at jena.cmd.CmdMain.mainMethod(CmdMain.java:93)
at jena.cmd.CmdMain.mainRun(CmdMain.java:58)
at jena.cmd.CmdMain.mainRun(CmdMain.java:45)
at org.apache.jena.tdb.store.bulkloader2.CmdNodeTableBuilder.main(CmdNodeTableBuilder.java:85)

此外,我收到很多警告,如下所示。

WARN  [line: 92881, col: 1 ] Bad IRI: <http://dbpedia.org/resource/Ranma_½> Code: 56/COMPATIBILITY_CHARACTER in PATH: TODO
WARN  [line: 92882, col: 1 ] Bad IRI: <http://dbpedia.org/resource/Ranma_½> Code: 47/NOT_NFKC in PATH: The IRI is not in Unicode Normal Form KC.

我使用 Apache Jena 3.0.1。

我正在寻找一种方法来避免这个错误。另外,有没有什么好方法可以在不提示的情况下加载。

我对以前版本的 DBpedia ( http://downloads.dbpedia.org/2015-04/core/ ) 做了同样的事情,并且加载成功完成,没有任何警告和错误。

4

1 回答 1

1

在加载之前,数据应该是合法的。URI 中的 0x60, '`' 是不合法的。也许您想用 %60 替换它(然后它是一个不同的 URI)。

在许多大型数据集中,数据并不完美。在使用“riot --validate”加载之前值得检查一下。

警告只是警告,而不是错误,并表明 UTF-8 不是标准首选形式,以后可能会导致匹配问题。看起来 ½ 可以在 UTF-8 中以不同的方式编写。

(我相信 DBpedia 团队会很感激一些反馈。)

于 2016-04-06T11:36:05.120 回答