LogicBlox

Last updated
LogiQL
Paradigms Declarative, Logic programming
Family Datalog
Typing discipline Static
License Commercial
Website "LogicBlox – Next Generation Analytics Applications". Archived from the original on 2023-07-23.
Influenced by
Datalog

The LogicBlox system is a commercial, declarative, incremental logic programming language and deductive database inspired by Datalog. The LogiQL programming language extends Datalog with several features, including stratified negation, aggregation, and a module system. LogicBlox has been used to build pointer analyses for Java. [1]

Contents

On December 3, 2014 Predictix acquired LogicBlox. [2] On June 28, 2016 Infor acquires Predictix. [3]

Features

Related Research Articles

Logic programming is a programming, database and knowledge representation paradigm based on formal logic. A logic program is a set of sentences in logical form, representing knowledge about some problem domain. Computation is performed by applying logical reasoning to that knowledge, to solve problems in the domain. Major logic programming language families include Prolog, Answer Set Programming (ASP) and Datalog. In all of these languages, rules are written in the form of clauses:

Prolog is a logic programming language that has its origins in artificial intelligence, automated theorem proving and computational linguistics.

Inductive logic programming (ILP) is a subfield of symbolic artificial intelligence which uses logic programming as a uniform representation for examples, background knowledge and hypotheses. The term "inductive" here refers to philosophical rather than mathematical induction. Given an encoding of the known background knowledge and a set of examples represented as a logical database of facts, an ILP system will derive a hypothesised logic program which entails all the positive and none of the negative examples.

In computer science, declarative programming is a programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow.

A query language, also known as data query language or database query language (DQL), is a computer language used to make queries in databases and information systems. In database systems, query languages rely on strict theory to retrieve information. A well known example is the Structured Query Language (SQL).

Datalog is a declarative logic programming language. While it is syntactically a subset of Prolog, Datalog generally uses a bottom-up rather than top-down evaluation model. This difference yields significantly different behavior and properties from Prolog. It is often used as a query language for deductive databases. Datalog has been applied to problems in data integration, networking, program analysis, and more.

In computer science, the well-founded semantics is a three-valued semantics for logic programming, which gives a precise meaning to general logic programs.

F-logic is a knowledge representation and ontology language. F-logic combines the advantages of conceptual modeling with object-oriented, frame-based languages and offers a declarative, compact and simple syntax, as well as the well-defined semantics of a logic-based language.

<span class="mw-page-title-main">Georg Gottlob</span> Austrian computer scientist

Georg Gottlob FRS is an Austrian-Italian computer scientist who works in the areas of database theory, logic, and artificial intelligence and is Professor of Informatics at the University of Calabria. He was Professor at the University of Oxford.

In computer science, a rule-based system is a computer system in which domain-specific knowledge is represented in the form of rules and general-purpose reasoning is used to solve problems in the domain.

<span class="mw-page-title-main">Incremental computing</span> Software feature

Incremental computing, also known as incremental computation, is a software feature which, whenever a piece of data changes, attempts to save time by only recomputing those outputs which depend on the changed data. When incremental computing is successful, it can be significantly faster than computing new outputs naively. For example, a spreadsheet software package might use incremental computation in its recalculation features, to update only those cells containing formulas which depend on the changed cells.

Infer, sometimes referred to as "Facebook Infer", is a static code analysis tool developed by an engineering team at Facebook along with open-source contributors. It provides support for Java, C, C++, and Objective-C, and is deployed at Facebook in the analysis of its Android and iOS apps.

Flix is a functional, imperative, and logic programming language developed at Aarhus University, with funding from the Independent Research Fund Denmark, and by a community of open source contributors. The Flix language supports algebraic data types, pattern matching, parametric polymorphism, currying, higher-order functions, extensible records, channel and process-based concurrency, and tail call elimination. Two notable features of Flix are its type and effect system and its support for first-class Datalog constraints.

Vadalog is a system for performing complex logic reasoning tasks over knowledge graphs. Its language is based on an extension of the rule-based language Datalog, Warded Datalog±.

Krzysztof R. Apt is a Polish computer scientist. He defended his PhD in mathematical logic in Warsaw, Poland in 1974. His research interests include program correctness and semantics, use of logic as a programming language, distributed computing, and game theory. Besides his own research, he has been heavily involved in service to the computing community, notably by promoting the use of logic in computer science and by advocating open access to scientific literature.

Soufflé is an open source parallel logic programming language, influenced by Datalog. Soufflé includes both an interpreter and a compiler that targets parallel C++. Soufflé has been used to build static analyzers, disassemblers, and tools for binary reverse engineering. Soufflé is considered by academic researchers to be high-performance and "state of the art," and is often used in benchmarks in academic papers.

Disjunctive Datalog is an extension of the logic programming language Datalog that allows disjunctions in the heads of rules. This extension enables disjunctive Datalog to express several NP-hard problems that are not known to be expressable in plain Datalog. Disjunctive Datalog has been applied in the context of reasoning about ontologies in the semantic web. DLV is an implementation of disjunctive Datalog.

Logic programming is a programming paradigm that includes languages based on formal logic, including Datalog and Prolog. This article describes the syntax and semantics of the purely declarative subset of these languages. Confusingly, the name "logic programming" also refers to a specific programming language that roughly corresponds to the declarative subset of Prolog. Unfortunately, the term must be used in both senses in this article.

DatalogZ is an extension of Datalog with integer arithmetic and comparisons. The decision problem of whether or not a given ground atom (fact) is entailed by a DatalogZ program is RE-complete, which can be shown by a reduction to diophantine equations.

Probabilistic logic programming is a programming paradigm that combines logic programming with probabilities.

References

Notes

  1. Antoniadis, Tony; Triantafyllou, Konstantinos; Smaragdakis, Yannis (2017-06-18). "Porting doop to Soufflé". Proceedings of the 6th ACM SIGPLAN International Workshop on State of the Art in Program Analysis. SOAP 2017. New York, NY, USA: Association for Computing Machinery. pp. 25–30. doi:10.1145/3088515.3088522. ISBN   978-1-4503-5072-3. S2CID   3074689.
  2. "Predictix Acquires LogicBlox". mergr.com. Retrieved 2024-06-08.
  3. "Infor Acquires Predictix". finance.yahoo.com. Retrieved 2024-06-08.
  4. "6.4. Negation - LogicBlox 3.10 Reference Manual". developer.logicblox.com. Retrieved 2023-03-04. "Additionally, negation is only allowed when the platform can determine a way to stratify all rules and constraints that use negation."
  5. "Chapter 7. Rules - LogicBlox 3.10 Reference Manual". developer.logicblox.com. Retrieved 2023-03-04.
  6. Veldhuizen, Todd L. (2013-12-20). "Leapfrog Triejoin: a worst-case optimal join algorithm". arXiv: 1210.0481 [cs.DB].
  7. Aberger, Christopher R.; Tu, Susan; Olukotun, Kunle; Ré, Christopher (May 2016). "Old techniques for new join algorithms: A case study in RDF processing". 2016 IEEE 32nd International Conference on Data Engineering Workshops (ICDEW). pp. 97–102. arXiv: 1602.03557 . doi:10.1109/ICDEW.2016.7495625. ISBN   978-1-5090-2109-3. S2CID   10016546.
  8. Zook, David; Pasalic, Emir; Sarna-Starosta, Beata (2009). Gill, Andy; Swift, Terrance (eds.). Typed Datalog. Practical Aspects of Declarative Languages. Lecture Notes in Computer Science. Vol. 5418. Berlin, Heidelberg: Springer. pp. 168–182. doi:10.1007/978-3-540-92995-6_12. ISBN   978-3-540-92995-6. "Our type system has been implemented as a part of the LogicBlox development environment."
  9. Singh, Shikha; Madaminov, Sergey; Bender, Michael A.; Ferdman, Michael; Johnson, Ryan; Moseley, Benjamin; Ngo, Hung; Nguyen, Dung; Olesen, Soeren; Stirewalt, Kurt; Washburn, Geoffrey (May 2020). "A Scheduling Approach to Incremental Maintenance of Datalog Programs". 2020 IEEE International Parallel and Distributed Processing Symposium (IPDPS). pp. 864–873. doi:10.1109/IPDPS47924.2020.00093. ISBN   978-1-7281-6876-0. S2CID   216513350.
  10. Köhler, Sven; Ludäscher, Bertram; Smaragdakis, Yannis (2012). Barceló, Pablo; Pichler, Reinhard (eds.). Declarative Datalog Debugging for Mere Mortals. Datalog in Academia and Industry. Lecture Notes in Computer Science. Vol. 7494. Berlin, Heidelberg: Springer. pp. 111–122. doi:10.1007/978-3-642-32925-8_12. ISBN   978-3-642-32925-8.
  11. "Chapter 17. Provenance". LogicBlox 3.10 Reference Manual. Retrieved 2023-03-11.

Sources

Further reading

See also