Произвольные строки считаются приемлемыми в качестве ссылок в RDF N-Triples?

В документе W3C RDF 1.1 N-Triples продукция IRIREF, используемая для не буквального объекта / объекта / предикатов, определяется в значительной степени как просто строка внутри угловых скобок (<>) [1], даже если она называется IRI.

Поэтому некоторые файлы примеров [2] имеют простые идентификаторы, в то время как другие синтаксические анализаторы, такие как RDFLib, будут выдавать исключение, если идентификатор не является допустимым IRI со схемой: раздел? Являются ли RDF-файлы с не-литералами, которые не являются действительными IRI, все еще правильно сформированными, несмотря на терминологию, используемую в спецификации RDF?

[1] https://www.w3.org/TR/n-triples/

[2] https://github.com/cayleygraph/cayley/blob/master/data/testdata.nq

1 ответ

Поэтому некоторые файлы примеров имеют простые идентификаторы, в то время как другие парсеры, такие как RDFLib, будут выдавать исключение, если идентификатор не является допустимым IRI со схемой: раздел?

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

В Рекомендации N-Triples говорится, что "IRI могут быть записаны только как абсолютные IRI" (см. Раздел 2.2) - абсолютные IRI определяются синтаксически в RFC 3987. Это является нормативным, даже если само производство грамматики не обеспечивает его соблюдения.

Однако IRI, которые вы видите в этом файле примера, могут быть интерпретированы как относительные ссылки IRI, и некоторые парсеры N-Triples были несколько расширены, чтобы позволить разыменование относительных IRI с использованием базового IRI. Вероятно, именно поэтому иногда вы видите подобные синтаксически некорректные файлы N-Triples в дикой природе. Это нестандартное расширение формата.

Являются ли RDF-файлы с не-литералами, которые не являются действительными IRI, все еще правильно сформированными, несмотря на терминологию, используемую в спецификации RDF?

Это зависит от формата синтаксиса, который вы используете. Правильное формирование, являющееся свойством документа в конкретном конкретном синтаксисе, для N-триплов правила отличаются от правил, скажем, для Turtle или RDF/XML.

Сам RDF в своем абстрактном синтаксисе гарантирует, что IRI соответствуют RFC3987 и являются абсолютными, поэтому любой документ RDF, который при обработке создает неразрешенные относительные IRI или IRI, которые не соответствуют RFC, является, если, возможно, не надлежащим образом сформированным, безусловно, недействительным,

Некоторые конкретные форматы синтаксиса (такие как RDF/XML, TriG, Turtle и т. Д.) Предоставляют различные сокращенные механизмы для IRI (префиксные имена, относительные IRI + базовый IRI и т. Д.). Однако, как мы видели выше, в N-Triples нет такого встроенного механизма сокращения, поэтому любой не абсолютный IRI делает документ ненадлежащим.

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