2017-02-17 2 views
0

DESCRIBEの中にSPARQLクエリのSERVICE節を使用したいと思います。それをどうすればできますか?SPARQLのSERVICE内でDESCRIBEを使用する方法

次のクエリを試しましたが、構文エラーが返されました。

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX : <http://dbpedia.org/resource/> 

DESCRIBE :Tom_Cruise WHERE { 

SERVICE <http://dbpedia.org/sparql/>{ 

} 
} 
+0

このクエリの目標は何ですか?クライアントコードでエンドポイントをURLとして設定した標準のDESCRIBE を使用した場合と比較して、メリットはありません。 – AKSW

答えて

1

あなたはまったくできません。

は(あなたの最初のクエリがDESCRIBE内部SERVICESERVICE内部ではないDESCRIBE)を持っていて、それが有効な工事だが、SERVICE句内の空のグラフパターンがためDBpediaのを要求するすべてのはそれを3倍タイムアウトと/なる[ありその公開エンドポイントのサービス制限のために限定された数のレコードが返された後に停止する]、そしてあなたのローカルSPARQLプロセッサに、あなたが得たデータにDESCRIBEルーチンを使用するように頼むので、あなたが最後にしたいものを手に入れようとしていますが、どこで実行しようとしたのかわかりませんし、構文エラーもないので、それ以上解析できません)

DESCRIBEは、SELECTの句ではなく、SPARQL query formです。それは唯一のinformatively specifiedです(つまり、提供される内容は実装ごとに大きく異なります)。

また、SERVICE句は、引数として完全なクエリをとらず、グラフパターンをとります。

PREFIX : <http://dbpedia.org/resource/> 

DESCRIBE :Tom_Cruise 
WHERE 
    { 
    SERVICE <http://dbpedia.org/sparql/> 
     { 
     :Tom_Cruise ?p ?o . 
     ?s ?p :Tom_Cruise 
     } 
    } 

- -

だから、あなたはこのような何かを行うことができますが、それはそのせいで、エンドポイントがDESCRIBE実装する方法で、the DBpedia endpoint上で直接これを実行すると同じように返さない -

PREFIX : <http://dbpedia.org/resource/> 

DESCRIBE :Tom_Cruise 
+0

最初のクエリは、少なくとも文法(https://www.w3.org/TR/sparql11-query/#grammar)とSPARQLバリデータ(SPARQLバリデータ)に基づいて、SERVICE句内の空のグラフパターンを持つ有効なSPARQLクエリです。 http://sparql.org/query-validator.html)。しかし、どの構文エラーが発生したのか、そしてどこからDBpediaで 'Virtuoso 42000 Error SQ070:セキュリティ:DB.DBA.SPARQL_SINV_2'ビューに対する選択権限が必要なのかは明らかではありませんが、公共サービス。 – AKSW

+0

はい、DBpediaはアウトバウンド・フェデレーテッド・SPARQLを許可しません。 – TallTed

関連する問題