query-1d0d7a40851e1ee62b38486e78202347

rq turtle/ttl

En lengua natural, se lee: . ?nieto tiene un hijo ?hijo. ?hijoBach tiene un hijo Una vez más, propongo que abreviemos esta oración, y luego quiero mostrarles cómo SPARQL admite una abreviatura similar. Observa cómo en realidad no nos importa el niño: no usamos la variable excepto para hablar sobre el nieto. Por lo tanto, podríamos abreviar la frase así: . ?nietoBach tiene como hijo a alguien que tiene un hijo ”). En cierto modo, "alguien" es una variable, pero una especial que solo es válida dentro de esta cláusula relativa, y una a la que no nos referimos explícitamente (decimos "alguien que es esto y hace eso", no "alguien que es esto y alguien que hace eso"- son dos "personas" diferentes). ?nieto": esto inicia una cláusula relativa, y dentro de esa cláusula relativa podemos decir cosas sobre "alguien" (por ejemplo, que él o ella "tiene un hijo quién'En lugar de decir quién es el hijo de Bach, solo decimos "alguien": no nos importa quién es. Pero podemos referirnos a ellos porque dijimos "alguien En SPARQL, esto puede ser escrito así:

Use at

PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX bd: <http://www.bigdata.com/rdf#>
SELECT ?nieto ?nietoLabel
WHERE
{
  wd:Q1339 wdt:P40 [ wdt:P40 ?nieto ].
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}

Query found at

graph TD classDef projected fill:lightgreen; classDef literal fill:orange; classDef iri fill:yellow; v1("?nieto"):::projected a1((" ")) c2(["wd:Q1339"]):::iri c4(["bd:serviceParam"]):::iri c6(["#91;AUTO_LANGUAGE#93;"]):::literal a1 --"wdt:P40"--> v1 c2 --"wdt:P40"--> a1 subgraph s1["http://wikiba.se/ontology#label"] style s1 stroke-width:4px; c4 --"wikibase:language"--> c6 end