405949
Constructive negation and constraint logic programming with sets
The aim of this paper is to extend theConstructive Negation technique to the case ofCLP(SεT), a Constraint Logic Programming (CLP) language based on hereditarily (and hybrid) finite sets. The challenging aspects of the problem originate from the fact that the structure on whichCLP(SεT) is based is notadmissible closed, and this does not allow to reuse the results presented in the literature concerning the relationships betweenCLP and constructive negation.We propose a new constraint satisfaction algorithm, capable of correctly handling constructive negation for large classes ofCLP(SεT) programs; we also provide a syntactic characterization of such classes of programs. The resulting algorithm provides a novel constraint simplification procedure to handle constructive negation, suitable to theories where unification admits multiple most general unifiers. We also show, using a general result, that it is impossible to construct an interpreter forCLP(SεT) with constructive negation which is guaranteed to work for any arbitrary program; we identify classes of programs for which the implementation of the constructive negation technique is feasible.
15589668
Logic Meta-Programming Facilities in 'LOG
A meta-level extension of a logic programming language is presented. The resulting language, called 'LOG (read quote-log), provides meta-programming facilities similar to those of Prolog while preserving a declarative logical semantics. It also offers new meta-programming opportunities as compared with Prolog due to its ability to treat whole programs, i.e. sequences of clauses, as data objects. The extension basically consists in defining a suitable naming scheme. It associates two different but related meta-representations with every syntactic object of the language, from characters to programs. The choice of the double metarepresentation is motivated by both the user and the implementation viewpoints. All Prolog built-in meta-predicates can be redefined as 'LOG programs by exploiting the new naming scheme. Then some syntactic sugar is added to make the language more concrete. Some examples are given, in particular to show the ability of the language to deal with programs as data.
23168836
JSetL: a Java library for supporting declarative programming in Java
12466079
ACI1 constraints
Disuniication is the problem of deciding satissability of a system of equations and disequations w.r.t. a given equational theory. In this paper we study the disuni-cation problem in the context of ACI1 equational theories. We provide a characterization of the interpretation structures suitable to model the axioms in ACI1 theories. The satissability problem is solved using known techniques for the equality constraints and novel methodologies to transform disequation constraints into solved forms. We propose three solved forms, ooering an increasingly more precise characterization of the set of solutions. Two of them can be computed and tested in polynomial time. The novel results achieved open new possibilities in the practical and eecient manipulation of ACI1 constraints.
7012937
Integrating Lists, Multisets, and Sets in a Logic Programming Framework
The first order theories of lists, bags, compact-lists (i.e., lists where the number of contiguous occurrences of each element is immaterial), and sets are introduced via axioms. Such axiomatizations are shown to be especially suitable for the integration with free functor symbols governed by the classical Clark’s axioms in the context of Constraint Logic Programming. Adaptations of the extensionality principle to the various theories taken into account is then exploited in the design of unification algorithms for the considered data structures. All the theories presented can be combined providing frameworks to deal with several of the proposed data structures simoultaneously. The unification algorithms proposed can be combined (merged) as well to produce engines for such combination theories.
60140
A uniform approach to constraint-solving for lists, multisets, compact lists, and sets
Lists, multisets, and sets are well-known data structures whose usefulness is widely recognized in various areas of computer science. They have been analyzed from an axiomatic point of view with a parametric approach in Dovier et al. [1998], where the relevant unification algorithms have been developed. In this article, we extend these results considering more general constraints, namely, equality and membership constraints and their negative counterparts.
21945654
Designing Hypermedia Applications with Objects and Patterns
In this paper we present a software engineering approach for building hypermedia applications. Our approach combines the use of an object-oriented method with a system of design patterns for navigational and interface design. We first present the core activities in the Object-Oriented Hypermedia Design Method (OOHDM), namely conceptual design navigation design, abstract interface design and implementation, describing the modeling constructs we use to build high-level, abstract navigational and interface structures. Next we give the rationale for using design patterns in the process of building high quality hypermedia applications, and present some simple patterns solving recurrent design problems. We finally discuss some further issues.
11116452
The object-oriented hypermedia design model
H ypermedia applications typically include complex information , and may allow sophisticated navigation behavior. The Object-Oriented Hypermedia Design Method (OOHDM) [4] uses abstraction and composition mechanisms in an object-oriented framework to, on one hand, allow a concise description of complex information items, and on the other hand, allow the specification of complex navigation patterns and interface transformations. In OOHDM, a hypermedia application is built in a four-step process supporting an incremental or prototype process model. Each step focuses on a particular design concern, and an object-oriented model is built. Classification, aggregation and generalization/specialization are used throughout the process to enhance abstraction power and reuse opportunities. Figure 1 summarizes the steps, products , mechanisms and design concerns in OOHDM. Domain Analysis In this step a conceptual model of the application domain is built using well-known object-oriented modeling principles [3], augmented with some primitives such as attribute perspectives (multiple-valued attributes, similar to HDM perspectives [1]). Conceptual classes may be built using aggregation and generalization/special-ization hierarchies. There is no concern for the types Abstract interface objects, responses to external events, interface transformations Running application
38243163
Querying Hypermedia Applications in an Object-Oriented Framework
14893766
Improving Web Information Systems with Navigational Patterns
In this paper we show how to improve the architecture of Web information systems (WIS) using design patterns, in particular navigational patterns. We first present a framework to reason about the process of designing and implementing these applications. Then we introduce navigational patterns and show some prototypical patterns. We next show how these patterns have been used in some successful WIS. Finally, we explain how patterns are integrated into the development process of WIS.