SPARQL: как получить все тройки с определенным предикатом, где существует только одно направление - PullRequest
1 голос
/ 16 апреля 2019

Я хочу запросить все тройки с определенным предикатом p. Запрос должен возвращать только тройки (s, p, o), где другое направление (o, p, s) не существует. Как я могу сделать такой запрос?

1 Ответ

0 голосов
/ 16 апреля 2019

Это довольно просто:

SELECT ?s ?p ?o {
    ?s ?p ?o
    MINUS { ?o ?p ?s }
}

FILTER NOT EXISTS вместо MINUS также будет работать.Замените ?p в запросе нужным предикатом или используйте что-то вроде FILTER (?p=ex:myPredicate), если вы хотите ?p в результате.

...