Suggestions for Further Study
Knowledge Representation and Logic are huge subjects and I will close out this chapter by recommending a few books that have been the most helpful to me:
• Knowledge Representation by John Sowa. This has always been my favorite reference for knowledge representation, logic, and ontologies.
• Artificial Intelligence, A Modern Approach by Stuart Russell and Peter Norvig. A very good theoretical treatment of logic and knowledge representation.
• The Art of Prolog by Leon Sterling and Ehud Shapiro. Prolog implements a form of predicate logic that is less expressive than the descriptive logics
supported by PowerLoom and OWL Chapter 4. That said, Prolog is very efficient and fairly easy to learn and so is sometimes a better choice. This
book is one of my favorite general Prolog references.
The Prolog language is a powerful AI development tool. Both the open source SWI- Prolog and the commercial Amzi Prolog systems have good Java interfaces. I don’t
cover Prolog in this book but there are several very good tutorials on the web if you decide to experiment with Prolog.
We will continue Chapter 4 with our study of logic-based reasoning systems in the context of the Semantic Web.
55
56
4 Semantic Web
The Semantic Web is intended to provide a massive linked set of data for use by soft- ware systems just as the World Wide Web provides a massive collection of linked
web pages for human reading and browsing. The Semantic Web is like the web in that anyone can generate any content that they want. This freedom to publish any-
thing works for the web because we use our ability to understand natural language to interpret what we read – and often to dismiss material that based upon our own
knowledge we consider to be incorrect.
The core concept for the Semantic Web is data integration and use from different sources. As we will soon see, the tools for implementing the Semantic Web are
designed for encoding data and sharing data from many different sources.
There are several very good Semantic Web toolkits for the Java language and plat- form. I will use Sesame because it is what I often use in my own work and I believe
that it is a good starting technology for your first experiments with Semantic Web technologies. This chapter provides an incomplete coverage of Semantic Web tech-
nologies and is intended merely as a gentle introduction to a few useful techniques and how to implement those techniques in Java.
Figure 4.1 shows a layered set of data models that are used to implement Seman- tic Web applications. To design and implement these applications we need to think
in terms of physical models storage and access of RDF, RDFS, and perhaps OWL data, logical models how we use RDF and RDFS to define relationships between
data represented as unique URIs and string literals and how we logically combine data from different sources and conceptual modeling higher level knowledge rep-
resentation using OWL.
I am currently writing a separate book Practical Semantic Web Programming in Java that goes into much more detail on the use of Sesame, Jena, Protege, OwlApis, RD-
FRDFSOWL modeling, and Descriptive Logic Reasoners. This chapter is meant to get you interested in this technology but is not intended as a detailed guide.
57
OWL: extends RDFS to allow
expression of richer class relationships, cardinality, etc.
XML: a syntax for tree structured
documents
XML Schema: a language for
placing restrictions on XML documents
RDF: modeling subject, predicate
and object links
RDFS: vocabulary for describing
properties and class membership by properties
Figure 4.1: Layers of data models used in implementing Semantic Web applications