1

私は sparql と dbpedia を使用してプロジェクトに取り組んでいます。現在、スラッシュを含む textuel プロパティに問題があります。これは、川の時間あたりの水量を表すプロパティ「排出」を使用した実用的なクエリです。

PREFIX dbp: <http://dbpedia.org/property/> 
SELECT ?discharge 
WHERE
{
   <http://dbpedia.org/resource/Nile> dbp:discharge ?discharge .
   FILTER(ISLITERAL(?discharge))
} 
LIMIT 200

このリクエストは正常に機能しています。それでも、「discharge_m3/s」と呼ばれる同様のプロパティを使用すると、機能しなくなり、プロパティ名にスラッシュを追加する次のエラーが発生しました。

Virtuoso 37000 エラー SP030: SPARQL コンパイラ、3 行目: 's' の前の '/' で構文エラー

これを通過するアイデアはありますか?

4

2 に答える 2

3

プロパティを接頭辞付きの名前形式で使用しようとしているということdbp:discharge_m3/sですか?

その場合、それは SPARQL 文法によると有効な接頭辞付きの名前ではないため、コンパイラ エラーが発生するため、それを行うことはできません。

接頭辞付きの名前形式ではなく、完全な URI を含める必要があります。

<http://dbpedia.org/property/discharge_m3/s>

于 2012-10-07T05:53:04.817 に答える
3

準拠する SPARQL 1.1 システムでは、スラッシュをバックスラッシュでエスケープできます: dbp:discharge_m3\/s. Virtuoso がその構文をまだサポートしているかどうかはわかりません。それまでの間、@RobV のソリューションが機能します。

于 2012-10-07T18:55:32.007 に答える