Ci-dessous le modèle de l'arbre de décision est à télécharger gratuitement :
ps: à ouvrir avec l'éditeur d'ontologies "Protégé".
Objectif:
Ce tutoriel vous permettra d'interroger un arbre de décision. A l'issue de votre lecture vous comprenderez l'utilité d'une ontologie et le rôle de l'éditeur -Protégé- (open source).
Introduction:
L'arbre de décision (ci-dessous) vous "calculera" le prix d'un repas après sa composition par l'utilisateur:
Le plat principal est offert (par défaut) au prix de 5 Euros et chaque article complémentaire équivaut à 5 Euros supplémentaires.
Note:
En fonction du choix des clients l'arbre de décision indique le montant à payer.
Ci-dessous le Repas1 se compose du plat principal à 5 Euros et d'un dessert (sans boisson et sans entrée).
Quel est le prix du Repas1 ?
Le prix du Repas1 est correctement inféré: 10 Euros.
Après avoir importer l'ontologie de l'arbre de décision dans l'éditeur "Protégé" vous serez alors capable de suivre ce tutoriel et d'utiliser l'ensemble des requêtes suivantes:
2.1.1. Voilà une première requête sparql qui vous donnera tous les triplets essentiels se rapportant au Repas1:
# fichier: ex001.rq
PREFIX repas: <https://ontologies.lemondesémantique.fr/tutoriels/Arbre/>
select distinct ?p ?o
where {
repas:Repas1 ?p ?o .
}
2.1.2. Ci-dessous le résultat de la requête ex001.rq:
Explications:
L'arbre de décision a inféré le prix du Repas1 parce que:
Repas1
, le prédicat a_un_dessert
et l'objet "true"
forment un triplet.Repas1
, le prédicat a_une_boisson
et l'objet "false"
forment un triplet.Repas1
, le prédicat a_une_entrée
et l'objet "false"
forment un triplet.Les conséquences en sont les suivantes:
Repas1
, le prédicat rdf:type
et l'objet Composition:_10_Euros
sont inférés.Repas1
, le prédicat a_pour_montant
et l'objet _10_Euros
sont inférés.2.2.1 Voilà une deuxième requête sparql "INSERT" qui créera les triplets nécessaires et suffisants du Repas2:
# fichier: ex002.ttl
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix repas: <https://ontologies.lemondesémantique.fr/tutoriels/Arbre/> .
<https://ontologies.lemondesémantique.fr/tutoriels/Arbre/Repas2> a owl:NamedIndividual,
<https://ontologies.lemondesémantique.fr/tutoriels/Arbre/Repas> ;
repas: a_un_dessert true ;
repas: a_une_boisson true ;
repas: a_une_entree true .
Remarque:
Le repas2 est quant à lui composé cette fois-ci: du plat principal, d'une boisson, d'une entrée et d'un dessert.
2.2.2. La requête sparql suivante est identique à ex001.rq, la seule différence consiste à interroger maintenant la composition du Repas2 et non plus celle du Repas1:
# fichier: ex003.rq
PREFIX repas: <https://ontologies.lemondesémantique.fr/tutoriels/Arbre/>
select distinct ?p ?o
where {
repas:Repas2 ?p ?o .
}
2.2.3. Ci-dessous le résultat de la requête ex003.rq:
Après-inférence, le prix du Repas2 est correctement inféré à: 20 Euros.
3.1.1. Cette requête calculera le chiffre d'affaire en faisant l'addition des deux factures à payer par vos clients:
# fichier: ex004.rq
PREFIX repas: <https://ontologies.lemondesémantique.fr/tutoriels/Arbre/>
select (SUM(?facture) AS ?chiffreAffaire )
where {
?s rdf:type repas:Repas ;
repas:a_pour_montant ?prix .
?prix repas:_Euro ?facture .
}
3.1.2. Ci-dessous le résultat de la requête ex004.rq:
IMPORTANT:
-> Pour aller plus loin et bien comprendre comment vous pouvez créer:
LeMondeSémantique.fr vous invite à lire le tutoriel gratuit: Extension commerciale.