1

我一直在处理一些旧版本的 N-Triples 和 Turtle 格式的一些中型和大型知识图谱,例如:

它们似乎都包含格式不正确的三元组。处理它们时的错误示例serdi -l

维基数据 2015

error: wikidata_20150420_parts/wikidata-20150420-all-BETA.ttl.part_0:1021322:54: invalid IRI character `|'                                                     
error: wikidata_20150420_parts/wikidata-20150420-all-BETA.ttl.part_0:1021323:0: bad subject                                                                    
error: wikidata_20150420_parts/wikidata-20150420-all-BETA.ttl.part_0:1021543:0: invalid IRI character (escape %0A)
error: wikidata_20150420_parts/wikidata-20150420-all-BETA.ttl.part_0:3863553:32: invalid IRI character `}'                                                     
error: wikidata_20150420_parts/wikidata-20150420-all-BETA.ttl.part_0:3863554:34: expected prefixed name                                                        
error: wikidata_20150420_parts/wikidata-20150420-all-BETA.ttl.part_0:3863555:20: bad verb                                                                      
error: wikidata_20150420_parts/wikidata-20150420-all-BETA.ttl.part_0:3863556:67: expected digit
...

自由基地 2012

error: freebase_20120817_kb_files/freebase-rdf-2012-08-17-21-54:67541:51: missing ';' or '.'
error: freebase_20120817_kb_files/freebase-rdf-2012-08-17-21-54:67543:57: missing ';' or '.'
error: freebase_20120817_kb_files/freebase-rdf-2012-08-17-21-54:67570:52: missing ';' or '.'
error: freebase_20120817_kb_files/freebase-rdf-2012-08-17-21-54:67571:51: missing ';' or '.'
...

LinkedBrainz 2017

error: linkedbrainz_201712_kb_files/place.nt:551:6: expected `]', not `/'
error: linkedbrainz_201712_kb_files/place.nt:551:6: bad verb
error: linkedbrainz_201712_kb_files/place.nt:551:6: bad subject
error: linkedbrainz_201712_kb_files/place.nt:553:277: line end in short string
error: linkedbrainz_201712_kb_files/place.nt:554:6: expected: ':', '<', or '_'
...

还有更多的例子。我有两个主要问题:

  1. 是否解释了为什么和/或如何生成这些文件并出现此类错误?我希望这些文件是通过转储三重存储或 Apache Jena 等引擎生成的,因此格式正确。相反,它们似乎更有可能是使用某种自定义脚本(或 Unix 工具的管道,也许?)组合在一起的,因此错误......
  2. 有没有办法修复这些文件?(或者,在最坏的情况下,忽略格式错误的行,除了serdi -l. 解决方案的额外积分,也不需要我从头开始实现清理脚本)。
4

0 回答 0