Mark Watson's books on Java, Artificial Intelligence, Text Mining, Ruby, Common Lisp, Clojure, and C++

I enjoy writing and in addition to my published books (for Springer-Verlag, McGraw-Hill, Morgan Kaufman, APress, Sybex, M&T Press, and J. Wiley) I offer free Open Content material that is available for immediate download and information on my published books appears on this web page.

Free Open Content Web Books:

License for my Free Web Books

Creative Commons License  This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License.

Additional license terms:

The work is published "AS IS" with no implied or expressed warranty - you accept all risks for the use of both the Free Web Book and any software program examples that are bundled with the work.

Some of my free web books are also available for purchase on Purchasing books is voluntary but doing so helps to fund future writing projects.

Practical Semantic Web and Linked Data Applications, Common Lisp Edition

Updated March 12, 2011.

Download the free version of the PDF
The book software is licensed under the LGPL version 3.

Please consider
buying printed copy of my book to help fund future writing projects. (The purchase page on Lulu will show all of my available books in print and PDF versions so make sure that you un-check what you don't want to buy.)

This book is intended to be a practical guide for creating knowledge intensive application with Common Lisp and Semantic Web technologies.

Github repository for code

Practical Semantic Web and Linked Data Applications, Java, Scala, Clojure, and JRuby Edition

Book cover image Published May 8, 2010. Semantic Web stacks used:
AllegroGraph and Sesame.

This PDF is downloaded approximately 40 times a day.

Download the free version of the PDF

The book software is licensed under the LGPL version 3.

Please also consider purchasing a print version off this book:

Buying printed copy of my book helps fund future writing projects
. (The purchase page on Lulu will show all of my available books in print and PDF versions so make sure that you un-check what you don't want to buy.)

This book is intended to be a practical guide for using RDF data in information processing, linked data, and semantic web applications using both the AllegroGraph product and the Sesame open source project. RDF data represents a graph. You probably are familiar to at least some extent with graph theory from computer science. Graphs are a natural way to represent things and the relationships between them. Github repository for code

Practical Artificial Intelligence Programming in Java

June 29, 2013: a new version of this book is now available for a minimum price of $3 in PDF, Kindle, and iPad formats. Check it out!

You can also download the old version for free:

A free PDF version of the old edition book is available here: free download.

This PDF is downloaded approximately 250 times a day, every day since it was released 3 years ago.

Do you want to use Latex to write technical papers and books with program listings and program output?

I have set up a package with my Latex setup here as a ZIP file that contains the very beginning of one of my writing projects - after I set up the environment but before much text or example programs were added. The README.txt file contains some notes and other cool things to try with Latex.

Loving Lisp, or the Savvy Programmer's Secret Weapon

July 21, 2013: a new 3rd edition of my book Loving Common Lisp, or the Savvy Programmer's Secret Weapon is now available for a minimum price of $3 in PDF, Kindle, and iPad formats. Check it out!

To download the old version (September 18, 2002) for free please click here to download.

I was motivated to write this book because I have been an enthusiastic Lisp programmer since the 1970s and I would like to motivate more programmers to learn ANSI Common Lisp.

While I consider Java to be twice as "programmer efficient" as C++, I consider Common Lisp to be twice as good as Java for some applications. Common Lisp compilers are freely available, stable, and compiledmarkwatson Common Lisp code is very fast.

Not yet programming in Lisp? Spend a few evenings with this free web book and experience what many computer scientists consider the best all-around programming language.

The language Scheme is also a dialect of Lisp and is frequently used in programming classes. My free web book only covers Common Lisp, not Scheme.


Brady's Very Hungry Day

My wife Carol wrote this picture story for our young grandchildren: Brady's Hungry Day. Read this picture story to your young children - they will like it!

Fish Pond

Download this very short story if you want to experience my strange sense of humor :-)

Published Books:

Errata sheets and extra code for my older published books

SunONE Book Cover Image Scripting Intelligence: Web 3.0 Information, Gathering and Processing, APress 2009

This book covers the Semantic Web, Linked Data, Scaling web applications, using map reduce for large scale data processing, web mashups, text mining, natural language processing, ActiveRecord, Datamapper, Ruby clients for CouchDB, Sesame, AllegroGraph, scaling for large data, geohash and geolocation, Solr, Nutch, Sphinx, web scraping and storing data as RDF, linked data, Hadoop map reduce, and web mashups.

The examples are (mostly) written in Ruby.

Here is a link to support this book.

2/19/2012: I moved the example source code to a github repostitory. Enjoy!

SunONE Book Cover Image Java 10 Minute Solutions Sybex, 2004

This book covers short examples that solve common Java programming problems, including: XML (SAX, DOM, XSLT), thread management, JDBC, ant, XDoclet, servlets/JSP/struts, search algorithms, etc.

Here is a link to my support web site for this book. Here is a link to download the examples.

"Intelligent Java Applications for the Internet and Intranets", 1997 Morgan Kaufman (Many Distributed AI examples developed in Java)

NOTE: This book is out of print, and the examples were written using Java 1.0 in 1996

This book provides many examples of artificial intelligence programming in Java, including:

  • Expert systems
  • Neural networks
  • Genetic algorithms
  • Agent-based programming
  • Utilities for automating the access of information in Email servers (POP3 and SMTP) and web sites (HTTP)
  • Example arcade game which uses genetic algorithms

New 3/7/2000: a ZIP file containing versions of the example programs updated to compile and run under JDK1.1 and JDK1.2

SunONE Book Cover Image "Sun ONE Services", 2001 M&T Press (Hungry Minds)

This book covers the Java enterprise J2EE 2 APls and XML technologies that comprise the Sun ONE platform - EJBs, servlets, JSPs, JNDI, UDDI, ebXML, SOAP, WSDL, and JAXP. Here is a link to my support web site for this book.

"Common LISP Modules. Artificial Intelligence in the Era of Neural Networks and Chaos Theory", Springer-Verlag 1991

Common LISP source code for this book

Note: as of 3/19/2000: the source code ZIP file contains a new plot library to work with the free Xanalys Personal Edition of LispWorks 4.3. Check out to get LispWorks 4.3 personal edition.

"Linux Programming Unleashed", 1999 MCP

Lead author: Kurt Wall, with Mark Whitus, and Mark Watson.

NOTE: the publisher decided not to include CD-ROMs with this book as it went to press. Eventually, MCP will have all code examples from the book at this web site:

Until MCP has our examples online, here is a link to get my example programs in the book.

This book covers most aspects of programming for the Linux platform. My contributions were chapters on:

  • X Windows and Xlib
  • Motif Widgets
  • Athena Widgets
  • GTK library
  • Qt C++ class library
  • OpenGL and Mesa 3D graphics programming
  • Java programming (mostly server side with sockets and threads)
  • Socket Programming
  • Shared memory
  • IP multicast
  • Pipes

Kurt Wall did a good job putting this book together, and I had a lot of fun writing my chapters! Linux rules!

Here is a link to get my example programs in the book.

"Java Programming for Windows: Using Microsoft AFC, WFC, and XML", 1998 Morgan Kaufman

The Java programming language is widely used for deploying applications on most types of computer systems. Although many Java programs are written for portability, writing Windows-specific Java programs can enhance the performance of multimedia and Windows-specific APIs.

This book offers guidelines for determining when to use Windows-specific APIs and code. It also helps you divide applications into portable Java and platform-specific Java modules both to maximize future code reuse on all platforms and to take advantage of Windows-specific APIs for appropriate applications.

"Java Programming for Windows" shows you how to
  • Use the Application Framework Class (AFC) library, the Windows Foundation Class (WFC) library, and the portable Java class library for Internet news groups
  • Build custom desk/web top environments in pure Java with the Microsoft Active Desktop
  • Employ JScript to access Web page components and to interact with Java applets
  • Access JScript from Java applets
  • Apply the Microsoft DirectX/Direct3D APIs in Java applications
  • Find a complete Web server written in Java, extended to provide XML (and CDF) support

5/3/2000 update: see the errata page or directions for using Microsoft's SDK for Java version 4.0

"Understanding UML: The Developer's Guide: With a Web-Based Application in Java", Paul Harmon and Mark Watson, Morgan Kaufman Publishers, 1997

A guide to the new standard for designing object oriented software: UML. The client/server Java example includes a useful database access class library that uses the JDBC Java API.

"Portable GUI Development With C++", McGraw-Hill 1993

"Creating JavaBeans: Components for Distributed Applications", Morgan Kaufman, 1997

This book serves as an introduction to JavaBean programming and provides complete examples using:

  • Sockets
  • Java RMI
  • Java JDBC database access API

"C++ Power Paradigms", McGraw-Hill 1994 (Genetic Algorithms, Neural Networks, and Constraint Programming)

"Portable User Interface Programming in C++, second edition", McGraw-Hill 1995 (Windows, Windows 95, NT, OS/2 PM, Macintosh, and X Windows) Note the publisher released some books with the wrong software on the included disk. Click here to get the disk contents. Note:The material in this book is out of date - it was written in 1994.

"AI Agents in Virtual Reality Worlds", J. Wiley 1996 (C++ framework for AI in games)

"Programming in Scheme ", Springer Verlag 1996 (Learn Scheme programming using AI examples)

I provide a tutorial for Scheme programming and several interesting examples (e.g., neural networks, genetic algorithms, search, chess player, Go player, etc.).

"Programming Intelligent Agents for the Internet", McGraw-Hill 1996 (For Windows 95 and NT programmers who want to automate retrieval of information from the Internet. All examples also provided for Unix systems.)

I provide a C++ class library for accessing information on the Internet, plus several examples.