Exercices sur le langage générique pour rechercher des RCs

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.*/

Solutions

Exercices sur le langage générique pour rechercher des RCs

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)]


Solutions