ThesisPDF Available

JPE: Um Ambiente Integrado de Desenvolvimento de Sistemas de Representação de Conhecimento e Raciocínio

Authors:

Abstract and Figures

In this work we present the JPE (Java Prolog Environment), which is an IDE (Integrated Development Environment), that offers the most popular features that other software development environments do, allied to a pre-defined set of logic programming languages and a set of tools to be used in the construction and manipulation of knowledge bases. In this environment, the available tools can be used for construction of knowledge bases which can be embedded in another systems, may it be a single base or a composition of more than one base, done by JPE or the user himself. Such embedding will be made by a tool that allows exporting the program developed in JPE to a compressed file, which can be accessed by any other software written in Java [29]. This way, anyone which has a problem that is easier to solve with a logic programming language can use JPE to solve it and easily integrate it to a software developed in Java [29]. Because of the very large scope that the JPE construction project has, our objective will be showing an overview of what has been developed until the present moment, stressing the methodologies and practices of software engineering applied in the environment conception and development.
Content may be subject to copyright.
A preview of the PDF is not available
ResearchGate has not been able to resolve any citations for this publication.
Conference Paper
Full-text available
A construção de qualquer sistema de representação de conhecimento e raciocínio tem início com a definição de uma linguagem de representação não ambígua, que permita representar o conhecimento sobre certo domínio, através de um conjunto de sentenças desta linguagem. Este conjunto de sentenças é chamado base de conhecimento. Além disso, são necessárias formas bem definidas de manipular estas bases na fase de construção e utilização. Este trabalho tem como objetivo apresentar um ambiente integrado de desenvolvimento de sistemas de representação de conhecimento e raciocínio, chamado JPE (Java Prolog Environment), que pretende oferecer um conjunto pré-definido de linguagens de programação em lógica e um conjunto de ferramentas para serem utilizadas na construção e manipulação de bases de conhecimento. 1. INTRODUÇÃO A investigação de técnicas para representação e manipulação do conhecimento é uma das áreas de pesquisa mais importantes dentro da inteligência artificial. A execução de tarefas que parecem envolver inteligência, mesmo aquelas que para nós parecem bem simples, requer uma grande quantidade de conhecimento para serem realizadas. A construção de qualquer sistema de representação de conhecimento e raciocínio tem início com a definição de uma linguagem de representação não ambígua, que permita representar o conhecimento sobre certo domínio, através de um conjunto de sentenças desta linguagem. Este conjunto de sentenças é chamado base de conhecimento. Porém, somente a definição de uma linguagem de representação e a construção de uma base a partir desta, é insuficiente para a obtenção de sistemas que se comportem de maneira inteligente. É necessária também uma forma precisa e bem definida de manipular esta base, seja na fase de sua construção ou utilização. A área conhecida como programação em lógica [1] [2] [3], se desenvolveu procurando combinar a utilização da lógica como linguagem de representação e a teoria de dedução automática (processo pelo qual derivamos conhecimentos que se encontram implicitamente representados na base) como forma de manipulá-la. Um exemplo bem conhecido deste casamento é a linguagem Prolog [4]. A linguagem mais simples utilizada em programação em lógica, trata basicamente de problemas que envolvem conhecimento positivo e definido. Logo, se percebeu a necessidade de se estender esta linguagem, uma vez que nela não é possível representar certos tipos importantes de conhecimento como, por exemplo, conhecimento negativo (" Ana não está em Paris ") e disjuntivo (" Ana está ou em Paris ou em Londres "). Tal aumento no poder de expressão da linguagem acarreta na necessidade de expansão dos procedimentos de prova associados às linguagens mais simples. Além da dedução, outras formas de manipulação do conhecimento também se mostram importantes quando se pretende construir um sistema de representação e raciocínio. Por exemplo:-raciocínio por default [5]: quando estamos interessados em prever o comportamento de um sistema mesmo que nosso conhecimento a cerca do mundo seja incompleto.-raciocínio por abdução [6]: quando queremos usar o conhecimento expresso na base para explicar algum comportamento que está sendo observado;-aprendizagem (indução) [7]: o objetivo é generalizar certos conceitos presentes na base de conhecimento, permitindo que um conjunto de fatos possa ser representado de maneira mais compacta, por exemplo, através de um conjunto de regras.-processo de revisão de crenças ([8]): permitir que a base de conhecimento seja atualizada, não só através da inclusão de novas informações, mas também excluindo informações que não preservem a consistência da base. Todos esses processos se inter-relacionam [8], [9], [10], assim como se relacionam com as diversas linguagens de programação em lógica existentes [11], [12]. Assim, este trabalho tem como objetivo apresentar uma proposta para construção de um ambiente integrado de desenvolvimento de sistemas de representação de conhecimento e raciocínio, chamado JPE (Java Prolog Environment). O JPE pretende oferecer um conjunto pré-definido de linguagens de programação em lógica e um conjunto de ferramentas para serem utilizadas na construção e manipulação de bases de conhecimento. As ferramentas que serão disponibilizadas no JPE, além de serem utilizadas na construção de bases de conhecimento, poderão também ser incorporadas ao sistema em desenvolvimento, seja de forma individual ou pela composição, feita pelo JPE ou pelo usuário, de algumas delas. Por ser um desenvolvimento de código aberto, esperamos também incorporar ferramentas desenvolvidas por outras pessoas ou grupos.
Data
Full-text available
Examines the link between nonmonotonic inference relations and theory revision operations, focusing on the correspondence between abstract properties which each may satisfy. Also appeared in two technical reports: Proceedings of the Workshop on Nonmonotonic Reasoning (Arbeitspapiere der GMD n°443, 1990) 7-28, and Report of RP2: First Workshop on Defeasible Reasoning and Uncertainty Management Systems (DRUMS), University of Toulouse, 1990 (France)
Article
"Knowledge in Flux" presents a theory of rational changes of belief, focusing on revisions that occur when the agent receives new information that is inconsistent with the present epistemic state. It brings together, systematizes, and enlarges upon an already influential body of work by the author and his colleagues on the dynamics of theories and epistemic states. The problem of knowledge representation is one of the most important research problems in philosophy, artificial intelligence, and cognitive science in general. While most of the research has been devoted to analyzing the structure of epistemic states, this book is unique in describing the dynamics of knowledge and belief, and in presenting models of knowledge that focus on expansions, revisions, and contractions of epistemic states. (PsycINFO Database Record (c) 2012 APA, all rights reserved)
Chapter
We propose a formalism for specifying revisions in knowledge bases and belief sets. This formalism extends logic programming with stable model semantics. Main objects of our system are revision programs consisting of revision rules. A revision rule expresses a specification of change or a constraint on a knowledge base. There are two types of revision rules. In-rules require that an element be in a knowledge base whenever some other elements are in the knowledge base and yet other elements are absent from it. Similar conditions in an out-rule force the absence of an element from the knowledge base. For a revision program P we introduce the notion of a P-justified revision, which we use to specify the meaning of the program. Main motivation for our formalism and for the semantics of P-justified revisions comes from default logic and logic programming with stable model semantics. In the paper, we show that if a knowledge base B is a model of a program P then B is the unique P-justified revision of B. We show that P-justified revisions are models of P. We also show that P-justified revisions of a given knowledge base satisfy some minimality criterion. We outline the proof theory for revision programs and show its adequacy for the proposed semantics. We generalize the notion of a revision program to the case of disjunctive revision programs. A simple example of an application is also discussed.