Forgetting - or variable elimination - is an operation that allows the removal, from a knowledge base, of middle variables no longer deemed relevant. In recent years, many different approaches for forgetting in Answer Set Programming have been proposed, in the form of specific operators, or classes of such operators, commonly following different principles and obeying different properties. Each such approach was developed to somehow address some particular view on forgetting, aimed at obeying a specific set of properties deemed desirable in such view, but a comprehensive and uniform overview of all the existing operators and properties is missing. In this paper, we thoroughly examine existing properties and (classes of) operators for forgetting in Answer Set Programming, drawing a complete picture of the landscape of these classes of forgetting operators, which includes many novel results on relations between properties and operators, including considerations on concrete operators to compute results of forgetting and computational complexity. Our goal is to provide guidance to help users in choosing the operator most adequate for their application requirements.
翻译:忘记(或变数消除)是一种行动,它使得人们能够从知识库中去除不再认为相关的中变数。近年来,以特定操作者或此类操作者类别的形式,提出了许多不同的方法,在答盘编程中遗忘,通常遵循不同原则并服从不同属性。每种方法的制定都是为了以某种方式处理对遗忘的某些特定观点,目的是遵从这种观点中认为可取的一套特定属性,但缺少对所有现有操作者和属性的全面和统一的概览。在本文中,我们彻底审查了在答盘编程中遗忘的现有属性和(操作者类别)操作者,描绘了这些“忘记”操作者类别的总体情况,其中包括关于属性和操作者之间关系的许多新结果,包括考虑具体操作者计算遗忘和计算复杂性的结果。我们的目标是提供指导,帮助用户选择最适合其应用要求的操作者。