Exercice de contrôle
Si l'on suppose que la BC [KB] ne contient que
pm#relation
\. (part pm#type: pm#transitive_relation_type)
pm#type
pm#supertype;
B1 part _[each->a]: (B2 part _[each->a]: (B3 part _[each->a]: B4)), /^ A1, \. C1;
//i.e.: B1 /^ A1, \. C1; each B1 part: a B2; each B2 part: a B3; each B3 part: a B4;
quelles réponses doit donner un moteur d'inférences aux requêtes FL suivantes
s'il connait la sémantique de pm#transitive_relation_type, pm#type et pm#supertype ?
/*1.*/ ? [a B1 part: a B4] /*2.*/ ? [a B1 part .^1: a B4] /*3.*/ ? [a B1 part .^1: a ?x] /*4.*/ ?x [a B1 part .^1: ?x] /*5.*/ ? [a B1 part: a ^(?x /^ A1)] /*6.*/ ?x [a B1 part: ?x] /*7.*/ ? [B1 pm#relation .^1: a ?x] /*8.*/ ?x [B1 pm#relation .^1: ?x] /*9.*/ ? [B1 pm#relation .^1: ?x] /*10.*/ ? [every B1 pm#relation: a ?x]
//Answers (here, with or without the "closed world assumption"): /*1.*/ /*2.*/ /*3.*/ /*4.*/ /*5.*/ /*6.*/ /*7.*/ /*8.*/ /*9.*/ /*10.*/
Si une BC ne contient que le graphe[B1 part _[each->a ?b]: (B2 part _[?b->a]: (B3 pm#type: A3),
pm#type: A2)]
et que la sémantique de "part" est prédéfinie dans le moteur d'inférences utilisé,
quelles réponses ce moteur d'inférence doit retourner pour les 2 requêtes suivantes sur cette BC
(d'après la description donnée en cours pour le langage de requêtes utilisé ci-dessous) ?
Si le graphe entier est une réponse, vous pouvez utiliser [...] pour ne pas le ré-écrire entièrement..
Pour signaler qu'une requête n'a pas de réponse, utilisez [] (i.e. le graphe vide).
/*1:*/ ?s [a B1 part .^1: a ?x] <= ?s
/*2:*/ ? [a B1 part: (a ?x pm#type: A2)]