301 research outputs found

    On the Expressive Power of Multiple Heads in CHR

    Full text link
    Constraint Handling Rules (CHR) is a committed-choice declarative language which has been originally designed for writing constraint solvers and which is nowadays a general purpose language. CHR programs consist of multi-headed guarded rules which allow to rewrite constraints into simpler ones until a solved form is reached. Many empirical evidences suggest that multiple heads augment the expressive power of the language, however no formal result in this direction has been proved, so far. In the first part of this paper we analyze the Turing completeness of CHR with respect to the underneath constraint theory. We prove that if the constraint theory is powerful enough then restricting to single head rules does not affect the Turing completeness of the language. On the other hand, differently from the case of the multi-headed language, the single head CHR language is not Turing powerful when the underlying signature (for the constraint theory) does not contain function symbols. In the second part we prove that, no matter which constraint theory is considered, under some reasonable assumptions it is not possible to encode the CHR language (with multi-headed rules) into a single headed language while preserving the semantics of the programs. We also show that, under some stronger assumptions, considering an increasing number of atoms in the head of a rule augments the expressive power of the language. These results provide a formal proof for the claim that multiple heads augment the expressive power of the CHR language.Comment: v.6 Minor changes, new formulation of definitions, changed some details in the proof

    Decidability properties for fragments of CHR

    Full text link
    We study the decidability of termination for two CHR dialects which, similarly to the Datalog like languages, are defined by using a signature which does not allow function symbols (of arity >0). Both languages allow the use of the = built-in in the body of rules, thus are built on a host language that supports unification. However each imposes one further restriction. The first CHR dialect allows only range-restricted rules, that is, it does not allow the use of variables in the body or in the guard of a rule if they do not appear in the head. We show that the existence of an infinite computation is decidable for this dialect. The second dialect instead limits the number of atoms in the head of rules to one. We prove that in this case, the existence of a terminating computation is decidable. These results show that both dialects are strictly less expressive than Turing Machines. It is worth noting that the language (without function symbols) without these restrictions is as expressive as Turing Machines

    CHR Grammars

    Full text link
    A grammar formalism based upon CHR is proposed analogously to the way Definite Clause Grammars are defined and implemented on top of Prolog. These grammars execute as robust bottom-up parsers with an inherent treatment of ambiguity and a high flexibility to model various linguistic phenomena. The formalism extends previous logic programming based grammars with a form of context-sensitive rules and the possibility to include extra-grammatical hypotheses in both head and body of grammar rules. Among the applications are straightforward implementations of Assumption Grammars and abduction under integrity constraints for language analysis. CHR grammars appear as a powerful tool for specification and implementation of language processors and may be proposed as a new standard for bottom-up grammars in logic programming. To appear in Theory and Practice of Logic Programming (TPLP), 2005Comment: 36 pp. To appear in TPLP, 200

    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

    Strategies in PRholog

    Full text link
    PRholog is an experimental extension of logic programming with strategic conditional transformation rules, combining Prolog with Rholog calculus. The rules perform nondeterministic transformations on hedges. Queries may have several results that can be explored on backtracking. Strategies provide a control on rule applications in a declarative way. With strategy combinators, the user can construct more complex strategies from simpler ones. Matching with four different kinds of variables provides a flexible mechanism of selecting (sub)terms during execution. We give an overview on programming with strategies in PRholog and demonstrate how rewriting strategies can be expressed

    Terminological reasoning with constraint handling rules

    Get PDF
    Constraint handling rules (CHRs) are a flexible means to implement \u27user-defined\u27 constraints on top of existing host languages (like Prolog and Lisp). Recently, M. Schmidt-Schauß and G. Smolka proposed a new methodology for constructing sound and complete inference algorithms for terminological knowledge representation formalisms in the tradition of KLONE. We propose CHRs as a flexible implementation language for the consistency test of assertions, which is the basis for all terminological reasoning services. The implementation results in a natural combination of three layers: (i) a constraint layer that reasons in well- understood domains such as rationals or finite domains, (ii) a terminological layer providing a tailored, validated vocabulary on which (iii) the application layer can rely. The flexibility of the approach will be illustrated by extending the formalism, its implementation and an application example (solving configuration problems) with attributes, a new quantifier and concrete domains

    A Labelling Framework for Probabilistic Argumentation

    Full text link
    The combination of argumentation and probability paves the way to new accounts of qualitative and quantitative uncertainty, thereby offering new theoretical and applicative opportunities. Due to a variety of interests, probabilistic argumentation is approached in the literature with different frameworks, pertaining to structured and abstract argumentation, and with respect to diverse types of uncertainty, in particular the uncertainty on the credibility of the premises, the uncertainty about which arguments to consider, and the uncertainty on the acceptance status of arguments or statements. Towards a general framework for probabilistic argumentation, we investigate a labelling-oriented framework encompassing a basic setting for rule-based argumentation and its (semi-) abstract account, along with diverse types of uncertainty. Our framework provides a systematic treatment of various kinds of uncertainty and of their relationships and allows us to back or question assertions from the literature
    corecore