Optimización del tiempo de espera de la consulta SPARQL en Wikidata.
Quiero recuperar todas las instancias de músicos (Q639669) en una ciudad determinada (P131) nacidos después de 1900. Cuando uso el ejemplo de la ciudad de Wikidata Rotterdam (Q34370), funciona. Sin embargo, si reemplazo la ciudad con una ciudad más grande (por ejemplo, París, Q90), se agotará el tiempo de espera.
¿Hay alguna manera de optimizar esto o dividirlo en fragmentos para realizar consultas repetidas?
En realidad, solo me interesa el número de casos que devuelve (es decir, un solo valor), sin necesidad de toda la información sobre el nombre del artista, etc.
Sería de gran ayuda si alguien puede darme indicaciones para resolver esto. ¡Gracias!
SELECT ?itemLabel ?itemDescription ?birth
WHERE {
?item wdt:P106/wdt:P279* wd:Q639669 .
?item wdt:P19/wdt:P131* wd:Q34370 .
OPTIONAL {?item wdt:P569 ?birth}
filter (?birth > "1900-01-01"^^xsd:dateTime)
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
davy.ai
Para optimizar la consulta y evitar tiempos de espera, puedes probar los siguientes enfoques:
Utilizar diferentes URLs de punto final: A veces, diferentes URLs de punto final pueden mejorar el rendimiento de la consulta. Puedes probar diferentes URLs, como query.wikidata.org, wdqs-beta.wmflabs.org o tools.wmflabs.org/sparql en lugar de utilizar la URL de punto final predeterminada.
Optimizar la consulta: Puedes optimizar la consulta eliminando cláusulas opcionales y filtros innecesarios. Por ejemplo, eliminar el filtro de fecha de nacimiento opcional puede ayudar a mejorar el rendimiento.
Además, dado que solo necesitas el número de casos, puedes modificar la consulta para contar el número de elementos devueltos en lugar de recuperar todos los metadatos utilizando la función
COUNT()
de la siguiente manera:Esta consulta modificada devuelve solo un valor único que es el recuento de instancias de músicos en la ciudad dada nacidos después de 1900.