« Project:SPARQL query service/examples » : différence entre les versions

De Référentiels d’autorité Biblissima
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 3 : Ligne 3 :
Cette page liste des exemples de requêtes SPARQL permettant d'interroger en profondeur les données RDF des Référentiels Biblissima. Chaque requête peut être lancée en cliquant sur le lien "Try it!" qui ouvre une interface de requête dédiée et outillée.
Cette page liste des exemples de requêtes SPARQL permettant d'interroger en profondeur les données RDF des Référentiels Biblissima. Chaque requête peut être lancée en cliquant sur le lien "Try it!" qui ouvre une interface de requête dédiée et outillée.


=== Requêtes d'exploration ===
=== Requêtes générales ===


==== Vue globale des types d'entités ====
==== Vue globale des types d'entités ====
Ligne 36 : Ligne 36 :




==== Lieux (liste complète) ====


=== Manuscrits détruits ===
{{SPARQL
|project=bbma
|query=
 
SELECT ?entity ?entityLabel ?categoryLabel ?countryLabel ?typeLabel ?idBbma
WHERE
{
  ?entity wdt:P2 wd:Q26719 .
  #wd:P129 wdt:P108 ?formatterUrl .
  OPTIONAL {
    ?type wdt:P2 wd:Q26718 .
    ?entity wdt:P2 ?type .
  }
  OPTIONAL { ?entity wdt:P172 ?country }
  OPTIONAL { ?entity wdt:P169 ?category }
  OPTIONAL { ?entity wdt:P129 ?idBbma }
  # BIND(IRI(REPLACE(?idBbma, '^(.+)$', ?formatterUrl)) AS ?url).
  # (URI(REPLACE(?p1630,'\\$1',?id)) AS ?url)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
ORDER BY ?entityLabel
}}
 
==== Lieux géolocalisés (carte) ====
 
{{SPARQL
|project=bbma
|query=
 
#defaultView:Map
SELECT ?entity ?entityLabel ?coord
WHERE
{
  ?entity wdt:P2 wd:Q26719 ;
          p:P276 ?coordinate .
  ?coordinate ps:P276 ?coord .
  ?coordinate psv:P276 ?coordinate_node .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
}}
 
==== Personnes physiques (liste complète) ====
 
{{SPARQL
|project=bbma
|query=
SELECT ?entity ?entityLabel ?sexLabel (year(?dateBirth) as ?YearBirth) (year(?dateDeath) as ?YearDeath) ?idBbma
WHERE
{
  ?entity wdt:P2 wd:Q168 ;
  OPTIONAL { ?entity wdt:P95 ?sex }
  OPTIONAL { ?entity wdt:P57 ?dateBirth }
  OPTIONAL { ?entity wdt:P62 ?dateDeath }
  OPTIONAL { ?entity wdt:P129 ?idBbma }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
ORDER BY ?entityLabel
}}
 
==== Organisations (liste complète) ====
 
{{SPARQL
|project=bbma
|query=
SELECT ?entity ?entityLabel ?placeLabel ?idBbma
WHERE
{
  ?entity wdt:P2 wd:Q167 ;
  OPTIONAL { ?entity wdt:P201 ?place }
  OPTIONAL { ?entity wdt:P129 ?idBbma }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
ORDER BY ?entityLabel
}}
 
Variante avec GROUP_CONCAT pour gérer les lignes dupliquées (car deux localisations possibles pour la même entité : ex. Q80035 et Q81293)
 
{{SPARQL
|project=bbma
|query=
 
SELECT ?entity ?entityLabel (GROUP_CONCAT(DISTINCT(?place); separator=", ") AS ?places) (GROUP_CONCAT(DISTINCT(?label); separator=", ") AS ?place_labels) ?idBbma
WHERE
{
  ?entity wdt:P2 wd:Q167 .
  OPTIONAL { ?entity wdt:P201 ?place }
  OPTIONAL { ?entity wdt:P129 ?idBbma }
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "fr".
    ?place rdfs:label ?label .
  }
}
GROUP BY ?entity ?entityLabel ?idBbma
ORDER BY ?entityLabel
}}
 
==== Manuscrits (liste complète) ====
 
{{SPARQL
|project=bbma
|query=
SELECT ?entity ?entityLabel ?digitUrl ?manifestUrl ?idBbma
WHERE
{
  ?entity wdt:P2 wd:Q32810 ;
          wdt:P195 ?shelfmark .
  OPTIONAL { ?entity wdt:P197 ?digitUrl }
  OPTIONAL { ?entity wdt:P196 ?manifestUrl }
  #OPTIONAL { ?entity wdt:P194 ?collection }
  OPTIONAL { ?entity wdt:P129 ?idBbma }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
ORDER BY ?entityLabel
}}
 
==== Manuscrits (répartition par bibliothèque) ====
 
{{SPARQL
|project=bbma
|query=
#defaultView:BubbleChart
SELECT ?collectionLabel (COUNT(?entity) AS ?count)
WHERE
{
  { ?entity wdt:P2 wd:Q32810 } UNION { ?entity wdt:P2 wd:Q113619 }
  ?entity wdt:P194 ?collection .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
GROUP BY ?collectionLabel
ORDER BY ?count
}}
 
==== Manuscrits numérisés (répartition par bibnum) ====
 
{{SPARQL
|project=bbma
|query=
#defaultView:BubbleChart
SELECT ?digital_library (COUNT(?entity) AS ?number_of_digitized_objects)
WHERE
{
  { ?entity wdt:P2 wd:Q32810 } UNION { ?entity wdt:P2 wd:Q113619 }
  ?entity p:P197 ?digiStmt .
  ?digiStmt ps:P197 ?digitUrl ;
            pq:P191 ?digiLib .
 
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "fr".
    ?digiLib rdfs:label ?digital_library .
  }
}
GROUP BY ?digital_library
}}
 
==== Bibliothèques numériques IIIF ====
 
{{SPARQL
|project=bbma
|query=
 
SELECT ?entity ?entityLabel (GROUP_CONCAT(DISTINCT(?operatorLabel); separator="; ") AS ?institution) ?website ?licenseLabel ?iiifcollectionUrl ?seeAlsoFormat
WHERE
{
  ?entity wdt:P2 wd:Q32805 ;
          wdt:P193 wd:Q32808 .
  OPTIONAL { ?entity wdt:P200 ?operator }
  OPTIONAL { ?entity wdt:P188 ?website }
  OPTIONAL { ?entity wdt:P187 ?license }
  OPTIONAL { ?entity wdt:P189 ?iiifcollectionUrl }
  OPTIONAL { ?entity wdt:P192 ?seeAlsoFormat }
  #FILTER EXISTS { ?entity wdt:P193 wd:Q32808 }
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "fr" .
    ?operator rdfs:label ?operatorLabel .
    ?entity rdfs:label ?entityLabel .
    ?license rdfs:label ?licenseLabel .
  }
}
GROUP BY ?entity ?entityLabel ?website ?licenseLabel ?iiifcollectionUrl ?seeAlsoFormat
ORDER BY ?institution
}}
 
=== Requêtes spécifiques ===
 
 
==== Personnes avec 2 ID bbma ====
 
{{SPARQL
|project=bbma
|query=
SELECT ?entity ?entityLabel (count(?idBbma) as ?id)
WHERE
{
  ?entity wdt:P2 wd:Q168 ;
          wdt:P129 ?idBbma .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
GROUP BY ?entity ?entityLabel ?id
HAVING (?id > 1)
}}
 
==== Organisations avec RCR et disposant de moins de 20 cotes ====
 
{{SPARQL
|project=bbma
|query=
SELECT ?org ?orgLabel ?placeLabel (count(?item) as ?count)
WHERE
{
  { ?item wdt:P2 wd:Q32810 } UNION { ?item wdt:P2 wd:Q113619 }
  ?item wdt:P194 ?org .
  ?org wdt:P2 wd:Q167 ;
      wdt:P201 ?place ;
      wdt:P202 ?rcr .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
GROUP BY ?org ?orgLabel ?placeLabel
HAVING (?count < 20)
ORDER BY ?orgLabel
 
}}
 
==== Manuscrits détruits ====


{{SPARQL
{{SPARQL
Ligne 51 : Ligne 274 :
   SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
   SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
}
}}
}}


=== Entités alignées vers le catalogue BnF ===
==== Entités alignées vers le catalogue BnF ====


{{SPARQL
{{SPARQL

Version du 15 septembre 2020 à 15:13

Exemples de requêtes SPARQL

Cette page liste des exemples de requêtes SPARQL permettant d'interroger en profondeur les données RDF des Référentiels Biblissima. Chaque requête peut être lancée en cliquant sur le lien "Try it!" qui ouvre une interface de requête dédiée et outillée.

Requêtes générales

Vue globale des types d'entités

SELECT ?label(count(?entity) as ?count)
WHERE {
  VALUES ?filter {
    wd:Q168
    wd:Q26719
    wd:Q32795
    wd:Q167
    wd:Q32810
    wd:Q113619
    wd:Q120865
    wd:Q120869
    wd:Q120868
  }
  {
   ?entity wdt:P2 ?filter .
   ?filter rdfs:label ?label .
  }
  UNION { ?entity wdt:P2 ?label }
  FILTER(LANG(?label) = "fr")
  #SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
GROUP BY ?label
ORDER BY ?count

Try it!


Lieux (liste complète)

SELECT ?entity ?entityLabel ?categoryLabel ?countryLabel ?typeLabel ?idBbma
WHERE
{
  ?entity wdt:P2 wd:Q26719 .
  #wd:P129 wdt:P108 ?formatterUrl .
  OPTIONAL {
     ?type wdt:P2 wd:Q26718 .
     ?entity wdt:P2 ?type .
  }
  OPTIONAL { ?entity wdt:P172 ?country }
  OPTIONAL { ?entity wdt:P169 ?category }
  OPTIONAL { ?entity wdt:P129 ?idBbma }
  # BIND(IRI(REPLACE(?idBbma, '^(.+)$', ?formatterUrl)) AS ?url).
  # (URI(REPLACE(?p1630,'\\$1',?id)) AS ?url)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
ORDER BY ?entityLabel

Try it!

Lieux géolocalisés (carte)

#defaultView:Map
SELECT ?entity ?entityLabel ?coord
WHERE
{
  ?entity wdt:P2 wd:Q26719 ;
          p:P276 ?coordinate .
  ?coordinate ps:P276 ?coord .
  ?coordinate psv:P276 ?coordinate_node .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}

Try it!

Personnes physiques (liste complète)

SELECT ?entity ?entityLabel ?sexLabel (year(?dateBirth) as ?YearBirth) (year(?dateDeath) as ?YearDeath) ?idBbma
WHERE
{
  ?entity wdt:P2 wd:Q168 ;
  OPTIONAL { ?entity wdt:P95 ?sex }
  OPTIONAL { ?entity wdt:P57 ?dateBirth }
  OPTIONAL { ?entity wdt:P62 ?dateDeath }
  OPTIONAL { ?entity wdt:P129 ?idBbma }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
ORDER BY ?entityLabel

Try it!

Organisations (liste complète)

SELECT ?entity ?entityLabel ?placeLabel ?idBbma
WHERE
{
  ?entity wdt:P2 wd:Q167 ;
  OPTIONAL { ?entity wdt:P201 ?place }
  OPTIONAL { ?entity wdt:P129 ?idBbma }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
ORDER BY ?entityLabel

Try it!

Variante avec GROUP_CONCAT pour gérer les lignes dupliquées (car deux localisations possibles pour la même entité : ex. Q80035 et Q81293)

SELECT ?entity ?entityLabel (GROUP_CONCAT(DISTINCT(?place); separator=", ") AS ?places) (GROUP_CONCAT(DISTINCT(?label); separator=", ") AS ?place_labels) ?idBbma
WHERE
{
  ?entity wdt:P2 wd:Q167 .
  OPTIONAL { ?entity wdt:P201 ?place }
  OPTIONAL { ?entity wdt:P129 ?idBbma }
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "fr".
    ?place rdfs:label ?label .
  }
}
GROUP BY ?entity ?entityLabel ?idBbma
ORDER BY ?entityLabel

Try it!

Manuscrits (liste complète)

SELECT ?entity ?entityLabel ?digitUrl ?manifestUrl ?idBbma
WHERE
{
  ?entity wdt:P2 wd:Q32810 ;
          wdt:P195 ?shelfmark .
  OPTIONAL { ?entity wdt:P197 ?digitUrl }
  OPTIONAL { ?entity wdt:P196 ?manifestUrl }
  #OPTIONAL { ?entity wdt:P194 ?collection }
  OPTIONAL { ?entity wdt:P129 ?idBbma }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
ORDER BY ?entityLabel

Try it!

Manuscrits (répartition par bibliothèque)

#defaultView:BubbleChart
SELECT ?collectionLabel (COUNT(?entity) AS ?count)
WHERE
{
  { ?entity wdt:P2 wd:Q32810 } UNION { ?entity wdt:P2 wd:Q113619 }
  ?entity wdt:P194 ?collection .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
GROUP BY ?collectionLabel
ORDER BY ?count

Try it!

Manuscrits numérisés (répartition par bibnum)

#defaultView:BubbleChart
SELECT ?digital_library (COUNT(?entity) AS ?number_of_digitized_objects)
WHERE
{
  { ?entity wdt:P2 wd:Q32810 } UNION { ?entity wdt:P2 wd:Q113619 }
  ?entity p:P197 ?digiStmt .
  ?digiStmt ps:P197 ?digitUrl ;
            pq:P191 ?digiLib .
  
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "fr".
    ?digiLib rdfs:label ?digital_library .
  }
}
GROUP BY ?digital_library

Try it!

Bibliothèques numériques IIIF

SELECT ?entity ?entityLabel (GROUP_CONCAT(DISTINCT(?operatorLabel); separator="; ") AS ?institution) ?website ?licenseLabel ?iiifcollectionUrl ?seeAlsoFormat
WHERE
{
  ?entity wdt:P2 wd:Q32805 ;
          wdt:P193 wd:Q32808 .
  OPTIONAL { ?entity wdt:P200 ?operator }
  OPTIONAL { ?entity wdt:P188 ?website }
  OPTIONAL { ?entity wdt:P187 ?license }
  OPTIONAL { ?entity wdt:P189 ?iiifcollectionUrl }
  OPTIONAL { ?entity wdt:P192 ?seeAlsoFormat }
  #FILTER EXISTS { ?entity wdt:P193 wd:Q32808 }
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "fr" .
    ?operator rdfs:label ?operatorLabel .
    ?entity rdfs:label ?entityLabel .
    ?license rdfs:label ?licenseLabel .
  }
}
GROUP BY ?entity ?entityLabel ?website ?licenseLabel ?iiifcollectionUrl ?seeAlsoFormat
ORDER BY ?institution

Try it!

Requêtes spécifiques

Personnes avec 2 ID bbma

SELECT ?entity ?entityLabel (count(?idBbma) as ?id)
WHERE
{
  ?entity wdt:P2 wd:Q168 ;
          wdt:P129 ?idBbma .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
GROUP BY ?entity ?entityLabel ?id
HAVING (?id > 1)

Try it!

Organisations avec RCR et disposant de moins de 20 cotes

SELECT ?org ?orgLabel ?placeLabel (count(?item) as ?count)
WHERE
{
  { ?item wdt:P2 wd:Q32810 } UNION { ?item wdt:P2 wd:Q113619 }
  ?item wdt:P194 ?org .
  ?org wdt:P2 wd:Q167 ;
       wdt:P201 ?place ;
       wdt:P202 ?rcr .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}
GROUP BY ?org ?orgLabel ?placeLabel
HAVING (?count < 20)
ORDER BY ?orgLabel

Try it!

Manuscrits détruits

SELECT ?item ?itemLabel
WHERE
{
  ?item p:P2 [
        ps:P2 wd:Q32810 ;
        pq:P281 wd:Q120866
  ] .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}

Try it!

Entités alignées vers le catalogue BnF

SELECT ?entity ?bnfId ?bnfUri ?entityLabel
WHERE {
  ?entity wdt:P109 ?bnfId .
  wd:P109 wdt:P108 ?formatterUrl .
  BIND(IRI(REPLACE(?bnfId, '^(.+)$', ?formatterUrl)) AS ?bnfUri).
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}

Try it!