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:

SujetPrédicatObjet
RessourceRessourceRessource ou Literal
URIURIURI 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.