77 research outputs found

    Knowledge-Level Reflection

    Get PDF
    This paper presents an overview of the REFLECT project. It defines the notion of knowledge level reflection that has been central to the project, it compares this notion with existing approaches to reflection in related fields, and investigates some of the consequences of the concept of knowledge level reflection: what is a general architecture for knowledge level reflection, how to model the object component in such an architecture, what is the nature of reflective theories, how can we design such architectures, and what are the results of our actual experiments with such systems

    Temporal reasoning in a logic programming language with modularity

    Get PDF
    Actualmente os Sistemas de Informação Organizacionais (SIO) lidam cada vez mais com informação que tem dependências temporais. Neste trabalho concebemos um ambiente de trabalho para construir e manter SIO Temporais. Este ambiente assenta sobre um linguagem lógica denominada Temporal Contextua) Logic Programming que integra modularidade com raciocínio temporal fazendo com que a utilização de um módulo dependa do tempo do contexto. Esta linguagem é a evolução de uma outra, também introduzida nesta tese, que combina Contextua) Logic Programming com Temporal Annotated Constraint Logic Programming, na qual a modularidade e o tempo são características ortogonais. Ambas as linguagens são formalmente discutidas e exemplificadas. As principais contribuições do trabalho descrito nesta tese incluem: • Optimização de Contextua) Logic Programming (CxLP) através de interpretação abstracta. • Sintaxe e semântica operacional para uma linguagem que combina de um modo independente as linguagens Temporal Annotated Constraint Logic Programming (TACLP) e CxLP. É apresentado um compilador para esta linguagem. • Linguagem (sintaxe e semântica) que integra de um modo inovador modularidade (CxLP) com raciocínio temporal (TACLP). Nesta linguagem a utilização de um dado módulo está dependente do tempo do contexto. É descrito um interpretador e um compilador para esta linguagem. • Ambiente de trabalho para construir e fazer a manutenção de SIO Temporais. Assenta sobre uma especificação revista da linguagem ISCO, adicionando classes e manipulação de dados temporais. É fornecido um compilador em que a linguagem resultante é a descrita no item anterior. ABSTRACT- Current Organisational Information Systems (OIS) deal with more and more Infor-mation that, is time dependent. In this work we provide a framework to construct and maintain Temporal OIS. This framework builds upon a logical language called Temporal Contextual. Logic Programming that deeply integrates modularity with tem-poral reasoning making the usage of a module time dependent. This language is an evolution of another one, also introduced in this thesis, that combines Contextual Logic Programming with Temporal Annotated Constraint Logic Programming where modularity and time are orthogonal features. Both languages are formally discussed and illustrated. The main contributions of the work described in this thesis include: • Optimisation of Contextual Logic Programming (CxLP) through abstract interpretation. • Syntax and operational semantics for an independent combination of the temporal framework Temporal Annotated Constraint Logic Programming (TACLP) and CxLP. A compiler for this language is also provided. • Language (syntax and semantics) that integrates in a innovative way modularity (CxLP) with temporal reasoning (TACLP). In this language the usage of a given module depends of the time of the context. An interpreter and a compiler for this language are described. • Framework to construct and maintain Temporal Organisational Information Systems. It builds upon a revised specification of the language ISCO, adding temporal classes and temporal data manipulation. A compiler targeting the language presented in the previous item is also given

    Behavioral types in programming languages

    Get PDF
    A recent trend in programming language research is to use behav- ioral type theory to ensure various correctness properties of large- scale, communication-intensive systems. Behavioral types encompass concepts such as interfaces, communication protocols, contracts, and choreography. The successful application of behavioral types requires a solid understanding of several practical aspects, from their represen- tation in a concrete programming language, to their integration with other programming constructs such as methods and functions, to de- sign and monitoring methodologies that take behaviors into account. This survey provides an overview of the state of the art of these aspects, which we summarize as the pragmatics of behavioral types

    An Operational Semantics for Declarative Multi-Paradigm Languages1 1This work has been partially supported by CICYT TIC 2001-2705-C03-01, by the MCYT under grants HA2001-0059, HU2001-0019 and HI2000-0161, and by the DFG under grant Ha 2457/1-2.

    Get PDF
    AbstractPractical declarative multi-paradigm languages combine the main features of functional, logic and concurrent programming (e.g., laziness, sharing, higher-order, logic variables, non-determinism, search strategies). Usually, these languages also include interfaces to external functions as well as to constraint solvers. In this work, we introduce the first formal description of an operational semantics for realistic multi-paradigm languages covering all the aforementioned features in a precise and understandable manner. We also provide a deterministic version of the operational semantics which models search strategies explicitly. This deterministic semantics becomes essential to develop language-specific tools like program tracers, profilers, optimizers, etc. Finally, we extend the deterministic semantics in order to model concurrent computations. An implementation of the complete operational semantics has been undertaken

    COLAB : a hybrid knowledge representation and compilation laboratory

    Get PDF
    Knowledge bases for real-world domains such as mechanical engineering require expressive and efficient representation and processing tools. We pursue a declarative-compilative approach to knowledge engineering. While Horn logic (as implemented in PROLOG) is well-suited for representing relational clauses, other kinds of declarative knowledge call for hybrid extensions: functional dependencies and higher-order knowledge should be modeled directly. Forward (bottom-up) reasoning should be integrated with backward (top-down) reasoning. Constraint propagation should be used wherever possible instead of search-intensive resolution. Taxonomic knowledge should be classified into an intuitive subsumption hierarchy. Our LISP-based tools provide direct translators of these declarative representations into abstract machines such as an extended Warren Abstract Machine (WAM) and specialized inference engines that are interfaced to each other. More importantly, we provide source-to-source transformers between various knowledge types, both for user convenience and machine efficiency. These formalisms with their translators and transformers have been developed as part of COLAB, a compilation laboratory for studying what we call, respectively, "vertical\u27; and "horizontal\u27; compilation of knowledge, as well as for exploring the synergetic collaboration of the knowledge representation formalisms. A case study in the realm of mechanical engineering has been an important driving force behind the development of COLAB. It will be used as the source of examples throughout the paper when discussing the enhanced formalisms, the hybrid representation architecture, and the compilers

    Computational Natural Deduction

    No full text
    The formalization of the notion of a logically sound argument as a natural deduction proof offers the prospect of a computer program capable of constructing such arguments for conclusions of interest. We present a constructive definition for a new subclass of natural deduction proofs, called atomic normal form (ANF) proofs. A natural deduction proof is readily understood as an argument leading from a set of premisses, by way of simple principles of reasoning, to the conclusion of interest. ANF extends this explanative power of natural deduction. The very detailed steps of the argument are replaced by derived rules of inference, each of which is justified by a particular input formula. ANF constitutes a proof theoretically well motivated normal form for natural deduction. Computational techniques developed for resolution refutation based systems are directly applicable to the task of constructing ANF proofs. We analyse a range of languages in this framework, extending from the simple Horn language to the full classical calculus. This analysis is applied to provide a natural deduction based account for existing logic programming languages, and to extend current logic programming implementation techniques towards more expressive languages. We consider the visualization of proofs, failure demonstrations, search spaces and the proof search process. Such visualization can be used for the purposes of explanation and to gain an understanding of the proof search process. We propose introspection based architecture for problem solvers based on natural deduction. The architecture offers a logic based meta language to overcome the combinatorial and other practical problems faced by the problem solver

    A generic, collaborative framework for internal constraint solving

    Get PDF
    Esta tesis propone un esquema genérico y cooperativo para CLP(Interval(X)) donde X es cualquier dominio de computación con estructura de retículo. El esquema, que está basado en la teoría de retículos, es un enfoque general para la satisfacción y op-timización de restricciones de intervalo así como para la cooperación de resolutores de intervalo definidos sobre dominios de computación con estructura de retículos, independientemente de la cardinalidad de estos. Nuestra propuesta asegura un enfoque transparente sobre el cual las restricciones, los dominios de computación y los mecanismos de propagación y cooperación, definidos entre las variables restringidas, pueden ser fácilmente especificados a nivel del usuario. La parte principal de la tesis presenta una especificación formal de este esquema.Los principales resultados conseguidos en esta tesis son los siguientes:Una comparativa global de la eficiencia y algunos aspectos de la expresividad de ocho sistemas de restricciones. Esta comparativa, realizada sobre el dominio finito y el dominio Booleano, muestra diferencias principales entre los sistemas de restricciones existentes.Para formalizar el marco de satisfacción de restricciones para CLP(Interval(X))hemos descrito el proceso global de resolución de restricciones de intervalo sobre cualquier retículo, separando claramente los procesos de propagación y división (ramificación) de intervalos. Una de las ventajas de nuestra propuesta es que la monótona de las restricciones esta implícitamente definida en la teoría. Además, declaramos un conjunto de propiedades interesantes que, bajo ciertas condiciones, son satisfechas por cualquier instancia del esquema genérico. Mas aún, mostramos que muchos sistemas de restricciones actualmente existentes satisfacen estas condiciones y, además, proporcionamos indicaciones sobre como extender el sistema mediante la especificación de otras instancias interesantes y novedosas. Nuestro esquema para CLP(Interval(X)) permite la cooperación de resolutores de manera que la información puede ⁰uir entre diferentes dominios de computación.Además, es posible combinar distintas instancias del esquema: por ejemplo, instancias bien conocidas tales como CLP(Interval(<)), CLP(Interval(Integer)),CLP(Interval(Set)), CLP(Interval(Bool)), y otras novedosas que son el resultado de la generación de nuevos dominios de computación definidos por el usuario, o incluso que surgen de la combinación de dominios ya existentes como puede ser CLP(Interval(X1 £ : : : £ Xn)). Por lo tanto, X puede ser instanciado a cualquier conjunto de dominios de computación con estructura de retículo de forma que su correspondiente instancia CLP(Interval(X)) permite una amplia flexibilidad en la definición de dominios en X (probablemente definidos por el usuario) y en la interaccion entre estos dominios.Mediante la implementacion de un prototipo, demostramos que un unico sistema,que este basado en nuestro esquema para CLP(Interval(X)), puede proporcionarsoporte para la satisfaccion y la optimizacion de restricciones as como para la cooperacion de resolutores sobre un conjunto conteniendo multiples dominios decomputacion. Ademas, el sistema sigue un novedoso enfoque transparente sujeto a una doble perspectiva ya que el usuario puede definir no solo nuevas restricciones y su mecanismo de propagacion, sino tambien nuevos dominios sobre los cuales nuevas restricciones pueden ser resueltas as como el mecanismo de cooperacion entre todos los dominios de computación (ya sean definidos por el usuario o predefinidos por el sistema).En nuestra opinión, esta tesis apunta nuevas y potenciales direcciones de investigación dentro de la comunidad de las restricciones de intervalo.Para alcanzar los resultados expuestos, hemos seguido los siguientes pasos (1) la elección de un enfoque adecuado sobre el cual construir los fundamentos teóricos de nuestro esquema genérico; (2) la construcción de un marco teórico genérico (que llamaremos el marco básico) para la propagación de restricciones de intervalo sobre cualquier retículo; (3) la integración, en el marco básico, de una técnica novedosa que facilita la cooperación de resolutores y que surge de la definición, sobre múltiples dominios, de operadores de restricciones y (4) la extensión del marco resultante para la resolución y optimización completa de las restricciones de intervalo.Finalmente presentamos clp(L), un lenguaje de programación lógica de restricciones de intervalo que posibilita la resolución de restricciones sobre cualquier conjunto de retículos y que esta implementado a partir de las ideas formalizadas en el marco teórico. Describimos una primera implementación de este lenguaje y desarrollamos algunos ejemplos de como usarla. Este prototipo demuestra que nuestro esquema para CLP(Interval(X)) puede ser implementado en un sistema único que, como consecuencia, proporciona, bajo un enfoque transparente sobre dominios y restricciones, cooperación de resolutores así como satisfacción y optimización completa de restricciones sobre diferentes dominios de computación

    An MML-based tool for evaluating the complexity of (stochastic) logic programs

    Full text link
    [ES] Esta tesis presenta el primer esquema de codificación MML para evaluar la simplicidad de modelos expresados en forma de programas lógicos estocásticos, así como su herramienta escrita en Prolog.[EN] The thesis presents the first general MML coding scheme for evaluating the simplicity of models expressed as stochastic logic programs, as a tool in Prolog.Castillo Andreu, H. (2012). An MML-based tool for evaluating the complexity of (stochastic) logic programs. http://hdl.handle.net/10251/17983Archivo delegad
    corecore