Я обрабатывал некоторые старые версии графов знаний среднего и большого размера в формате N-Triples и Turtle, таких как:
Кажется, что все они содержат неправильно сформированные тройки.Примеры ошибок при обработке их с serdi -l
:
Wikidata 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
...
Freebase 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 '_'
...
Есть еще примеры.У меня два основных вопроса:
- Существует ли объяснение того, почему и / или как эти файлы были созданы с такими ошибками? Я ожидаю, что эти файлы были созданысбросить тройной магазин или двигатель, такой как Apache Jena, и, как таковой, быть хорошо сформированным.Вместо этого кажется более вероятным, что они были собраны с помощью какого-то специального скрипта (или конвейера инструментов Unix, может быть?), Отсюда и ошибки ...
- Есть ли способ исправитьэти файлы? (или, в худшем случае, игнорировать искаженные линии, кроме
serdi -l
. Дополнительные баллы за решение, которое также не требует от меня реализации скрипта очистки с нуля).