[en] Intelligent systems that assist users in fulfilling complex tasks need a concise and processable representation of incomplete and uncertain information. In order to be able to choose among different options, these systems also need a compact and processable representation of the concept of preference. Preferences can provide an effective way to choose the best solutions to a given problem. These solutions can represent the most plausible states of the world when we model incomplete information, the most satisfactory states of the world when we express user preferences, or optimal decisions when we make decisions under uncertainty. Several domains, such as, reasoning under incomplete and uncertain information, user preference modeling, and qualitative decision making under uncertainty, have benefited from advances on preference representation. In the literature, several symbolic approaches of nonclassical reasoning have been proposed. Among them, logic programming under answer set semantics offers a good compromise between symbolic representation and computation of knowledge and several extensions for handling preferences. Nevertheless, there are still some open issues to be considered in logic programming. In nonmonotonic reasoning, first, most approaches assume that exceptions to logic program rules are already specified. However, sometimes, it is possible to consider implicit preferences based on the specificity of the rules to handle incomplete information. Secondly, the joint handling of exceptions and uncertainty has received little attention: when information is uncertain, the selection of default rules can be a matter of explicit preferences and uncertainty. In user preference modeling, although existing logic programming specifications allow to express user preferences which depend both on incomplete and contextual information, in some applications, some preferences in some context may be more important than others. Furthermore, more complex preference expressions need to be supported. In qualitative decision making under uncertainty, existing logic programming-based methodologies for making decisions seem to lack a satisfactory handling of preferences and uncertainty. The aim of this dissertation is twofold: 1) to tackle the role played by preferences in logic programming from different perspectives, and 2) to contribute to this novel field by proposing several frameworks and methods able to address the above issues. To this end, we will first show how preferences can be used to select default rules in logic programs in an implicit and explicit way. In particular, we propose (i) a method for selecting logic program rules based on specificity, and (ii) a framework for selecting uncertain default rules based on explicit preferences and the certainty of the rules. Then, we will see how user preferences can be modeled and processed in terms of a logic program (iii) in order to manage user profiles in a context-aware system and (iv) in order to propose a framework for the specification of nested (non-flat) preference expressions. Finally, in the attempt to bridge the gap between logic programming and qualitative decision under uncertainty, (v) we propose a classical- and a possibilistic-based logic programming methodology to compute an optimal decision when uncertainty and preferences are matters of degrees.

[es] Los sistemas inteligentes que asisten a usuarios en tareas complejas necesitan una representación concisa y procesable de la información que permita un razonamiento nomonótono e incierto. Para poder escoger entre las diferentes opciones, estos sistemas suelen necesitar una representación del concepto de preferencia. Las preferencias pueden proporcionar una manera efectiva para elegir entre las mejores soluciones a un problema. Dichas soluciones pueden representar los estados del mundo más plausibles cuando hablamos de representación de información incompleta, los estados del mundo más satisfactorios cuando hablamos de preferencias del usuario, o decisiones óptimas cuando estamos hablando de toma de decisión con incertidumbre. El uso de las preferencias ha beneficiado diferentes dominios, como, razonamiento en presencia de información incompleta e incierta, modelado de preferencias de usuario, y toma de decisión con incertidumbre. En la literatura, distintos enfoques simbólicos de razonamiento no clásico han sido creados. Entre ellos, la programación lógica con la semántica de answer set ofrece un buen acercamiento entre representación y procesamiento simbólico del conocimiento, y diferentes extensiones para manejar las preferencias. Sin embargo, en programación lógica se pueden identificar diferentes problemas con respecto al manejo de las preferencias. Por ejemplo, en la mayoría de enfoques de razonamiento no-monótono se asume que las excepciones a default rules de un programa lógico ya están expresadas. Pero, a veces se pueden considerar preferencias implícitas basadas en la especificidad de las reglas para manejar la información incompleta. Además, cuando la información es también incierta, la selección de default rules pueden depender de preferencias explícitas y de la incertidumbre. En el modelado de preferencias, aunque los formalismos existentes basados en programación lógica permitan expresar preferencias que dependen de información contextual e incompleta, in algunas aplicaciones, algunas preferencias en un contexto puede ser más importantes que otras. Por lo tanto, un lenguaje que permita capturar preferencias más complejas es deseable. En la toma de decisiones con incertidumbre, las metodologías basadas en programación lógica creadas hasta ahora no ofrecen una solución del todo satisfactoria al manejo de las preferencias y la incertidumbre. El objectivo de esta tesis es doble: 1) estudiar el rol de las preferencias en programación lógica desde diferentes perspectivas, y 2) contribuir a esta joven área de investigación proponiendo diferentes marcos teóricos y métodos para abordar los problemas anteriormente citados. Para este propósito veremos como las preferencias pueden ser usadas de manera implícita y explícita para la selección de default rules proponiendo: (i) un método para seleccionar reglas en un programa basado en la especificad de las reglas; (ii) un marco teórico para la selección de default rules basado en preferencias explícitas y incertidumbre. También veremos como las preferencias del usuario pueden ser modeladas y procesadas usando un enfoque de programación lógica (iii) para crear un mecanismo de manejo de los perfiles de los usuarios en un sistema con reconocimiento del contexto; (iv) para crear un marco teórico capaz de expresar preferencias con formulas anidadas. Por último, con el objetivo de disminuir la distancia entre programación lógica y la toma de decisión con incertidumbre proponemos (v) una metodología para modelar un problema de toma de decisiones y para inferir una decisión óptima usando un enfoque de programación lógica clásica y uno de programación lógica extendida con lógica posibilística.