Менее строгий разбор N-квадов в сезаме

Парсер Sesame для N-Quads довольно строг (как правило, неплохо!). В дополнение к анализу терминов IRI согласно [10] он также реализует требование [2] (оба из спецификации N-Quads 1.1).

[1]   IRIREF ::= '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'
[2]   IRIs may be written only as absolute IRIs.

Есть ли способ выполнить разбор только по [1]? Я уже отключил дополнительные параметры конфигурации, которые мог найти (например, не интерпретировать лексические выражения в соответствии с их типом данных), но еще не нашел настройки для отключения абсолютной проверки IRI или обзора всех параметров.

1 ответ

Решение

Нет, сейчас нет. Формат N-Quads (как и его родственный формат, N-Triples) требует, чтобы использовались только абсолютные IRI. Любой документ, который содержит относительные IRI, по определению недействителен.

Хотя это не очень хорошая идея с точки зрения функциональной совместимости, технически было бы несложно добавить такую ​​функцию. Базовый URI уже имеется в каждом парсере Sesame, и его легко можно использовать для разрешения относительных IRI (фактически, весь необходимый для этого код уже существует, просто парсер N-Quads не использует Это).

Не стесняйтесь регистрировать запрос функции с командой разработчиков Sesame, чтобы включить это. В то же время вы можете легко настроить синтаксический анализатор, убедившись, что при его анализе ссылок URI используется метод AbstractRDFParser.resolveURI принять во внимание относительные URI. Не должно быть трудно создать подкласс для конкретной задачи NQuadsParser это делает это

В качестве отступления: хотя обширной документации по настройке синтаксического анализатора нет, каждый анализатор Sesame Rio реализует getSupportedSettings метод, который возвращает список настроек парсера, которые этот парсер понимает и использует.

Другие вопросы по тегам