2

4つのトリプルを含むRDFベースがあるとします。

"John"  "loves" "sushi"
"John"  "loves" "Mary"
"Frank" "hates" "sushi"
"John"  "hates" "olives"

そして、「寿司」をとても奇妙なものだと考えているとしましょう。人々がそれを使って何ができるのか、さらには同じアクションを他に何に適用できるのかを知りたいのです=)

だから私は私には論理的に見えるSPARQLクエリを書きます:

SELECT ?s ?o WHERE
{
  ?s ?p "sushi".
  ?s ?p ?o
}

当然、次の結果が得られることを期待しています

"John"  "sushi"
"John"  "Mary"
"Frank" "sushi"

最初の3つのトリプルのそれぞれについて、結合されたパターンをTRUEと評価する(?s、?p)値の満足のいくペアが存在するためです。

しかし実際には(私はローカルの4storeエンジンとDBを使用しています)、答えは次のようになります。

"John"  "sushi"
"John"  "Mary"
"Frank" "sushi"
"John"  "olives"

誰かが私にこの振る舞いを説明できますか?

そして、これが本当にSPARQLで機能するはずの場合、必要なものを取得する方法は何ですか?

4

1 に答える 1

1

うーん、これは4storeのバグのようです。これは、4つの異なる独立したSPARQL実装(Jena ARQ、dotNetRDF Leviathan、OpenLink Virtuoso、Clark&ParsiaのStardog)でテストしたばかりなので、すべて期待どおりの答えが返されます。

そして、自白したSPARQLナットとして、あなたが期待している答えは正しいものだと思います。

サポートメーリングリストを使用して4storeの人と連絡を取ることをお勧めします-http://groups.google.com/group/4store-support?pli= 1

これは4storeの直接のバグではなく、基になるrasqalクエリライブラリのバグである可能性があることに注意してください。ただし、4storeについては、何らかの方法で説明するのに十分な知識がありません。

于 2011-08-17T15:05:37.737 に答える