2016-04-15 9 views
1

Ich versuche, eine Abfrage zu erstellen, die Ereignisse mit zwei benannten Teilnehmern zurückgibt. Die Namen dieser Teilnehmer werden mit Werten für den Vor- und Nachnamen angegeben. Bisher ist dies die einzige funktionierende Lösung, die ich in der Lage gewesen, mit zu kommen:Angeben einer Schnittmenge mit mehreren Werten in einer SPARQL-Abfrage

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 . 
} 

... aber ich frage mich, ob es ein besserer Weg, dies zu tun?

Jede Hilfe würde sehr geschätzt werden!

+0

Dies ist sehr ähnlich zu [Verengung auf SPARQL Query down] (http: // Stackoverflow .com/q/36647451/1281433). Gibt es eine Chance, dass dies eine Klassenaufgabe oder Ähnliches ist? –

+0

Zum Beispiel scheinen einige dieser Fragen den Fragen in [dieser Prüfung] sehr ähnlich zu sein (http://cgi.di.uoa.gr/~pms547/homework/homework1-fdb2010-v3.pdf). –

+0

Hallo Joshua, ja, es sieht so aus, als ob wir in der gleichen Klasse wären :) Wir müssen eine Ontologie entwerfen und einige Anfragen dafür schreiben. – mpr

Antwort

0

Dies ist fast identisch mit Narrowing down on SPARQL query, außer dass es spezifischere Bedingungen gibt, nach wem Sie in diesem suchen (in der anderen war die Aufgabe, Teilnehmer, Moderatoren oder Ehrengäste zu finden). Die Antwort wird helfen. In diesem Fall können Sie dies etwas einfacher machen. Sie können mehrere Objekte durch Kommas trennen (z. B. ? Event hasParticipant? P1,? P2). Sie können leeren Knoten verwenden, um die Bindungsvariablen für die Menschen zu vermeiden, und Sie können (wahrscheinlich) beseitigen die Datentypen auf den Saiten:

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

Vielen Dank, das funktioniert wirklich gut! – mpr

Verwandte Themen