2016-04-15 8 views
1

名前付き参加者が2人いるイベントを返すクエリを作成しようとしています。これらの参加者の名前は、名と姓の値を使用して指定します。 はこれまでのところ、これは私が思い付くことができた唯一の実用的なソリューションです:SPARQLクエリで複数の値を持つ交差を指定する

SELECT ?event 
WHERE { 
    ?event con:hasParticipant ?personA . 
    ?personA con:hasFirstName "Bob"^^xsd:string . 
    ?personA con:hasLastName "Smith"^^xsd:string . 
    ?event con:hasParticipant ?personB . 
    ?personB con:hasFirstName "The"^^xsd:string . 
    ?personB con:hasLastName "Bear"^^xsd:string . 
} 

...しかし、これを行うには良い方法がある場合、私は思ったんだけど?

ご協力いただければ幸いです!

+0

これは、[SPARQLクエリに絞り込む]と非常によく似ています:// stackoverflowのあなたは人のための結合変数を避けるために、空白ノードを使用することができ、あなたは(おそらく)文字列のデータ型を排除することができます.com/q/36647451/1281433)。これはクラスの割り当てなのか、それとも似たようなことでしょうか? –

+0

たとえば、これらの質問のいくつかは[この試験](http://cgi.di.uoa.gr/~pms547/homework/homework1-fdb2010-v3.pdf)の質問とよく似ています。 –

+0

こんにちはJoshua、はい、私たちは同じクラスにいるようです:)私たちは、オントロジーを設計し、いくつかの質問を書く必要があります。 – mpr

答えて

0

これは、あなたがこの1人であなたが探している人に関する特定の条件があることを除いて、Narrowing down on SPARQL queryとほぼ同じです(もう1つは、参加者、モデレーター、またはゲストを見つけることでした)。そこの答えは助けになるでしょう。この場合、これを少し簡単にすることができます。カンマで複数のオブジェクトを区切ることができます(例:?event hasParticipant?p1、?p2)。 (HTTP

SELECT ?event { 
    ?event con:hasParticipant [ con:hasFirstName "Bob" ; 
           con:hasLastName "Smith" ] , 
           [ con:hasFirstName "The" ; 
           con:hasLastName "Bear" ] . 
} 
+0

ありがとう、これは本当にうまくいきます! – mpr

関連する問題