A Developer’s Guide to the Semantic Web

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

The Semantic Web represents a vision for how to make the huge amount of information on the Web automatically processable by machines on a large scale. For this purpose, a whole suite of standards, technologies and related tools have been specified and developed over the last couple of years and they have now become the foundation for numerous new applications.

A Developer’s Guide to the Semantic Web helps the reader to learn the core standards, key components and underlying concepts. It provides in-depth coverage of both the what-is and how-to aspects of the Semantic Web. From Yu’s presentation, the reader will obtain not only a solid understanding about the Semantic Web, but also learn how to combine all the pieces to build new applications on the Semantic Web.

The second edition of this book not only adds detailed coverage of the latest W3C standards such as SPARQL 1.1 and RDB2RDF, it also updates the readers by following recent developments. More specifically, it includes five new chapters on schema.org and semantic markup, on Semantic Web technologies used in social networks and on new applications and projects such as data.gov and Wikidata and it also provides a complete coding example of building a search engine that supports Rich Snippets.

Software developers in industry and students specializing in Web development or Semantic Web technologies will find in this book the most complete guide to this exciting field available today. Based on the step-by-step presentation of real-world projects, where the technologies and standards are applied, they will acquire the knowledge needed to design and implement state-of-the-art applications.

Author(s): Liyang Yu (auth.)
Edition: 2
Publisher: Springer-Verlag Berlin Heidelberg
Year: 2014

Language: English
Pages: 829

Preface to the First Edition
Objectives of the Book
Intended Readers
Structure of the Book
Where to Get the Code
Acknowledgment
Preface to the Second Edition
Contents
Part I: Core of the Semantic Web
Chapter 1: A Web of Data: Toward the Idea of the Semantic Web
1.1 A Motivating Example: Data Integration on the Web
1.1.1 A Smart Data Integration Agent
1.1.2 Is Smart Data Integration Agent Possible?
1.1.3 The Idea of the Semantic Web
1.2 A More General Goal: A Web Understandable to Machines
1.2.1 How Do We Use the Web?
1.2.1.1 Searching
1.2.1.2 Information Integration
1.2.1.3 Web Data Mining
1.2.2 What Stops Us From Doing More?
1.2.3 Again, the Idea of the Semantic Web
1.3 The Semantic Web: A First Look
1.3.1 The Concept of the Semantic Web
1.3.2 The Semantic Web, Linked Data and the Web of Data
1.3.3 Some Basic Things About the Semantic Web
Reference
Chapter 2: The Building Block for the Semantic Web: RDF
2.1 RDF Overview
2.1.1 RDF In Official Language
2.1.2 RDF in Plain English
2.2 The Abstract Model of RDF
2.2.1 The Big Picture
2.2.2 Statement
2.2.3 Resource and Its URI Name
2.2.4 Predicate and Its URI Name
2.2.5 RDF Triples: Knowledge That Machines Can Use
2.2.6 RDF Literals and Blank Node
2.2.6.1 Basic Terminologies So Far
2.2.6.2 Literal Values
2.2.6.3 Blank Nodes
2.2.7 A Summary So Far
2.3 RDF Serialization: RDF/XML Syntax
2.3.1 The Big Picture: RDF Vocabulary
2.3.2 Basic Syntax and Examples
2.3.2.1 rdf:RDF, rdf:Description, rdf:about and rdf:resource
2.3.2.2 rdf:type and Typed Nodes
2.3.2.3 Using Resource as Property Value
2.3.2.4 Using Untyped Literals as Property Values, rdf:value and rdf:parseType
2.3.2.5 Using Typed Literal Values and rdf:datatype
2.3.2.6 rdf:nodeID and More About Anonymous Resources
2.3.2.7 rdf:ID, xml:base and RDF/XML Abbreviation
2.3.3 Other RDF Capabilities and Examples
2.3.3.1 RDF Containers: rdf:Bag, rdf:Seq, rdf:Alt and rdf:li
2.3.3.2 RDF Collections: rdf:first, rdf:rest, rdf:nil and rdf:List
2.3.3.3 RDF Reification: rdf:statement, rdf:subject, rdf:predicate and rdf:object
2.4 Other RDF Sterilization Formats
2.4.1 Notation-3, Turtle and N-Triples
2.4.2 Turtle Language
2.4.2.1 Basic Language Features
2.4.2.2 Abbreviations and Shortcuts: Namespace Prefix, Default Prefix and @base
2.4.2.3 Abbreviations and Shortcuts: Token a, Comma and Semicolons
2.4.2.4 Turtle Blank Nodes
2.5 Fundamental Rules of RDF
2.5.1 Information that Is Understandable by Machines
2.5.2 Distributed Information Aggregation
2.5.3 A Hypothetical Real World Example
2.6 More About RDF
2.6.1 Dublin Core: Example of Predefined RDF Vocabulary
2.6.2 XML vs. RDF?
2.6.3 Use a RDF Validator
2.7 Summary
Chapter 3: Other RDF-Related Technologies: Microformats, RDFa and GRDDL
3.1 Introduction: Why Do We Need These?
3.2 Microformats
3.2.1 Microformats: The Big Picture
3.2.2 Microformats: Syntax and Examples
3.2.2.1 From vCard to hCard Microformat
3.2.2.2 Using hCard Microformat to Markup Page Content
3.2.3 Microformats and RDF
3.2.3.1 What´s So Good About Microformats?
3.2.3.2 Microformats and RDF
3.3 RDFa
3.3.1 RDFa: The Big Picture
3.3.2 RDFa Attributes and RDFa Elements
3.3.3 RDFa: Rules and Examples
3.3.3.1 RDFa Rules
3.3.3.2 RDFa Examples
3.3.4 RDFa and RDF
3.3.4.1 What´s So Good About RDFa?
3.3.4.2 RDFa and RDF
3.4 GRDDL
3.4.1 GRDDL: The Big Picture
3.4.2 Using GRDDL with Microformats
3.4.3 Using GRDDL with RDFa
3.5 Summary
Chapter 4: RDFS and Ontology
4.1 RDFS Overview
4.1.1 RDFS in Plain English
4.1.2 RDFS in Official Language
4.2 RDFS+RDF: One More Step Toward Machine-Readable
4.2.1 A Common Language to Share
4.2.2 Machine Inferencing Based on RDFS
4.3 RDFS Core Elements
4.3.1 The Big Picture: RDFS Vocabulary
4.3.2 Basic Syntax and Examples
4.3.2.1 Defining Classes
4.3.2.2 Defining Properties
4.3.2.3 More About Properties
4.3.2.4 RDFS Data Types
4.3.2.5 RDFS Utility Vocabulary
4.3.3 Summary So Far
4.3.3.1 Our Camera Vocabulary
4.3.3.2 Where Is the Knowledge?
4.4 The Concept of Ontology
4.4.1 What Is Ontology
4.4.2 The Benefits of Ontology
4.5 Building the Bridge to Ontology: SKOS
4.5.1 Knowledge Organization Systems (KOS)
4.5.2 Thesauri vs. Ontologies
4.5.3 Filling the Gap: SKOS
4.5.3.1 What Is SKOS?
4.5.3.2 SKOS Core Constructs
4.5.3.3 Interlinking Concepts by Using SKOS
4.6 Another Look at Inferencing Based on RDF Schema
4.6.1 RDFS Ontology Based Reasoning: Simple, Yet Powerful
4.6.2 Good, Better and Best: More Is Needed
4.7 Summary
Chapter 5: OWL: Web Ontology Language
5.1 OWL Overview
5.1.1 OWL in Plain English
5.1.2 OWL in Official Language: OWL 1 and OWL 2
5.1.3 From OWL 1 to OWL 2
5.2 OWL 1 and OWL 2: The Big Picture
5.2.1 Basic Notions: Axiom, Entity, Expression and IRI Names
5.2.2 Basic Syntax Forms: Functional-Style, RDF/XML Syntax, Manchester Syntax and XML Syntax
5.3 OWL 1 Web Ontology Language
5.3.1 Defining Classes: The Basics
5.3.2 Defining Classes: Localizing Global Properties
5.3.2.1 Value Constraints: owl:allValuesFrom
5.3.2.2 Enhanced Reasoning Power 1
5.3.2.3 Value Constraints: owl:someValuesFrom
5.3.2.4 Enhanced Reasoning Power 2
5.3.2.5 Value Constraints: owl:hasValue
5.3.2.6 Enhanced Reasoning Power 3
5.3.2.7 Cardinality Constraints: owl:cardinality, owl:min(max)Cardinality
5.3.2.8 Enhanced Reasoning Power 4
5.3.3 Defining Classes: Using Set Operators
5.3.3.1 Set Operators
5.3.3.2 Enhanced Reasoning Power 5
5.3.4 Defining Classes: Using Enumeration, Equivalent and Disjoint
5.3.4.1 Enumeration, Equivalent and Disjoint
5.3.4.2 Enhanced Reasoning Power 6
5.3.5 Our Camera Ontology So Far
5.3.6 Define Properties: The Basics
5.3.7 Defining Properties: Property Characteristics
5.3.7.1 Symmetric Properties
5.3.7.2 Enhanced Reasoning Power 7
5.3.7.3 Transitive Properties
5.3.7.4 Enhanced Reasoning Power 8
5.3.7.5 Functional Properties
5.3.7.6 Enhanced Reasoning Power 9
5.3.7.7 Inverse Property
5.3.7.8 Enhanced Reasoning Power 10
5.3.7.9 Inverse Functional Property
5.3.7.10 Enhanced Reasoning Power 11
5.3.8 Camera Ontology Written Using OWL 1
5.4 OWL 2 Web Ontology Language
5.4.1 What Is New in OWL 2
5.4.2 New Constructs for Common Patterns
5.4.2.1 Common Pattern: Disjointness
5.4.2.2 Common Pattern: Negative Assertions
5.4.3 Improved Expressiveness for Properties
5.4.3.1 Property Self Restriction
5.4.3.2 Property Self Restriction: Enhanced Reasoning Power 12
5.4.3.3 Property Cardinality Restrictions
5.4.3.4 Property Cardinality Restrictions: Enhanced Reasoning Power 13
5.4.3.5 More About Property Characteristics: Reflexive, Irreflexive and Asymmetric Properties
5.4.3.6 More About Property Characteristics: Enhanced Reasoning Power 14
5.4.3.7 Disjoint Properties
5.4.3.8 Disjoint Properties: Enhanced Reasoning Power 15
5.4.3.9 Property Chains
5.4.3.10 Property Chains: Enhanced Reasoning Power 16
5.4.3.11 Keys
5.4.3.12 Keys: Enhanced Reasoning Power 17
5.4.4 Extended Support for Datatypes
5.4.4.1 Wider Range of Supported Datatypes and Extra Built-in Datatypes
5.4.4.2 Restrictions on Datatypes and User-Defined Datatypes
5.4.4.3 Data Range Combinations
5.4.5 Punning and Annotations
5.4.5.1 Understanding Punning
5.4.5.2 OWL Annotations, Axioms About Annotation Properties
5.4.6 Other OWL 2 Features
5.4.6.1 Entity Declarations
5.4.6.2 Top and Bottom Properties
5.4.6.3 Imports and Versioning
5.4.7 OWL Constructs in Instance Documents
5.4.8 OWL 2 Profiles
5.4.8.1 Why Do We Need All These?
5.4.8.2 Assigning Semantics to OWL Ontology: Description Logic vs. RDF-Based Semantics
5.4.8.3 Three Faces of OWL 1
5.4.8.4 Understanding OWL 2 Profiles
5.4.8.5 OWL 2 EL, QL and RL
5.4.9 Our Camera Ontology in OWL 2
5.5 Summary
Chapter 6: SPARQL: Querying the Semantic Web
6.1 SPARQL Overview
6.1.1 SPARQL in Official Language
6.1.2 SPARQL in Plain Language
6.1.3 RDF Datasets and SPARQL Endpoints
6.2 SPARQL 1.0 Query Language
6.2.1 The Big Picture
6.2.1.1 Triple Pattern
6.2.1.2 Graph Pattern
6.2.2 SELECT Query
6.2.2.1 Structure of a SELECT Query
6.2.2.2 Writing Basic SELECT Query
6.2.2.3 Using OPTIONAL Keyword for Matches
6.2.2.4 Using Solution Modifier
6.2.2.5 Using FILTER Keyword to Add Value Constraints
6.2.2.6 Using Union Keyword for Alternative Match
6.2.2.7 Working with Multiple Graphs
6.2.3 CONSTRUCT Query
6.2.4 DESCRIBE Query
6.2.5 ASK Query
6.2.6 What Is Missing from SPARQL 1.0?
6.3 SPARQL 1.1 Query Language
6.3.1 Introduction: What Is New?
6.3.2 SPARQL 1.1 Query
6.3.2.1 Aggregates
6.3.2.2 Subqueries
6.3.2.3 Negation
6.3.2.4 Property Paths
6.3.2.5 Assignment
6.3.3 SPARQL 1.1 Federated Query
6.3.3.1 Simple Query to a Remote SPARQL Endpoint
6.3.3.2 Federated Queries with Multiple SPARQL Endpoints
6.3.4 SPARQL 1.1 Update
6.3.4.1 Graph Update: INSERT DATA Operation
6.3.4.2 Graph Update: DELETE DATA Operation
6.3.4.3 Graph Update: DELETE/INSERT Operation Based on Binding Patterns
6.3.4.4 Graph Update: LOAD Operation
6.3.4.5 Graph Update: CLEAR Operation
6.3.4.6 Graph Management: CREATE Operation
6.3.4.7 Graph Management: DROP Operation
6.3.4.8 Graph Management: COPY Operation
6.3.4.9 Graph Management: MOVE Operation
6.3.4.10 Graph Management: ADD Operation
6.3.5 Other SPARQL 1.1 Features
6.3.5.1 Examples of String Functions
6.3.5.2 Examples of Numeric Functions
6.3.5.3 Examples of Date/Time and Related Functions
6.3.5.4 Examples of Hash Functions
6.3.5.5 Other New Functions and Operators
6.4 Summary
Part II: Applied Semantic Web
Chapter 7: FOAF: Friend of a Friend
7.1 What FOAF Is and What It Does
7.1.1 FOAF in Plain English
7.1.2 FOAF in Official Language
7.2 Core FOAF Vocabulary and Examples
7.2.1 The Big Picture: FOAF Vocabulary
7.2.2 Core Terms and Examples
7.3 Create Your FOAF Document and Get into the Friend Circle
7.3.1 How Does the Circle Work?
7.3.2 Create Your FOAF Document
7.3.3 Get into the Circle: Publish Your FOAF Document
7.3.4 From Web Pages for Human Eyes to Web Pages for Machines
7.4 Semantic Markup: A Connection Between the Two Worlds
7.4.1 What Is Semantic Markup?
7.4.2 Semantic Markup: Procedure and Example
7.4.3 Semantic Markup: Feasibility and Different Approaches
7.5 Summary
Chapter 8: DBpedia
8.1 Introduction to DBpedia
8.1.1 From Manual Markup to Automatic Generation of Annotation
8.1.2 From Wikipedia to DBpedia
8.1.3 The Look-and-Feel of DBpedia: Page Redirect
8.2 Semantics in DBpedia
8.2.1 Infobox Template
8.2.2 Creating DBpedia Ontology
8.2.2.1 The Need for Ontology
8.2.2.2 Mapping Infobox Templates to Classes
8.2.2.3 Mapping Infobox Template Attributes to Properties
8.2.3 Infobox Extraction Methods
8.2.3.1 Generic Infobox Extraction Method
8.2.3.2 Mapping-Based Infobox Extraction Method
8.3 Accessing DBpedia Dataset
8.3.1 Using SPARQL to Query DBpedia
8.3.1.1 SPARQL Endpoints for DBpedia
8.3.1.2 Examples of Using SPARQL to Access DBpedia
8.3.2 Direct Download of DBpedia Datasets
8.3.2.1 The Wikipedia Datasets
8.3.2.2 DBpedia Core Datasets
8.3.2.3 Extended Datasets
8.3.3 Access DBpedia as Linked Data
8.4 Summary
Reference
Chapter 9: Linked Open Data
9.1 The Concept of Linked Data and Its Basic Rules
9.1.1 The Concept of Linked Data
9.1.2 How Big Are the Web of Linked Data and the LOD Project?
9.1.3 The Basic Rules of Linked Data
9.2 Publishing RDF Data on the Web
9.2.1 Identifying Things with URIs
9.2.1.1 Web Document, Information Resource and URI
9.2.1.2 Non-information Resources and Their URIs
9.2.1.3 URIs for Non-information Resources: 303 URIs and Content Negotiation
9.2.1.4 URIs for Non-information Resources: Hash URIs
9.2.1.5 URIs for Non-information Resources: 303 URIs vs. Hash URIs
9.2.1.6 URI Aliases
9.2.2 Choosing Vocabularies for RDF Data
9.2.3 Creating Links to Other RDF Data
9.2.3.1 Basic Language Constructs to Create Links
9.2.3.2 Creating Links Manually
9.2.3.3 Creating Links Automatically
9.2.4 Serving Information as Linked Data
9.2.4.1 Minimum Requirements for Being Linked Open Data
9.2.4.2 Example: Publishing Linked Data on the Web
9.2.4.3 Make Sure You Have Done It Right
9.3 The Consumption of Linked Data
9.3.1 Discover Specific Targets on the Linked Data Web
9.3.1.1 Semantic Web Search Engine for Human Eyes
9.3.1.2 Semantic Web Search Engine for Applications
9.3.2 Accessing the Web of Linked Data
9.3.2.1 Using a Linked Data Browser
9.3.2.2 Using SPARQL Endpoints
9.3.2.3 Accessing the Linked Data Web Programmatically
9.4 Linked Data Application
9.4.1 Linked Data Application Example: Revyu
9.4.1.1 Revyu: An Overview
9.4.1.2 Revyu: Why It Is Different
9.4.2 Web 2.0 Mashups vs. Linked Data Mashups
9.5 Summary
Chapter 10: schema.org and Semantic Markup
10.1 Introduction to schema.org
10.1.1 What Is schema.org?
10.1.2 Understanding the schema.org Vocabulary
10.2 Content Markup Using schema.org
10.2.1 RDFa 1.1 Lite: A Simple Subset of RDFa
10.2.2 What Markup Format to Use?
10.2.3 Type Checking and Other Issues
10.2.4 Validating Your Markup
10.3 Content Markup Example 1: Google Rich Snippets
10.3.1 What Is Rich Snippets: An Example
10.3.2 Google Rich Snippets: Semantic Markup Using schema.org
10.3.2.1 The Basic Flow of Rich Snippets
10.3.2.2 Markup for Rich Snippets: Basic Steps
10.3.2.3 Markup for Rich Snippets: Examples by RDFa
10.3.3 Using Google Rich Snippets Testing Tool
10.4 Content Markup Example 2: LRMI Project
10.4.1 The Idea of LRMI
10.4.2 LRMI Specification
10.4.3 LRMI Implementation Examples
10.4.3.1 LRMI Markup Example
10.4.3.2 Customized Searching and Filtering Based on LRMI Markup
10.5 Summary
References
Chapter 11: Social Networks and the Semantic Web
11.1 Overview of Social Networking Websites
11.2 Facebook´s Open Graph Protocol
11.2.1 Open Graph Protocol
11.2.2 How Does It Work: Creating Typed Links Using OGP
11.2.2.1 The Basic Idea and Process
11.2.2.2 Open Graph Markup Examples
11.2.2.3 Open Graph Issues
11.2.3 Implications for the Semantic Web
11.3 Twitter Cards for Structured Information
11.3.1 Twitter Cards Overview
11.3.2 How Does It Work: Structured Information for Rich Tweets
11.3.2.1 The Basic Idea and Process
11.3.2.2 Twitter Card Markup Examples
11.3.2.3 Twitter Card Issues
11.3.3 Structured Information, But Not Semantic Web Yet
11.4 Rich Pins for Structured Information
11.4.1 Rich Pin Overview
11.4.2 How Does It Work: Generating Rich Pins Using schema.org
11.4.2.1 The Basic Idea and Process
11.4.2.2 Rich Pin Markup Examples
11.4.2.3 Rich Pin Issues
11.4.3 Semantic Markup at Work
11.5 Summary
Chapter 12: Other Recent Applications: data.gov and Wikidata
12.1 Data.gov and the Semantic Web
12.1.1 Understanding Data.gov
12.1.2 How Is Data.gov Related to the Semantic Web?
12.1.3 Potential eGov Standards: Breaking the Boundaries of Datasets
12.1.4 Example Data.gov Applications
12.2 Wikidata and the Semantic Web
12.2.1 From Wikipedia to Wikidata
12.2.1.1 Are All the Infoboxes the Same?
12.2.1.2 Are All the Language Links the Same?
12.2.1.3 What About Fact Lists?
12.2.2 Three Phases of the Wikidata Project
12.2.3 Wikidata as a Data Repository
12.2.3.1 Wikidata URI Schema
12.2.3.2 DBpedia Vs. Wikidata
12.2.4 Wikidata and the Semantic Web
12.2.4.1 Wikidata Data Model and Its Ontology
12.2.4.2 Example Wikidata Datasets
12.3 Summary
Part III: Building Your Own Applications on the Semantic Web
Chapter 13: Getting Started: Change Your Data into Structured Data
13.1 RDF Data in General
13.1.1 What Does RDF Data Refer to?
13.1.2 Decide in Which Format to Publish Your RDF Data
13.1.2.1 RDF/XML
13.1.2.2 Turtle
13.1.2.3 N-triples
13.1.2.4 TriG and NQuads
13.1.3 Decide Which Ontology to Use to Publish Your Data
13.1.3.1 Discovering Ontologies
13.1.3.2 Understanding a New Ontology
13.2 Creating RDF Data Manually
13.2.1 Popular Editors and Validators
13.2.2 Examples: Using TopBraid to Create RDF Data
13.3 RDB2RDF: W3C´s Standard for Converting DB Content to RDF Triples
13.3.1 RDB2RDF: General Background
13.3.2 Direct Mapping from RDB to RDF
13.3.3 R2RML: RDB to RDF Mapping You Can Control
13.3.3.1 R2RML Mapping Language
13.3.3.2 R2RML Mapping Customization
13.4 RDB2RDF Example Implementation
13.4.1 RDB2RDF Direct Mapping
13.4.2 Step-by-Step R2RML Example: Virtuoso
13.4.2.1 Installing and Configuring Virtuoso Open Source Edition
13.4.2.2 Creating Database Tables and Loading Table Contents
13.4.2.3 Loading Ontology
13.4.2.4 Creating R2RML Mapping Document
13.4.2.5 Exposing the Database Tables as RDF Dataset
13.4.2.6 Creating the Physical Dump of the Generated RDF View
13.5 Summary
Chapter 14: Building the Foundation for Development on the Semantic Web
14.1 Development Tools for the Semantic Web
14.1.1 Frameworks for the Semantic Web Applications
14.1.1.1 What Is a Framework and Why Do We Need It?
14.1.1.2 Jena
14.1.1.3 Sesame
14.1.1.4 Virtuoso
14.1.1.5 Redland
14.1.2 Reasoners for the Semantic Web Applications
14.1.2.1 What Is a Reasoner and Why Do We Need It?
14.1.2.2 Pellet
14.1.2.3 RacerPro
14.1.2.4 Jena
14.1.2.5 Virtuoso
14.1.3 Ontology Engineering Environments
14.1.3.1 What Is an Ontology Engineering Environment and Why Do We Need It?
14.1.3.2 Protégé
14.1.3.3 NeOn
14.1.3.4 TopBraid Composer
14.1.4 Other Tools: Search Engines for the Semantic Web
14.1.5 Where to Find More?
14.2 Semantic Web Application Development Methodology
14.2.1 From Domain Models to Ontology-Driven Architecture
14.2.1.1 Domain Models and MVC Architecture
14.2.1.2 The Uniqueness of Semantic Web Application Development
14.2.1.3 Ontology-Driven Software Development
14.2.1.4 Further Discussions
14.2.2 An Ontology Development Methodology Proposed by Noy and McGuinness
14.2.2.1 Basic Tasks and Fundamental Rules
14.2.2.2 Basic Steps of Ontology Development
Step 1. Determine the Domain and Scope of the Ontology
Step 2. Consider Reusing Existing Ontologies
Step 3. Enumerate Important Terms in the Ontology
Step 4. Define Classes and the Class Hierarchy
Step 5. Define the Properties of Classes
Step 6. Add Constraints to the Properties
Step 7. Create Instances
14.2.2.3 Other Considerations
14.3 Summary
Reference
Chapter 15: Example: Using Jena for Development on the Semantic Web
15.1 Jena: A Semantic Web Framework for Java
15.1.1 What Is Jena and What Can It Do for Us?
15.1.2 Getting the Jena Package
15.1.3 Using Jena in Your Projects
15.1.3.1 Using Jena in Eclipse
15.1.3.2 Hello World! from a Semantic Web Application
15.2 Basic RDF Model Operations
15.2.1 Creating an RDF Model
15.2.2 Reading an RDF Model
15.2.3 Understanding an RDF Model
15.3 Handling Persistent RDF Models
15.3.1 From In-Memory Model to Persistent Model
15.3.2 Setting up MySQL
15.3.3 Database-Backed RDF Models
15.3.3.1 Single Persistent RDF Model
15.3.3.2 Multiple Persistent RDF Models
15.4 Inferencing Using Jena
15.4.1 Jena Inferencing Model
15.4.2 Jena Inferencing Examples
15.5 Summary
Chapter 16: Follow Your Nose: A Basic Semantic Web Agent
16.1 The Principle of Follow-Your-Nose Method
16.1.1 What Is the Follow-Your-Nose Method?
16.1.2 URI Declarations, Open Linked Data and Follow-Your-Nose Method
16.2 A Follow-Your-Nose Agent in Java
16.2.1 Building the Agent
16.2.2 Running the Agent
16.2.3 More Clues for Follow-Your-Nose
16.2.4 Can You Follow Your Nose on Traditional Web?
16.3 A Better Implementation of Follow-Your-Nose Agent: Using SPARQL Queries
16.3.1 In-Memory SPARQL Operation
16.3.2 Using SPARQL Endpoints Remotely
16.4 Summary
Chapter 17: A Search Engine That Supports Rich Snippets
17.1 Why This Is an Interesting Project
17.2 Introduction to Lucene
17.2.1 Lucene and Our Own Customized Search Engine
17.2.2 Core Components of Lucene
17.2.2.1 Lucene Document
17.2.2.2 Lucene Indexer
17.2.2.3 Lucene Searcher
17.2.3 Use Lucene in Your Development Environment
17.3 Preparing the Semantic Markups
17.3.1 From Semantic Markup to Rich Snippets
17.3.2 Different Deployment Models of the Markup
17.3.3 Examples of Markup
17.4 Building the Search Engine
17.4.1 Creating the Indexer
17.4.1.1 The Updated Flow of the Indexing Process
17.4.1.2 Converting Semantic Markup to Rich Snippets
17.4.1.3 Examining the Generated Index
17.4.2 Creating the Searcher
17.4.2.1 The Updated Flow of the Searching Process
17.4.2.2 Retrieving the Rich Snippets
17.4.2.3 Passing the Rich Snippets to the Front
17.4.3 Using Web Container to Start the Search
17.4.3.1 Using Apache Web Server for the Search Interface
17.4.3.2 Rendering the Rich Snippets in Search Result
17.5 Test It Out and Possible Expansions
17.5.1 Test Runs of the Search Engine
17.5.2 Possible Expansions
17.6 Summary
Chapter 18: More Application Examples on the Semantic Web
18.1 Building Your Circle of Trust: A FOAF Agent You Can Use
18.1.1 Who Is on Your E-Mail List?
18.1.2 The Basic Idea
18.1.3 Building the EmailAddressCollector Agent
18.1.3.1 EmailAddressCollector
18.1.3.2 Running the EmailAddressCollector Agent
18.1.4 Can You Do the Same for the Traditional Web?
18.2 A ShopBot on the Semantic Web
18.2.1 A ShopBot We Can Have
18.2.2 A ShopBot We Really Want
18.2.2.1 How Does It Understand Our Needs?
18.2.2.2 How Does It Find the Next Candidate?
18.2.2.3 How Does It Decide Whether There Is a Match or Not?
18.2.3 Building Our ShopBot
18.2.3.1 Utility Methods and Class
18.2.3.2 Processing the Catalog Document
18.2.3.3 The Main Work Flow
18.2.3.4 Running Our ShopBot
18.2.4 Discussion: From Prototype to Reality
18.3 Summary
Index