LogiQL : A Query Language for Smart Databases book cover
1st Edition

A Query Language for Smart Databases

ISBN 9781482244939
Published November 13, 2014 by CRC Press
347 Pages 19 B/W Illustrations

SAVE ~ $14.99
was $74.95
USD $59.96

Prices & shipping based on shipping country


Book Description

LogiQL is a new state-of-the-art programming language based on Datalog. It can be used to build applications that combine transactional, analytical, graph, probabilistic, and mathematical programming. LogiQL makes it possible to build hybrid applications that previously required multiple programming languages and databases. In this first book to cover LogiQL, the authors explain how to design, implement, and query deductive databases using this new programming language.

LogiQL’s declarative approach enables complex data structures and business rules to be simply specified and then automatically executed. It is especially suited to business applications requiring complex rules to be implemented efficiently, for example predictive analytics and supply chain optimization.

Suitable for both novices and experienced developers, the book is written in easy-to-understand language. It includes many examples and exercises throughout to illustrate the main concepts and consolidate understanding.

Table of Contents

Key LogiQL Concepts
Quick Start

Databases, Predicates, and Facts
Declaring Entity Types and Refmodes
Entering Facts
Expressing Domain Relationships with Predicates
Constraining the Data
Declaring Functional Predicates
Declaring Derivation Rules
Querying a Workspace
Consolidation Exercise 1
Part 1: Country of Birth
Part 2: Birth and Death Dates
Part 3: Age at Death
Part 4: Reigns and Ancestry
Answers to Exercises

Intermediate Aspects
Inverse-Functional Predicates
N-ary Predicates
Inclusive-or and External Uniqueness Constraints
Subtyping and Subsetting
Subset Constraints
Recursive Rules and Ring Constraints
Ring Constraints
Hard and Soft Constraints
The Count and Total Functions
Computing Counts
Dealing with Empty Predicates
Computing Totals and Averages
Consolidation Exercise 2
Part 1: Books
Part 2: Book Sales
Part 3: Personnel
Answers to Exercises

Diving Deeper
The max and min Functions
Argmin and Argmax
Summary of Aggregation Functions
Safety Conditions for Rules and Queries
Derivation Rule Semantics
Delta Rules and Pulse Predicates
Delta Modifiers
Delta Logic
Pulse Predicates
Transaction Processing
Transaction Processing Example
Stage Suffixes
Additional Built-in Operators and Functions
String Manipulation
Aggregate Functions for Ordering
Consolidation Exercise 3
Answers to Exercises

Advanced Aspects
Emulating Imperative Programming Constructs
Switch Statement
Iteration Statements
Further Constraints
Equality Constraints
Value Constraints
Frequency Constraints
Subset and Exclusion Constraints Involving Join Paths
Derived Entities and Constructors
N-ary Constructors
Program Organization
Legacy Code
Program Organization
Modules and Concrete Blocks
Namespaces Revisited
Separate Compilation and Libraries
Miscellaneous Topics
Materialized and Derived-Only Views
Hierarchical Syntax
File Predicates
Consolidation Exercise 4
Answers to Exercises


Running Your Programs
Running the LogiQL REPL
LogiQL Syntax
Built-In Operators and Predicates
Summary of Constraints
Programming Conventions
LogiQL and Predicate Logic
LogiQL and SQL
Testing Your Programs
Improving Your Program’s Performance

View More



Spencer Rugaber is a computer scientist who has worked both in industry and in academia as well as serving as program director for the Software Engineering and Languages program at the U.S. National Science Foundation. His research interests are in the area of software engineering, human-computer interaction, and cognitive science. He is the author of the article on program understanding included in the Encyclopedia of Computer Science and Technology and of numerous software engineering articles appearing in technical journals and conference proceedings. He is currently a computer scientist with LogicBlox, Inc. (Atlanta, Georgia) and an adjunct faculty member at the Georgia Institute of Technology (Atlanta).

Terry Halpin is a professor in computer science at INTI International University, Malaysia, and a data modeling consultant. He previously held senior faculty positions in computer science at the University of Queensland (Australia) and Neumont University (Salt Lake City, Utah). He previously spent many years in data modeling technology at Asymetrix Corporation, InfoModelers Inc., Visio Corporation, Microsoft Corporation, and LogicBlox. His doctoral thesis formalized object-role modeling (ORM/NIAM), and his current research focuses on conceptual modeling and rule-based technology. He has authored more than 200 technical publications and seven books, and has co-edited nine books on information systems modeling research. He is a regular columnist for the Business Rules Journal, and is a recipient of the DAMA International Achievement Award for Education (2002) and the IFIP Outstanding Service Award (2006).


"I gladly recommend the LogiQL book to anyone interested in databases. … The book is easy to read, contains many examples and exercises, and offers teachers involved in databases and their applications a very effective tool to get students to understand databases and how to program them."
—Dr. Herman Balsters, Associate Professor of Information Systems Design and Former Program Director of the Interfaculty of Industrial Engineering, University of Groningen

"The first mistake people will make is to think that LogiQL is another SQL. No, no. SQL is for accessing data and maintaining data integrity in a relational model. LogiQL discovers and deduces logical relations from predicates by looking at data and a set of predicates that define rules. If you ever worked with the Prolog language, then you know the difference.
LogiQL has an extensional database (EDB) and intentional database (IDB). EDB predicates normally are used to hold the facts that you explicitly enter into the workspace. In contrast, the facts populating IDB predicates are computed for you by your logic program. Think of SQL as a library and LogiQL is the research librarian.
This is the only book on LogiQL and it is designed as a textbook with examples and tests for someone who wants to learn this tool. Get the software, open the book, and get started."
—Joe Celko, Independent Database Consultant