SPARQL Encuentra múltiples términos de búsqueda al mismo tiempo.
Lo siento, pero no tengo ni idea de cuál es el término adecuado que usar aquí, lo que también hace imposible buscar lo que quiero hacer. Hace apenas una hora me enteré de SPARQL.
Básicamente, tengo 475 ciudades de las que quiero saber las áreas. Al buscar varias cosas para encontrar una lista preexistente (o incluso una guía GIS muy básica) para encontrar esto, uno de mis resultados señaló que Wikipedia tiene las áreas para todas esas ciudades. Desafortunadamente, no pude averiguar cómo obtener las áreas de múltiples ciudades a la vez.
Lo que puedo hacer es muy, muy básico. Basándome en el segundo resultado de búsqueda de Google, puedo hacer cambios muy básicos en la respuesta de Jan Drewniak. Así, en principio, puedo ir a query.wikidata.org y encontrar el área de cada ciudad individualmente cambiando “Paris” en:
SELECT ?town ?area ?population ?coordinate ?country WHERE {
?town ?label “Paris”@en;
wdt:P2046 ?area;
wdt:P625 ?coordinate;
wdt:P1082 ?population;
wdt:P17 ?country.
}
Y habiendo hecho eso, puedo descargar el resultado y luego cambiar “Paris” nuevamente a una de las otras 474 ciudades, descargar ese resultado y así sucesivamente hasta que lo haya hecho para todas las 475 ciudades. Luego puedo combinar los 475 archivos .csv. Eso funcionaría.
Obviamente, preferiría no hacer eso. Mañana es domingo, así que podría hacerlo, pero me llevaría mucho tiempo. Lo que me gustaría poder hacer es:
- Ejecutar una sola consulta que incluya las 475 ciudades, ¿es posible?
- ¿Es posible obtener el país para que se informe en términos que no sean wd: Q30?
- ¿Puedo saber si los resultados que obtengo para el área son todos de la misma unidad, idealmente sqkm, pero las conversiones no son un problema, es posible?
- Si es posible hacer las 475 de una vez, ¿podría hacer referencia a los nombres en un archivo .csv?
También debo señalar que query.wikidata.org es el único lugar donde sé que puedo hacer esto.
Si hay alguna otra lista hecha por alguien más de las áreas de las ciudades en los datos de Prospecciones Urbanas Mundiales de la ONU de ciudades de más de 300.000 habitantes (que es de donde se seleccionaron mis 475 ciudades), entonces eso también funcionaría. (En una nota relacionada, Demographia tiene algunas listas PDF de Áreas Urbanas de más de 1.000.000 que sí tienen información de área … si intento copiar y pegar eso, solo sale como una sola línea, no como una tabla. Si me rindiera y encontrar qué ciudades de mis 475 están en esa lista, ¿cómo procedería?)
He intentado lo siguiente:
SELECT ?town ?area ?population ?coordinate ?country WHERE {
?town ?label “Paris”@en;
wdt:P2046 ?area;
wdt:P625 ?coordinate;
wdt:P1082 ?population;
wdt:P17 ?country.
}
SELECT ?town ?area ?population ?coordinate ?country WHERE {
?town ?label “London”@en;
wdt:P2046 ?area;
wdt:P625 ?coordinate;
wdt:P1082 ?population;
wdt:P17 ?country.
}
Pero query.wikidata.org me dio un error y también variaciones de “Paris”| “London”@en o “Paris”@en | “London”@en, por analogía a R.
Con respecto a las etiquetas, acabo de copiarlas de la pregunta donde obtuve el modelo de código anterior y agregué las etiquetas GIS y SPARQL.
davy.ai
IN
para consultar varias ciudades a la vez. Por ejemplo:Reemplace los puntos suspensivos con los ID de Wikidata (
wd:Q...
) de las 475 ciudades. Puede usar el separador|
para especificar múltiples IDs para una sola ciudad, si es necesario.wd:Q...
. Puede utilizar la propiedadrdfs:label
para obtener el nombre del país en un idioma específico. Por ejemplo:Esta consulta devolverá el nombre del país en inglés. Puede reemplazar
"en"
con cualquier otro código de idioma.Unidad de medida
(P5061) de los valores de área (P2046
). Por ejemplo:Esta consulta devolverá la unidad de medida utilizada para los valores de área de las ciudades que le interesan.
BIND
para vincular el título del artículo de Wikipedia (que suele ser el nombre de la ciudad en el idioma deseado) a una variable que se puede utilizar en la consulta. Por ejemplo:En esta consulta, utilizamos el servicio
mwapi
para buscar en Wikipedia el nombre de la ciudad y obtener su ID de Wikidata (que se almacena como valor de propiedad en la página de Wikipedia). Luego utilizamos la funciónBIND
para vincular el nombre de la ciudad a una variable, y reemplazar"París"
con?city
en la consulta. Puede cargar los nombres de las ciudades desde un archivo .csv en una variable utilizando la cláusulaVALUES
.