Verwenden von SPARQL zum Suchen eines Betreffs mit mehreren Vorkommen derselben Eigenschaft

Ich versuche, SPARQL zu verwenden, um Tripel zurückzugeben, bei denen dasselbe Subjekt mehrere Objekte für dieselbe Eigenschaft hat, wie folgt:

example:subject1 example:property example:object1
example:subject1 example:property example:object2

Ich bin der Meinung, dass eine solche Abfrage Eigenschaftspfade verwenden sollte:

SELECT ?subject WHERE {
  ?subject example:property{2} ?object .
}

Ich führe diese Eigenschaftspfad-Abfrage mit Jena 2.6.4 aus, erhalte jedoch keine Ergebnisse. Liegt das an Jena? Oder formuliere ich die Abfrage falsch? Die folgende Abfrage gibt die erwarteten Ergebnisse zurück, ist jedoch nicht relevant:

SELECT ?subject WHERE {
  ?subject example:property ?object1 .
  ?subject example:property ?object2 .
  FILTER(!(?object1=?object2))
}

Die Eigenschaftspfad-Abfrage gibt Ergebnisse zurück, wenn ich beispielsweise Folgendes verwende:example:property{1,2} oderexample:property{1}; Nur nicht die Ergebnisse, die ich will. Ich weiß also, dass Jena die Syntax korrekt interpretiert, aber ich weiß auch, dass dies eine ältere Version von Jena ist und daher möglicherweise nicht alle Funktionen von SPARQL 1.1 erkennt.

Ich bin der Meinung, dass dies eine häufige Art von Abfrage ist und eine elegantere Lösung (und wirklich eine Kochbuchlösung) haben sollte. Kann ich dieses Problem mit Eigenschaftenpfaden lösen, oder sollte ich einen anderen Ansatz wählen? Und wenn ich Eigenschaftspfade verwenden sollte, verwende ich sie richtig?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage