3

W3C RDF 1.1 N-Triples doc では、非リテラルの主語/目的語/述語に使用される IRIREF 生成は、IRI と呼ばれているにもかかわらず、山括弧 (<>) [1] 内の単なる文字列として定義されています。

一部のサンプル ファイル [2] が単純な識別子を持っているのに、RDFLib などの他のパーサーがスキーム: セクションを持つ有効な IRI でない場合に例外をスローするのは、これが理由ですか? RDF 仕様で使用されている用語にもかかわらず、有効な IRI ではない非リテラルを含む RDF ファイルは整形式のままですか?

[1] https://www.w3.org/TR/n-triples/#grammar-production-IRIREF

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

4

1 に答える 1

3

これが、一部のサンプル ファイルが単純な識別子を持っているのに、RDFLib などの他のパーサーがスキーム: セクションを持つ有効な IRI でない場合に例外をスローするのはなぜですか?

いいえ。あなたが指しているサンプルファイルは、厳密に言えば構文的に正しい N-Triples ではありません。実際、それは N-Triples ではなく、N-Quads - 別の構文形式です。しかし、それが N-Triples だったとしても、IRI をこの形式にするのは正しくありません。

N-Triples 勧告では、「IRI は絶対 IRI としてのみ記述できる」 (セクション 2.2を参照) と述べられています - 絶対 IRI は RFC 3987 で構文的に定義されています。これは、たとえ文法生成自体が強制していなくても、規範的です。

ただし、そのサンプル ファイルに表示される IRI は、相対 IRI 参照であると解釈できます。一部の N-Triples パーサーは、ベース IRIを使用して相対 IRI を逆参照できるように拡張されています。これがおそらく、この種の構文的に正しくない N-Triples ファイルが時々出回っている理由です。これは、フォーマットの非標準拡張です。

RDF 仕様で使用されている用語にもかかわらず、有効な IRI ではない非リテラルを含む RDF ファイルは整形式のままですか?

これは、使用している構文形式によって異なります。整形式であることは、特定の具体的な構文におけるドキュメントのプロパティであり、ルールは N-Triples と、たとえば Turtle や RDF/XML のルールとは異なります。

抽象構文における RDF 自体は、IRI が RFC3987 に準拠し、絶対的であることを強制するため、処理時に未解決の相対 IRI、または RFC に準拠していない IRI を生成する RDF ドキュメントは、おそらく非整形式ではないにしても、確実に無効です。 .

一部の具体的な構文形式 (RDF/XML、TriG、Turtle など) は、IRI のさまざまな簡略化メカニズム (プレフィックス名、相対 IRI + ベース IRI など) を提供します。ただし、上で見たように、N-Triples にはそのような簡略化メカニズムが組み込まれていないため、非絶対的な IRI はドキュメントを非整形式にします。

于 2016-07-27T00:27:25.840 に答える