3,908 research outputs found

    Choice Disjunctive Queries in Logic Programming

    Full text link
    One of the long-standing research problems on logic programming is to treat the cut predicate in a logical, high-level way. We argue that this problem can be solved by adopting linear logic and choice-disjunctive goal formulas of the form G_0 \add G_1 where G0,G1G_0, G_1 are goals. These goals have the following intended semantics: choosechoose the true disjunct GiG_i and execute GiG_i where i(=0Ā orĀ 1)i (= 0\ {\rm or}\ 1), while discardingdiscarding the unchosen disjunct. Note that only one goal can remain alive during execution. These goals thus allow us to specify mutually exclusive tasks in a high-level way.Comment: 8 pages. Implementation scheme from the previous version contains an error. A new, correct implementation scheme is describe

    Towards Interactive Logic Programming

    Full text link
    Linear logic programming uses provability as the basis for computation. In the operational semantics based on provability, executing the additive-conjunctive goal G1&G2G_1 \& G_2 from a program PP simply terminates with a success if both G1G_1 and G2G_2 are solvable from PP. This is an unsatisfactory situation, as a central action of \& -- the action of choosing either G1G_1 or G2G_2 by the user -- is missing in this semantics. We propose to modify the operational semantics above to allow for more active participation from the user. We illustrate our idea via muProlog, an extension of Prolog with additive goals.Comment: 8 pages. It describes two execution models for interactive logic programmin

    Experiences with Some Benchmarks for Deductive Databases and Implementations of Bottom-Up Evaluation

    Full text link
    OpenRuleBench is a large benchmark suite for rule engines, which includes deductive databases. We previously proposed a translation of Datalog to C++ based on a method that "pushes" derived tuples immediately to places where they are used. In this paper, we report performance results of various implementation variants of this method compared to XSB, YAP and DLV. We study only a fraction of the OpenRuleBench problems, but we give a quite detailed analysis of each such task and the factors which influence performance. The results not only show the potential of our method and implementation approach, but could be valuable for anybody implementing systems which should be able to execute tasks of the discussed types.Comment: In Proceedings WLP'15/'16/WFLP'16, arXiv:1701.0014

    Datalog as a parallel general purpose programming language

    Get PDF
    The increasing available parallelism of computers demands new programming languages that make parallel programming dramatically easier and less error prone. It is proposed that datalog with negation and timestamps is a suitable basis for a general purpose programming language for sequential, parallel and distributed computers. This paper develops a fully incremental bottom-up interpreter for datalog that supports a wide range of execution strategies, with trade-offs affecting efficiency, parallelism and control of resource usage. Examples show how the language can accept real-time external inputs and outputs, and mimic assignment, all without departing from its pure logical semantics
    • ā€¦
    corecore