J'ai la requête SPARQL suivante:instruction IF dans SPARQL
PREFIX yago: <http://dbpedia.org/class/yago/>
SELECT distinct count (?Montreal) as ?Montreal count(?Toronto) as ?Toronto
WHERE
{
{?Montreal rdf:type yago:HospitalsInMontreal} UNION {?Toronto rdf:type yago:HospitalsInToronto}.
}
Ce résultats de la requête dans:
Montréal = 20 Toronto = 28
Ce que je veux est: Je veux éditer la requête et au lieu de donner 20 et 28, je veux comparer les résultats tels que Si le nombre d'hôpitaux de Montréal est supérieur au nombre d'hôpitaux de Toronto alors:
Montréal = 1 Toronto = 2
Si le nombre d'hôpitaux de Toronto est plus grand que le nombre d'hôpitaux à Montréal alors:
Montréal = 2
Toronto = 1
J'ai essayé cette requête mais il ne fonctionne pas:
PREFIX yago: <http://dbpedia.org/class/yago/>
SELECT distinct count (?Montreal) as ?Montreal count(?Toronto) as ?Toronto
WHERE
{
{?Montreal rdf:type yago:HospitalsInMontreal} UNION {?Toronto rdf:type yago:HospitalsInToronto}.
LET(?Montreal := IF(?Montreal > ?Toronto, -1, 1).
}
Merci
Le nouveau SPARQL 1.1 introduit BIND qui est équivalent à louer dans ce cas. De plus, pour être portable, vos expressions de projet ont besoin de parenthèses autour d'elles: (if (count (? MontrealC)> count (? TorontoC), 1,2) que? Montreal) –