Results 1  10
of
366
XSB as an Efficient Deductive Database Engine
 In Proceedings of the ACM SIGMOD International Conference on the Management of Data
, 1994
"... This paper describes the XSB system, and its use as an inmemory deductive database engine. XSB began from a Prolog foundation, and traditional Prolog systems are known to have serious deficiencies when used as database systems. Accordingly, XSB has a fundamental bottomup extension, introduced thro ..."
Abstract

Cited by 213 (31 self)
 Add to MetaCart
This paper describes the XSB system, and its use as an inmemory deductive database engine. XSB began from a Prolog foundation, and traditional Prolog systems are known to have serious deficiencies when used as database systems. Accordingly, XSB has a fundamental bottomup extension, introduced through tabling (or memoing) [5], which makes it appropriate as an underlying query engine for deductive database systems. Because it eliminates redundant computation, the tabling extension makes XSB able to compute all modularly stratified datalog programs finitely and with polynomial data complexity. For nonstratified programs, a metainterpreter with the same properties is provided. In addition XSB significantly extends and improves the indexing capabilities over those of standard Prolog. Finally, its syntactic basis in HiLog [2], lends it flexibility for data modelling. The implementation of XSB derives from the WAM, the most common Prolog engine. XSB inherits the WAM's efficiency and can ta...
The execution algorithm of Mercury, an efficient purely declarative logic programming language
, 1996
"... Machine or WAM. Section 5 describes some optimizations and shows how Mercury handles I/O. Section 6 gives the current state of the Mercury system while section 7 presents performance results. 2. The Mercury language Syntactically, Mercury is similar to Prolog with additional declarations, partly b ..."
Abstract

Cited by 191 (21 self)
 Add to MetaCart
Machine or WAM. Section 5 describes some optimizations and shows how Mercury handles I/O. Section 6 gives the current state of the Mercury system while section 7 presents performance results. 2. The Mercury language Syntactically, Mercury is similar to Prolog with additional declarations, partly because Prolog syntax is standard in the logic programming community and partly because this made it simple to execute Mercury programs using Prolog systems early in our project. Semantically, however, Mercury is very different from Prolog. Mercury is a pure logic programming language with a welldefined declarative semantics. Like Godel [14], Mercury provides declarative replacements for Prolog 's nonlogical features. Unlike Godel, Mercury does not retain any nonlogical features; in Mercury even I/O is declarative. Mercury is designed to appeal to at least two groups of programmers. One group is those with backgrounds in imperative languages such as C who are looking for a higher level an...
DESIGN, IMPLEMENTATION, AND EVALUATION OF THE CONSTRAINT LANGUAGE cc(FD)
 J. LOGIC PROGRAMMING 1994:19, 20:1679
, 1994
"... This paper describes the design, implementation, and applications of the constraint logic language cc(FD). cc(FD) is a declarative nondeterministic constraint logic language over finite domains based on the cc framework [33], an extension of the CLP scheme [21]. Its constraint solver includes (nonl ..."
Abstract

Cited by 166 (9 self)
 Add to MetaCart
This paper describes the design, implementation, and applications of the constraint logic language cc(FD). cc(FD) is a declarative nondeterministic constraint logic language over finite domains based on the cc framework [33], an extension of the CLP scheme [21]. Its constraint solver includes (nonlinear) arithmetic constraints over natural numbers which are approximated using domain and interval consistency. The main novelty of cc(FD) is the inclusion of a number of generalpurpose combinators, in particular cardinality, constructive disjunction, and blocking implication, in conjunction with new constraint operations such as constraint entailment and generalization. These combinators signi cantly improve the operational expressiveness, extensibility, and flexibility of CLP languages and allow issues such as the definition of nonprimitive constraints and disjunctions to be tackled at the language level. The implementation of cc(FD) (about 40,000 lines of C) includes a WAMbased engine [44], optimal arcconsistency algorithms based on AC5 [40], and incremental implementation of the combinators. Results on numerous problems, including scheduling, resource allocation, sequencing, packing, and hamiltonian paths are reported and indicate that cc(FD) comes close to procedural languages on a number of combinatorial problems. In addition, a small cc(FD) program was able to nd the optimal solution and prove optimality to a famous 10/10 disjunctive scheduling problem [29], which was left open for more than 20 years and nally solved in 1986.
Compiling Constraints in clp(FD)
, 1996
"... We present the clp(FD) system: a Constraint Logic Programming language with finite domain constraints... ..."
Abstract

Cited by 147 (19 self)
 Add to MetaCart
We present the clp(FD) system: a Constraint Logic Programming language with finite domain constraints...
A Prolog Technology Theorem Prover: Implementation by an Extended Prolog Compiler
 Journal of Automated Reasoning
, 1987
"... A Prolog technology theorem prover (PTTP) is an extension of Prolog that is complete for the full firstorder predicate calculus. It differs from Prolog in its use of unification with the occurs check for soundness, the modelelimination reduction rule that is added to Prolog inferences to make the ..."
Abstract

Cited by 100 (2 self)
 Add to MetaCart
A Prolog technology theorem prover (PTTP) is an extension of Prolog that is complete for the full firstorder predicate calculus. It differs from Prolog in its use of unification with the occurs check for soundness, the modelelimination reduction rule that is added to Prolog inferences to make the inference system complete, and depthfirst iterativedeepening search instead of unbounded depthfirst search to make the search strategy complete. A Prolog technology theorem prover has been implemented by an extended PrologtoLISP compiler that supports these additional features. It is capable of proving theorems in the full firstorder predicate calculus at a rate of thousands of inferences per second. 1 This is a revised and expanded version of a paper presented at the 8th International Conference on Automated Deduction, Oxford, England, July 1986, and is to appear in Journal of Automated Reasoning. This research was supported by the Defense Advanced Research Projects Agency under Co...
A Demand Driven Computation Strategy for Lazy Narrowing
 In Proc. of the 5th International Symposium on Programming Language Implementation and Logic Programming
, 1993
"... . Many recent proposals for the integration of functional and logic programming use conditional term rewriting systems (CTRS) as programs and narrowing as goal solving mechanism. This paper specifies a computation strategy for lazy conditional narrowing, based on the idea of transforming patterns in ..."
Abstract

Cited by 99 (5 self)
 Add to MetaCart
. Many recent proposals for the integration of functional and logic programming use conditional term rewriting systems (CTRS) as programs and narrowing as goal solving mechanism. This paper specifies a computation strategy for lazy conditional narrowing, based on the idea of transforming patterns into decision trees to control the computation. The specification is presented as a translation of CTRS into Prolog, which makes it executable and portable. Moreover, in comparison to related approaches, our method works for a wider class of CTRS. 1 Introduction Many recent approaches to the integration of functional and logic programming take conditional term rewriting systems (CTRS) as programs and narrowing as goal solving mechanism. Narrowing is complete as an equation solving procedure, under suitable hypotheses, see e.g. [7]. In general, narrowing has a high degree of (don't know) nondeterminism, due to two different sources: the choice of the redex, and the choice of the rewriting rule...
The LDL System Prototype
 IEEE Transactions on Knowledge and Data Engineering
, 1990
"... The LDL system provides a declarative logicbased language and integrates relational database and logic programming technologies so as to support advanced data and knowledgebased applications. This paper contains a comprehensive overview of the system and contains a description of the LDL language ..."
Abstract

Cited by 80 (1 self)
 Add to MetaCart
The LDL system provides a declarative logicbased language and integrates relational database and logic programming technologies so as to support advanced data and knowledgebased applications. This paper contains a comprehensive overview of the system and contains a description of the LDL language and the compilation techniques employed to translate LDL queries into target queries on the stored data. The paper further contains a description of the architecture and runtime environment of the system and the optimization techniques employed in order to improve the performance and assure the safety of the compiled queries. The paper concludes with an account of the experience gained so far with the system, and discusses application areas where the LDL approach appears to be particularly effective.
A Minimal Extension of the WAM for clp(FD)
 Proceedings of the Tenth International Conference on Logic Programming
, 1993
"... We present an abstract instruction set for a constraint solver over finite domains, which can be smoothly integrated in the WAM architecture. It is based on the use of a single primitive constraint X in r which embeds the core propagation mechanism. Complex user constraints such as linear equations ..."
Abstract

Cited by 68 (7 self)
 Add to MetaCart
We present an abstract instruction set for a constraint solver over finite domains, which can be smoothly integrated in the WAM architecture. It is based on the use of a single primitive constraint X in r which embeds the core propagation mechanism. Complex user constraints such as linear equations or inequations are compiled into X in r expressions which encode the propagation scheme chosen to solve the constraint. The uniform treatment of a single primitive constraint leads to a better understanding of the overall constraint solving process and makes possible three main global optimizations which encompass many previous particular optimizations of "black box" finite domains solvers. Implementation results show that this approach combines both simplicity and efficiency. Our clp(FD) system is more than twice as fast as CHIP on average, with peak speedup reaching seven. 1 Introduction Constraint Logic Programming (CLP) has shown to be a very active field of research over recent years, ...
Strict And NonStrict Independent AndParallelism In Logic Programs: Correctness, Efficiency, And CompileTime Conditions
, 1993
"... Machine (WAM) [33]. & Prolog, the source language in this model, is basically Prolog, with the addition of the parallel conjunction operator "&" and a set of parallelismrelated builtins, which includes several types of groundness and independence checks, and synchronization primitives. Parallel co ..."
Abstract

Cited by 64 (34 self)
 Add to MetaCart
Machine (WAM) [33]. & Prolog, the source language in this model, is basically Prolog, with the addition of the parallel conjunction operator "&" and a set of parallelismrelated builtins, which includes several types of groundness and independence checks, and synchronization primitives. Parallel conditional execution graphs (which cause the execution of goals in parallel if certain conditions are met) can be constructed by combining these elements with the normal Prolog constructs, such as "?" (ifthenelse). For syntactic convenience (and historical reasons) an additional construct, the CGE, is also provided. We now study the correctness of CGEs. Definition 8. (CGE) A CGE (Conditional Graph Expression) is a structure of the form ( i cond =? goal 1 & goal 2 & ... & goal n ) where i cond is an independence condition as defined previously, and each goal i , i = 1; : : : ; n, is either a literal or (recursively) a CGE. CGEs appear as literals in the bodies of clauses. From an operat...