ILOT – Sémantique et éducation

Une exploration de dbpedia au sujet des monuments, avec l’aide de sparql

Pendant nos travaux sur la sémantique et le rôle qu’elle peut jouer dans des explorations numériques, nous nous sommes bien sûr intéressés à DBPedia.

Je vais présenter une démarche expérimentale qui m’a permis de trouver, par une suite de traitements automatiques, une connaissance qui n’est pas explicitement disponible dans DBPedia: l’association entre un type d’édifices et une religion. J’aborderais dans un prochain billet la généralisation de cette démarche.

En lien avec les programmes d’Histoire des Arts, nous avons identifié que, à divers niveaux, les monuments et autres éléments architecturaux ont un rôle important à jouer dans la transmission. Peuvent être abordés dans ce cadre des questions sur les matériaux, sur les formes, sur la relation entre l’agencement de l’espace et le pouvoir, sur le rôle du spirituel et du religieux et bien d’autres sujets encore.
Cela nous a amené à ‘fouiner’ dans DBPedia (avec l’approche ‘Follow your nose’) pour voir quel parti nous pourrions en tirer. Ce billet relate quelques aspects de cette exploration.
D’abord intéressons-nous aux architectures religieuses. On trouve rapidement dans l’Histoire des Arts, des sujets tels que abbaye, église gothique, mosquée, église romane, synagogue.
Nous allons chercher des ressources correspondantes dans DBPedia, les propriétés qu’elles ont en commun et voir si d’autres éléments ont ces mêmes propriétés.

Trouver une ressource DBPedia

Sachant que beaucoup de ressources de type ‘Catégorie’ sont construites sur le modèles
http://fr.dbpedia.org/resource/<nom de la ressource commençant par une majuscule>
Un autre point de départ possible est la requête sparql
J’ai donc fait une recherche sur
http://fr.dbpedia.org/resource/Abbaye
Dans la page qui s’est ainsi affichée, j’ai pu voir que cette ressource était associée par le prédicat dcterms:subject aux valeurs suivantes:

Ce qui me suggère 4 ensembles englobant le concept d’abbaye (et en prime, me donne un lien qui n’a rien à voir: un lien fonctionnel concernant les lecteurs).

Pour les autres architectures religieuses que j’ai retenu, il apparaît que deux catégories semblent applicables à toutes:

Sur dbpeda-fr, la requête

select distinct ?s where {
?s ?p <http://fr.dbpedia.org/resource/Catégorie:Édifice-type>  .
} LIMIT 100

donne un ensemble de 257 éléments reliés à Catégorie:Édifice-type, essentiellement des types d’édifices et une catégorie équivalente (owl:sameAs) dans dbpedia:

http://dbpedia.org/page/Category:Buildings_and_structures_by_type

Et dans les types d’édifices, on trouve:

http://fr.dbpedia.org/resource/Synagogue

http://fr.dbpedia.org/resource/Église_(édifice)

http://fr.dbpedia.org/resource/Mosquée

mais on voit que pour ‘église’, on n’a pas strictement la catégorie correspondante, et qu’on n’a pas ‘église romane’ et ‘église gothique’.

Quels prédicats partagés par plusieurs catégories?

Cherchons les prédicats et les objets partagés par des sujets dont des objets associés sont respectivement ‘Synagogue’ et ‘Abbaye’

select distinct ?p where {
?s1 <http://dbpedia.org/ontology/type> <http://fr.dbpedia.org/resource/Synagogue> .
?s2 <http://dbpedia.org/ontology/type> <http://fr.dbpedia.org/resource/Abbaye> .
?s1 ?p ?o .
?s2 ?p ?o .
} LIMIT 100

donne  33 items, sur lesquels une sélection manuelle,  permet de mettre en évidence les suivants, hors caractéristiques géographiques

p
http://dbpedia.org/ontology/architecturalStyle
http://dbpedia.org/ontology/wikiPageWikiLink
http://fr.dbpedia.org/property/année
http://fr.dbpedia.org/property/auteur
http://fr.dbpedia.org/property/débutConstr
http://fr.dbpedia.org/property/finConst
http://fr.dbpedia.org/property/style
http://fr.dbpedia.org/property/titre
http://dbpedia.org/ontology/depictionDescription

et les caractéristiques géographiques suivantes

p
http://dbpedia.org/ontology/city
http://dbpedia.org/ontology/country
http://dbpedia.org/ontology/department
http://dbpedia.org/ontology/region
http://fr.dbpedia.org/property/département
http://fr.dbpedia.org/property/géolocalisation
http://fr.dbpedia.org/property/lieu
http://fr.dbpedia.org/property/région
http://fr.dbpedia.org/property/ville
http://fr.dbpedia.org/property/lienRégion
http://fr.dbpedia.org/property/pays

Prédicats les plus utilisés sur une catégorie

La requête

SELECT count(distinct ?s2) 
WHERE
{ 
?s2 <http://dbpedia.org/ontology/type> <http://fr.dbpedia.org/resource/Abbaye> .
?s2 ?p ?o
}
LIMIT 100

m’indique que, à l’instant où je fais cette requête, il y a 631 éléments de type dbpedia-fr:Abbaye

La requête

SELECT ?p (COUNT(?p) AS ?pTotal)
WHERE
{ 
?s2 <http://dbpedia.org/ontology/type> <http://fr.dbpedia.org/resource/Abbaye> .
?s2 ?p ?o
}
GROUP BY ?p
ORDER BY DESC(?pTotal)
LIMIT 100

me donne les prédicats qui s’appliquent aux Abbaye, classés par leur nombre d’apparitions. Voilà le début du résultat:

p pTotal
http://dbpedia.org/ontology/wikiPageWikiLink 35996
http://www.w3.org/1999/02/22-rdf-syntax-ns#type 3975
http://purl.org/dc/terms/subject 3383
http://www.w3.org/2002/07/owl#sameAs 2963
http://dbpedia.org/ontology/wikiPageExternalLink 968
http://xmlns.com/foaf/0.1/name 870
http://fr.dbpedia.org/property/type 656
http://dbpedia.org/ontology/type 648
http://www.w3.org/2000/01/rdf-schema#label 631
http://xmlns.com/foaf/0.1/isPrimaryTopicOf 631
http://www.w3.org/ns/prov#wasDerivedFrom 631
http://dbpedia.org/ontology/wikiPageRevisionID 631
http://dbpedia.org/ontology/wikiPageLength 631
http://dbpedia.org/ontology/wikiPageID 631
http://dbpedia.org/ontology/wikiPageOutDegree 631
http://www.w3.org/2000/01/rdf-schema#comment 627
http://dbpedia.org/ontology/abstract 627
http://fr.dbpedia.org/property/nommonument 622
http://fr.dbpedia.org/property/ville 618
http://www.georss.org/georss/point 616
http://www.w3.org/2003/01/geo/wgs84_pos#lat 616
http://www.w3.org/2003/01/geo/wgs84_pos#long 616
http://fr.dbpedia.org/property/longitude 615
http://fr.dbpedia.org/property/latitude 615
http://dbpedia.org/ontology/city 609
http://fr.dbpedia.org/property/géolocalisation 592
http://fr.dbpedia.org/property/culte 588
http://dbpedia.org/ontology/religiousOrder 585
http://xmlns.com/foaf/0.1/depiction 552
http://dbpedia.org/ontology/thumbnail 540
http://fr.dbpedia.org/property/photo 530
http://fr.dbpedia.org/property/région 489

Ce qui nous permet d’avancer dans la recherche des ‘propriétés’ décrites pour la pluspart des dbpedia-fr:Abbaye.

On voit qu’il y a un grand nombre de http://dbpedia.org/ontology/wikiPageWikiLink, qui correspondent à des liens vers d’autres pages. Ce constat peut être généralisé à de nombreuses catégories de DBPedia. J’y reviendrais dans un prochain billet. On peut se demander si certains liens apparaissent plus souvent que d’autres.

Recherche des liens partagés par de nombreux éléments d’une catégorie

La requête

SELECT ?o (COUNT(?o) AS ?oTotal)
WHERE
{ 
?s2 <http://dbpedia.org/ontology/type> <http://fr.dbpedia.org/resource/Abbaye> .
?s2 <http://dbpedia.org/ontology/wikiPageWikiLink> ?o
}
GROUP BY ?o
ORDER BY DESC(?oTotal)
LIMIT 100

nous donne la réponse.

http://fr.dbpedia.org/resource/Abbaye apparait 629 fois, ce qui s’explique facilement.

http://fr.dbpedia.org/resource/Catholicisme apparait 377 fois, ce qui est aussi asse logique.

Ensuite nous avons http://fr.dbpedia.org/resource/Ordre_de_Saint-Benoît 220 fois; il faut chercher l’explication. Merci de vos suggestions.

Le quatrième lien est

http://fr.dbpedia.org/resource/Révolution_française

ce qui a une cohérence, bien que cela suggère une approche très marquée historiquement des sources Wikipedia utilisées.

Le cinquième est http://fr.dbpedia.org/resource/Monument_historique_(France) ce qui pourrait nous être bien utile.

On peut considérer que l’ensemble des éléments du début de cette réponse peuvent contribuer à notre exploration/exploitation de DBPedia.

o oTotal
http://fr.dbpedia.org/resource/Abbaye 629
http://fr.dbpedia.org/resource/Catholicisme 377
http://fr.dbpedia.org/resource/Ordre_de_Saint-Benoît 220
http://fr.dbpedia.org/resource/Révolution_française 191
http://fr.dbpedia.org/resource/Monument_historique_(France) 182
http://fr.dbpedia.org/resource/Église_catholique_romaine 170
http://fr.dbpedia.org/resource/Catégorie:Abbaye_du_Moyen_Âge 156
http://fr.dbpedia.org/resource/Ordre_cistercien 137
http://fr.dbpedia.org/resource/Bénédictin 137
http://fr.dbpedia.org/resource/Architecture_romane 120
http://fr.dbpedia.org/resource/France 116
http://fr.dbpedia.org/resource/Catégorie:Abbaye_bénédictine_en_France 111
http://fr.dbpedia.org/resource/Règle_de_saint_Benoît 106
http://fr.dbpedia.org/resource/Architecture_gothique 100
http://fr.dbpedia.org/resource/Catégorie:Abbaye_monument_... 98
http://fr.dbpedia.org/resource/Liste_des_abbayes_et_monastères 94
http://fr.dbpedia.org/resource/Cloître 89
http://fr.dbpedia.org/resource/Monastère 86

Comparons à ce qu’on obtient sur Synagogue, avec une requête analogue et  78 synagogues:

o oTotal
http://fr.dbpedia.org/resource/Synagogue 78
http://fr.dbpedia.org/resource/Judaïsme 63
http://fr.dbpedia.org/resource/Arche_sainte_(synagogue) 25
http://fr.dbpedia.org/resource/Juifs 25
http://fr.dbpedia.org/resource/Catégorie:Synagogue_monument_historique_(France) 20
http://fr.dbpedia.org/resource/Paris 18
http://fr.dbpedia.org/resource/Hébreu 18
http://fr.dbpedia.org/resource/Seconde_Guerre_mondiale 18
http://fr.dbpedia.org/resource/Rabbin 17
http://fr.dbpedia.org/resource/Monument_historique_(France) 17
http://fr.dbpedia.org/resource/Bimah 17
http://fr.dbpedia.org/resource/Ashkénaze 16
http://fr.dbpedia.org/resource/Île-de-France 15
http://fr.dbpedia.org/resource/Tables_de_la_Loi 15
http://fr.dbpedia.org/resource/Shoah 14
http://fr.dbpedia.org/resource/Sefer_Torah 13
http://fr.dbpedia.org/resource/Alsace 13
http://fr.dbpedia.org/resource/Architecte 13

On constate que le lien le plus utilisé, presque dans tous les cas, mais pas dans tous, est un lien vers le type de ressource qu’on a utilisé.

Le deuxième lien semble être un lien URI désignant une religion. Peut-être a-t-on là une façon d’associer automatiquement une architecture religieuse à une religion. Essayons sur quelques exemples:

http://fr.dbpedia.org/page/Mosquée est ainsi associé à http://fr.dbpedia.org/page/Islam

http://fr.dbpedia.org/resource/Cathédrale  est ainsi associé à  http://fr.dbpedia.org/resource/Église_catholique_romaine et en troisième position http://fr.dbpedia.org/resource/Catholicisme

http://fr.dbpedia.org/resource/Temple  est ainsi associé à  http://fr.dbpedia.org/resource/Protestantisme et en troisième position http://fr.dbpedia.org/resource/Bouddhisme

Dans tous ces cas, la deuxième réponse est recevable; les deux derniers exemples nous montrent des situations où, pour des raisons différentes, la troisième réponse est aussi pertinente.

En fait cela nous suggère que toutes les religions référencées après le premier lien seraient des réponses recevables. Il nous faut donc voir si elles ont une propriété en commun qui permet de les identifier dans DBPedia comme religion.

Qualifier les liens

Une première exploration visuelle nous donne

http://fr.dbpedia.org/page/Judaïsme   dcterms:subject   dbpedia-fr:Catégorie:Religion_au_Moyen-Orient et la propriété is prop-fr:religion of

http://fr.dbpedia.org/page/Catholicisme   dcterms:subject   dbpedia-fr:Catégorie:Branche_du_christianisme et la propriété is prop-fr:religion of

Il apparait que la caractéristique commune est d’utiliser le prédicat  is prop-fr:religion of.

La requête

SELECT ?o (COUNT(?o) AS ?oTotal)
WHERE
{
 ?s <http://fr.dbpedia.org/property/religion> ?o  
}
GROUP BY ?o
ORDER BY DESC(?oTotal)
LIMIT 20

nous permet de trouver des éléments objets de ce prédicat:

o oTotal
http://fr.dbpedia.org/resource/Catholicisme 795
http://fr.dbpedia.org/resource/Islam 509
http://fr.dbpedia.org/resource/Christianisme 286
http://fr.dbpedia.org/resource/Église_catholique_romaine 211
http://fr.dbpedia.org/resource/Protestantisme 171
http://fr.dbpedia.org/resource/Sunnisme 149
http://fr.dbpedia.org/resource/Judaïsme 140
http://fr.dbpedia.org/resource/Luthéranisme 93
« Autres »@fr 89
http://fr.dbpedia.org/resource/Bouddhisme 86
http://fr.dbpedia.org/resource/Animisme 78
http://fr.dbpedia.org/resource/Hindouisme 75
« Christianisme orthodoxe »@fr 72
http://fr.dbpedia.org/resource/Christianisme_orthodoxe 69
http://fr.dbpedia.org/resource/Anglicanisme 65
« hindoue »@fr 60
« Aucune »@fr 58
http://fr.dbpedia.org/resource/Religions_traditionnelles_africaines 56
http://fr.dbpedia.org/resource/Presbytérianisme 55
http://fr.dbpedia.org/resource/Église_catholique 51

 

Associer des bâtiments à une religion

Cherchons à associer une religion à chacun des édifices avec la requête:

SELECT ?s ?o (COUNT(?o) AS ?oTotal)
WHERE
{ 
?s ?p <http://fr.dbpedia.org/resource/Catégorie:Édifice-type>  .
?s2 <http://dbpedia.org/ontology/type> ?s .
?s2 <http://dbpedia.org/ontology/wikiPageWikiLink> ?o .
?s3 <http://fr.dbpedia.org/property/religion> ?o  
}
GROUP BY ?s ?o
ORDER BY DESC(?oTotal)
LIMIT 100

Voilà les premiers résultats obtenus (un peu édités pour entrer dans la page)

s o oTotal
dbpedia-fr:Abbaye dbpedia-fr:Catholicisme 599430
dbpedia-fr:Église_(édifice) dbpedia-fr:Catholicisme 418170
dbpedia-fr:Basilique_(christianisme) dbpedia-fr:Catholicisme 357750
dbpedia-fr:Chapelle dbpedia-fr:Catholicisme 206700
dbpedia-fr:Mosquée dbpedia-fr:Islam 167970
dbpedia-fr:Église_(édifice) dbpedia-fr:Église_catholique_romaine 132086
dbpedia-fr:Collégiale dbpedia-fr:Catholicisme 89040
dbpedia-fr:Basilique_(christianisme) dbpedia-fr:Église_catholique_romaine 78914
dbpedia-fr:Abbaye dbpedia-fr:Église_catholique_romaine 71740
dbpedia-fr:Couvent dbpedia-fr:Catholicisme 62010
dbpedia-fr:Chapelle dbpedia-fr:Église_catholique_romaine 56126
dbpedia-fr:Monastère dbpedia-fr:Catholicisme 34980
dbpedia-fr:Collégiale dbpedia-fr:Église_catholique_romaine 21944
dbpedia-fr:Synagogue dbpedia-fr:Judaïsme 17640
dbpedia-fr:Monastère dbpedia-fr:Église_catholique_romaine 11394
dbpedia-fr:Couvent dbpedia-fr:Église_catholique_romaine 8862
dbpedia-fr:Abbaye dbpedia-fr:Protestantisme 8550
dbpedia-fr:Synagogue dbpedia-fr:Catholicisme 7950
dbpedia-fr:Basilique_(christianisme) dbpedia-fr:Christianisme 7436
dbpedia-fr:Baptistère dbpedia-fr:Catholicisme 6360
dbpedia-fr:Mosquée dbpedia-fr:Sunnisme 5066
dbpedia-fr:Temple dbpedia-fr:Protestantisme 4788
dbpedia-fr:Église_(édifice) dbpedia-fr:Protestantisme 4104
dbpedia-fr:Église_(édifice) dbpedia-fr:Christianisme 4004
dbpedia-fr:Abbaye dbpedia-fr:Christianisme 4004
dbpedia-fr:Cloître dbpedia-fr:Catholicisme 3180

On voit que des associations pertinentes sont obtenues, qu’il y a quelque fois  plusieurs associations pour un même édifice.

Le décompte obtenu doit pouvoir être utilisé pour évaluer la fiabilité de l’association.

La requête

SELECT ?s  (COUNT(?s) AS ?sTotal)
WHERE
{ 
?s ?p <http://fr.dbpedia.org/resource/Catégorie:Édifice-type>  .
?s2 <http://dbpedia.org/ontology/type> ?s .
?s2 <http://dbpedia.org/ontology/wikiPageWikiLink> ?o .
?s3 <http://fr.dbpedia.org/property/religion> ?o  
}
GROUP BY ?s 
ORDER BY DESC(?sTotal)
LIMIT 100

nous donne les types d’édifices associés à une religion et donne la liste suivante (écourtées d’une dizaine de réponses numériquement très peu représentatives):

s sTotal
http://fr.dbpedia.org/resource/Abbaye 688350
http://fr.dbpedia.org/resource/Église_(édifice) 567408
http://fr.dbpedia.org/resource/Basilique_(christianisme) 450166
http://fr.dbpedia.org/resource/Chapelle 268082
http://fr.dbpedia.org/resource/Mosquée 177246
http://fr.dbpedia.org/resource/Collégiale 113068
http://fr.dbpedia.org/resource/Couvent 72060
http://fr.dbpedia.org/resource/Monastère 59322
http://fr.dbpedia.org/resource/Synagogue 31322
http://fr.dbpedia.org/resource/Temple 9684
http://fr.dbpedia.org/resource/Baptistère 6782
http://fr.dbpedia.org/resource/Cloître 3576
http://fr.dbpedia.org/resource/Bibliothèque 3348
http://fr.dbpedia.org/resource/Calvaire_(édifice) 2012
http://fr.dbpedia.org/resource/Tombeau_(architecture) 1956
http://fr.dbpedia.org/resource/Hôpital 1590
http://fr.dbpedia.org/resource/Campanile 1590
http://fr.dbpedia.org/resource/Temple-montagne 1374
http://fr.dbpedia.org/resource/Église-halle 950
http://fr.dbpedia.org/resource/Prison 424
http://fr.dbpedia.org/resource/Clocher 422
http://fr.dbpedia.org/resource/Citadelle 342
http://fr.dbpedia.org/resource/Ferme_fortifiée 342

Il faudrait surement diviser le nombre d’association (type d’édifices-religion) par le nombre de représentants de chaque type d’édifice pour avoir une représentativité de l’association trouvée.

Je ne vois pas tout de suite comment faire ça avec sparql afin de ne faire ressortir que les meilleures associations. Mais est-ce bien en SPARQL qu’il faut faire ça: en Javascript, par exemple, je pourrais facilement faire la première requête et récupérer les résultats en JSON, puis faire l’autre, et enfin calculer la pertinenece en la calculant à partir des deux résultats en JSON. A suivre.

En résumé

J’ai constaté que l’essentiel des prédicats utilisés sur l’ensemble d’éléments que je considérais était  http://dbpedia.org/ontology/wikiPageWikiLink. En cherchant, les liens partagés par un nombre d’éléments de la catégorie, j’ai mis en évidence une ‘caractéristique’ de cette catégorie. Ensuite, en cherchant les prédicats les plus utilisés pour cette caractéristique, j’ai pu qualifier cette caractéristique. Enfin, alors que ma catégorie initiale n’avait pas cette connaissance, j’ai pu faire une association entre une catégorie comme Abbaye et une ou plusieurs religions. Ce traitement est partiellement statistique. Il faudrait évaluer son niveau de pertinence, mais ces premiers résultats sont intéressants.

C’est tout pour le moment: j’ai illustré comment, avec quelques requêtes assez simple, on peut générer des connaissances qui ne sont pas explicitement disponibles dans DBPedia.

Dans un prochain billet, je m’efforcerai de systématiser et de généraliser la démarche.

(ce billet a été publié ici https://onsem.wp.imt.fr/2015/05/15/creer-des-connaissances-formalisees-pour-le-web-semantique-a-partir-de-dbpedia/)

 

Auteur : Moissinac

Maitre de conférence à Télécom Paris, Département Image, Données, Signal - Groupe Multimédia Jean-Claude Moissinac a mené des recherches sur les techniques avancées pour la production, le transport, la représentation et l’utilisation des documents multimédia. Ces travaux d'abord ont évolué vers la représentation sémantique de données liées au multimédia (process de traitement de médias, description d'adaptations de média, description formelle d'interactions utilisateurs). Aujourd'hui, les travaux portent sur la constitution de graphes de connaissances. Principaux axes de recherche actuel : représentations sémantiques de connaissances, constitution de graphes de connaissances, techniques d'apprentissage automatique sur ces graphes