2013-05-19 2 views
1

Я пытаюсь загрузить в свой репозиторий Sesame набор файлов RDF, поступающих из DBpedia. Проблема в том, почти каждый файл RDF, кунжутное дать следующее сообщение об ошибке:Ошибка ParserConfig в Sesame 2.7 при попытке загрузить RDF-файлы из DBpedia

'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 онтология, как говорят ниже (выдержка из http://mappings.dbpedia.org/index.php/Datatype:Rod) :

Please note: datatypes are not (yet) copied from the DBpedia Mappings Wiki to the DBpedia ontology. They are hard-coded in OntologyDatatypes.scala and were added to the wiki for reference. Adding a datatype in the wiki does not change the ontology and leads to an error messsage for properties that use such a datatype.

Итак, если я правильно, кунжутное терпит неудачу, когда он пытается проверить эти типы данных. Но мне нужно загрузить файлы RDF.

Как я использую Java, я попытался следующий код, чтобы сделать Сезам игнорировать проверку:

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) 

Кто имеет представления о том, что я должен сделать, чтобы получить RDF файлы из DBpedia выгружаются в Сезам ?

Спасибо!

ответ

3

Попробуйте модернизировать к кунжуту 2.7.1. Он был выпущен только с built-in support for DBPedia datatypes.

Или, если вы застряли на 2.7.0, вы должны быть в состоянии сделать это вместо:

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

Вы могли бы еще увидеть сообщение о неизвестных типов данных, но это будет не- фатальное предупреждение вместо ошибки.

Источник:

+0

Спасибо! Я не знал, что они выпустили Sesame 2.7.1! Я попытаюсь сначала обработать ошибку с помощью этого кода, и если это не сработает, я обновлю свой Sesame. Еще раз спасибо! – Rick

 Смежные вопросы

  • Нет связанных вопросов^_^