Introduction

L’évolution du Web, depuis ses premières pages statiques jusqu’aux systèmes intelligents capables de comprendre le sens des données, a profondément transformé la manière dont l’information est produite, structurée et exploitée. Dans cet article, nous explorons cette transition à travers un projet concret : la conception de trois moteurs de recherche appliqués à un même jeu de données footballistiques.

Ces trois moteurs — un moteur HTML classique, un moteur RDFa enrichi et un moteur SPARQL reposant sur un graphe RDF — illustrent trois niveaux de maturité technologique du Web :

  • Web 1.0 : extraction basée sur la structure visuelle du HTML ;
  • Web 2.0 / 2.5 : pages enrichies de métadonnées RDFa ;
  • Web 3.0 : interrogation d’une base de connaissances sémantique via SPARQL.

L’objectif est double :

  1. comparer les performances, la robustesse et les limites de chaque approche,
  2. montrer comment la sémantique améliore la qualité et la stabilité de l’extraction d’information.

Problématique

Sur un Web en constante évolution, extraire automatiquement des données fiables est un défi majeur. Les pages HTML changent fréquemment, les structures DOM sont instables, et les sites ne sont pas conçus pour être lus par des machines. Dès lors, une question essentielle se pose : Comment garantir une extraction d’information durable, robuste et indépendante des changements du site web ?

Les approches traditionnelles (scraping HTML) sont rapides mais extrêmement fragiles. Les métadonnées RDFa améliorent la situation, mais leur qualité dépend du développeur. Les graphes RDF interrogés via SPARQL offrent une robustesse incomparable, mais nécessitent un investissement initial important.

Ce projet répond à cette problématique en comparant trois moteurs de recherche construits sur trois niveaux de structuration des données.

Méthodologie / Approche

La méthodologie adoptée repose sur quatre grandes étapes :

1. Préparation et extraction des données

  • crawler.py parcourt les pages HTML du site footballistique.
  • Il extrait équipes, scores, dates, lieux, etc.
  • Il génère un graphe RDF complet (knowledge_graph.ttl).

2. Génération des différentes sources de données

  • generate_html_pages.py → pages HTML simples.
  • generate_enriched_html_pages.py → pages HTML enrichies en RDFa.
  • Le graphe RDF est chargé dans Apache Jena Fuseki.

3. Développement des trois moteurs

  • Moteur HTML : extraction via DOM.
  • Moteur RDFa : extraction via attributs RDFa.
  • Moteur SPARQL : interrogation du graphe RDF via un endpoint SPARQL.

4. Analyse comparative

  • Exécution des 10 requêtes (R1 à R10).
  • Mesure des temps d’exécution.
  • Analyse des performances, robustesse et limites.

Cette approche permet une comparaison équitable et reproductible des trois technologies.

Architecture de la solution

Le système repose sur une architecture 3‑tiers :

Frontend (HTML/CSS/JS)

  • Interface utilisateur
  • Sélection du moteur
  • Affichage des résultats

Backend (Python 3.14 dans PyCharm)

  • Réception des requêtes HTTP
  • Sélection du moteur
  • Exécution des scripts
  • Communication avec Jena Fuseki

Couche de données

  • Pages HTML
  • Pages HTML enrichies en RDFa
  • Graphe RDF stocké dans Fuseki

Cette architecture garantit une séparation claire des responsabilités et une grande maintenabilité.

Résultats et Analyse comparative

Les performances des trois moteurs ont été mesurées sur 10 requêtes.

1. Moteur HTML

  • Très rapide pour les requêtes simples (2–12 ms).
  • Plus lent pour les requêtes complexes (jusqu’à 110 ms).
  • Extrêmement fragile : dépend entièrement de la structure du DOM.

2. Moteur RDFa

  • Plus robuste que HTML.
  • Extraction plus riche et sémantique.
  • Mais systématiquement plus lent (jusqu’à 150 ms).
  • Dépend de la qualité des métadonnées.

3. Moteur SPARQL

  • Le plus puissant et le plus expressif.
  • Indépendant du HTML.
  • Performances globalement meilleures que RDFa.
  • Un pic notable sur R9 (535 ms).
  • Dépend de la qualité du graphe RDF.

Synthèse

CritèreHTMLRDFaSPARQL
Rapidité⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Robustesse⭐⭐⭐⭐⭐⭐
Sémantique⭐⭐⭐⭐⭐⭐
Dépendance au siteTrès forteMoyenneAucune
ComplexitéFaibleMoyenneÉlevée

Applications pratiques et enseignements

Les enseignements de ce projet s’appliquent directement à plusieurs domaines :

1. Extraction d’information (scraping)

  • HTML est adapté aux prototypes rapides.
  • RDFa améliore la stabilité.
  • SPARQL est idéal pour les systèmes industriels.

2. Web sémantique

  • RDFa et SPARQL permettent de structurer les données pour les rendre compréhensibles par les machines.

3. Construction de moteurs de recherche spécialisés

  • SPARQL permet des requêtes complexes impossibles en HTML.

4. Migration progressive vers le Web 3.0

  • Le projet illustre comment enrichir progressivement un site existant.

Conclusion

Ce projet met en lumière l’évolution progressive du Web, depuis l’extraction basée sur la structure HTML jusqu’à l’interrogation d’un graphe RDF complet.

Les résultats montrent que :

  • HTML est rapide mais fragile ;
  • RDFa apporte une sémantique utile mais coûteuse ;
  • SPARQL est la solution la plus robuste, expressive et durable.

L’avenir de l’extraction d’information repose clairement sur des modèles sémantiques capables de comprendre les données plutôt que de simplement les lire. SPARQL et les graphes RDF constituent une base solide pour construire des systèmes intelligents, évolutifs et indépendants des changements du Web.

Références

Apache Jena Fuseki – SPARQL Server

W3C – RDFa Core 1.1

W3C – RDF 1.1 Concepts

W3C – SPARQL 1.1 Query Language

Documentation Python 3.14

INF6253 – Web sémantique (UQO)

Cet article vous a plu ?

Abonnez-vous pour recevoir nos prochains insights directement par email.