Как выразить отношение равных в sparql? - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь использовать sparql, чтобы найти все французские метки слов, которые относятся к данному английскому слову.

Сделанный мной запрос выглядит примерно так:

SELECT ?extword ?word ?label where {
    ?word rdfs:label "shark"@eng.
    {?extword rdf:type ?word}
    UNION
    {?word rdf:type ?extword}.
    ?extword rdfs:label ?label filter(lang(?label)="fra")
    }

Хотя он дает мне французские метки extword по желанию, он не дает французские метки самого word.

Мне нужно вставить предложение, чтобы выразить отношение, которое extword точно word, вот так:

SELECT ?extword ?word ?label where {
    ?word rdfs:label "shark"@eng.
    {?extword = ?word}
    UNION
    {?extword rdf:type ?word}
    UNION
    {?word rdf:type ?extword}.
    ?extword rdfs:label ?label filter(lang(?label)="fra")
    }

Оказывается синтаксическая ошибка.Можно ли также включить французские метки самого word, не выполняя еще один запрос?

Чтобы быть более понятным, я ожидаю, что результатом будет мой первый запрос в сочетании с результатом следующего запроса:

SELECT ?word ?label where {
    ?word rdfs:label "shark"@eng.
    ?word rdfs:label ?label filter(lang(?label)="fra")
    }
...