0% ont trouvé ce document utile (0 vote)
5 vues3 pages

Création de graphes RDF avec RDFLib

Le document présente des exercices de correction sur la création de graphes RDF en utilisant la bibliothèque RDFLib. L'Exercice 1 montre comment créer un graphe décrivant une adresse, tandis que l'Exercice 2 illustre la création de ressources et de propriétés pour des entités comme Marie Curie et Pierre Durand. Les graphes sont affichés dans différents formats, y compris RDF/XML et Turtle.
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues3 pages

Création de graphes RDF avec RDFLib

Le document présente des exercices de correction sur la création de graphes RDF en utilisant la bibliothèque RDFLib. L'Exercice 1 montre comment créer un graphe décrivant une adresse, tandis que l'Exercice 2 illustre la création de ressources et de propriétés pour des entités comme Marie Curie et Pierre Durand. Les graphes sont affichés dans différents formats, y compris RDF/XML et Turtle.
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Année Universitaire : 2025-2026

Web Sémantique

UP_WEB
Correction Atelier 4: RDFS

Exercice1 :

# Import des classes nécessaires depuis la bibliothèque RDFLib


from rdflib import Graph, URIRef, Literal, Namespace

def creer_graphe_adresse():
"""
Cette fonction crée un graphe RDF décrivant une adresse,
de la même manière que l'exemple Java/Jena.
"""
try:
# Définition des URIs et des valeurs littérales
adress_uri = "[Link]
ariana_uri = "[Link]
nom_adresse_literal = "18 Rue de usine"
cp_literal = "2035"

# la création d'un espace de nom


ESPACE_NOM = Namespace("[Link]

# la création d'un modèle (un graphe dans RDFLib)


g = Graph()

# association de l'URI EspaceNom au préfixe 'en'


[Link]("en", ESPACE_NOM)

# La création d'une resource (un sujet ou un objet de type URI)


adresse = URIRef(adress_uri)

# Ajout des propriétés (prédicats) et de leurs valeurs


# Note: RDFLib permet de créer les propriétés directement depuis le
namespace

# Propriété 'name' avec sa valeur littérale


[Link]((adresse, ESPACE_NOM.name, Literal(nom_adresse_literal)))
# Propriété 'codepos' avec sa valeur littérale
[Link]((adresse, ESPACE_NOM.codepos, Literal(cp_literal)))

# Création de la ressource 'ville' et de la propriété 'commeville'


ville = URIRef(ariana_uri)
[Link]((adresse, ESPACE_NOM.commeville, ville))

# Affichage du graphe au format RDF/XML, comme dans l'exemple Jena


# Le format 'xml' correspond à 'RDF/XML' dans RDFLib
print("--- Graphe au format RDF/XML ---")
print([Link](format="xml"))

except Exception as e:
# Gestion simple d'une erreur potentielle
print(f"Une erreur est survenue : {e}")

# Point d'entrée du script, équivalent de la méthode `main` en Java


if __name__ == "__main__":
creer_graphe_adresse()

Exercice2 :
# Correction de l'Exercice 2
from rdflib import Graph, URIRef, Literal, Namespace
from [Link] import FOAF, RDF

# 1. Créer un graphe vide


g = Graph()

# 2. Définir un namespace personnalisé pour notre vocabulaire


# Un namespace permet de ne pas avoir à réécrire l'URL complète à chaque fois.
EX = Namespace("[Link]

# Lier le préfixe 'ex' à notre namespace pour un affichage plus propre en


Turtle
[Link]("ex", EX)
[Link]("foaf", FOAF)

# 3. Créer les ressources (nœuds) du graphe


# URIs pour les entités
marie_curie = EX.marie_curie
pierre_durand = EX.pierre_durand
cours_physique = EX.cours_physique

# Créer les propriétés (prédicats)


enseigne = [Link]
estInscritA = [Link]
# Ajouter les triplets au graphe
# Affirmation 1: Marie Curie a pour nom "Marie Curie"
[Link]((marie_curie, [Link], Literal("Marie Curie")))
[Link]((marie_curie, [Link], [Link])) # On peut lui donner un type
générique

# Affirmation 2: Le cours a pour titre "Introduction à la Physique"


[Link]((cours_physique, [Link], Literal("Introduction à la Physique")))

# Affirmation 3: Marie Curie enseigne le cours de physique


[Link]((marie_curie, enseigne, cours_physique))

# Affirmation 4: Pierre Durand est inscrit au cours de physique et a un nom


[Link]((pierre_durand, [Link], Literal("Pierre Durand")))
[Link]((pierre_durand, estInscritA, cours_physique))
[Link]((pierre_durand, [Link], [Link]))

# 4. Afficher (sérialiser) le graphe dans différents formats


print("--- Graphe au format Turtle ---")
# Le format Turtle est très lisible pour les humains
print([Link](format="turtle"))

print("\n--- Graphe au format RDF/XML ---")


# Le format RDF/XML est plus verbeux mais est le format standard
print([Link](format="xml"))

Vous aimerez peut-être aussi