Requetes sparql: Difference between revisions
| (9 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
= Quelques définitions = | = Quelques définitions = | ||
* Label : | * Label : Nom donné à une entité (item) ou à une propriété. | ||
* | * Entité : Appelée « item » dans les requêtes. Représente une personne, un lieu, une langue ou un concept auquel on associe des informations. | ||
* | * QID : Identifiant unique permettant de reconnaître une entité sans dépendre de son label. | ||
* Propriété : Type de relation ou | * Propriété : Type de relation ou caractéristique utilisée pour décrire une entité. | ||
* | * PID : Identifiant unique permettant de reconnaître une propriété sans dépendre de son label. | ||
* Requête SPARQL : Permet | * Requête SPARQL : Permet d’interroger des données en utilisant des relations entre entités et propriétés. | ||
=== Dans les requêtes SPARQL === | |||
* SELECT : Permet de choisir les informations (variables) que l’on veut afficher dans le résultat. | |||
* WHERE : Contient les conditions de la requête (les relations entre entités et propriétés). | |||
* ?variable : Une variable représente une valeur inconnue que l’on cherche à récupérer. | |||
* wd : Préfixe utilisé pour désigner les entités (items). | |||
* wdt : Préfixe utilisé pour désigner les propriétés. | |||
* GROUP BY : Permet de regrouper les résultats selon certaines valeurs. | |||
* HAVING : Permet de filtrer les résultats après un GROUP BY. | |||
* FILTER : Permet de filtrer les résultats selon certaines conditions. | |||
* FILTER NOT EXISTS : Permet de garder uniquement les résultats pour lesquels une condition n’existe pas. | |||
* ORDER BY : Trier les résultats | |||
** ASC : Trier les résultats par ordre croissant (de A à Z, de 1 à 9). | |||
** DESC : Trier les résultats par ordre décroissant (de Z à A, de 9 à 1). | |||
* UNION : Permet de combiner plusieurs conditions, équivalent de "ou". | |||
* OPTIONAL : Permet d’inclure une information si elle existe, sans exclure le résultat si elle est absente. | |||
* LIMIT : Définir le nombre de résultats à afficher. | |||
* DISTINCT : Permet de supprimer les doublons dans les résultats. | |||
* COUNT : Permet de compter le nombre de résultats. | |||
=== Convention de nommage des variables === | |||
* ?item : Représente une entité, identifiée par une URI dans la Wikibase. | |||
* ?itemLabel : Le nom (label) de l’entité, lisible par un humain. | |||
* ?propriete : Représente une propriété utilisée dans une relation, identifiée par une URI dans la Wikibase. | |||
* ?proprieteLabel : Le nom (label) de la propriété. | |||
* ?valeur : La valeur associée à une propriété pour une entité. Cette valeur peut être une entité ou une donnée (texte, date, nombre, etc.). | |||
* ?valeurLabel : Le nom (label) de cette valeur si elle est une entité. | |||
Remarque : Les noms des variables sont libres, mais ces conventions sont couramment utilisées pour faciliter la lecture des requêtes. | |||
= Requêtes SPARQL de base = | = Requêtes SPARQL de base = | ||
| Line 14: | Line 48: | ||
Récupère toutes les entités avec leur label français et anglais. | Récupère toutes les entités avec leur label français et anglais. | ||
<sparql tryit="1" title="Toutes les | <sparql tryit="1" title="Toutes les entités"> | ||
SELECT ?itemLabel ?item | SELECT ?itemLabel ?item | ||
WHERE { | WHERE { | ||
# Les entités (?item) qui possèdent au moins un lien vers le Wikibase | |||
?item wikibase:sitelinks [] . | ?item wikibase:sitelinks [] . | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
| Line 31: | Line 66: | ||
WHERE { | WHERE { | ||
?propriete a wikibase:Property . | ?propriete a wikibase:Property . | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
| Line 38: | Line 73: | ||
== Rechercher par propriétés == | == Rechercher par propriétés == | ||
Récupère les entités possédant une propriété précise (ex. : P1 – nature de l’élément) et indiquer l’entité associée à cette propriété. | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 45: | Line 80: | ||
WHERE { | WHERE { | ||
?item wdt:P1 ?valeur . | ?item wdt:P1 ?valeur . | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
</sparql> | </sparql> | ||
Récupère toutes les propriétés d'une entité précise (ex : Q1000 - Thomas Arthus). | Récupère toutes les propriétés d'une entité précise (ex : Q1000 - Thomas Arthus). | ||
<sparql tryit="1"> | <sparql tryit="1"> | ||
SELECT ?propriete ?proprieteLabel ?valeur ?valeurLabel | SELECT ?propriete ?proprieteLabel ?valeur ?valeurLabel | ||
WHERE { | WHERE { | ||
| Line 62: | Line 100: | ||
FILTER(STRSTARTS(STR(?propriete), STR(wdt:))) | FILTER(STRSTARTS(STR(?propriete), STR(wdt:))) | ||
# Récupère le label | # Récupère le label en français | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". ?propEntite rdfs:label ?proprieteLabel . | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". ?propEntite rdfs:label ?proprieteLabel . | ||
} | } | ||
| Line 73: | Line 111: | ||
GROUP BY ?propriete ?proprieteLabel ?valeur ?valeurLabel | GROUP BY ?propriete ?proprieteLabel ?valeur ?valeurLabel | ||
ORDER BY ?proprieteLabel | ORDER BY ?proprieteLabel | ||
</sparql> | </sparql> | ||
Récupère les items possédant simultanément plusieurs propriétés (ex : P58 - identifiant data.biblissima, P86 - identifiant GeoNames). | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 83: | Line 122: | ||
?item wdt:P58 ?valeur1 . | ?item wdt:P58 ?valeur1 . | ||
?item wdt:P86 ?valeur2 . | ?item wdt:P86 ?valeur2 . | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
</sparql> | </sparql> | ||
Récupère les items possédant au moins une des propriétés spécifiées (ex : P58 - identifiant data.biblissima, P86 - identifiant GeoNames. | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 96: | Line 135: | ||
UNION | UNION | ||
{ ?item wdt:P5 ?valeur . } | { ?item wdt:P5 ?valeur . } | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | |||
} | |||
</sparql> | |||
Récupère les items associés à une propriété (ex : P10 sexe et genre). | |||
<sparql tryit="1"> | |||
SELECT ?valeurLabel ?valeur | |||
WHERE { | |||
?item wdt:P10 ?valeur . | |||
# Récupère le label en français, anglais | |||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
GROUP BY ?valeurLabel ?valeur | |||
</sparql> | </sparql> | ||
== Recherche par label == | == Recherche par label == | ||
Trouve une entité à partir de son nom (ex : Châteauroux (Indre, France)). Attention, le label doit être identique, sensible à la casse. | Trouve une entité à partir de son nom (ex : Châteauroux (Indre, France)). Attention, le label doit être identique, sensible à la casse. | ||
| Line 109: | Line 162: | ||
WHERE { | WHERE { | ||
?item rdfs:label "Châteauroux (Indre, France)"@fr . | ?item rdfs:label "Châteauroux (Indre, France)"@fr . | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
| Line 120: | Line 173: | ||
WHERE { | WHERE { | ||
?propriete rdfs:label "date de naissance"@fr . | ?propriete rdfs:label "date de naissance"@fr . | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
} | } | ||
| Line 129: | Line 182: | ||
== Compter le nombre d'entités == | == Compter le nombre d'entités == | ||
Récupère le nombre d'entités possédant une propriété précise (ex : P1 - nature de l'élément). Trier par ordre décroissant. | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 135: | Line 188: | ||
WHERE { | WHERE { | ||
?item wdt:P1 ?valeur . | ?item wdt:P1 ?valeur . | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
| Line 143: | Line 196: | ||
</sparql> | </sparql> | ||
Principales entitées | |||
<sparql tryit="1"> | |||
SELECT ?Categorie (COUNT(?item) AS ?Nombre) | |||
WHERE { | |||
VALUES (?type ?Categorie) { | |||
(wd:Q6 "Personnes") | |||
(wd:Q7 "Collectivitées") | |||
(wd:Q8 "Familles") | |||
(wd:Q2 "Lieux") | |||
} | |||
?item wdt:P1 ?type . | |||
} | |||
GROUP BY ?Categorie | |||
</sparql> | |||
Récupère le nombre d'occurrences par propriété. | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 158: | Line 228: | ||
= Requêtes SPARQL avec des filtres = | = Requêtes SPARQL avec des filtres = | ||
== Recherche avec | == Recherche avec un ou plusieurs lettres == | ||
Récupère les entités commençant par une ou plusieurs lettres dans une langue précise (ex :"an", en français). | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 172: | Line 242: | ||
</sparql> | </sparql> | ||
Récupère les entités qui contiennent une ou plusieurs lettres dans une langue précise (ex :"z", en français). | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 185: | Line 255: | ||
</sparql> | </sparql> | ||
Récupère les entités finissant par une ou plusieurs lettres dans une langue précise (ex : "an", en français). | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 194: | Line 264: | ||
# Filtre sur la langue | # Filtre sur la langue | ||
FILTER(LANG(?itemLabel) = "fr") | FILTER(LANG(?itemLabel) = "fr") | ||
} | |||
</sparql> | |||
== Recherche par propriété et valeur de cette propriété == | |||
Récupère les entités qui présentent une valeur précise (ici P29 = Q3691 soit Langue d'expression = Grec ancien)<sparql tryit="1"> | |||
SELECT ?item ?itemLabel ?valeurLabel | |||
WHERE { | |||
?item wdt:P29 wd:Q3691 . | |||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | |||
} | |||
</sparql> | |||
Récupère les entités qui possèdent une propriété dont la valeur ne dépasse pas la longueur définie (ici IDREF avec moins de 9 caractères)<sparql tryit="1"> | |||
SELECT DISTINCT ?entity ?p61Value WHERE { | |||
?entity wdt:P63 ?p61Value . | |||
FILTER(STRLEN(STR(?p61Value)) < 9) | |||
} | } | ||
</sparql> | </sparql> | ||
| Line 199: | Line 287: | ||
== Entités par nombre de propriétés == | == Entités par nombre de propriétés == | ||
Récupère les entités qui contiennent un nombre minimum de propriétés. (ex : 3). | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 207: | Line 295: | ||
?item ?propriete ?valeur . | ?item ?propriete ?valeur . | ||
FILTER(STRSTARTS(STR(?propriete), STR(wdt:))) | FILTER(STRSTARTS(STR(?propriete), STR(wdt:))) | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
| Line 215: | Line 303: | ||
</sparql> | </sparql> | ||
Récupère les entités qui contiennent un certain nombre de propriétés. (ex : 2). | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 223: | Line 311: | ||
?item ?propriete ?valeur . | ?item ?propriete ?valeur . | ||
FILTER(STRSTARTS(STR(?propriete), STR(wdt:))) | FILTER(STRSTARTS(STR(?propriete), STR(wdt:))) | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
| Line 231: | Line 319: | ||
</sparql> | </sparql> | ||
Récupère les entités qui contiennent un nombre maximum (ou égal) de propriétés. (ex : 6). | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 239: | Line 327: | ||
?item ?propriete ?valeur . | ?item ?propriete ?valeur . | ||
FILTER(STRSTARTS(STR(?propriete), STR(wdt:))) | FILTER(STRSTARTS(STR(?propriete), STR(wdt:))) | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
| Line 265: | Line 353: | ||
?propriete wikibase:qualifier ?propQual . | ?propriete wikibase:qualifier ?propQual . | ||
} | } | ||
# Récupère le label | # Récupère le label en français, anglais | ||
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". } | ||
} | } | ||
| Line 313: | Line 401: | ||
== Label en double == | == Label en double == | ||
Récupère les entités qui partagent exactement le même label dans une langue précise pour détecter les saisies en double. Attention, cela cumule les entités et les propriétés. | |||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 345: | Line 433: | ||
== Entités sans aucun identifiant externe == | == Entités sans aucun identifiant externe == | ||
Afficher les items (ayant | Afficher les items (ayant pour nature de l'élément agent et personne) qui ne possèdent pas ces identifiants externes (ex : Biblissima). | ||
<sparql tryit="1"> | <sparql tryit="1"> | ||
| Line 364: | Line 452: | ||
</sparql> | </sparql> | ||
Afficher les items (ayant | Afficher les items (ayant pour nature de l'élément agent et personne) qui ne possèdent aucun des 37 identifiants externes référencés. | ||
<sparql tryit="1"> | <sparql tryit="1"> | ||
Latest revision as of 07:43, 20 May 2026
Quelques définitions
- Label : Nom donné à une entité (item) ou à une propriété.
- Entité : Appelée « item » dans les requêtes. Représente une personne, un lieu, une langue ou un concept auquel on associe des informations.
- QID : Identifiant unique permettant de reconnaître une entité sans dépendre de son label.
- Propriété : Type de relation ou caractéristique utilisée pour décrire une entité.
- PID : Identifiant unique permettant de reconnaître une propriété sans dépendre de son label.
- Requête SPARQL : Permet d’interroger des données en utilisant des relations entre entités et propriétés.
Dans les requêtes SPARQL
- SELECT : Permet de choisir les informations (variables) que l’on veut afficher dans le résultat.
- WHERE : Contient les conditions de la requête (les relations entre entités et propriétés).
- ?variable : Une variable représente une valeur inconnue que l’on cherche à récupérer.
- wd : Préfixe utilisé pour désigner les entités (items).
- wdt : Préfixe utilisé pour désigner les propriétés.
- GROUP BY : Permet de regrouper les résultats selon certaines valeurs.
- HAVING : Permet de filtrer les résultats après un GROUP BY.
- FILTER : Permet de filtrer les résultats selon certaines conditions.
- FILTER NOT EXISTS : Permet de garder uniquement les résultats pour lesquels une condition n’existe pas.
- ORDER BY : Trier les résultats
- ASC : Trier les résultats par ordre croissant (de A à Z, de 1 à 9).
- DESC : Trier les résultats par ordre décroissant (de Z à A, de 9 à 1).
- UNION : Permet de combiner plusieurs conditions, équivalent de "ou".
- OPTIONAL : Permet d’inclure une information si elle existe, sans exclure le résultat si elle est absente.
- LIMIT : Définir le nombre de résultats à afficher.
- DISTINCT : Permet de supprimer les doublons dans les résultats.
- COUNT : Permet de compter le nombre de résultats.
Convention de nommage des variables
- ?item : Représente une entité, identifiée par une URI dans la Wikibase.
- ?itemLabel : Le nom (label) de l’entité, lisible par un humain.
- ?propriete : Représente une propriété utilisée dans une relation, identifiée par une URI dans la Wikibase.
- ?proprieteLabel : Le nom (label) de la propriété.
- ?valeur : La valeur associée à une propriété pour une entité. Cette valeur peut être une entité ou une donnée (texte, date, nombre, etc.).
- ?valeurLabel : Le nom (label) de cette valeur si elle est une entité.
Remarque : Les noms des variables sont libres, mais ces conventions sont couramment utilisées pour faciliter la lecture des requêtes.
Requêtes SPARQL de base
Lister toutes les entités ou propriétés
Récupère toutes les entités avec leur label français et anglais.
SELECT ?itemLabel ?item
WHERE {
# Les entités (?item) qui possèdent au moins un lien vers le Wikibase
?item wikibase:sitelinks [] .
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
Récupère toutes les propriétés avec leur label français et anglais.
SELECT ?proprieteLabel ?propriete
WHERE {
?propriete a wikibase:Property .
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
Rechercher par propriétés
Récupère les entités possédant une propriété précise (ex. : P1 – nature de l’élément) et indiquer l’entité associée à cette propriété.
SELECT ?item ?itemLabel ?valeurLabel ?valeur
WHERE {
?item wdt:P1 ?valeur .
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
Récupère toutes les propriétés d'une entité précise (ex : Q1000 - Thomas Arthus).
SELECT ?propriete ?proprieteLabel ?valeur ?valeurLabel
WHERE {
wd:Q1000 ?propriete ?valeur .
# Relie l'URI de la propriété à son entité pour pouvoir récupérer son label
?propEntite wikibase:directClaim ?propriete .
# Garde uniquement les propriétés définies dans la Wikibase
FILTER(STRSTARTS(STR(?propriete), STR(wdt:)))
# Récupère le label en français
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". ?propEntite rdfs:label ?proprieteLabel .
}
# Si la valeur est un item, récupère son label en français
OPTIONAL {
?valeur rdfs:label ?valeurLabel .
FILTER(LANG(?valeurLabel) IN ("fr"))
}
}
GROUP BY ?propriete ?proprieteLabel ?valeur ?valeurLabel
ORDER BY ?proprieteLabel
Récupère les items possédant simultanément plusieurs propriétés (ex : P58 - identifiant data.biblissima, P86 - identifiant GeoNames).
SELECT DISTINCT ?itemLabel ?item
WHERE {
?item wdt:P58 ?valeur1 .
?item wdt:P86 ?valeur2 .
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
Récupère les items possédant au moins une des propriétés spécifiées (ex : P58 - identifiant data.biblissima, P86 - identifiant GeoNames.
SELECT ?itemLabel ?item
WHERE {
{ ?item wdt:P1 ?valeur . }
UNION
{ ?item wdt:P5 ?valeur . }
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
Récupère les items associés à une propriété (ex : P10 sexe et genre).
SELECT ?valeurLabel ?valeur
WHERE {
?item wdt:P10 ?valeur .
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
GROUP BY ?valeurLabel ?valeur
Recherche par label
Trouve une entité à partir de son nom (ex : Châteauroux (Indre, France)). Attention, le label doit être identique, sensible à la casse.
SELECT ?itemLabel ?item
WHERE {
?item rdfs:label "Châteauroux (Indre, France)"@fr .
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
Trouve une propriété à partir de son nom. Attention, le label doit être identique, sensible à la casse.
SELECT ?proprieteLabel ?propriete
WHERE {
?propriete rdfs:label "date de naissance"@fr .
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
}
Requêtes SPARQL pour des statistiques
Compter le nombre d'entités
Récupère le nombre d'entités possédant une propriété précise (ex : P1 - nature de l'élément). Trier par ordre décroissant.
SELECT (COUNT(?item) AS ?nombre) ?valeurLabel ?valeur
WHERE {
?item wdt:P1 ?valeur .
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
GROUP BY ?valeur ?valeurLabel
# Ordre décroissant DESC | ordre croissant ASC
ORDER BY DESC(?nombre)
Principales entitées
SELECT ?Categorie (COUNT(?item) AS ?Nombre)
WHERE {
VALUES (?type ?Categorie) {
(wd:Q6 "Personnes")
(wd:Q7 "Collectivitées")
(wd:Q8 "Familles")
(wd:Q2 "Lieux")
}
?item wdt:P1 ?type .
}
GROUP BY ?Categorie
Récupère le nombre d'occurrences par propriété.
SELECT (COUNT(*) AS ?count) ?proprieteLabel ?propriete
WHERE {
?item ?prop ?valeur .
?propriete wikibase:directClaim ?prop .
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
GROUP BY ?propriete ?proprieteLabel
ORDER BY DESC(?count)
Requêtes SPARQL avec des filtres
Recherche avec un ou plusieurs lettres
Récupère les entités commençant par une ou plusieurs lettres dans une langue précise (ex :"an", en français).
SELECT ?itemLabel ?item
WHERE {
?item rdfs:label ?itemLabel .
FILTER(STRSTARTS(LCASE(?itemLabel), "an"))
# Filtre sur la langue
FILTER(LANG(?itemLabel) = "fr")
}
Récupère les entités qui contiennent une ou plusieurs lettres dans une langue précise (ex :"z", en français).
SELECT ?itemLabel ?item
WHERE {
?item rdfs:label ?itemLabel .
# Changer la lettre entre les points
FILTER(CONTAINS(LCASE(?itemLabel), "z"))
# Filtre sur la langue
FILTER(LANG(?itemLabel) = "fr")
}
Récupère les entités finissant par une ou plusieurs lettres dans une langue précise (ex : "an", en français).
SELECT ?itemLabel ?item
WHERE {
?item rdfs:label ?itemLabel .
FILTER(STRENDS(LCASE(?itemLabel), "an"))
# Filtre sur la langue
FILTER(LANG(?itemLabel) = "fr")
}
Recherche par propriété et valeur de cette propriété
Récupère les entités qui présentent une valeur précise (ici P29 = Q3691 soit Langue d'expression = Grec ancien)
SELECT ?item ?itemLabel ?valeurLabel
WHERE {
?item wdt:P29 wd:Q3691 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
Récupère les entités qui possèdent une propriété dont la valeur ne dépasse pas la longueur définie (ici IDREF avec moins de 9 caractères)
SELECT DISTINCT ?entity ?p61Value WHERE {
?entity wdt:P63 ?p61Value .
FILTER(STRLEN(STR(?p61Value)) < 9)
}
Entités par nombre de propriétés
Récupère les entités qui contiennent un nombre minimum de propriétés. (ex : 3).
SELECT (COUNT(?propriete) AS ?nombreProprietes) ?itemLabel ?item
WHERE {
?item wikibase:sitelinks [] .
?item ?propriete ?valeur .
FILTER(STRSTARTS(STR(?propriete), STR(wdt:)))
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
GROUP BY ?item ?itemLabel
HAVING(COUNT(?propriete) < 3)
ORDER BY ASC(?nombreProprietes)
Récupère les entités qui contiennent un certain nombre de propriétés. (ex : 2).
SELECT (COUNT(?propriete) AS ?nombreProprietes) ?itemLabel ?item
WHERE {
?item wikibase:sitelinks [] .
?item ?propriete ?valeur .
FILTER(STRSTARTS(STR(?propriete), STR(wdt:)))
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
GROUP BY ?item ?itemLabel
HAVING(COUNT(?propriete) = 2)
ORDER BY ASC(?nombreProprietes)
Récupère les entités qui contiennent un nombre maximum (ou égal) de propriétés. (ex : 6).
SELECT (COUNT(?propriete) AS ?nombreProprietes) ?itemLabel ?item
WHERE {
?item wikibase:sitelinks [] .
?item ?propriete ?valeur .
FILTER(STRSTARTS(STR(?propriete), STR(wdt:)))
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
GROUP BY ?item ?itemLabel
HAVING(COUNT(?propriete) >= 6)
ORDER BY ASC(?nombreProprietes)
Propriétés qui n'ont aucune entité
Identifie les propriétés qui ne sont associées à aucune entité. Utile pour contrôler la qualité des données et repérer ce qui manque dans la Wikibase.
SELECT ?proprieteLabel ?propriete
WHERE {
?propriete a wikibase:Property .
# Jamais utilisée en tant que propriété directe
FILTER NOT EXISTS {
?item ?prop ?valeur .
?propriete wikibase:directClaim ?prop .
}
# Jamais utilisée en tant que qualificatif
FILTER NOT EXISTS {
?statement ?propQual ?valeurQual .
?propriete wikibase:qualifier ?propQual .
}
# Récupère le label en français, anglais
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
Combinaison de plusieurs propriétés avec une lettre
Récupère les items possédant deux propriétés dont le label commence par une lettre donnée (ex : "b", P58 - identifiant data.biblissima, P86 - identifiant GeoNames, langue française).
SELECT DISTINCT ?itemLabel ?item
WHERE {
?item wdt:P58 ?valeur1 .
?item wdt:P86 ?valeur2 .
?item rdfs:label ?itemLabel .
FILTER(LANG(?itemLabel) = "fr")
FILTER(STRSTARTS(LCASE(?itemLabel), "b"))
}
Récupère les items possédant deux propriétés dont le label contient une lettre donnée (ex : "y",P58 - identifiant data.biblissima, P86 - identifiant GeoNames, langue française).
SELECT DISTINCT ?itemLabel ?item
WHERE {
?item wdt:P58 ?valeur1 .
?item wdt:P86 ?valeur2 .
?item rdfs:label ?itemLabel .
FILTER(LANG(?itemLabel) = "fr")
FILTER(CONTAINS(LCASE(?itemLabel), "y"))
}
Récupère les items possédant deux propriétés dont le label finit par une lettre donnée (ex : "n", P58 - identifiant data.biblissima, P86 - identifiant GeoNames, langue française).
SELECT DISTINCT ?itemLabel ?item
WHERE {
?item wdt:P58 ?valeur1 .
?item wdt:P86 ?valeur2 .
?item rdfs:label ?itemLabel .
FILTER(LANG(?itemLabel) = "fr")
FILTER(STRENDS(LCASE(?itemLabel), "n"))
}
Label en double
Récupère les entités qui partagent exactement le même label dans une langue précise pour détecter les saisies en double. Attention, cela cumule les entités et les propriétés.
SELECT ?label (COUNT(?item) AS ?nombre) (GROUP_CONCAT(?item ; separator=", ") AS ?items)
WHERE {
?item rdfs:label ?label .
FILTER(LANG(?label) = "fr")
}
GROUP BY ?label
HAVING(COUNT(?item) > 1)
ORDER BY DESC(?nombre)
Entités n'ayant pas une propriété
Afficher les items (P1 = Q5) qui ne possèdent pas ces propriétés.
SELECT DISTINCT ?itemLabel ?item
WHERE {
?item wdt:P1 wd:Q5 .
?item rdfs:label ?itemLabel .
FILTER(LANG(?itemLabel) = "fr")
FILTER NOT EXISTS { ?item wdt:P10 ?v . }
}
Entités sans aucun identifiant externe
Afficher les items (ayant pour nature de l'élément agent et personne) qui ne possèdent pas ces identifiants externes (ex : Biblissima).
SELECT DISTINCT ?itemLabel ?item
WHERE {
?item wdt:P1 wd:Q5 .
?item wdt:P1 wd:Q6 .
?item rdfs:label ?itemLabel .
FILTER(LANG(?itemLabel) = "fr")
# Vérifie qu'aucune des propriétés externes n'est présente
FILTER NOT EXISTS {
VALUES ?propExt {
wdt:P58 wdt:P59
}
?item ?propExt ?v .
}
}
Afficher les items (ayant pour nature de l'élément agent et personne) qui ne possèdent aucun des 37 identifiants externes référencés.
SELECT DISTINCT ?itemLabel ?item
WHERE {
?item wdt:P1 wd:Q5 .
?item wdt:P1 wd:Q6 .
?item rdfs:label ?itemLabel .
FILTER(LANG(?itemLabel) = "fr")
# Vérifie qu'aucune des propriétés externes n'est présente
FILTER NOT EXISTS {
VALUES ?propExt {
wdt:P58 wdt:P59 wdt:P60 wdt:P61 wdt:P62 wdt:P63 wdt:P64
wdt:P65 wdt:P66 wdt:P67 wdt:P68 wdt:P69 wdt:P70 wdt:P71
wdt:P72 wdt:P73 wdt:P74 wdt:P75 wdt:P76 wdt:P77 wdt:P78
wdt:P79 wdt:P80 wdt:P81 wdt:P82 wdt:P83 wdt:P84 wdt:P85
wdt:P86 wdt:P87 wdt:P88 wdt:P89 wdt:P90 wdt:P91 wdt:P92
wdt:P93 wdt:P94
}
?item ?propExt ?v .
}
}
