В следующем запросе SPARQL я не уверен, как использовать if
для привязки одной из двух строк к переменной ?result
. Я слышал, что есть понятия "по охвату" и "вне сферы действия", но я не вижу разницы. Я также попытался поместить предложение if
в строку select
, но это тоже не сработало. Как я могу исправить этот запрос, чтобы привязать ?result
к одной из двух строк на основе условия?
SELECT ?result
WHERE{
?chain rdf:type rdfs:Property .
?chain rdfs:domain <http://www.vs.cs.hs-rm.de/ontostor/SVC#MDiskGroup> .
?chain rdfs:range <http://www.vs.cs.hs-rm.de/ontostor/SVC#IOgroup> .
?this ?chain ?arg .
?arg io:id ?var .
IF(?var = "0"^^xsd:integer,
BIND(" *"^^xsd:string AS ?result),
BIND(""^^xsd:string AS ?result)) .
}