1

Web サーバー上に、RDF トリプルストアを Python モジュール rdflib でシリアル化する URL があります。このコンテンツを GraphDB にインポートしたいと考えています。

rdflib.serialize の出力形式は「xml」です。HTTPヘッダーのMIMEタイプは「xml/rdf」ですが、結果はMIMEタイプ「text/rdf」と同じです。

コンテンツが「.rdf」拡張子で終わるテキスト ファイルに保存される場合、GraphDB はこのファイルを問題なくインポートでき、リポジトリ コンテンツは問題ありません。

URL は、セマンティック Web ツールおよび RDF エディターであるソフトウェア「Protégé」にインポートできます。

しかし、同じ URL を GraphDB にインポートすると、次のエラー メッセージが表示されます。

"Could not find RDF format for URL: (... my url ... )"

私はいくつかのことを試しましたが、成功しませんでした:

  • GraphDB が URL とテキスト ファイルから同じデータ形式を想定していることを確認しました。
  • GraphDB の「詳細設定のインポート」で、フラグ「URI の確認」と「エラー時に停止する必要がある」のチェックを外しました。
  • Apache Web サーバーと単純な Python クラス BaseHTTPServer を試してみました。

このエラー メッセージは、URL のファイル拡張子または HTTP 応答ヘッダーのコンテンツ タイプに基づいてコンテンツ タイプを判別できない場合にこのメッセージを出力するopenrdf ライブラリからのものであると思われますが、正しく設定したと思います。

何が問題ですか?

4

1 に答える 1

3

(コメントを回答に変換)

問題は、「xml/rdf」と「text/rdf」が RDF/XML ファイル形式の既知の MIME タイプではないことです。

使用する正しい MIME タイプは「application/rdf+xml」です。オプションで、フォールバックとして「application/xml」または「text/xml」も機能する場合があります。詳細については、RDF 形式の rdf4j javadoc を参照してください。

于 2019-03-04T02:39:18.423 に答える