Results 11  20
of
67
Dynamic Predicates in Functional Logic Programs
 Journal of Functional and Logic Programming
, 2004
"... In this paper we propose a new concept to deal with dynamic predicates in functional logic programs. The definition of a dynamic predicate can change over time, i.e., one can add or remove facts that define this predicate. Our approach is easy to use and has a clear semantics that does not depend on ..."
Abstract

Cited by 14 (6 self)
 Add to MetaCart
In this paper we propose a new concept to deal with dynamic predicates in functional logic programs. The definition of a dynamic predicate can change over time, i.e., one can add or remove facts that define this predicate. Our approach is easy to use and has a clear semantics that does not depend on the particular (demanddriven) evaluation strategy of the underlying implementation. In particular, the concept is not based on (unsafe) side effects so that the order of evaluation does not influence the computed results—an essential requirement in nonstrict languages. Dynamic predicates can also be persistent so that their definitions are saved across invocations of programs. Thus, dynamic predicates are a lightweight alternative to the explicit use of external database systems. Moreover, they extend one of the classical application areas of logic programming to functional logic programs. We present the concept, its use and an implementation in a Prologbased compiler. 1 Motivation and Related Work Functional logic languages [11] aim to integrate the best features of functional and logic languages in order to provide a variety of programming concepts to the programmer. For instance, the concepts of demanddriven evaluation, higherorder functions, and polymorphic typing from functional programming can be combined with logic programming features like computing with partial information (logical variables), constraint solving, and nondeterministic search for solutions. This combination leads to optimal evaluation strategies [2] and new design patterns [4] that can be applied to provide better programming abstractions, e.g., for implementing graphical user interfaces [13] or programming dynamic web pages [14]. However, one of the traditional application areas of logic programming is not yet sufficiently covered in existing functional logic languages: the combination
A Debugging Scheme for Functional Logic Programs
 Proc. WFLP’2001
, 2002
"... We present a generic scheme for the declarative debugging of functional logic programs which is valid for eager as well as lazy programs. In particular we show that the framework extends naturally some previous work and applies to the most modern lazy strategies, such as needed narrowing. First we a ..."
Abstract

Cited by 13 (7 self)
 Add to MetaCart
We present a generic scheme for the declarative debugging of functional logic programs which is valid for eager as well as lazy programs. In particular we show that the framework extends naturally some previous work and applies to the most modern lazy strategies, such as needed narrowing. First we associate to our pro grams a semantics based on a (continuous) immediate consequence operator, which models computed answers. We show that, given the intended specification of a program 7, it is possible to check the correctness of 7 by a single step of Tn. We consider then a more effective methodology which is based on abstract interpretation: by approximating the intended specification of the success set we derive a finitely terminating diagnosis method, which can be used statically and is parametric w.r.t. to the chosen approximation. In order to correct the bugs, we sketch a preliminary deductive approach which uses exampleguided unfolding. We specialize the incorrect rules w.r.t. sets of positive and negative examples which are gathered (bottomup) during the diagnosis process, so that all refutations of nega tive examples and no refutation of positive examples are excluded. Our debugging framework does not require the user to either provide error symptoms in advance or answer diicult questions concerning program correctness. We extend an implementation of our system to the case of needed narrowing and illustrate it through some examples which demonstrate the practicality of our approach.
A Constraintbased Partial Evaluator for Functional Logic Programs and its Application
, 1998
"... The aim of this work is the development and application of a partial evaluation procedure for rewritingbased functional logic programs. Functional logic programming languages unite the two main declarative programming paradigms. The rewritingbased computational model extends traditional functional ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
The aim of this work is the development and application of a partial evaluation procedure for rewritingbased functional logic programs. Functional logic programming languages unite the two main declarative programming paradigms. The rewritingbased computational model extends traditional functional programming languages by incorporating logical features, including logical variables and builtin search, into its framework. This work is the first to address the automatic specialisation of these functional logic programs. In particular, a theoretical framework for the partial evaluation of rewritingbased functional logic programs is defined and its correctness is established. Then, an algorithm is formalised which incorporates the theoretical framework for the procedure in a fully automatic technique. Constraint solving is used to represent additional information about the terms encountered during the transformation in order to improve the efficiency and size of the residual programs. ...
Knowledge Representation, Computation, and Learning in Higherorder Logic
 In preparation
, 2001
"... This paper contains a systematic study of the foundations of knowledge representation, computation, and learning in higherorder logic. First, a polymorphicallytyped higherorder logic, whose origins can be traced back to Church's simple theory of types, is presented. A model theory and proof ..."
Abstract

Cited by 10 (7 self)
 Add to MetaCart
This paper contains a systematic study of the foundations of knowledge representation, computation, and learning in higherorder logic. First, a polymorphicallytyped higherorder logic, whose origins can be traced back to Church's simple theory of types, is presented. A model theory and proof theory for this logic are developed and basic theorems relating these two are given. A metric space of certain closed terms, which provides a rich language for representing individuals, is then studied. Also a method of systematically constructing predicates on such individuals is given. The technique of programming with abstractions is illustrated. Major applications of the logic to declarative programming languages and machine learning are indicated. 1
Probabilistic Modelling, Inference and Learning using Logical Theories
"... This paper provides a study of probabilistic modelling, inference and learning in a logicbased setting. We show how probability densities, being functions, can be represented and reasoned with naturally and directly in higherorder logic, an expressive formalism not unlike the (informal) everyday l ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
This paper provides a study of probabilistic modelling, inference and learning in a logicbased setting. We show how probability densities, being functions, can be represented and reasoned with naturally and directly in higherorder logic, an expressive formalism not unlike the (informal) everyday language of mathematics. We give efficient inference algorithms and illustrate the general approach with a diverse collection of applications. Some learning issues are also considered.
A Framework for HigherOrder Inductive Machine Learning
 IN PROCEEDINGS OF THE COMPULOGNET AREA MEETING ON REPRESENTATION ISSUES IN REASONING AND LEARNING
, 1997
"... This position paper presents a framework for inductive machine learning which includes higherorder concepts and is sufficiently general to include most of the extant (symbolic) inductive learning frameworks and systems. ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
This position paper presents a framework for inductive machine learning which includes higherorder concepts and is sufficiently general to include most of the extant (symbolic) inductive learning frameworks and systems.
Declarative Debugging of Functional Logic Programs
, 2001
"... . We present a general framework for the declarative debugging of functional logic programs, which is valid both for eager as well as lazy programs. We associate with our programs a semantics based on a (continuous) immediate consequence operator which models computed answers. Then we show that, ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
. We present a general framework for the declarative debugging of functional logic programs, which is valid both for eager as well as lazy programs. We associate with our programs a semantics based on a (continuous) immediate consequence operator which models computed answers. Then we show that, given the intended specification of a program P , it is possible to check the correctness of P by a single step of the immediate consequence operator. Our methodology can be used both for bottomup as well as topdown (abstract) debugging. It is particularly suitable when pure functional logic programs are used as specification of other more efficient functional logic programs, going back to the origins, i.e. looking at declarative languages as languages for both rapid prototyping and implementation. We also present a more effective methodology which is based on abstract interpretation. By approximating the intended specification of the success set we derive a finitely terminating d...
A Language for Automatically Enforcing Privacy Policies
"... It is becoming increasingly important for applications to protect sensitive data. With current techniques, the programmer bears the burden of ensuring that the application’s behavior adheres to policies about where sensitive values may flow. Unfortunately, privacy policies are difficult to manage be ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
It is becoming increasingly important for applications to protect sensitive data. With current techniques, the programmer bears the burden of ensuring that the application’s behavior adheres to policies about where sensitive values may flow. Unfortunately, privacy policies are difficult to manage because their global nature requires coordinated reasoning and enforcement. To address this problem, we describe a programming model that makes the system responsible for ensuring adherence to privacy policies. The programming model has two components: 1) core programs describing functionality independent of privacy concerns and 2) declarative, decentralized policies controlling how sensitive values are disclosed. Each sensitive value encapsulates multiple views; policies describe which views are allowed based on the output context. The system is responsible for automatically ensuring that outputs are consistent with the policies. We have implemented this programming model in a new functional constraint language named Jeeves. In Jeeves, sensitive values are introduced as symbolic variables and policies correspond to constraints that are resolved at output channels. We have implemented Jeeves as a Scala library using an SMT solver as a model finder. In this paper we describe the dynamic and static semantics of Jeeves and the properties about policy enforcement that the semantics guarantees. We also describe our experience implementing a conference management system and a social network.