是否可以使用openrdf框架中的解析器将单行文本解析为openrdf模型?我想要解析巨大的nquads文件,并希望使用
org.openrdf.rio.nquads.NQuadsParser完成这项任务。我的理想解决方案是返回一个org.openrdf.model.Statement,其中包含适当的主语、谓词、宾语和上下文实例。我知道这个类本身没有这样做的方法。由于我试图解析非常大的文件,所以无法将它们完全加载到存储库中。我可能会将文件块解析到存储库中,评估并清除存储库,为下一个块腾出空间。我想知道是否有更好的方法从文本文件的行中获取语句?
对于某些上下文,我希望收集有关Huge Nquads Files的统计信息,为此,我需要评估每条语句,但不需要存储大部分语句。
发布于 2013-07-14 01:15:59
不可能解析单行AFAIK,但Sesame确实有一个API,允许您控制对解析的语句执行的操作,这将避免您的代码实际将语句存储到存储库中。
有关仅计算三元组的简单示例,请参阅documentation,但您可以通过这种方式轻松地进行复杂得多的处理。
发布于 2013-07-16 07:55:26
经过进一步的研究,我意识到除了在
org.openrdf.rio.helpers.BasicParserSettings具体来说,
NTriplesParserSettings.FAIL_ON_NTRIPLES_INVALID_LINES可以防止解析器在发现无效行时失败。例如设置
parser.getParserConfig().addNonFatalError(NTriplesParserSettings.FAIL_ON_NTRIPLES_INVALID_LINES);会将解析器配置为容错能力更强。这允许在嘈杂的nquads/ntriples文件中解析“好”的三元组。
https://stackoverflow.com/questions/17628962
复制相似问题