Ir al contenido

SPARQL/WITH

De Wikilibros, la colección de libros de texto de contenido libre.

Supongamos que queremos encontrar la película donde se haya utilizado la mayor cantidad de idiomas (por ejemplo, en Avatar, los lenguajes utilizados fueron inglés y Na'vi). Podemos encontrar esa información usando WITH como es mostrado abajo

SELECT ?item ?count
# Primero, con esta consulta obtenemos las películas y el número de
# lenguas utilizadas en cada una de ellas
WITH {
  SELECT ?item (COUNT(?property) AS ?count) {
    ?item
      wdt:P31 wd:Q11424;
      wdt:P364 ?property.
  }
  GROUP BY ?item
} AS %query
# Segundo, obtenemos el número máximo
WITH {
  SELECT (MAX(?count) AS ?max) {
    INCLUDE %query.
  }
} AS %max
# Finalmente, incluimos los dos resultados y solo mostramos aquellas
# películas cuya cantidad de lenguas es el máximo número
WHERE {
  INCLUDE %query.
  INCLUDE %max.
  FILTER(?count = ?max)
}