DBpedia_explorer - mroylem/archivist GitHub Wiki

Le point de départ: Wikipédia

Nous utilisons les données de Wikipédia comme source pour ce projet. Comme le montre la page dédiée, nous avons mobilisé différentes listes d’archivistes.


Liste des archivistes par pays

  • Suisse
  • France
  • Belgique
  • Canada
  • Autre
  • Listes des archivistes spécialisés

Requêtes d'exploration

Comme nous traitons principalement d'individu francophone, nous sommes dans l'obligation d'utiliser DBpedia francophone. Les requêtes faites sur le DBpedia anglophone ne fonctionnent tout simplement pas.

Vous trouverez ici, le raccourci pour effectuer les requêtes ici : https://fr.dbpedia.org/sparql


Occupation : Archiviste

Dans un premier temps, nous avons cherché à obtenir une liste des Archivistes présents sur DBpedia.

1ère requête

  • La liste des Archivistes ci-dessous :
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbc: <http://fr.dbpedia.org/resource/Catégorie:>

SELECT DISTINCT ?person ?birthYear ?birthDate 
WHERE
{
{?person dbo:wikiPageWikiLink dbc:Archiviste_suisse}
UNION
{?person dbo:wikiPageWikiLink dbc:Archiviste_francais}
UNION
{?person dbo:wikiPageWikiLink dbc:Archiviste_belge}
UNION
{?person dbo:wikiPageWikiLink dbc:Archiviste_canadien}
UNION
{?person dbo:wikiPageWikiLink dbc:Archiviste_paléographe}

OPTIONAL 
{ 
               ?person dbo:birthDate | dbo:birthYear ?birthDate .
               }
BIND(xsd:integer(SUBSTR(STR(?birthDate), 1, 4)) AS ?birthYear)
}
ORDER BY ?birthYear
  • Cette requête liste 630 archivistes.

  • Malheureusement, certaines personnes n'ont pas leur date de naissance et/ou leur lieu de naissance n'est pas notifié dans la liste. Le plus troublant c'est que, si nous reprenons les listes Wikipédia (raccourci en haut de cette page), nous trouvons toutes ces informations. La requête ne semble pas optimale.

2ème requête

  • Après notre premier échec, nous avons procédé à une nouvelle requête. Nous avons tenté d’obtenir la liste des archivistes, y compris leur URI, leur date de naissance, leurs prénom et nom, ainsi que leur titre. Cela nous a permis d’identifier 110 personnes.
PREFIX dbr: <http://dbpedia.org/resource/> 
PREFIX dbp: <http://dbpedia.org/property/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX dbc: <http://fr.dbpedia.org/resource/Catégorie:>

SELECT (COUNT(*) as  ?effectif )
WHERE
 {
 {?person dbo:wikiPageWikiLink dbc:Archiviste_suisse} 
UNION
 {?person dbo:wikiPageWikiLink dbc:Archiviste_francais} 
UNION 
{?person dbo:wikiPageWikiLink dbc:Archiviste_belge}
 UNION 
{?person dbo:wikiPageWikiLink dbc:Archiviste_canadien} 
UNION 
{?person dbo:wikiPageWikiLink dbc:Archiviste_paléographe}
}
  • À l’inverse de la première demande, ici, toutes les informations sont disponibles pour chacun des 110 individus.

3ème requête

  • En nous basant sur la présente liste, nous avons décidé d'affiner la recherche.

  • Nous avons répertorié le nom, l'année de naissance ainsi que la nationalité de nos 110 archivistes précédemment identifiés.

PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbc: <http://fr.dbpedia.org/resource/Catégorie:>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT DISTINCT ?person ?birthYear (str(?label) AS ?name)
WHERE {
  {
    {?person dbo:wikiPageWikiLink dbc:Archiviste_suisse}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_francais}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_belge}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_canadien}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_paléographe}
  }

  ?person a dbo:Person .
  ?person dbp:birthDate | dbo:birthDate ?birthDate .
  ?person rdfs:label ?label .

  BIND(xsd:integer(SUBSTR(STR(?birthDate), 1, 4)) AS ?birthYear)

  FILTER((?birthYear >= 1820) && LANG(?label) = "fr")
}

ORDER BY ?person

4ème requête

Nous avons souhaité faire apparaître dans notre liste la nationalité de chaque individu.

PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbc: <http://fr.dbpedia.org/resource/Catégorie:>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT DISTINCT ?person ?birthYear (str(?label) AS ?name) ?citizenship
WHERE {
  {
    {?person dbo:wikiPageWikiLink dbc:Archiviste_suisse}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_francais}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_belge}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_canadien}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_paléographe}
  }

  ?person a dbo:Person .
  ?person dbp:birthDate | dbo:birthDate ?birthDate .
  ?person rdfs:label ?label .

  OPTIONAL { ?person dbo:citizenship ?citizenship . }

  BIND(xsd:integer(SUBSTR(STR(?birthDate), 1, 4)) AS ?birthYear)

  FILTER((?birthYear >= 1820) && LANG(?label) = "fr")
}

ORDER BY ?person

Effectif de la population

5ème requête

  • Nous avons répertorié les lieux de naissance de nos individus.
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbc: <http://fr.dbpedia.org/resource/Catégorie:>

SELECT DISTINCT ?person ?birthPlace
WHERE
{
  {
    {?person dbo:wikiPageWikiLink dbc:Archiviste_suisse}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_francais}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_belge}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_canadien}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_paléographe}
 }
  
  OPTIONAL { 
    ?person dbo:birthPlace ?birthPlace .
  }
}

Appartenance à une organisation

  • Nous avons effectué une requête pour mettre en évidence les organisations auxquelles les archivistes appartenaient.

6ème requête

PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbc: <http://fr.dbpedia.org/resource/Catégorie:>

SELECT DISTINCT ?person ?organization
WHERE
{
  {
    {?person dbo:wikiPageWikiLink dbc:Archiviste_suisse}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_francais}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_belge}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_canadien}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_paléographe}
 }
  
  OPTIONAL { 
    ?person dbo:memberOf ?organization .
  }
  OPTIONAL { 
    ?person dbo:affiliation ?organization .
  }
  OPTIONAL { 
    ?person dbo:organisation ?organization .
  }
}

  • Malheureusement, la colonne organisation est vide

7ème requête

  • Nous avons effectué une deuxième tentative en incluant la mention dbo:employer. Cette modification a entraîné l’apparition de plus de résultats.
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbc: <http://fr.dbpedia.org/resource/Catégorie:>

SELECT DISTINCT ?person ?organization ?employer
WHERE
{
  {
    {?person dbo:wikiPageWikiLink dbc:Archiviste_suisse}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_francais}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_belge}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_canadien}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_paléographe}
  }
  
  OPTIONAL { 
    ?person dbo:memberOf ?organization .
  }
  OPTIONAL { 
    ?person dbo:affiliation ?organization .
  }
  OPTIONAL { 
    ?person dbo:organisation ?organization .
  }
  OPTIONAL { 
    ?person dbo:employer ?employer .
  }
}
  • Malheureusement, cela ne résout pas entièrement notre problème, car nous avons remarqué que certaines lignes restent toujours vides.

L'éducation

8ème requête

  • Ici, nous avons répertorié les lieux où chaque personne figurant sur notre liste a acquis ses compétences. Cette catégorie est étonnamment exhaustive.
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbc: <http://fr.dbpedia.org/resource/Catégorie:>

SELECT DISTINCT ?person ?almaMater	

WHERE
{
  {
    {?person dbo:wikiPageWikiLink dbc:Archiviste_suisse}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_francais}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_belge}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_canadien}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_paléographe}
  }
  
  OPTIONAL { 
    ?person dbo:almaMater ?almaMater
  }
}


Importation dans notre base de donnée : Table person

9ème requête

Afin d'exporter notre requête au format CSV et de l'intégrer dans notre base de données, nous avons voulu afficher la liste des archivistes, leur genre, leur nationalité et leur date de décès. De la même manière que cela apparait dans notre table Person.

PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbc: <http://fr.dbpedia.org/resource/Catégorie:>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT DISTINCT  (str(?label) AS ?name) ?gender ?death_date ?nationality
WHERE {
  {
    {?person dbo:wikiPageWikiLink dbc:Archiviste_suisse}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_francais}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_belge}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_canadien}
    UNION
    {?person dbo:wikiPageWikiLink dbc:Archiviste_paléographe}
  }

  
  ?person rdfs:label ?label .
  ?person dbp:deathDate | dbo:deathDate ?deathDate . 
  ?person dbp:citizenship | dbo:citizenship ?citizenship .

  OPTIONAL { 
    ?citizenship rdfs:label ?nationality .
    FILTER(LANG(?nationality) = "fr") 
  }
  OPTIONAL { 
    ?person dbp:gender | dbo:gender ?gender .
  }


  BIND(xsd:integer(SUBSTR(STR(?deathDate), 1, 4)) AS ?death_date)

  FILTER (?deathDate >= 1820 && LANG(?label) = "fr")

}

ORDER BY ?person