• Aucun résultat trouvé

Cette section décrit une exploitation pratique du modèle flou d’interprétation des ENA f RKM présenté dans le chapitre précédent, dans le contexte applicatif des moteurs de requêtes flexibles : après avoir présenté le domaine et les problématiques associées, elle décrit et illustre la mise en œuvre proposée ainsi que son implémentation dans le système ReqFlex (Smits et al., 2013).

Nous remercions Gregory Smits et Olivier Pivert pour leur collaboration qui a permis l’implémentation de cette application.

6.1.1 Contexte

Dans les systèmes classiques de bases de données, les requêtes sont exprimées en logique binaire. Le résultat renvoyé est l’ensemble des données de la base qui rendent la requête vraie. A titre d’exemple, considérons le cas d’une base de données gérée par les ressources humaines d’une entreprise, décrivant ses salariés. Une requête typique serait de lister les employés dont le salaire est compris entre 1900 et 2100 euros. Ce type de bases de données nécessite que les connaissances quant à ce qui doit être trouvé soient précises et bien connues.

Les requêtes flexibles reposent sur l’utilisation de la logique floue plutôt que de la logique classique pour autoriser des degrés de vérité et donc identifier les résultats qui rendent la requête vraie à différents degrés (Bosc & Pivert, 1992). Elles permettent de considérer des réponses qui ne respectent pas, de peu, les contraintes exprimées par des requêtes classiques, par exemple un employé dont le salaire est 1897 euros. Plus généralement, les requêtes flexibles autorisent une gradualité dans le degré de vérité : plus on s’éloigne des contraintes strictes, plus celui-ci diminue. Ce degré de vérité peut être interprété en terme de préférences pondérées du côté utilisateur. Ainsi, dans l’exemple ci-dessus, le degré de vérité des employés gagnant entre 1900 et 2100 euros peut être égal à 1, reflétant le fait qu’ils correspondent parfaitement aux préférences de l’utilisateur ; le degré de vérité d’un employé dont le salaire est 1850 peut être 0,7, reflétant le fait qu’il correspond un peu moins à ses préférences.

Trois problématiques sont associées aux requêtes flexibles, à plusieurs niveaux. Au ni-veau théorique, elles impliquent la formulation d’un langage de requête spécifique. SQLf (Bosc & Pivert, 1995) est un langage étendant le langage classique d’interrogation de bases de données SQL qui répond à cet objectif. Il permet d’utiliser, au delà des prédicats clas-siques, des prédicats flous exprimés en langage naturel, tels que jeune et grand, plutôt que des prédicats booléens, tels que inférieur à 30 ans et supérieur à 1,75m. Chaque prédicat flou est représenté par une fonction d’appartenance. Une requête flexible peut comporter

6.1. Application aux moteurs de requêtes flexibles 89

plusieurs prédicats, combinés selon les principes de la logique floue, par exemple jeune et grand.

Au niveau algorithmique et pratique, ensuite, se pose la question d’une implémentation efficace d’un moteur d’inférence (Bosc & Pivert, 2000). La dérivation (Bosc & Pivert, 1993) est l’une des méthodes classiquement mises en œuvre pour y répondre. Elle comporte trois étapes. La première consiste à traduire la requête flexible en requête classique. Celle-ci est ensuite envoyée à un moteur de requête classique. Enfin, dans la troisième étape, le degré de vérité des résultats renvoyés par le moteur sont calculés. Par exemple, PostgreSQLf (Smits et al., 2012) a été développé dans cette optique en tant qu’extension du moteur de requêtes PostgreSQL.

La troisième problématique concerne l’ergonomie. Les requêtes flexibles autorisent une expressivité accrue pour l’utilisateur, mais celle-ci doit être formulable simplement et in-tuitivement. Trois approches existent pour permettre à l’utilisateur de définir les prédicats flous. La première approche consiste à lui soumettre un ensemble de prédicats prédéfinis, parmi lesquels il peut choisir. Cette approche est illustrée dans la partie droite de la fi-gure 6.1, qui illustre l’interface ReqFlex (Smits et al., 2013) : l’utilisateur peut sélectionner un prédicat parmi ceux qui sont prédéfinis par le concepteur ou qui ont été enregistrés par lui-même ou d’autres utilisateurs. Les prédicats peuvent également être construits dans une approche guidée par les données pour veiller à la cohérence entre les souhaits de l’uti-lisateur et le contenu de la base : les sous-ensembles flous sont construis dynamiquement à partir des distributions des données dans la base, l’utilisateur attribuant dans un second temps des étiquettes linguistiques décrivant les prédicats (Smits et al., 2014).

La seconde approche pour définir un prédicat flou consiste à donner une liberté absolue à l’utilisateur : il peut choisir aussi bien la forme générale du sous-ensemble flou, triangulaire, trapézoïdale ou gaussienne par exemple, que ses paramètres, support, noyau, etc. Cette approche présente toutefois l’inconvénient d’être peu intuitive pour un non-expert. En effet, elle implique un minimum de connaissance en logique floue que le tout-venant ne possède généralement pas.

La troisième approche de définition d’un prédicat flou est une hybridation entre les deux premières : le sous-ensemble flou représentant le prédicat est soumis à certaines contraintes, restreignant ainsi les possibilités de l’utilisateur. Celui-ci peut dès lors se focaliser sur les paramètres importants de la définition. Par exemple, comme illustré dans la partie gauche de la figure 6.1, dans ReqFlex, les sous-ensembles flous représentant les prédicats numériques sont tous de forme trapézoïdale. L’utilisateur n’a qu’à définir les valeurs qui lui semblent acceptables et celles qui lui semblent idéales, correspondant respectivement au support et au noyau du sous-ensemble flou trapézoïdal, qui interpole linéairement entre les bornes de ces derniers.

90 Chapitre 6. Interprétation des ENA : application et extension des modèles

Figure 6.1 – Interface originale de ReqFlex (Smits et al., 2013). La partie gauche permet de définir le sous-ensemble flou correspondant à un prédicat (environ 140 000km) d’un attribut numérique, ici le kilométrage (mileage) de véhicules d’occasion. Le noyau (Ideal values) est compris dans l’intervalle [135000, 145000] et le support (Acceptable values) dans l’intervalle [125000, 155000]. La partie droite de l’interface fournit à l’utilisateur un ensemble de prédicats prédéfinis ou précédemment sauvegardés.

6.1.2 Mise en œuvre du modèle flou f RKM proposé

La mise en œuvre du modèle flou d’interprétation des ENA, f RKM, que nous avons décrit au chapitre précédent s’inscrit dans la problématique de la définition des prédicats flous. Nous proposons définir un nouveau type de prédicat prenant la forme “environ x” : partant d’une valeur de référence x, entrée par l’utilisateur, le modèle renvoie le support, le noyau et la 0,5-coupe du sous-ensemble flou représentant le prédicat. Le support correspond aux valeurs acceptables, le noyau aux valeurs idéales et la 0,5-coupe peut être interprétée comme les valeurs intermédiaires entre acceptables et idéales. La validation expérimentale du modèle f RKM détaillée dans le chapitre précédent (voir section 5.3.3 p. 83) permet de s’assurer que les bornes générées par le modèle sont pertinentes d’un point de vue cognitif pour l’utilisateur.

La définition d’un nouveau type de prédicat “environ x” est utile pour éviter la défi-nition des sous-ensembles flous correspondant aux prédicats, qui peut rapidement devenir fastidieuse pour l’utilisateur. En effet, dans l’exemple de la base de données de salariés, il peut à un moment donné rechercher les employés dont le salaire est “environ 2000 euros” puis ceux dont le salaire est “environ 3000 euros”, puis ceux dont le salaire est “environ 1500