Ficción narrativa en Wikidata

Vamos a dedicar una entrada a delimitar la forma de extraer de Wikidata datos sobre obras que sean ficción narrativa: novelas, cuentos, películas, series, cómic, novela gráfica.

Literatura de ficción

Vamos a empezar primero con los «libros», y luego pasaremos el «cine». El propósito de este sitio web es la ficción, y por lo tanto queremos evitar lo habitual en artículos de prensa como «libros para conocer el problema de ETA» donde se mezclan novelas con periodismo e historia.

En Wikipedia hay un buen número de artículos cuyo objeto es un «libro», entendido como una obra relevante de la historia literaria o cultural: Rayuela, Rebelión en la granja, El Quijote, Sentido y sensibilidad, Lo que el viento se llevó, Cien años de soledad, … Veamos cómo están tipificados en Wikidata, a través de la declaración inicial de P31 «instancia de» que consideramos equivalente a un «rdf:type».

Para obras actuales, encontramos casos como los que siguen:

Encontramos que se usa una diversidad de tipos con diversa orientación: obra escrita, obra literaria, novela, libro. Sin embargo ¿Qué ocurre con los libros de no-ficción?:

Aunque la tipificación presenta rarezas, al mezclar soporte (libro) con género (novela), disponemos de elementos suficientes para obtener datos de todos los libros, obras literarias, obras impresas, novelas, etc. que están tipificadas en Wikidata. Teniendo en cuenta que:

  • Obra literaria y Obra escrita son clases conectadas.
  • Se usan tipos que responden a otras categorizaciones específicas: bestseller, novela, biografía.
  • Hay ensayos o estudios de no-ficción tipificados como «obra literaria».
  • Las «obras escritas» pueden ser de ficción o no-ficción.
  • Hay algunos tipos específicos para la escritura académico-científica.

De todos modos, debemos tener en cuenta que mientras que en Wikipedia solo se recogen aquellos libros con cierta relevancia cultural (en un sentido muy laxo, puesto que depende esencialmente de la atención y esfuerzo que la comunidad de editores quiera dedicarle a la creación de su artículo correspondiente) en Wikidata también pueden incluirse libros que no tienen artículo en ninguna edición de Wikipedia. Esto lo trataremos en otro apartado.

¿Qué es un libro, qué es una obra literaria? Una jerarquía de clases muy específica

Aunque antes de elaborar una primera consulta para esto, conviene detenerse en la jerarquía de clases. Los elementos usados para categorizar conforman están unidos por la relación P279 «Subclase de». Habrá que tener en cuenta que para la descripción los editores de Wikidata usan indistintamente cualquier nivel de detalle, como en el caso de «novela» y «novela histórica». También vemos que la tipificación puede ser múltiple. Teniendo esto en cuenta, nuestra búsqueda tendrá que interrogar por cualquier elemento «subclase de» para adecuarse a la práctica descriptiva que se detecta en Wikidata. Veamos un ejemplo de esta jerarquía de clases, sobre la que podremos plantear una búsqueda recursiva. Apuntemos algunas cosas:

Clases a las que pertenece Monografía (Q193495)
Clases a la que pertenece Obra literaria (Q7725634)

Podemos encontrar casi 60.000 cosas identificadas como libro (o alguna de sus subclases), con géneros como: sátira, novela cómica, novela de aventuras, literatura juvenil, novela fantástica, autobiografía, novela cristiana, cuento de hadas, suspense, novela de terror, cuento, terror, novela de suspense, álbum ilustrado, novela policiaca, …

# Obtención de libros (recursiva, cualquier de sus subclases)
SELECT ?cosa ?cosaLabel 
WHERE { 
  ?cosa wdt:P31/wdt:P279* wd:Q571 . #Búsqueda recursiva sublases
  SERVICE wikibase:label { bd:serviceParam wikibase:language "es,en". } 
   }

La búsqueda recursiva por «obras literarias» obtiene muchos más resultados, 753151, puesto que también incluye cosas como «canciones».

SELECT DISTINCT ?cosa 
WHERE {
?cosa wdt:P31/wdt:P279* wd:Q7725634 . #Obras literarias (recursiva)
         }

La búsqueda recursiva por «Obra escrita» es todavía más amplia, puesto que engloba a «Obra literaria» como subclase y también las publicaciones científicas (Articulo científico Q13442814). En el marco del proyecto Wikicite, que explora el uso de Wikidata como corpus bibliográfico, se han cargado grandes lotes de referencias bibliográficas de publicaciones científicas. Por estos motivos no se puede ejecutar en el WDQS.

Lanzando una búsqueda recursiva por no ficción, encontramos poco más de 5000 obras, que ocasionalmente aparecen con género (ensayo, libro de no ficción, literatura de no ficción, monografía, libro de historia, lingüística, memorias, …). Volvemos a encontrar confusión entre tipo y género.

# Obtención de obras de no ficción (recursiva de subclases)
SELECT ?cosa ?cosaLabel
WHERE { 
  ?cosa wdt:P31/wdt:P279* wd:Q20540385 . # Búsqueda recursiva
  SERVICE wikibase:label { bd:serviceParam wikibase:language "es,en". } 
   }

En las anteriores consultas, podemos añadir los tipos y géneros, pero ha de tenerse en cuenta que se multiplicará el número de resultados, al presentarse repetidos los elementos que tienen varios tipos o géneros. En la consulta se incluye el género como opcional, puesto que de los 60.000 libros apenas 5700 tienen declarado el género, y en SPARQL cada patrón añadido en la consulta ha de existir en los items recuperados o los excluye de la respuesta.

# Obtención de género y tipo en libros (Búsqueda recursiva)
SELECT ?cosa ?cosaLabel ?tipo ?tipoLabel ?genero ?generoLabel
WHERE { 
  ?cosa wdt:P31/wdt:P279* wd:Q571 . #Búsqueda recursiva subclases
  ?cosa wdt:P31 ?tipo . # tipo del item
  OPTIONAL {?cosa wdt:P136 ?genero . } # Género (opcional)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "es,en". } 
   }

No es fácil desplegar una búsqueda recursiva sin incorporar muchísimo ruido desde Libro (Q571) o desde obra escrita (Q47461344) o obra literaria (Q7725634). Por el contrario, si solo usamos alguno de los subtipos específicos, perderemos numerosísimas obras tipificadas con uno de estos valores genéricos.

El esquema de clases que se construye en Wikidata puede ser muy disparatado, e incluye numerosas extravagancias. Plantear una búsqueda recursiva eliminando recursivamente subclases puede ser una buena estrategia de búsqueda que proporcione con poco esfuerzo resultados consistentes.

Usando la función MINUS de SPARQL, podemos eliminar patrones que consideramos irrelevantes para la ficción narrativa. Supone incluir manualmente una condición de exclusión analizando manualmente las subclases. Por ejemplo, de las 21 que tiene libro (Q571), aplicando la exclusión directa no recursiva de 7 subclases, reducimos de 54566 a 53762 resultados. No es un mecanismo muy eficiente.

SELECT DISTINCT ?cosa 
WHERE {
?cosa wdt:P31/wdt:P279* wd:Q571 . # Libro
   MINUS {?cosa wdt:P31 wd:Q216665  . } #incunable
   MINUS {?cosa wdt:P31 wd:Q162827  . } #atlas
  MINUS {?cosa wdt:P31 wd:Q43013  . } #cuaderno
   MINUS {?cosa wdt:P31 wd:Q448980  . } #libro de cinto
  MINUS {?cosa wdt:P31 wd:Q489637  . } #undefined
  MINUS {?cosa wdt:P31 wd:Q497976  . } #colouring book
  MINUS {?cosa wdt:P31 wd:Q548408  . } #art book
         } 

Si el mismo mecanismo de exclusión lo hacemos recursivo, con el riesgo de alcanzar el timeout del WDQS, aumentamos muy ligeramente la exclusión de items, llegando a 53698, señal de que el uso de elementos muy profundos de la jerarquía es poco frecuente.

SELECT DISTINCT ?cosa 
WHERE {
?cosa wdt:P31/wdt:P279* wd:Q571 . # Libro
   MINUS {?cosa wdt:P31/wdt:P279* wd:Q216665  . } #incunable
   MINUS {?cosa wdt:P31/wdt:P279* wd:Q162827  . } #atlas
  MINUS {?cosa wdt:P31/wdt:P279* wd:Q43013  . } #cuaderno
   MINUS {?cosa wdt:P31/wdt:P279* wd:Q448980  . } #libro de cinto
  MINUS {?cosa wdt:P31/wdt:P279* wd:Q489637  . } #undefined
  MINUS {?cosa wdt:P31/wdt:P279* wd:Q497976  . } #colouring book
  MINUS {?cosa wdt:P31/wdt:P279* wd:Q548408  . } #art book
         } 

No es posible, usando la tipificación (P31) conseguir un listado de obras de ficción narrativa, debido al uso de subclases muy específicas

La ontología de Wikidata y las prácticas descriptivas son muy variables

Da la sensación de que el tipo no nos va a permitir obtener un listado de ficción, sino de cualquier tipo de libro u obra literaria. Será necesario encontrar otras propiedades, que sugieran ficción, que se usen con suficiente regularidad, y tener en cuenta que los propios datos descriptivos necesitarán ser revisados y mejorados, aplicando unos criterios de catalogación más adecuados.

Para terminar, a lo bruto, podemos obtener que en Wikidata encontramos descripciones para más de 700.000 elementos que son libros u obras literarias (785.652 resultados el 30-dic-2020).

# Suma de búsquedas recursivas de libros, obras literarias
SELECT DISTINCT ?cosa  
WHERE {
  { ?cosa wdt:P31/wdt:P279* wd:Q571 . # libros
 }
UNION
{
 ?cosa wdt:P31/wdt:P279* wd:Q7725634 . #Obra literaria
 }

  }