9. Construction et requêtage d’un graphe sémantique
Triplets
Structure fondamentale du web sémantique: le triplet RDF.
Composition d’un triplet:
Sujet | Prédicat | Objet
Exemples:
Seth Dobbs | est candidat à | Président
David Bowie | est un | Chanteur
David Bowie | est l'interprète de | Space Oddity
Space Oddity | date de sortie | 11/07/1969
Chaque triplet exprime une assertion élémentaire.
L’ensemble des triplets forme un graphe de connaissances.
graph LR DB[David Bowie] -->|est un| C[Chanteur] DB -->|interprète de| SO[Space Oddity] SO -->|date de sortie| D[11/07/1969]
L’identification des ressources
Quatre concepts clés d’identification:
Ressource: tout élément à décrire avec une identité claire dans le contexte d’application.
URL (Uniform Resource Locator): identifie l’emplacement d’une ressource et le moyen d’agir sur elle.
URN (Uniform Resource Name): identifie une ressource indépendamment de son emplacement.
URI (Uniform Resource Identifier): identifie une ressource de manière permanente.
Exemples concrets:
URL: http://www.en.wikipedia.org/wiki/Uniform_resource_locator
URN: urn:isbn:0-395-36341-1
URI: http://dbpedia.org/resource/Uniform_resource_identifier
ou dbpedia:Uniform_resource_identifier
Structure d’une URI sémantique:
http://www.perfect-memory.com/resource/david_bowie
└─────────────┬──────────────┘ └────┬─────┘
namespace identifiant
Forme courte: pm:david_bowie
Autre exemple:
http://www.perfect-memory.com/resource/space_oddity
Forme courte: pm:space_oddity
Les namespaces évitent les conflits entre identifiants de différentes sources.
RDF: Resource Description Framework
RDF est le langage fondamental du web sémantique.
Trois composants:
Resource: tout élément à décrire avec une identité claire.
Description: décrit des ressources, propriétés et relations.
Framework: ensemble d’outils et protocoles (URI, HTTP, XML) basé sur un modèle formel standard.
Structure d’un triplet RDF:
| Sujet | Prédicat | Objet |
|---|---|---|
| Ressource | Ressource | Ressource ou Literal |
| URI | URI | URI ou Valeur littérale |
Exemples détaillés:
Sujet: pm:david_bowie (URI)
Prédicat: rdf:type (URI)
Objet: pm:Singer (URI)
Sujet: pm:space_oddity (URI)
Prédicat: pm:release_date (URI)
Objet: "1969-07-11"^^xsd:date (Literal typé)
Formes complètes:
http://www.perfect-memory.com/resource/david_bowie
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.perfect-memory.com/resource/Singer
http://www.perfect-memory.com/resource/space_oddity
http://www.perfect-memory.com/resource/release_date
"1969-07-11"^^xsd:date
Représentation graphique:
graph LR DB[pm:david_bowie] -->|rdf:type| S[pm:Singer] SO[pm:space_oddity] -->|pm:release_date| D["1969-07-11"^^xsd:date]
RDF: Comment stocker et sérialiser une information ?
Quatre formats de sérialisation principaux pour un même triplet.
Triplet exemple:
pm:david_bowie | rdf:type | pm:Singer
Format RDF/XML:
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://www.perfect-memory.com/david_bowie">
<rdf:type rdf:resource="http://www.perfect-memory.com/Singer"/>
</rdf:Description>
</rdf:RDF>Format Turtle (plus lisible):
<http://www.perfect-memory.com/david_bowie>
a <http://www.perfect-memory.com/Singer>.Format N-triples (le plus simple):
<http://www.perfect-memory.com/david_bowie>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://www.perfect-memory.com/Singer> .Format JSON-LD:
{
"@context": {
"rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"xsd": "http://www.w3.org/2001/XMLSchema#"
},
"@id": "http://www.perfect-memory.com/david_bowie",
"@type": "http://www.perfect-memory.com/Singer"
}Choix du format selon le contexte:
- RDF/XML: interopérabilité avec systèmes XML
- Turtle: écriture manuelle, lisibilité
- N-triples: simplicité, parsing facile
- JSON-LD: intégration web moderne
RDFS: définir classes et relations
RDFS (RDF Schema) étend RDF pour structurer les connaissances.
Capacités ajoutées:
Hiérarchies de classes avec rdfs:subClassOf
Hiérarchies de prédicats avec rdfs:subPropertyOf
Contraintes sur les prédicats (domaine, range)
Exemple hiérarchie de classes:
bt:Entreprise_Telecommunication | rdfs:subClassOf | bt:Entreprise
:Bouygues_Telecom | rdf:type | bt:Entreprise_Telecommunication
:Paris | rdf:type | bt:Lieu
:Bouygues_Telecom | bt:localisé_à | :Paris
Inférence possible:
Si bt:Entreprise_Telecommunication rdfs:subClassOf bt:Entreprise
Et :Bouygues_Telecom rdf:type bt:Entreprise_Telecommunication
Alors :Bouygues_Telecom rdf:type bt:Entreprise
Exemple hiérarchie de prédicats:
bt:siège_social | rdfs:subPropertyOf | bt:localisé_à
Si défini:
:Bouygues_Telecom | bt:siège_social | :Paris
InférenceInférence automatique:
:Bouygues_Telecom | bt:localisé_à | :Paris
graph TD E[bt:Entreprise] ET[bt:Entreprise_Telecommunication] -->|rdfs:subClassOf| E BT[:Bouygues_Telecom] -->|rdf:type| ET BT -->|bt:localisé_à| P[:Paris] P -->|rdf:type| L[bt:Lieu]
RDFS permet de structurer l’ontologie et d’activer le raisonnement automatique.
11. Modélisation d’une ontologie
OWL
OWL (Web Ontology Language) est le langage standard pour construire des ontologies.
OWL: une extension du RDF et RDFS pour construire des ontologies
OWL étend RDF et RDFS en ajoutant des vocabulaires supplémentaires.
Capacités ajoutées:
Équivalence et disjonction sur les classes, relations et propriétés
Égalité et inégalité sur les instances
Définitions d’inverse entre relations
Contraintes de cardinalité sur les propriétés
Trois types de définitions:
- Définition d’une classe
- Définition d’une propriété
- Définition d’une relation
Exemple de modélisation:
:David_Bowie rdf:type bt:Actor .
bt:Actor rdfs:subClassOf bt:Person .
bt:BusinessMan rdfs:subClassOf bt:Person .
bt:Person owl:equivalentClass foaf:Person .
:David_Bowie foaf:name "David Bowie" .
:David_Bowie foaf:givenName "David" .
:David_Bowie foaf:surname "Bowie" .
:David_Bowie foaf:mBox "d.bowie@perfect-memory.com" .graph TD DB[:David_Bowie] -->|rdf:type| A[bt:Actor] A -->|rdfs:subClassOf| P[bt:Person] BM[bt:BusinessMan] -->|rdfs:subClassOf| P P -->|owl:equivalentClass| FP[foaf:Person] DB -->|foaf:name| N["David Bowie"] DB -->|foaf:givenName| GN["David"]
Avantage de owl:equivalentClass:
Permet de réutiliser des concepts d’autres ontologies existantes.
Votre ontologie peut mapper ses classes vers des ontologies standards (FOAF, DBpedia, Schema.org).
Réutilisation des concepts d’autres ontologies
Principe: éviter de réinventer la roue en réutilisant des ontologies existantes.
Votre ontologie → Réutilise → Autre ontologie
Utilisation de owl:sameAs pour lier des ressources identiques:
:David_Bowie owl:sameAs dbpedia:David_Bowie .
dbpedia:David_Bowie dbpedia:abstract "David Robert Jones dit David Bowie est un musicien, chanteur, auteur-compositeur-interprète et acteur britannique né le 8 janvier 1947 à Londres et mort le 10 janvier 2016 à New York..." .
dbpedia:David_Bowie dbpedia:birthDate "1947-01-08"^^xsd:date .
dbpedia:David_Bowie dbpedia:birthPlace dbpedia:London .
dbpedia:David_Bowie dbpedia:thumbnail <http://...image.jpg> .Bénéfice: récupération automatique des propriétés et relations définies ailleurs.
graph LR DB1[:David_Bowie<br/>votre ontologie] -->|owl:sameAs| DB2[dbpedia:David_Bowie] DB2 -->|dbpedia:birthDate| D["1947-01-08"] DB2 -->|dbpedia:birthPlace| L[dbpedia:London]
Votre ressource hérite des informations de la ressource liée.
Inférence
Les règles d’inférence permettent de déduire de nouveaux triplets automatiquement.
Exemple de règle d’inférence dans un Triple Store:
Id: music_linked_musicians
Prémisses:
music <radiofrance:musicBand> band
band <radiofrance:musicBandMember> member
Conclusion:
------------------------------------
music <radiofrance:artist> member
Application concrète:
Triplets stockés:
:Yellow_Submarine radiofrance:musicBand :The_Beatles .
:The_Beatles radiofrance:musicBandMember :John_Lennon .graph LR YS[:Yellow_Submarine] -->|radiofrance:musicBand| TB[:The_Beatles] TB -->|radiofrance:musicBandMember| JL[:John_Lennon] YS -.radiofrance:artist<br/>inféré.-> JL
Triplet inféré automatiquement:
:Yellow_Submarine radiofrance:artist :John_Lennon .Le raisonneur applique la règle en identifiant le pattern dans les données existantes.
Avantages:
- Évite de stocker des informations redondantes
- Garantit la cohérence logique
- Enrichit automatiquement le graphe
- Simplifie les requêtes ultérieures
Les règles peuvent être plus complexes avec multiples conditions et variables.
12. Autres standards de structuration
HTML Sémantique
Intégration de métadonnées sémantiques directement dans les pages HTML.
Objectif: rendre les pages web compréhensibles par les moteurs de recherche.
Technologies existantes:
Microformats: ajout de métadonnées interprétables dans le HTML (hCalendar, hCard, etc.)
RDFa 1.1: recommandation W3C depuis 2013 pour HTML5, permet l’indexation sémantique
Microdata: standard pour embarquer des données structurées dans HTML
Microdata
Cinq attributs principaux pour structurer le contenu HTML:
itemscope: définit l’item lui-même, délimite le scope de l’élément
itemtype: définit le type de l’item selon une typologie valide (URL du vocabulaire)
itemid: identifiant unique de l’item
itemprop: indique un attribut spécifique selon un vocabulaire
datetime: spécifie une date ou une durée
Exemple de structure:
<div itemscope itemtype="http://schema.org/Person">
<span itemprop="name">David Bowie</span>
<span itemprop="birthDate" datetime="1947-01-08">8 janvier 1947</span>
<span itemprop="birthPlace">Londres</span>
</div>Autre exemple avec événement:
<div itemscope itemtype="http://schema.org/Event">
<span itemprop="name">Concert David Bowie</span>
<time itemprop="startDate" datetime="2016-01-15T20:00">15 janvier 2016 à 20h</time>
<div itemprop="location" itemscope itemtype="http://schema.org/Place">
<span itemprop="name">Zénith de Paris</span>
</div>
</div>Structure imbriquée:
graph TD E[Event itemscope] --> N[name itemprop] E --> D[startDate itemprop] E --> L[location itemprop] L --> P[Place itemscope] P --> PN[name itemprop]
Schema.org
Schema.org est le vocabulaire de référence pour les microdonnées.
Historique: créé initialement comme schema microdata, devenu vocabulaire qui fait autorité.
Soutenu par les principaux moteurs de recherche: Google, Bing, Yahoo, Yandex.
Types de ressources disponibles:
- Person (nom, date de naissance, etc.)
- Organization (entreprise, association)
- Event (concerts, conférences)
- Place (lieux, adresses)
- Product (produits commerciaux)
- CreativeWork (articles, livres, films, musique)
- Recipe (recettes de cuisine)
- Review (avis, critiques)
Exemple complet d’utilisation:
<div itemscope itemtype="http://schema.org/MusicRecording">
<span itemprop="name">Space Oddity</span>
<div itemprop="byArtist" itemscope itemtype="http://schema.org/MusicGroup">
<span itemprop="name">David Bowie</span>
</div>
<meta itemprop="datePublished" content="1969-07-11">11 juillet 1969</meta>
<span itemprop="duration">PT5M18S</span>
</div>Hiérarchie des types Schema.org:
Thing (racine)
├─ Person
├─ Organization
├─ Event
├─ Place
└─ CreativeWork
├─ Article
├─ Book
├─ Movie
└─ MusicRecording
Outils de validation:
https://schema.org/ : documentation complète des types et propriétés
https://search.google.com/structured-data/testing-tool/ : outil de test Google
https://developers.google.com/search/docs/guides/search-gallery : exemples d’implémentation
Bénéfices pour le SEO:
- Rich snippets dans les résultats de recherche
- Knowledge Graph enrichi
- Meilleur positionnement
- Affichage d’étoiles pour les avis
- Cartes événements dans Google Search
Limitations
Deux limitations majeures du HTML sémantique:
Confusion présentation/représentation: les informations sémantiques sont embarquées directement dans le HTML, mélange entre affichage et données structurées
Pas d’inférence sémantique: impossible d’appliquer des raisonnements logiques comme avec RDF/OWL, les données restent descriptives sans capacité de déduction
Comparaison avec approche RDF pure:
HTML Sémantique:
- Intégré dans les pages
- Indexable par moteurs
- Pas de raisonnement
- Orienté présentation web
RDF/OWL:
- Séparé du contenu
- Graphe de connaissances
- Inférence possible
- Orienté données structurées
Le HTML sémantique convient pour améliorer le SEO, RDF/OWL pour des bases de connaissances complexes avec raisonnement.