我正在尝试将一组来自 DBpedia 的 RDF 文件上传到我的 Sesame 存储库中。问题是:对于几乎每个 RDF 文件,Sesame 都会给出以下错误:
'whatever_file_is': 'some_value' was not recognised, and could not be verified, with datatype http://dbpedia.org/datatype/rod [line 30121, column 123]
经过一番研究,我发现 DBpedia 没有在 DBpedia Ontology 中发布数据类型,如下所述(摘自http://mappings.dbpedia.org/index.php/Datatype:Rod):
请注意:数据类型(尚未)从 DBpedia Mappings Wiki 复制到 DBpedia ontology。它们在 OntologyDatatypes.scala 中被硬编码,并被添加到 wiki 以供参考。在 wiki 中添加数据类型不会更改本体,并且会导致使用此类数据类型的属性出现错误消息。
因此,如果我是正确的,Sesame 在尝试验证这些数据类型时会失败。但我需要上传 RDF 文件。
当我使用 Java 时,我尝试了以下代码让 Sesame 忽略验证:
RepositoryConnection con = repository.getConnection();
Set<RioSetting<?>> set = new HashSet<>();
set.add( BasicParserSettings.VERIFY_DATATYPE_VALUES );
con.getParserConfig().setNonFatalErrors(set);
但错误继续出现。我还尝试了以下代码:
RepositoryConnection con = repository.getConnection();
con.getParserConfig().addNonFatalError( BasicParserSettings.VERIFY_DATATYPE_VALUES );
但奇怪的是,最后一个给出了java.lang.UnsupportedOperationException
:
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractCollection.add(AbstractCollection.java:252)
at org.openrdf.rio.ParserConfig.addNonFatalError(ParserConfig.java:134)
at control.RepositoryControl.loadIntoRepository(RepositoryControl.java:177)
有人知道我应该怎么做才能将 DBpedia 中的 RDF 文件上传到 Sesame 中吗?
谢谢!