[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.

[it] Sistemi intelligenti, destinati a fornire supporto agli utenti in processi decisionali complessi, richiedono una rappresentazione dell'informazione concisa, formale e che permetta di ragionare in maniera non monotona e incerta. Per poter scegliere tra le diverse opzioni, tali sistemi hanno bisogno di disporre di una rappresentazione del concetto di preferenza altrettanto concisa e formale. Le preferenze offrono una maniera efficace per scegliere le miglior soluzioni di un problema. Tali soluzioni possono rappresentare gli stati del mondo più credibili quando si tratta di ragionamento non monotono, gli stati del mondo più soddisfacenti quando si tratta delle preferenze degli utenti, o le decisioni migliori quando prendiamo una decisione in condizioni di incertezza. Diversi domini come ad esempio il ragionamento non monotono e incerto, la strutturazione del profilo utente, e i modelli di decisione in condizioni d'incertezza hanno tratto beneficio dalla rappresentazione delle preferenze. Nella bibliografia disponibile si possono incontrare diversi approcci simbolici al ragionamento non classico. Tra questi, la programmazione logica con answer set semantics offre un buon compromesso tra rappresentazione simbolica e processamento dell'informazione, e diversi estensioni per la gestione delle preferenze sono state proposti in tal senso. Nonostante ció, nella programmazione logica esistono ancora delle problematiche aperte. Prima di tutto, nella maggior parte degli approcci al ragionamento non monotono, si suppone che nel programma le eccezioni alle regole siano già specificate. Tuttavia, a volte per trattare l'informazione incompleta è possibile prendere in considerazione preferenze implicite basate sulla specificità delle regole. In secondo luogo, la gestione congiunta di eccezioni e incertezza ha avuto scarsa attenzione: quando l'informazione è incerta, la scelta di default rule può essere una questione di preferenze esplicite e d'incertezza allo stesso tempo. Nella creazione di preferenze dell'utente, anche se le specifiche di programmazione logica esistenti permettono di esprimere preferenze che dipendono sia da un'informazione incompleta che da una contestuale, in alcune applicazioni talune preferenze possono essere più importanti di altre, o espressioni più complesse devono essere supportate. In un processo decisionale con incertezza, le metodologie basate sulla programmazione logica viste sinora, non offrono una gestione soddisfacente delle preferenze e dell'incertezza. Lo scopo di questa dissertazione è doppio: 1) chiarire il ruolo che le preferenze giocano nella programmazione logica da diverse prospettive e 2) contribuire proponendo in questo nuovo settore di ricerca, diversi framework e metodi in grado di affrontare le citate problematiche. Per prima cosa, dimostreremo come le preferenze possono essere usate per selezionare default rule in un programma in maniera implicita ed esplicita. In particolare proporremo: (i) un metodo per la selezione delle regole di un programma logico basato sulla specificità dell'informazione; (ii) un framework per la selezione di default rule basato sulle preferenze esplicite e sull'incertezza associata alle regole del programma. Poi, vedremo come le preferenze degli utenti possono essere modellate attraverso un programma logico, (iii) per creare il profilo dell'utente in un sistema context-aware, e (iv) per proporre un framework che supporti la definizione di preferenze complesse. Infine, per colmare le lacune in programmazione logica applicata a un processo di decisione con incertezza (v) proporremo una metodologia basata sulla programmazione logica classica e una metodologia basata su un'estensione della programmazione logica con logica possibilistica.