Ich versuche, wenn es zu überprüfen, sind zwei Personen durch die Beziehung B verbunden und haben Beziehung c mit dem gleichen ElementWas ist mit der SPARQL-Abfrage falsch?
ASK {
{?x :B ?y}filter not exist{?x :c ?t1, ?y :c ?t2 ,t1 ≠ t2 }
}
Ich versuche, wenn es zu überprüfen, sind zwei Personen durch die Beziehung B verbunden und haben Beziehung c mit dem gleichen ElementWas ist mit der SPARQL-Abfrage falsch?
ASK {
{?x :B ?y}filter not exist{?x :c ?t1, ?y :c ?t2 ,t1 ≠ t2 }
}
Wenn ich richtig verstanden, die Abfrage Sie versuchen, schreiben sollte wie folgt aussehen:
ASK{
?x :B ?y;
:c ?t1 .
?y :c ?t2 .
filter (t1 != t2)
}
Bitte beachten Sie, dass bei einer solchen Abfrage, x
und y
sein könnte genauso gut Klassen und nicht Einzelpersonen.
gab es einen Fehler in die Abfrage ist es t1 "? x: c? t1" statt t2, korrigiere ich es – hala
Wenn Sie wollen, dass sie Beziehung c haben, warum "existiert nicht"? Sobald dies klar ist, müssen Sie nur noch die Syntax korrigieren: Die Kommas sind dort nicht OK, und wenn Sie immer noch herausfiltern wollen, sollte es 'filter not exists' sein. –
@IvoVelitchkov so ist es akzeptabel, t1 ≠ t2 in den Filter zu setzen? Was ist die Syntax von nicht gleich? wie man es schreibt – hala
Es ist '! ='. Ich würde vorschlagen, dass Sie beziehen sich auf die [SPARQL-Spezifikation] (https://www.w3.org/TR/sparql11-query/) mindestens für die grundlegende Syntax –