-
Notifications
You must be signed in to change notification settings - Fork 1
Requêtes SPARQL
Première requête SPARQL pour déterminer la population et les propriétés, qui peuvent être intéressantes pour notre recherche
select ?p ?o
where {
<http://dbpedia.org/resource/List_of_women's_rights_activists> ?p ?o
}
Suite à cette demande, nous allons étendre la catégorie, en unissant les personnes militants pour le droit des femmes et les personnes catégorisées comme féministes, car elles apparaissent comme "ressources" dans les triplets liés à l'URI de la liste des militants pour le droit des femmes.
Demande pour trouver les propriétés et la population et combien de personnes sont liées à la propriété
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
SELECT ?p1 (COUNT(*) as ?eff)
WHERE {
{
{<http://dbpedia.org/resource/List_of_women's_rights_activists> ?p ?o1.}
UNION
{dbr:List_of_feminists ?p ?o1.}
UNION
{?o1 ?p dbr:feminist.}
}
?o1 a dbo:Person;
dbp:birthDate | dbo:birthDate ?birthDate;
?p1 ?o2.
BIND(xsd:integer(SUBSTR(STR(?birthDate), 1, 4)) AS ?birthYear)
}
GROUP BY ?p1
ORDER BY DESC(?eff)
Plusieurs propriétés liées aux militant.e.s pour le doit des femmes nous intéressent: la date de naissance "birthDate", "birthYear", "academicDiscipline" et "almaMater", c'est-à-dire l'université où se sont formés ces personnes.
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT (COUNT(*) as ?effectif)
WHERE {
SELECT DISTINCT ?o1 ?birthDate ?birthYear
WHERE {
{
{<http://dbpedia.org/resource/List_of_women's_rights_activists> ?p ?o1.}
UNION
{dbr:List_of_feminists ?p ?o1.}
UNION
{?o1 ?p dbr:feminist.}
UNION
{?o1 ?p dbr:Feminism.}
}
?o1 a dbo:Person;
dbp:birthDate | dbo:birthDate ?birthDate.
BIND(xsd:integer(SUBSTR(STR(?birthDate), 1, 4)) AS ?birthYear)
}
}
Cette requête donne un résultat de 2120 personnes.
Requête pour établir une liste avec le nom et prénom des militant.e.s et leur année de naissance qui est exportable en TSV et ensuite utilisable dans la base de données
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT DISTINCT ?o1 (str(?label) as ?name) ?birthYear
WHERE {
SELECT DISTINCT ?o1 ?birthDate ?birthYear ?label
WHERE {
{
{<http://dbpedia.org/resource/List_of_women's_rights_activists> ?p ?o1.}
UNION
{dbr:List_of_feminists ?p ?o1.}
UNION
{?o1 ?p dbr:feminist.}
UNION
{?o1 ?p dbr:Feminism.}
}
?o1 a dbo:Person;
dbp:birthDate | dbo:birthDate ?birthDate;
rdfs:label ?label.
BIND(xsd:integer(SUBSTR(STR(?birthDate), 1, 4)) AS ?birthYear)
FILTER ( (?birthYear >= 1500
&& ?birthYear < 2005 )
&& LANG(?label) = 'en')
}
ORDER BY ?birthYear
}
De cette requête, nous avons produit un fichier TSV. De plus, ce fichier a été importé dans un doublon de notre base de données militant_import. La table s'intitule "sparql_militante_date" (cette table a été un peu modifiée à cause de la suite du processus pour créer un graphique avec celle-ci.
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT DISTINCT ?o1 (str(?label) as ?name) ?birthYear
WHERE {
SELECT DISTINCT ?o1 ?birthDate ?birthYear ?label
WHERE {
{
{<http://dbpedia.org/resource/List_of_women's_rights_activists> ?p ?o1.}
UNION
{dbr:List_of_feminists ?p ?o1.}
UNION
{?o1 ?p dbr:feminist.}
UNION
{?o1 ?p dbr:Feminism.}
}
?o1 a dbo:Person;
dbp:birthDate | dbo:birthDate ?birthDate;
dbp:almaMater | dbo:almaMater ?target.
?target rdfs:label ?label.
BIND(xsd:integer(SUBSTR(STR(?birthDate), 1, 4)) AS ?birthYear)
FILTER ( (?birthYear >= 1500
&& ?birthYear < 2005 )
&& LANG(?label) = 'en')
}
ORDER BY ?birthYear
}
Nous avons exporter cette requête SPARQL en fichier TSV, pour ensuite l'importer dans notre base de donnée militant_import.
Pour démontrer que cette table peut être intéressante pour notre recherche, nous proposons le début d'une piste de requête SQL. C'est-à-dire que nous allons commencer par rechercher combien d'universités ont formé des militant.e.s pour le droit des femmes:
SELECT COUNT (DISTINCT name)
FROM sparql_universite_date sud;
Grâce à cette requête l'on sait qu'il y a 479 universités différentes dans la table que nous avons importé grâce à la requête SQL ci-dessus.
Suite à cette requête nous voulons savoir combien de personnes ont été formée par chaque université:
SELECT name as Universite, COUNT(*) as Effectif
FROM sparql_universite_date sud
GROUP BY name
ORDER BY name ;
Grâce à cette requête SQL l'on sait combien de personne ont été formée dans chaque université. Cela dans le but de pouvoir savoir quelles universités ont formé le plus de personnes militant pour le droit des femmes. Une "vue" de cette table a été crée dans la base de donnée militant_import. Nous l'avons ensuite exportée en fichier CSV.