User:Tsaorin/BID UniversosFiccion
Consultas SPARQL para trabajo sobre universos de ficción.
- Universo de las obras. Publicación.
- Universo narrativo. Historia.
Clases y superclases de los elementos de un universo de ficción edit
select DISTINCT ?item ?itemLabel ?prop ?clase ?claseLabel ?superclase ?superclaseLabel WHERE {
VALUES ?prop {wdt:P31 wdt:P279 wdt:P361}
?item wdt:P1080 wd:Q5410773 .
?item ?prop ?clase .
?clase wdt:P279 ?superclase .
SERVICE wikibase:label {
bd:serviceParam wikibase:language "es","en" .
}
} GROUP BY ?item ?itemLabel ?clase ?claseLabel ?prop ?superclase ?superclaseLabel
Y una segunda consulta
select DISTINCT ?clase ?claseLabel (COUNT(?item) as ?num_items) ?prop ?superclase ?superclaseLabel WHERE {
VALUES ?prop {wdt:P31 wdt:P279 wdt:P361}
?item wdt:P1080 wd:Q5410773 .
?item ?prop ?clase .
?clase wdt:P279 ?superclase .
SERVICE wikibase:label {
bd:serviceParam wikibase:language "es","en" .
}
} GROUP BY ?clase ?claseLabel ?prop ?superclase ?superclaseLabel
Elementos que integran un universo de ficción edit
En primer lugar debemos obtener los items únicos predicados de cada universo a través de P1080.
SELECT DISTINCT ?item ?itemLabel WHERE {
?item wdt:P1080 wd:Q5410773;
SERVICE wikibase:label { bd:serviceParam wikibase:language "es", "en". }
}
}
Obtenemos los items y su clase, incluyendo la propiedad a través de la que obtenemos clase (Además de P31 y P279 a veces salen otras)
SELECT DISTINCT ?item ?itemLabel ?propiedad ?propLabel ?objeto ?objetoLabel WHERE {
?item wdt:P1080 wd:Q5410773;
?propiedad ?objeto.
?prop wikibase:directClaim ?propiedad.
SERVICE wikibase:label { bd:serviceParam wikibase:language "es", "en". }
}
Propiedades agrupadas usadas en elementos edit
SELECT ?propiedad ?pLabel (count(?item) as ?uso_total) (count( distinct ?item) as ?uso_items_distintos) WHERE {
?item wdt:P1080 wd:Q5410773;
?propiedad ?objeto.
?p wikibase:directClaim ?propiedad.
SERVICE wikibase:label { bd:serviceParam wikibase:language "es", "en". }
} group by ?propiedad ?pLabel
Consulta sobre obras-productos de un universo edit
Al localizar universos de ficción desde la propiedad P1080 "Del universo de ficción" recuperamos el interior, los elementos de la narrativa (personajes, cosas, lugares). Cosas molonas, pero queda fuera más o menos todo aquello donde toma cuerpo en publicaciones o creative works o productos masivos.
Pero entonces aparece la propiedad P1434 "Describe el universo de ficción de" donde al hacer una consulta obtenemos 154 obras del Universo HP relacionadas entre sí densamente (Continuación, parte de, secuela, basada en, obra derivada, etc..). En ninguna de estas obras se utilizan declaraciones con P1080, por lo que son, a lo gordo, subconjuntos excluyentes entre sí. Es un material intersante, que puede dejarte de lado, pero mencionarse, o analizarse para presentar las dos visas: obras y narrativa; contenedor; contenido
NOTA: LA SIGUIENTE CONSULTA UNIFICA LAS ANTERIORES, JUNTO CON EL NÚMERO DE ÍTEMS DE LOS DIFERENTES UNIVERSOS DE FICCIÓN. HE COMPROBADO QUE FUNCIONA EN WDQS
select ?universe ?universeLabel ?num_universe (count(?work) as ?num_works) WITH
{
select DISTINCT ?universe (count(?item) as ?num_universe) WHERE {
?item wdt:P1080 ?universe .
} GROUP BY ?universe
} AS %numitems
WHERE {
INCLUDE %numitems
OPTIONAL {?work wdt:P1434 ?universe .}
OPTIONAL {?universe wdt:P1445 ?work .}
SERVICE wikibase:label {
bd:serviceParam wikibase:language "es","en" .
}
} GROUP BY ?universe ?universeLabel ?num_universe
Esta consulta sirve para las obras únicas. Recorre, en dos sentidos diferentes, P1445 y P1434.
SELECT distinct ?item ?itemLabel
WHERE {
{wd:Q5410773 wdt:P1445 ?item. #universo de ficción descrito en
} union {
?item wdt:P1434 wd:Q5410773 .
}
SERVICE wikibase:label {bd:serviceParam wikibase:language "es","en" }
}
Esta versión es para obtener tipología de obras y algunas propiedades clave: género, forma.
SELECT distinct ?item ?itemLabel ?tipo ?tipoLabel ?genero ?generoLabel ?forma ?formaLabel
WHERE {
{wd:Q5410773 wdt:P1445 ?item. #universo de ficción descrito en
optional {?item wdt:P31 ?tipo }
optional { ?item wdt:P7937 ?forma }
optional { ?item wdt:P136 ?genero }
} union {
?item wdt:P1434 wd:Q5410773 .
optional {?item wdt:P31 ?tipo }
optional { ?item wdt:P7937 ?forma }
optional { ?item wdt:P136 ?genero }
}
SERVICE wikibase:label {bd:serviceParam wikibase:language "es","en" }
}
Inventario de universos de ficción edit
Estos son los que hay en Wikidata. Aunque pueden obtenerse por dos vías diferentes, de diferentes resultados. Aquellos tipificados como universo de ficción (o subclases)
SELECT DISTINCT ?item ?itemLabel WHERE {
?item wdt:P31/wdt:P279* wd:Q559618 # Universo de ficción
SERVICE wikibase:label {bd:serviceParam wikibase:language "es","en".}
}
Aquellos resultantes de usar la propiedad P1080 (Del universo de ficción de)
select DISTINCT ?universe ?universeLabel WHERE {
?item wdt:P1080 ?universe .
SERVICE wikibase:label {
bd:serviceParam wikibase:language "es","en" .
}
}
Consulta combinada de obras y elementos de un Universo de Ficción edit
Esta sirve para delimitar y medir el universo en sus dos sentidos: las obras o piezas en que se ha manifestado, y el número de elementos que componen su narrativa interna. {{SPARQL|query= select ?universe ?universeLabel ?num_universe (count(?work) as ?num_works) WITH { select DISTINCT ?universe (count(?item) as ?num_universe) WHERE { ?item wdt:P1080 ?universe .
} GROUP BY ?universe } AS %numitems
WHERE { INCLUDE %numitems OPTIONAL {?work wdt:P1434 ?universe .} OPTIONAL {?universe wdt:P1445 ?work .} SERVICE wikibase:label { bd:serviceParam wikibase:language "es","en" . } } GROUP BY ?universe ?universeLabel ?num_universe </syntaxhighlight>
Elementos de un universo que son personajes de ficción (o entidades de ficción) edit
Explora la lista de elementos recopilados de un UF, y combrueba por dos vías (P279 y P8225) si sus tipos son subclases de "Personaje de ficción" de forma recursvia.
select DISTINCT ?item ?itemLabel WHERE {
VALUES ?prop {wdt:P31 wdt:P279 wdt:P361}
{
?item wdt:P1080 wd:Q5410773 .
?item ?prop ?clase .
?clase wdt:P279* wd:Q95074 . #fictional character
} union {
?item wdt:P1080 wd:Q5410773 .
?item ?prop ?clase .
?clase wdt:P8225* wd:Q95074 . #fctional character
}
SERVICE wikibase:label {bd:serviceParam wikibase:language "es","en" }
}
Entidades de ficción edit
Otra versión comprueba que sean Entidades de ficción, que está más arriba en la taxonomía que "Personajes". Casi todos los elementos son reconocidos como de ficción (701 de 704)
select DISTINCT ?item ?itemLabel WHERE {
VALUES ?prop {wdt:P31 wdt:P279 wdt:P361}
{
?item wdt:P1080 wd:Q5410773 .
?item ?prop ?clase .
?clase wdt:P279* wd:Q14897293 .
} union {
?item wdt:P1080 wd:Q5410773 .
?item ?prop ?clase .
?clase wdt:P8225* wd:Q14897293 .
}
SERVICE wikibase:label {bd:serviceParam wikibase:language "es","en" }
}
Objetos de ficción edit
Hay unos 180 objetos de ficción en el universo de Harry Potter.
select DISTINCT ?item ?itemLabel WHERE {
VALUES ?prop {wdt:P31 wdt:P279 wdt:P361}
{
?item wdt:P1080 wd:Q5410773 . # Universo Harry Potter
?item ?prop ?clase .
?clase wdt:P279* wd:Q15706911 .
} union {
?item wdt:P1080 wd:Q5410773 .
?item ?prop ?clase .
?clase wdt:P8225* wd:Q15706911 .
}
SERVICE wikibase:label {bd:serviceParam wikibase:language "es","en" }
}
Clases para objetos de ficción edit
La anotación manual da 43 clases, y la consulta SPARQL 67.
select DISTINCT ?clase ?claseLabel WHERE {
VALUES ?prop {wdt:P31 wdt:P279 wdt:P361}
{
?item wdt:P1080 wd:Q5410773 . # Universo Harry Potter
?item ?prop ?clase .
?clase wdt:P279* wd:Q15706911 .
} union {
?item wdt:P1080 wd:Q5410773 .
?item ?prop ?clase .
?clase wdt:P8225* wd:Q15706911 .
}
SERVICE wikibase:label {bd:serviceParam wikibase:language "es","en" }
}
Agrupación nativa Wikidata de tipos en un UF edit
Consulta tipologia de elementos de ficcion de un universo, a partir de las taxonomia de clases nativa de Wikidata. Consulta taxonomia solo con subclases P279. Si la población diana de UF Harry Pooter son 706 elementos, salen más porque hay elementos doblemente clasificados. Unos 739, consiguiendo que la mayoría tengan un solo tipo y que solo queden unos 60 sin tipificar.
select DISTINCT ?item ?itemLabel ?tipo WHERE {
VALUES ?prop {wdt:P31}
{
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31/wdt:P279* wd:Q95074 . # Personaje ficticio
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No Organización de ficción
BIND("Personaje de ficción" AS ?tipo)
} union {
VALUES ?seres { wd:Q110660 wd:Q21192438} # Criaturas y especies ficticias
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31*/wdt:P279* ?seres .
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
BIND("Seres, criaturas y plantas" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31/wdt:P279* wd:Q14514600 . # Grupos de personajes
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
BIND("Grupo personajes de ficción" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31/wdt:P279* wd:Q14136353 . # Organización ficticia
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No Lugar de ficción
BIND("Acontecimiento de ficción" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31*/wdt:P279* wd:Q14623646 . # Acontecimiento ficticio
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No Lugar de ficción
BIND("Organización de ficción" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31/wdt:P279* wd:Q15796005 . # Lugar ficticio
#MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No Objeto de ficción
BIND("Lugar de ficción" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31/wdt:P279* wd:Q15706911 . # Objeto ficticio
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
BIND("Objeto de ficción" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31*/wdt:P279* wd:Q6619802 . # Medio de transporte ficticio
MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No objeto de ficción
BIND("Medio de transporte de ficción" AS ?tipo)
} union {
VALUES ?magia { wd:Q1047698 wd:Q15708422 wd:Q81741 wd:Q80837} # Superpoder, energia ficticia, Magia y sobrenatural
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31*/wdt:P279* ?magia .
#MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No objeto de ficción. Bastantes objetos mágicos que aparecen también como objetos
BIND("Magia y superpoderes" AS ?tipo)
}
SERVICE wikibase:label {bd:serviceParam wikibase:language "es","en" }
}
Versión apurando al máximo y marcando elementos sin P31 edit
Controlar que no salgan demasiados elementos con 2/3 tipos.
select DISTINCT ?item ?itemLabel ?tipo WHERE {
VALUES ?prop {wdt:P31}
{
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31/wdt:P279* wd:Q95074 . # Personaje ficticio
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No Organización de ficción
BIND("Personaje de ficción" AS ?tipo)
} union {
VALUES ?seres { wd:Q110660 wd:Q21192438} # Criaturas y especies ficticias
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31*/wdt:P279* ?seres .
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
BIND("Seres, criaturas y plantas" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31/wdt:P279* wd:Q14514600 . # Grupos de personajes
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
BIND("Grupo personajes de ficción" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31/wdt:P279* wd:Q14136353 . # Organización ficticia
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No Lugar de ficción
BIND("Acontecimiento de ficción" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31*/wdt:P279* wd:Q14623646 . # Acontecimiento ficticio
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No Lugar de ficción
BIND("Organización de ficción" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31/wdt:P279* wd:Q15796005 . # Lugar ficticio
#MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No Objeto de ficción
BIND("Lugar de ficción" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31/wdt:P279* wd:Q15706911 . # Objeto ficticio
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
BIND("Objeto de ficción" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31*/wdt:P279* wd:Q6619802 . # Medio de transporte ficticio
MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No objeto de ficción
BIND("Medio de transporte de ficción" AS ?tipo)
} union {
VALUES ?magia { wd:Q1047698 wd:Q15708422 wd:Q81741 wd:Q80837} # Superpoder, energia ficticia, Magia y sobrenatural
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31*/wdt:P279* ?magia .
#MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No objeto de ficción. Bastantes objetos mágicos que aparecen también como objetos
BIND("Magia y superpoderes" AS ?tipo)
} union {
VALUES ?seres { wd:Q110660 wd:Q21192438}
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31*/wdt:P279* wd:Q21451536 .
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No objeto de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14514600 } # No grupos personajes
BIND("Atributos de personajes" AS ?tipo)
} union {
VALUES ?atributos { wd:Q21451536 } # Profesiones, puestos
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31*/wdt:P279* ?atributos .
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No objeto de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14514600 } # No grupos personajes
BIND("Atributos de personajes" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P1269* wd:Q2316469
MINUS {?item wdt:P31/wdt:P279* wd:Q14514600 } # No grupos personajes
BIND("Atributos de personajes" AS ?tipo)
} union {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P279* wd:Q14897293
MINUS {?item wdt:P31/wdt:P279* wd:Q14514600 } # No grupos personajes
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No objeto de ficción
MINUS { ?item wdt:P1269* wd:Q2316469 } # Atributos de personajes
MINUS { VALUES ?atributos { wd:Q21451536} ?item wdt:P31*/wdt:P279* ?atributos } # Profesiones, puestos ?item wdt:P1269* wd:Q2316469 } # Atributos de personajes
BIND("P279: Clase bajo entidades de ficción" AS ?tipo)
}
Versión con instanciación P31 y P279 y categoría "Otros" edit
Esta consulta sobre deja 38 elementos del universo sin clasificar, y 49 en la categorias otros. Obtiene 907 items. Con unas 536 asignaciones a una sola categoría, 117 elementos a dos categorías, 25 a 3 categorías, 8 a cuatro y 30 a 6 categorías. Si da timeout en WQDS se puede fragmentar y luego unir, puesto que cada consulta UNION no aprovecha nada de la anterior.
#Variante que acepta tipificación primaria con P31 o P279
select DISTINCT ?item ?itemLabel ?tipo WHERE {
{
# Criaturas, especies ficticias y taxones
VALUES ?seres { wd:Q110660 wd:Q21192438 wd:Q15707583}
?item wdt:P1080 wd:Q5410773; wdt:P31|wdt:P279 ?clase .
?clase wdt:P279* ?seres .
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
BIND("Seres, criaturas y plantas" AS ?tipo)
} union {
# Grupos de personajes
?item wdt:P1080 wd:Q5410773; wdt:P31|wdt:P279 ?clase .
?clase wdt:P279* wd:Q14514600 .
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
BIND("Grupo personajes de ficción" AS ?tipo)
} union {
# Personaje fictio
?item wdt:P1080 wd:Q5410773; wdt:P31|wdt:P279 ?clase .
?clase wdt:P279* wd:Q95074 .
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No Organización de ficción
BIND("Personaje de ficción" AS ?tipo)
} union {
# Acontecimiento ficticio
VALUES ?evento {wd:Q33498716 wd:Q14136353}
?item wdt:P1080 wd:Q5410773; wdt:P31|wdt:P279 ?clase .
?clase wdt:P279* ?evento
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No Lugar de ficción
BIND("Acontecimiento de ficción" AS ?tipo)
} union {
# Organización ficticia
?item wdt:P1080 wd:Q5410773; wdt:P31|wdt:P279 ?clase .
?clase wdt:P279* wd:Q14623646 . #
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No Lugar de ficción
BIND("Organización de ficción" AS ?tipo)
} union {
# Lugar ficticio
VALUES ?sitios {wd:Q15796005 wd:Q41176}
?item wdt:P1080 wd:Q5410773; wdt:P31|wdt:P279 ?clase .
?clase wdt:P279* ?sitios .
BIND("Lugar de ficción" AS ?tipo)
} union {
# Objeto ficticio
?item wdt:P1080 wd:Q5410773; wdt:P31|wdt:P279 ?clase .
?clase wdt:P279* wd:Q15706911 . # Objeto ficticio
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
BIND("Objeto de ficción" AS ?tipo)
} union {
# Medio de transporte
?item wdt:P1080 wd:Q5410773; wdt:P31|wdt:P279 ?clase .
?clase wdt:P279* wd:Q6619802 . # Medio de transporte ficticio
MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No objeto de ficción
BIND("Medio de transporte de ficción" AS ?tipo)
} union {
# Magia y superpoderes
VALUES ?magia { wd:Q1047698 wd:Q15708422 wd:Q81741 wd:Q80837} # Superpoder, energia ficticia, Magia y sobrenatural
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31*/wdt:P279* ?magia .
#MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No objeto de ficción. Bastantes objetos mágicos que aparecen también como objetos
BIND("Magia y superpoderes" AS ?tipo)
} union {
# Atributos de personajes: puestos, profesiones, cargos, pureza de sangre
VALUES ?atributos { wd:Q21451536 wd:Q1781513 wd:Q844569} # Profesiones, puestos, identidad,
?item wdt:P1080 wd:Q5410773; wdt:P31|wdt:P279|wdt:P1269 ?clase .
?clase wdt:P279* ?atributos .
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No objeto de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14514600 } # No grupos personajes
BIND("Atributos de personajes" AS ?tipo)
} union {
# General Entidad ficticia diferente anteriores
?item wdt:P1080 wd:Q5410773 ; wdt:P279* wd:Q14897293
# EXCLUSIONES
MINUS {?item wdt:P31/wdt:P279* wd:Q14514600 } # No grupos personajes
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q15706911 } . # No objeto de ficción
MINUS { ?item wdt:P1269* wd:Q2316469 } # Atributos de personajes
MINUS { VALUES ?atributos { wd:Q21451536} ?item wdt:P31*/wdt:P279* ?atributos } # Profesiones, puestos
MINUS { VALUES ?seres { wd:Q110660 wd:Q21192438 wd:Q15707583} ?item wdt:P31*/wdt:P279* ?seres } # Criaturas y especies ficticias
BIND("Entidad ficticia. P279" AS ?tipo)
} union {
#Instancias de Entidad Ficticia
BIND("Entidad ficticia. P31" AS ?tipo)
VALUES ?clase { wd:Q15831596 wd:Q14897293}
?item wdt:P1080 wd:Q5410773 ; wdt:P31/wdt:P279* ?clase
# Por si hubiera timeout: ?item wdt:P1080 wd:Q5410773 ; wdt:P31 ?clase
} union {
#Tradiciones, ritos, sociedad
BIND("Tradiciones, ritos, sociedad" AS ?tipo)
?item wdt:P1080 wd:Q5410773 ; wdt:P31|wdt:P279 ?clase .
?clase wdt:P279* wd:Q82821
}
SERVICE wikibase:label {bd:serviceParam wikibase:language "es","en" }
}
Si se tiene que dividir la consulta en dos bloques, este sería el segundo, al que he añadido elementos internos de Wiki. La exploración recursiva de entidad ficticia con instancia de sublcases suele dar timeout, por lo que también se puede hacer sin recursividad (Comentado). La parte que da el timeout es la de elementos wiki.
} union {
#BIND("Elementos Wikimedia" AS ?tipo)
#?item wdt:P1080 wd:Q5410773 ; wdt:P31/wdt:P279* wd:Q17442446
}
Supervisión de taxonomías asignadas a un item edit
Visión ágil de la polijerarquía a partir de la clase asignada a un item. Recorre hasta 4 niveles.
SELECT ?item ?taxonomy_tree_3levels
WHERE
{
VALUES ?item {wd:Q14635217 }
?item wdt:P31 ?type. # type of instance
?type rdfs:label ?Label. FILTER( LANG(?Label)="en" )
?type wdt:P279 ?typeL2. # type of instance
?typeL2 wdt:P279 ?typeL3. # type of instance
?typeL3 wdt:P279 ?typeL4. # type of instance
?typeL2 rdfs:label ?LabelL2. FILTER( LANG(?LabelL2)="en" )
?typeL3 rdfs:label ?LabelL3. FILTER( LANG(?LabelL3)="en" )
?typeL4 rdfs:label ?LabelL4. FILTER( LANG(?LabelL4)="en" )
BIND(concat(str(?Label), " > ", str(?LabelL2), " > ", str(?LabelL3), " > ", str(?LabelL4)) as ?taxonomy_tree_3levels)
}
Variante para investigar superclases edit
Aquí se parte de un elemento que ya está en una cadena de subclases.
SELECT ?item ?itemLabel ?taxonomy_tree_3levels
WHERE
{
VALUES ?item {wd:Q95074 } # Personaje ficticio
?item wdt:P279 ?type. # type of instance
?type rdfs:label ?Label. FILTER( LANG(?Label)="en" )
?type wdt:P279 ?typeL2. # type of instance
?typeL2 wdt:P279 ?typeL3. # type of instance
?typeL2 rdfs:label ?LabelL2. FILTER( LANG(?LabelL2)="en" )
?typeL3 rdfs:label ?LabelL3. FILTER( LANG(?LabelL3)="en" )
BIND(concat(str(?Label), " > ", str(?LabelL2), " > ", str(?LabelL3)) as ?taxonomy_tree_3levels)
SERVICE wikibase:label {bd:serviceParam wikibase:language "es","en" .}
}
LIMIT 30
Variante para investigar subclases edit
A partir de una clase, nos traza la ruta en tres niveles hacia ella (Down-Top)
# Explorador directo de clases (Subclases Top-Down)
SELECT ?item ?itemLabel ?taxonomy_tree_levels
WHERE
{
VALUES ?item {wd:Q15706911 } # Objeto ficticio
?typeL3 wdt:P279 ?item. # type of instance
?typeL2 wdt:P279 ?typeL3. # type of instance
?typeL1 wdt:P279 ?typeL2. # type of instance
?typeL1 rdfs:label ?LabelL1. FILTER( LANG(?LabelL1)="en" )
?typeL2 rdfs:label ?LabelL2. FILTER( LANG(?LabelL2)="en" )
?typeL3 rdfs:label ?LabelL3. FILTER( LANG(?LabelL3)="en" )
BIND(concat(str(?LabelL3), " > ", str(?LabelL2), " > ", str(?LabelL1)) as ?taxonomy_tree_levels)
SERVICE wikibase:label {bd:serviceParam wikibase:language "es","en" .}
}
CSV con todos las taxonomy tree de cada item del Universo de Harry Potter edit
SELECT ?item ?taxonomy_tree_up
WHERE
{
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31 ?type. # type of instance
?type rdfs:label ?Label. FILTER( LANG(?Label)="en" )
?type wdt:P279 ?typeL2. # type of instance
?typeL2 wdt:P279 ?typeL3. # type of instance
?typeL3 wdt:P279 ?typeL4. # type of instance
?typeL2 rdfs:label ?LabelL2. FILTER( LANG(?LabelL2)="en" )
?typeL3 rdfs:label ?LabelL3. FILTER( LANG(?LabelL3)="en" )
BIND(concat(str(?Label), ",", str(?LabelL2), ",", str(?LabelL3)) as ?taxonomy_tree_up)
}
Generación de fichero RIS para VOSviewer edit
Genera los campos TY (Tipo), ID, KW (tres veces) y ER (Final de registro) en formato RIS. Luego solo queda separar cada campo en líneas separadas.
SELECT ?ty ?id ?kw1 ?kw2 ?kw3 ?er
WHERE
{
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31 ?type. # type of instance
?type rdfs:label ?Label. FILTER( LANG(?Label)="en" )
?type wdt:P279 ?typeL2. # type of instance
?typeL2 wdt:P279 ?typeL3. # type of instance
?typeL3 wdt:P279 ?typeL4. # type of instance
?typeL2 rdfs:label ?LabelL2. FILTER( LANG(?LabelL2)="en" )
?typeL3 rdfs:label ?LabelL3. FILTER( LANG(?LabelL3)="en" )
BIND(concat(str(?Label), ",", str(?LabelL2), ",", str(?LabelL3)) as ?taxonomy_tree_up)
BIND("TY - CASE" AS ?ty)
BIND(concat("ID - ", str(?item)) AS ?id)
BIND(concat("KW - ", ?Label) AS ?kw1)
BIND(concat("KW - ", ?LabelL2) AS ?kw2)
BIND(concat("KW - ", ?LabelL3) AS ?kw3)
BIND("ER - " AS ?er)
}
Objetos, excluyendo items que también son organizaciones edit
SELECT ?item ?itemLabel ?claseLabel
WHERE {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31 ?clase .
?clase wdt:P279* wd:Q23010327 . # Grupo de objetos de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q15796005 } . # No lugar de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q14623646 } . # No organización de ficción
MINUS {?item wdt:P31/wdt:P279* wd:Q95074 } . # No personaje de ficción
SERVICE wikibase:label {bd:serviceParam wikibase:language "es,en".}
}
Con subquery edit
Antes también he probado usando subquery, que se ejectuta primero, localizamos todas las organizaciones, y las excluimos de la consulta principal por objetos.
SELECT ?item2 ?item2Label
WHERE {
?item2 wdt:P1080 wd:Q5410773 .
?item2 wdt:P31 ?clase2 .
?clase2 wdt:P279* wd:Q15706911 . # Objeto de ficción
filter(?item2 = ?item)
{
# subquery to seleccionar los que son organizaciones
SELECT distinct ?item WHERE {
?item wdt:P1080 wd:Q5410773 .
?item wdt:P31 ?clase .
?clase wdt:P279* wd:Q14623646 . # Organización de ficción
}
}
SERVICE wikibase:label {bd:serviceParam wikibase:language "es,en".}
}