LinuxLinks.com
Newbies What Next ? News Forums Calendar

Search





News Sections
Home
General News (3973/0)
Reviews (628/0)
Press Releases (464/0)
Distributions (187/0)
Software (850/0)
Hardware (522/0)
Security (192/0)
Tutorials (338/0)
Off Topic (180/0)


User Functions
Username:

Password:

Don't have an account yet? Sign up as a New User


Events
There are no upcoming events




9 of the Best Free Prolog Books - Part 1

9 of the Best Free Prolog Books

Prolog is a general purpose, declarative, logic programming language associated with artificial intelligence and computational linguistics. It is widely used in research and education for natural language processing.

Automatic backtracking is one of the most characteristic features of Prolog. It is a form of searching, fundamental to all artifical intelligence techniques. Prolog also supports multidirectional reasoning; arguments to a procedure can freely be designated inputs and outputs in different ways in different procedure calls. Another key feature of Prolog is that its syntax and semantics are closer to formal logic than say Lisp.

Prolog is generally regarded as a difficult language to get to grips with. The focus of this article is to select some of the finest Prolog books which help programmers master this language, and develop an in-depth understanding of recursion, constraint logic programming, and searching problem trees. All of the books are available to download for free.

To cater for all tastes, we have chosen a good range of books. All of the texts here come with our strongest recommendation. So get reading (and downloading).

1. Logic, Programming and Prolog (2ed)

Logic, Programming and Prolog (2ed)
Website www.ida.liu.se/~ulfni/lpp/
Author Ulf Nilsson and Jan Maluszynski
Format PDF
Pages 294

The main objective of Logic, Programming and Prolog is to provide a uniform account of both the foundations of logic programming and simple programming techniques in the programming language Prolog.

Chapters include:

  • Preliminaries - contains a recapitulation of notions basic to logic in general. The chapter discusses concepts related both to model- and proof-theory of predicate logic including notions like language, interpretation, model, logical consequence, logical inference, soundness and completeness. The final section introduces the concept of substitution
  • Definite Logic Programs - introduces the restricted language of definite programs and discusses the model-theoretic consequences of restricting the language
  • SLD-Resolution - describes the operational semantics of definite programs
  • Negation in Logic Programming - discusses the use of negation in logic programming. It introduces the negation-as-definite-failure rule used to implement negation in most Prolog systems and also provides a logical justification of the rule by extending the user's program with additional axioms
  • Towards Prolog: Cut and Arithmetic - Cut is introduced as a mechanism for reducing the overhead of Prolog computations. The chapter also discusses the use of predefined arithmetic predicates in Prolog and provides a logical explanation for them
  • Logic and Databases - describes logic programming from a database point of view
  • Programming with Recursive Data Structures - demonstrates techniques for defining relations on recursive data-structures, in particular on lists
  • Amalgamating Object- and Meta-language - introduces the notion of meta- and object-language and illustrates how to use logic programs for describing SLD-resolution. The chapter also introduces some (controversial) built-in predicates available in most Prolog implementations
  • Logic and Expert Systems - demonstrates how to extend an interpreter from the previous chapter into a simple expert-system shell
  • Logic and Grammars - shows how to describe grammars in Prolog, starting from context-free grammars. Larger classes of languages are considered. The chapter moves on to introduce the notion of Definite Clause Grammars (DCGs) commonly used for describing both natural and artificial languages in Prolog
  • Searching in a State-space - demonstrates simple techniques for solving search-problems in state-transition graphs and raises some of the difficulties which are inherently associated with such problems
  • Logic Programming and Concurrency - describes a class of languages commonly called concurrent logic programming languages
  • Logic Programs with Equality - discusses an approach to integration of logic programming with functional programming based on the use of equations
  • Constraint Logic Programming - concerns the use of constraints in logic programming
  • Query-answering in Deductive Databases - concerns the use of constraints in logic programming. A rigorous semantical framework is briefly described

2. Simply Logical - Intelligent Reasoning by Example

Simply Logical
Website www.cs.bris.ac.uk/~flach/SimplyLogical.html
Author Peter Flach
Format PDF
Pages 247

Simply Logical - Intelligent Reasoning by Example aims to introduce the reader to a number of topics logic, Artificial Intelligence and computer programming. This is a book about intelligent reasoning. Reasoning is the process of drawing conclusions; intelligent reasoning is the kind of reasoning performed by humans.

The latter parts of the book present a number of recent extensions of Logic Programming, most of which have been accessible previously only in conference proceedings and journal articles.

Chapters cover:

  • Logic and Logic Programming - introduces the main concepts in logic programming such as program clauses, query answering, proof trees, and recursive data structures
  • Clausal logic and resolution: theoretical backgrounds - deals with concepts such as Herbrand models and resolution refutations, as well as meta-theoretical notions like soundness and completeness. The presentation starts with propositional clausal logic, and proceeds via relational clausal logic (without functors) to full clausal logic, and finally arrives at definite clause logic
  • Logic Programming and Prolog - discusses the practical aspects of Prolog programming examining concepts such as SLD-tree forms, the treatment of arithmetic expressions in Prolog, second-order predicates like setof, and various programming techniques like accumulators and difference lists
  • Representing structured knowledge - discusses various ways to represent structured knowledge in Prolog
  • Searching graphs - discusses and implements some basic techniques for finding solutions in search spaces. Their common denominator is that they are exhaustive: that is, in the worst case they will eventually visit every node in the search space along every possible path, before finding a solution
  • Informed search - best-first search, a complete variant of best-first search called the A algorithm, and non-exhaustive informed search strategies, that can be derived from best-first search by limiting the size of the agenda
  • Reasoning with natural language
  • Reasoning with incomplete information
  • Inductive reasoning

3. Coding Guidelines for Prolog

Coding Guidelines for Prolog
Website arxiv.org/abs/0911.2899
Author Michael A. Covington, Roberto Bagnara, Richard O'Keefe, Jan Wielemaker, Simon Price
Format PDF, Postscript (Bitmapped Fonts), PostScript (Type I Fonts), DVI, Source
Pages 39

Coding Guidelines for Prolog provides immediate guidelines for code layout, naming conventions, documentation, proper use of Prolog features, program development, debugging and testing. Presented with each guideline is its rationale and, where sensible options exist, illustrations of the relative pros and cons for each alternative.

A coding standard should always be selected on a per-project basis, based on a host of issues pertinent to any given programming project; for this reason the paper goes beyond the mere provision of normative guidelines by discussing key factors and important criteria that should be taken into account when deciding on a fully-fledged coding standard for the project.

Next Section: 9 of the Best Free Prolog Books - Part 2

This article is divided into three parts:

Part 1, Part 2, Part 3

Bookmark and Share


Last Updated Sunday, September 29 2013 @ 10:50 AM EDT


We have written a range of guides highlighting excellent free books for popular programming languages. Check out the following guides: C, C++, C#, Java, JavaScript, CoffeeScript, HTML, Python, Ruby, Perl, Haskell, PHP, Lisp, R, Prolog, Scala, Scheme, Forth, and SQL.


Group Tests
All Group Tests

Top Free Software
6 Office Suites
7 Document Processors
6 Lean Desktops
6 Desktop Search
9 Project Management
9 Groupware Apps
14 File Managers
10 Databases
21 Backup Tools
21 DVD Tools
21 Window Managers
21 Productivity Tools
9 Terminal Emulators
21 Financial Tools
21 Text Editors
21 Video Emulators
21 Home Emulators
42 Graphics Apps
6 CAD Apps
42 Scientific Apps
10 Web Browsers
42 Email Apps
12 Instant Messaging
10 IRC Clients
7 Twitter Clients
12 News Aggregators
11 VoIP Apps
11 Remote Display Apps
42 Best Games
42 More Games
21 More Games
21 Notable Games (1)
21 Notable Games (2)
21 Notable Games (3)
8 ASCII Games
9 Educational Games
42 Audio Apps
42 Video Apps
6 Screencasting Apps
80 Security Apps
9 System Monitoring
6 Family History Apps
11 PDF Tools
6 Music Servers
6 Collection Managers
7 Calculator Apps
8 Geometry Apps
Free Console Apps
14 Multimedia
Programming
8 Compilers
9 IDEs
9 Debuggers
7 Revision Control Apps
6 Doc Generators
'Free' Proprietary
21 Closed-Source Apps
Top Commercial Apps
42 Games
Free Web Software
21 Web CMS
14 Wiki Engines
8 Blog Apps
6 eCommerce Apps
5 Human Resource Apps
10 ERP
10 CRM
6 Data Warehouse Apps
8 Business Intelligence
6 Point-of-Sale

All Group Tests

Other Articles
Migrating from Windows
Back up your data
Distribution Guide
Distro Portal Pages
20 Free Linux Books
Running Linux Under Windows


Older Stories
Sunday 12/08
  • Top Email Encryption Tools (0)

  • Saturday 11/30
  • Small Image Tools that Pack a Real Punch (0)

  • Sunday 11/17
  • OneNote Alternatives (0)
  • Making Linux More Accessible (0)
  • Easy Ways to Create Screencasts (0)
  • Bloated Audio Players? No Thanks! (0)

  • Saturday 10/19
  • Tesco Hudl HT7S3 Review (0)

  • Sunday 10/13
  • Lightweight Frameworks to Kick Start HTML / CSS Projects (0)
  • Complete Frameworks for Quick Styling of Websites (0)

  • Saturday 09/28
  • Choosing a Journaling File System (0)


  • Vote

    What do you find MOST attractive about Open Source software?

    Amount of customization
    Security
    Freedom provided
    Speed of development
    Quality
    Multiple versions
    Cost
    Potential to contribute
    Ability to modify code
    Results
    4656 votes | 2 comments

    Built with GeekLog and phpBB
    Comments to the webmaster are welcome
    Copyright 2009 LinuxLinks.com - All rights reserved