¿Cuántos libros hay en Wikipedia?

Esta es una pregunta bonita, porque son numerosos los artículos, en diferentes idiomas, sobre obras literarias y libros relevantes de cada tradición y cultura: Cien años de soledad, El nombre de la Rosa, El lazarillo de Tormes, 1984, Sentido y sensibilidad, Los cipreses creen en Dios, A lo marciano, El ruido y la furia, El tambor de hojalata, Mañana en la batalla piensa en mí, La isla del tesoro, Ana Karenina, El dios de las pequeñas cosas, … No se trata de que Wikipedia sea un catálogo, sino que ciertas obras literarias merecen la atención de sus editores como hecho cultural u objeto relevante, y por lo tanto existe un artículo que explica su historia.

La relación entre un elemento de Wikidata con un artículo de Wikipedia no es una declaración en sí misma, sino que se establece mediante una declaración independiente. No es una descripción del item en sí, sino un complemento funcional específico útil para los proyectos Wikimedia.

Encontramos más de 7000 elementos identificados como «libro» o como «Obra literaria» en Wikipedia en español (WP-ES), y más de 31.000 si la búsqueda la hacemos recursiva.

SELECT (COUNT(?article) AS ?total)
WHERE {
{  
  ?item wdt:P31 wd:Q571 .
 # libro
  ?article schema:about ?item ; schema:isPartOf <https://es.wikipedia.org/> .
}
UNION
{
  ?item wdt:P31 wd:Q7725634 .
 # obra literaria
  ?article schema:about ?item ; schema:isPartOf <https://es.wikipedia.org/> .
}
}
#Búsqueda recursiva
SELECT (COUNT(?article) AS ?total)
WHERE {
{  
  ?item wdt:P31/wdt:P279* wd:Q571 .
  ?article schema:about ?item ; schema:isPartOf <https://es.wikipedia.org/> .
}
UNION
{
  ?item wdt:P31/wdt:P279* wd:Q7725634 .
  ?article schema:about ?item ; schema:isPartOf <https://es.wikipedia.org/> .
}
}

Pero claro, cada edición de Wikipedia tiene sus propios libros. Hay libros de alcance universal (presentes en muchas ediciones diferentes) y otros de carácter más local o cultural (presentes en un solo idioma o en pocos idiomas culturalmente afines).

Por ejemplo, el Decamerón tiene conexión con artículos en 69 Wikipedias. Podemos obtener la relación entre el código Q del item, la url del artículo en cada Wikipedia y la url de la edición de la que forma parte.

SELECT ?item ?article ?wiki
WHERE {
  VALUES ?item {wd:Q16438}
{  
  ?article schema:about ?item .
  ?article schema:isPartOf ?wiki
}
}
Resultado con código Q, url a artículo y url de la edición de Wikipedia correspondiente.

Sin embargo hay que tener en cuenta en la consulta anterior que podrían aparecer vínculos a otros proyectos Wikimedia: Commons, Wikisource, etc. Es necesario filtrar los enlaces para que contengan la cadena «wikipedia».

Explorando, podemos saber que hay 13 artículos sobre novelas gráficas que están tanto en la edición española de Wikipedia como en la italiana.

# Recuento de novela gráfica con artículo en WP-ES y EP-IT
SELECT (COUNT(?item) AS ?total)
WHERE {
{  
  ?item wdt:P31 wd:Q725377 . #Novela gráfica
  ?article schema:about ?item ; schema:isPartOf <https://es.wikipedia.org/> .
  ?article2 schema:about ?item ; schema:isPartOf <https://it.wikipedia.org/> .
  
}
 
  }
#Listado de novela gráfica con artículo en WP-ES y WP-IT
SELECT ?item ?itemLabel
WHERE {
{  
  ?item wdt:P31 wd:Q725377 . #Novela gráfica
  ?article schema:about ?item ; schema:isPartOf <https://es.wikipedia.org/> .
  ?article2 schema:about ?item ; schema:isPartOf <https://it.wikipedia.org/> .
}
 SERVICE wikibase:label { bd:serviceParam wikibase:language "es,it,en". }
  }

También podemos ver qué novelas gráficas tienen artículo en WP-ES, pero no lo tienen en inglés: «Los surcos del azar» de Paco Roca no es relevante en inglés.

#Novelas gráficas con artículo en WP-ES, pero no en WP-EN
SELECT ?item ?itemLabel
WHERE {
{  
  ?item wdt:P31 wd:Q725377 . #Novela gráfica
  ?article schema:about ?item ; schema:isPartOf <https://es.wikipedia.org/> .
MINUS { ?article3 schema:about ?item ; schema:isPartOf <https://en.wikipedia.org/> .}
}
 SERVICE wikibase:label { bd:serviceParam wikibase:language "es,it,en". }
  }

También es interesante ver que podemos usar un filtro de comparación para ver todas los items de Wikidata que tienen artículo en cualquier Wikipedia. Encontramos 277 novelas gráficas en cualquier Wikipedia.

SELECT DISTINCT ?item 
WHERE {
  ?item wdt:P31 wd:Q725377 . #Novela gráfica
  ?article schema:about ?item .
  FILTER (CONTAINS(str(?article),'wikipedia'))
 }

Una consulta agrupada nos dirá cuántos artículos sobre «Novela gráfica» hay en cada Wikipedia: 196 en inglés, 58 en francés, …. 35 en español, 19 en catalán, …

Consulta SPARQL: SELECT ?wiki (COUNT(?item) AS ?total)
WHERE { ?item wdt:P31 wd:Q725377 . #Novela gráfica
?article schema:about ?item . ?article schema:isPartOf ?wiki FILTER (CONTAINS(str(?article),’wikipedia’)) } GROUP BY ?wiki

Pero también encontramos que en Wikidata hay items para los que no se ha hecho artículo en ninguna Wikipedia: recogen un hecho, concepto u objeto real, pero que no ha alcanzado suficiente atención enciclopédica.

#Consulta de novelas gráficas sin artículo en Wikipedia
SELECT DISTINCT ?item 
WHERE {
  ?item wdt:P31 wd:Q725377 . #Novela gráfica
  MINUS {
    ?article schema:about ?item .
    ?article schema:about ?item .
  FILTER (CONTAINS(str(?article),'wikipedia'))
  }
 }

Una primera aproximación a cuantificar los artículos sobre «libros» en Wikidata podría ser la siguiente consulta recursiva por «libros» (Q571), de la que resultan casi 34.000 libros que han merecido un artículo, con más de 5000 artículos en WP-EN y WP-FR.

# Recuento de libros por wikis
SELECT ?wiki (COUNT(?item) AS ?total)
WHERE {
  ?item wdt:P31/wdt:P279* wd:Q571 . #Libro recursivo
  ?article schema:about ?item .
  ?article schema:isPartOf ?wiki
  FILTER (CONTAINS(str(?article),'wikipedia'))
 }
GROUP BY ?wiki
#Total de libros en Wikipedia
SELECT (COUNT(?item) AS ?total)
WHERE {
  ?item wdt:P31/wdt:P279* wd:Q571 . #Libro recursivo
  ?article schema:about ?item .
  ?article schema:isPartOf ?wiki
  FILTER (CONTAINS(str(?article),'wikipedia'))
 }

Claro que hay otros más de 39.000 libros en Wikidata que no son «enciclopédicos». En este caso Wikidata actúa como mero catálogo o conjunto de datos bibliográfico.

SELECT (COUNT(?item) AS ?total)
WHERE {
  ?item wdt:P31/wdt:P279* wd:Q571 . #Libro recursivo
  MINUS {
    ?article schema:about ?item .
  FILTER (CONTAINS(str(?article),'wikipedia'))
  }
 }

Sumando los resultados de búsquedas recursivas para libros (Q571) y obras literarias (Q7725634) obtenemos 764.812 artículos en todas las Wikipedias. Quedaría añadir los de «obra escrita»

SELECT (COUNT(?item) AS ?total)
WHERE {
{
  ?item wdt:P31/wdt:P279* wd:Q571 . #Libro recursivo
  ?article schema:about ?item .
  FILTER (CONTAINS(str(?article),'wikipedia'))
 }
UNION
  {
  ?item wdt:P31/wdt:P279* wd:Q7725634 . #Obra literaria recursivo
  ?article schema:about ?item .
  FILTER (CONTAINS(str(?article),'wikipedia'))
 }
  }

Al añadir «obra escrita» la capacidad del servidor de tripletas de Wikidata no nos permite emplear la búsqueda recursiva, sino tan solo a una búsqueda de las subclases directamente relacionadas. Por lo que podemos aproximarnos mediante una búsqueda directa, que nos dará 968.161 artículos sobre libros entre todas las Wikipedias.

SELECT (COUNT(?item) AS ?total)
WHERE {
{
  ?item wdt:P31/wdt:P279* wd:Q571 . #Libro recursivo
  ?article schema:about ?item .
  FILTER (CONTAINS(str(?article),'wikipedia'))
 }
UNION
  {
  ?item wdt:P31/wdt:P279* wd:Q7725634 . #Obra literaria recursivo
  ?article schema:about ?item .
  FILTER (CONTAINS(str(?article),'wikipedia'))
 }
  UNION {
      ?item wdt:P31/wdt:P279 wd:Q47461344 . #Obra escrita Solo 1 nivel NO-recursiva
  ?article schema:about ?item .
  FILTER (CONTAINS(str(?article),'wikipedia'))
  
  }
  }

Si extraemos estos datos para cada Wikipedia, encontramos que la edición es español ocupa una cuarta posición en nuestro ranking de libros con artículo en Wikipedia, con 41.070 artículos, encabezada por ingleses y franceses, con 236.213 y 75.907 respectivamente, y por primera vez ¡por delante de los alemanes!

SELECT ?wiki (COUNT(?item) AS ?total)
WHERE {
{
  ?item wdt:P31/wdt:P279* wd:Q571 . #Libro recursivo
  ?article schema:about ?item .
    ?article schema:isPartOf ?wiki
  FILTER (CONTAINS(str(?article),'wikipedia'))
 }
UNION
  {
  ?item wdt:P31/wdt:P279* wd:Q7725634 . #Obra literaria recursivo
  ?article schema:about ?item .
      ?article schema:isPartOf ?wiki
  FILTER (CONTAINS(str(?article),'wikipedia'))
 }
  UNION {
      ?item wdt:P31/wdt:P279 wd:Q47461344 . #Obra escrita Solo 1 nivel NO-recursiva
  ?article schema:about ?item .
      ?article schema:isPartOf ?wiki
  FILTER (CONTAINS(str(?article),'wikipedia'))
  
  }
    }
GROUP BY ?wiki
ORDERY BY ?wiki

Para terminar, un cálculo de libros con artículo enciclopédico, teniendo en cuenta que una buena parte de los libros están en varios idiomas. Tenemos 369.362 libros entre todas las Wikipedias.

SELECT distinct ?item
WHERE {
{
  ?item wdt:P31/wdt:P279* wd:Q571 . #Libro recursivo
  ?article schema:about ?item .
  FILTER (CONTAINS(str(?article),'wikipedia'))
 }
UNION
  {
  ?item wdt:P31/wdt:P279* wd:Q7725634 . #Obra literaria recursivo
  ?article schema:about ?item .
  FILTER (CONTAINS(str(?article),'wikipedia'))
 }
  UNION {
      ?item wdt:P31/wdt:P279 wd:Q47461344 . #Obra escrita Solo 1 nivel NO-recursiva
  ?article schema:about ?item .
  FILTER (CONTAINS(str(?article),'wikipedia'))
  
  }
  }