2

Sesame 2.7 で問題が発生しています。次の RDF ドキュメントがあるとします。

<rdf:RDF xmlns:arq="http://example.com/vocab.rdf#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<arq:Photo rdf:about="http://example.com/photo_2230.rdf">
    <arq:photoName rdf:datatype="http://www.w3.org/2000/01/rdf-schema#Literal">Testing</arq:photoName>
    <!-- More properties -->
    ...
</arq:Photo>

Sesame に送信すると、次のエラーが表示されます。

「テスト」は認識されず、検証できませんでした。データ型はhttp://www.w3.org/2000/01/rdf-schema#Literalです

以前の Sesame バージョン (バージョン 2.6.9) では問題なく動作していました。しかし、更新後、Sesame 2.7 はそれを認識せず、その理由がわかりません。誰かが何が起こっているのか推測できますか?

ありがとう!

4

1 に答える 1

2

古いバージョンの Sesame では、パーサーは認識できないデータ型に遭遇した場合にのみ警告を発していました。Sesame 2.7 では、デフォルトでパーサーは実際にはエラーで停止します (ただし、次の更新でこれを少し緩和することを検討しています)。そのため、Sesame の古いバージョンでもこれは認識されず、このデータをロードしようとするとログに警告が表示されました。

これが認識されないデータ型である理由は、「http://www.w3.org/2000/01/rdf-schema#Literal」がデータ型識別子ではないためです。代わりに、それはリテラルのクラスの識別子です (まったく別のものです)。データ型メカニズムの不適切な使用法であるため、RDF からこのデータ型を削除する必要があります。

スペルアウトするには、次の行を変更します。

<arq:photoName rdf:datatype="http://www.w3.org/2000/01/rdf-schema#Literal">Testing</arq:photoName>

に:

<arq:photoName>Testing</arq:photoName>

データを修正することとは別に、もちろん、無効なデータ型ですぐに失敗しないように Sesame のパーサーを構成することもできます。ParserConfigプログラムでは、これは接続のパーサーで使用される を適合させることで簡単に実行できます。

 RepositoryConnection conn;  // your repository connection

 // set the parser used in the connection to report datatype 
 // verification errors but not fail on them.
 conn.getParserConfig().addNonFatalError(BasicParserSettings.VERIFY_DATATYPE_VALUES);
于 2013-05-14T06:57:01.943 に答える