【问题标题】:Getting datatype error with Sesame 2.7.1 from DBpedia resources从 DBpedia 资源中获取 Sesame 2.7.1 的数据类型错误
【发布时间】:2013-05-24 18:43:01
【问题描述】:

我正在尝试将来自 DBPedia 资源的 URI“http://dbpedia.org/resource/Brazil”添加到 Sesame 2.7.1。但是 Sesame 2.7.1 停止并出现以下错误:

'1000000000000' 不是数据类型 http://www.w3.org/2001/XMLSchema#int 的有效值

使用更多资源也会出现同样的错误,我不知道如何解决。在我的 Java 代码中(并基于我其他问题的答案),我尝试了:

RepositoryConnection con = repository.getConnection();

con.getParserConfig().addNonFatalError( BasicParserSettings.VERIFY_DATATYPE_VALUES );
con.getParserConfig().addNonFatalError( BasicParserSettings.FAIL_ON_UNKNOWN_DATATYPES );

con.add(uri.toURL(), null, RDFFormat.RDFXML);
con.close();

但是 Sesame 仍然坚持错误。

我在 Sesame 2.6.9 中没有这个问题(它接受相同的资源没有问题)。

发生这种情况有什么原因吗?有没有办法解决它?还是我应该回到 Sesame 2.6.9.?

谢谢!

【问题讨论】:

    标签: java rdf semantic-web dbpedia sesame


    【解决方案1】:

    发生这种情况的原因是在 Sesame 2.7 中,数据类型验证变得更加严格。结果表明,不幸的是,DBPedia 包含大量具有无效数据类型的数据。

    最好的解决办法是推动 DBPedia 维护人员清理他们的数据,但当然,说起来容易做起来难 :) 同时,您当然可以自己编辑 dbpedia 文件来解决这些问题正如芝麻报道的那样。

    我假设您正在使用 HTTPRepository(或 SPARQLRepository)尝试将文件加载到运行在 Sesame 服务器上的存储库中。在这种情况下,将解析器配置为忽略错误(使用addNonFatalError)没有任何影响,因为您正在配置的解析器是客户端解析器,而不是用于实际解析数据的解析器(上传文件时)通过 HTTPConnection 从 URL 获取数据,数据由服务器上的解析器解析,而不是客户端的解析器)。

    在 Sesame 2.7.1 中,遗憾的是没有简单的解决方法:Sesame 服务器中使用的解析器配置是固定的。不过,我们正在研究一种机制,以便为即将到来的 2.7.2 版本配置此功能。

    【讨论】:

    • 谢谢。实际上,我正在开发一个数据挖掘程序来挖掘 RDF 文件。我正在使用 Sesame Server 为我存储 RDF 文件。我遇到了麻烦,因为其中一些 RDF 文件指向 DBpedia 资源,并且正如您所说,Dbpedia 包含许多无效数据类型。所以,对于我需要做的事情,我认为更好的方法是回到 Sesame 2.6。
    • @Rick 短期内可能是一个很好的解决方法。不过请留意下一个 (2.7.2) 版本。
    【解决方案2】:

    试试

    con.getParserConfig()
                    .setNonFatalErrors(
                            new HashSet<RioSetting<?>>(
                                    Arrays.asList(BasicParserSettings.FAIL_ON_UNKNOWN_DATATYPES)));
    

    【讨论】:

    • 不幸的是,这无济于事。首先,没有必要在 2.7.1 版中使用此解决方法(OP 使用的 addNonFatalError 应该足够了),其次,这只会影响客户端的解析器,而不是使用服务器端加载的解析器文件。详情见我的回答。
    猜你喜欢
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 2019-09-04
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多