A Developer's Guide to the Semantic Web

von: Liyang Yu

Springer-Verlag, 2011

ISBN: 9783642159701 , 608 Seiten

Format: PDF, OL

Kopierschutz: Wasserzeichen

Windows PC,Mac OSX geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Online-Lesen für: Windows PC,Mac OSX,Linux

Preis: 71,68 EUR

Mehr zum Inhalt

A Developer's Guide to the Semantic Web


 

Preface

5

Objectives of the Book

5

Intended Readers

6

Structure of the Book

6

Where to Get the Code

9

Acknowledgment

9

Contents

11

1 A Web of Data: Toward the Idea of the Semantic Web

18

1.1 A Motivating Example: Data Integration on the Web

18

1.1.1 A Smart Data Integration Agent

19

1.1.2 Is Smart Data Integration Agent Possible?

24

1.1.3 The Idea of the Semantic Web

26

1.2 A More General Goal: A Web Understandable to Machines

26

1.2.1 How Do We Use the Web?

26

1.2.1.1 Searching

27

1.2.1.2 Information Integration

27

1.2.1.3 Web Data Mining

28

1.2.2 What Stops Us from Doing More?

29

1.2.3 Again, the Idea of the Semantic Web

31

1.3 The Semantic Web: A First Look

31

1.3.1 The Concept of the Semantic Web

31

1.3.2 The Semantic Web, Linked Data, and the Web of Data

32

1.3.3 Some Basic Things About the Semantic Web

34

Reference

35

2 The Building Block for the Semantic Web: RDF

36

2.1 RDF Overview

36

2.1.1 RDF in Official Language

36

2.1.2 RDF in Plain English

38

2.2 The Abstract Model of RDF

42

2.2.1 The Big Picture

42

2.2.2 Statement

42

2.2.3 Resource and Its URI Name

44

2.2.4 Predicate and Its URI Name

48

2.2.5 RDF Triples: Knowledge That Machine Can Use

50

2.2.6 RDF Literals and Blank Node

52

2.2.6.1 Basic Terminologies So Far

52

2.2.6.2 Literal Values

54

2.2.6.3 Blank Nodes

55

2.2.7 A Summary So Far

58

2.3 RDF Serialization: RDF/XML Syntax

59

2.3.1 The Big Picture: RDF Vocabulary

59

2.3.2 Basic Syntax and Examples

60

2.3.2.1 rdf:RDF, rdf:Description, rdf:about, and rdf:resource

60

2.3.2.2 rdf:type and Typed Nodes

62

2.3.2.3 Using Resource as Property Value

64

2.3.2.4 Using Un-typed Literals as Property Values, rdf:value and rdf:parseType

66

2.3.2.5 Using Typed Literal Values and rdf:datatype

69

2.3.2.6 rdf:nodeID and More About Anonymous Resources

72

2.3.2.7 rdf:ID, xml:base, and RDF/XML Abbreviation

73

2.3.3 Other RDF Capabilities and Examples

76

2.3.3.1 RDF Containers: rdf:Bag, rdf:Seq, rdf:Alt, and rdf:li

76

2.3.3.2 RDF Collections: rdf:first, rdf:rest, rdf:nil, and rdf:List

78

2.3.3.3 RDF Reification: rdf:statement, rdf:subject, rdf:predicate, and rdf:object

80

2.4 Other RDF Sterilization Formats

82

2.4.1 Notation-3, Turtle, and N-Triples

82

2.4.2 Turtle Language

83

2.4.2.1 Basic Language Feature

83

2.4.2.2 Abbreviations and Shortcuts: Namespace Prefix, Default Prefix, and @base

84

2.4.2.3 Abbreviations and Shortcuts: Token a, Comma, and Semicolons

86

2.4.2.4 Turtle Blank Nodes

88

2.5 Fundamental Rules of RDF

89

2.5.1 Information Understandable by Machine

90

2.5.2 Distributed Information Aggregation

92

2.5.3 A Hypothetical Real-World Example

93

2.6 More About RDF

96

2.6.1 Dublin Core: Example of Pre-defined RDF Vocabulary

96

2.6.2 XML vs. RDF?

98

2.6.3 Use an RDF Validator

101

2.7 Summary

102

3 Other RDF-Related Technologies: Microformats, RDFa, and GRDDL

104

3.1 Introduction: Why Do We Need These?

104

3.2 Microformats

105

3.2.1 Microformats: The Big Picture

105

3.2.2 Microformats: Syntax and Examples

106

3.2.2.1 From vCard to hCard Microformat

106

3.2.2.2 Using hCard Microformat to Mark Up Page Content

108

3.2.3 Microformats and RDF

111

3.2.3.1 What Is So Good About Microformats?

111

3.2.3.2 Microformats and RDF

112

3.3 RDFa

112

3.3.1 RDFa: The Big Picture

112

3.3.2 RDFa Attributes and RDFa Elements

113

3.3.3 RDFa: Rules and Examples

114

3.3.3.1 RDFa Rules

114

3.3.3.2 RDFa Examples

116

3.3.4 RDFa and RDF

121

3.3.4.1 What Is So Good About RDFa?

121

3.3.4.2 RDFa and RDF

121

3.4 GRDDL

122

3.4.1 GRDDL: The Big Picture

122

3.4.2 Using GRDDL with Microformats

122

3.4.3 Using GRDDL with RDFa

124

3.5 Summary

124

4 RDFS and Ontology

125

4.1 RDFS Overview

125

4.1.1 RDFS in Plain English

125

4.1.2 RDFS in Official Language

126

4.2 RDFS + RDF: One More Step Toward Machine Readable

127

4.2.1 A Common Language to Share

127

4.2.2 Machine Inferencing Based on RDFS

129

4.3 RDFS Core Elements

130

4.3.1 The Big Picture: RDFS Vocabulary

130

4.3.2 Basic Syntax and Examples

130

4.3.2.1 Defining Classes

130

4.3.2.2 Defining Properties

136

4.3.2.3 More About Properties

142

4.3.2.4 RDFS Datatypes

145

4.3.2.5 RDFS Utility Vocabulary

147

4.3.3 Summary So Far

148

4.3.3.1 Our Camera Vocabulary

148

4.3.3.2 Where Is the Knowledge?

152

4.4 The Concept of Ontology

152

4.4.1 What Is Ontology?

153

4.4.2 The Benefits of Ontology

153

4.5 Building the Bridge to Ontology: SKOS

154

4.5.1 Knowledge Organization Systems (KOS)

154

4.5.2 Thesauri vs. Ontologies

156

4.5.3 Filling the Gap: SKOS

157

4.5.3.1 What Is SKOS?

157

4.5.3.2 SKOS Core Constructs

158

4.5.3.3 Interlinking Concepts by Using SKOS

163

4.6 Another Look at Inferencing Based on RDF Schema

165

4.6.1 RDFS Ontology-Based Reasoning: Simple, Yet Powerful

165

4.6.2 Good, Better, and Best: More Is Needed

167

4.7 Summary

168

5 OWL: Web Ontology Language

170

5.1 OWL Overview

170

5.1.1 OWL in Plain English

170

5.1.2 OWL in Official Language: OWL 1 and OWL 2

171

5.1.3 From OWL 1 to OWL 2

173

5.2 OWL 1 and OWL 2: The Big Picture

173

5.2.1 Basic Notions: Axiom, Entity, Expression, and IRI Names

174

5.2.2 Basic Syntax Forms: Functional Style, RDF/XML Syntax, Manchester Syntax, and XML Syntax

175

5.3 OWL 1 Web Ontology Language

176

5.3.1 Defining Classes: The Basics

176

5.3.2 Defining Classes: Localizing Global Properties

178

5.3.2.1 Value Constraints: owl:allValuesFrom

179

5.3.2.2 Enhanced Reasoning Power 1

181

5.3.2.3 Value Constraints: owl:someValuesFrom

182

5.3.2.4 Enhanced Reasoning Power 2

183

5.3.2.5 Value Constraints: owl:hasValue

183

5.3.2.6 Enhanced Reasoning Power 3

185

5.3.2.7 Cardinality Constraints: owl:cardinality, owl:min(max)Cardinality

185

5.3.2.8 Enhanced Reasoning Power 4

187

5.3.3 Defining Classes: Using Set Operators

187

5.3.3.1 Set Operators

187

5.3.3.2 Enhanced Reasoning Power 5

189

5.3.4 Defining Classes: Using Enumeration, Equivalent, and Disjoint

190

5.3.4.1 Enumeration, Equivalent, and Disjoint

190

5.3.4.2 Enhanced Reasoning Power 6

192

5.3.5 Our Camera Ontology So Far

192

5.3.6 Define Properties: The Basics

194

5.3.7 Defining Properties: Property Characteristics

199

5.3.7.1 Symmetric Properties

199

5.3.7.2 Enhanced Reasoning Power 7

200

5.3.7.3 Transitive Properties

201

5.3.7.4 Enhanced Reasoning Power 8

201

5.3.7.5 Functional Properties

202

5.3.7.6 Enhanced Reasoning Power 9

204

5.3.7.7 Inverse Property

204

5.3.7.8 Enhanced Reasoning Power 10

205

5.3.7.9 Inverse Functional Property

205

5.3.7.10 Enhanced Reasoning Power 11

207

5.3.8 Camera Ontology Written Using OWL 1

207

5.4 OWL 2 Web Ontology Language

211

5.4.1 What Is New in OWL 2?

211

5.4.2 New Constructs for Common Patterns

212

5.4.2.1 Common Pattern: Disjointness

212

5.4.2.2 Common Pattern: Negative Assertions

214

5.4.3 Improved Expressiveness for Properties

215

5.4.3.1 Property Self-Restriction

215

5.4.3.2 Property Self-Restriction: Enhanced Reasoning Power 12

216

5.4.3.3 Property Cardinality Restrictions

216

5.4.3.4 Property Cardinality Restrictions: Enhanced Reasoning Power 13

218

5.4.3.5 More About Property Characteristics: Reflexive, Irreflexive, and Asymmetric Properties

218

5.4.3.6 More About Property Characteristics: Enhanced Reasoning Power 14

220

5.4.3.7 Disjoint Properties

220

5.4.3.8 Disjoint Properties: Enhanced Reasoning Power 15

221

5.4.3.9 Property Chains

222

5.4.3.10 Property Chains: Enhanced Reasoning Power 16

224

5.4.3.11 Keys

224

5.4.3.12 Keys: Enhanced Reasoning Power 17

225

5.4.4 Extended Support for Datatypes

225

5.4.4.1 Wider Range of Supported Datatypes and Extra Built-In Datatypes

226

5.4.4.2 Restrictions on Datatypes and User-Defined Datatypes

226

5.4.4.3 Data Range Combinations

228

5.4.5 Punning and Annotations

229

5.4.5.1 Understanding Punning

229

5.4.5.2 OWL Annotations, Axioms About Annotation Properties

230

5.4.6 Other OWL 2 Features

233

5.4.6.1 Entity Declarations

233

5.4.6.2 Top and Bottom Properties

234

5.4.6.3 Imports and Versioning

234

5.4.7 OWL Constructs in Instance Documents

237

5.4.8 OWL 2 Profiles

241

5.4.8.1 Why We Need All These?

241

5.4.8.2 Assigning Semantics to OWL Ontology: Description Logic vs. RDF-Based Semantics

241

5.4.8.3 Three Faces of OWL 1

242

5.4.8.4 Understanding OWL 2 Profiles

244

5.4.8.5 OWL 2 EL, QL, and RL

245

5.4.9 Our Camera Ontology in OWL 2

248

5.5 Summary

253

6 SPARQL: Querying the Semantic Web

255

6.1 SPARQL Overview

255

6.1.1 SPARQL in Official Language

255

6.1.2 SPARQL in Plain English

256

6.1.3 Other Related Concepts: RDF Data Store, RDF Database, and Triple Store

257

6.2 Set up Joseki SPARQL Endpoint

258

6.3 SPARQL Query Language

261

6.3.1 The Big Picture

263

6.3.1.1 Triple Pattern

263

6.3.1.2 Graph Pattern

264

6.3.2 SELECT Query

266

6.3.2.1 Structure of a SELECT Query

266

6.3.2.2 Writing Basic SELECT Query

267

6.3.2.3 Using OPTIONAL Keyword for Matches

271

6.3.2.4 Using Solution Modifier

273

6.3.2.5 Using FILTER Keyword to Add Value Constraints

275

6.3.2.6 Using Union Keyword for Alternative Match

278

6.3.2.7 Working with Multiple Graphs

281

6.3.3 CONSTRUCT Query

286

6.3.4 DESCRIBE Query

288

6.3.5 ASK Query

289

6.4 What Is Missing from SPARQL?

291

6.5 SPARQL 1.1

291

6.5.1 Introduction: What Is New?

291

6.5.2 SPARQL 1.1 Query

292

6.5.2.1 Aggregate Functions

292

6.5.2.2 Subqueries

294

6.5.2.3 Negation

295

6.5.2.4 Expressions with SELECT

297

6.5.2.5 Property Paths

298

6.5.3 SPARQL 1.1 Update

299

6.5.3.1 Graph Update: Adding RDF Statements

300

6.5.3.2 Graph Update: Deleting RDF Statements

301

6.5.3.3 Graph Update: LOAD and CLEAR

303

6.5.3.4 Graph Management: Graph Creation

303

6.5.3.5 Graph Management: Graph Removal

303

6.6 Summary

304

7 FOAF: Friend of a Friend

305

7.1 What Is FOAF and What It Does

305

7.1.1 FOAF in Plain English

305

7.1.2 FOAF in Official Language

306

7.2 Core FOAF Vocabulary and Examples

307

7.2.1 The Big Picture: FOAF Vocabulary

307

7.2.2 Core Terms and Examples

308

7.3 Create Your FOAF Document and Get into the Friend Circle

315

7.3.1 How Does the Circle Work?

315

7.3.2 Create Your FOAF Document

317

7.3.3 Get into the Circle: Publish Your FOAF Document

319

7.3.4 From Web Pages for Human Eyes to Web Pages for Machines

321

7.4 Semantic Markup: a Connection Between the Two Worlds

322

7.4.1 What Is Semantic Markup

322

7.4.2 Semantic Markup: Procedure and Example

322

7.4.3 Semantic Markup: Feasibility and Different Approaches

326

7.5 Summary

328

8 Semantic Markup at Work: Rich Snippets and SearchMonkey

329

8.1 Introduction

329

8.1.1 Prerequisite: How Does a Search Engine Work?

329

8.1.1.1 Basic Search Engine Tasks

329

8.1.1.2 Basic Search Engine Workflow

330

8.1.2 Rich Snippets and SearchMonkey

332

8.2 Rich Snippets by Google

333

8.2.1 What Is Rich Snippets: An Example

333

8.2.2 How Does It Work: Semantic Markup Using Microformats/RDFa

333

8.2.2.1 Rich Snippets Powered by Semantic Markup

333

8.2.2.2 Microformats Supported by Rich Snippets

335

8.2.2.3 Ontologies Supported by Rich Snippets

336

8.2.3 Test It Out Yourself

336

8.3 SearchMonkey from Yahoo

336

8.3.1 What Is SearchMonkey: An Example

337

8.3.2 How Does It Work: Semantic Markup Using Microformats/RDFa

338

8.3.2.1 SearchMonkey Architecture

339

8.3.2.2 Microformats Supported by SearchMonkey

343

8.3.2.3 Ontologies Supported by SearchMonkey

343

8.3.3 Test It Out Yourself

343

8.4 Summary

344

Reference

344

9 Semantic Wiki

345

9.1 Introduction: From Wiki to Semantic Wiki

345

9.1.1 What Is a Wiki?

345

9.1.2 From Wiki to Semantic Wiki

347

9.2 Adding Semantics to Wiki Site

349

9.2.1 Namespace and Category System

350

9.2.2 Semantic Annotation in Semantic MediaWiki

353

9.2.2.1 Semantic Annotation: Links

353

9.2.2.2 Semantic Annotation: Text

357

9.3 Using the Added Semantics

361

9.3.1 Browsing

361

9.3.1.1 FactBox

361

9.3.1.2 Semantic Browsing Interface

362

9.3.2 Wiki Site Semantic Search

364

9.3.2.1 Direct Wiki Query: Basics

364

9.3.2.2 Direct Wiki Query: Advanced Search

367

9.3.2.3 Displaying Information

369

9.3.3 Inferencing

370

9.4 Where Is the Semantics?

373

9.4.1 SWiVT: an Upper Ontology for Semantic Wiki

374

9.4.2 Understanding OWL/RDF Exports

376

9.4.3 Importing Ontology: a Bridge to Outside World

386

9.5 The Power of the Semantic Web

389

9.6 Use Semantic MediaWiki to Build Your Own Semantic Wiki

390

9.7 Summary

390

10 DBpedia

392

10.1 Introduction to DBpedia

392

10.1.1 From Manual Markup to Automatic Generation of Annotation

392

10.1.2 From Wikipedia to DBpedia

393

10.1.3 The Look and Feel of DBpedia: Page Redirect

395

10.2 Semantics in DBpedia DBpedia look and feel

398

10.2. Infobox Template

398

10.2.2 Creating DBpedia Ontology

401

10.2.2.1 The Need for Ontology

401

10.2.2.2 Mapping Infobox Templates to Classes

403

10.2.2.3 Mapping Infobox Template Attributes to Properties

405

10.2.3 Infobox Extraction Methods

407

10.2.3.1 Generic Infobox Extraction Method

408

10.2.3.2 Mapping-Based Infobox Extraction Method

408

10.3 Accessing DBpedia Dataset

409

10.3.1 Using SPARQL to Query DBpedia

410

10.3.1.1 SPARQL Endpoints for DBpedia

410

10.3.1.2 Examples of Using SPARQL to Access DBpedia

411

10.3.2 Direct Download of DBpedia Datasets

414

10.3.2.1 The Wikipedia Datasets

414

10.3.2.2 DBpedia Core Datasets

414

10.3.2.3 Extended Datasets

418

10.3.3 Access DBpedia as Linked Data

419

10.4 Summary

421

Reference

421

11 Linked Open Data

422

11.1 The Concept of Linked Data and Its Basic Rules

422

11.1.1 The Concept of Linked Data

422

11.1.2 How Big Is the Web of Linked Data and the LOD Project

424

11.1.3 The Basic Rules of Linked Data

425

11.2 Publishing RDF Data on the Web

426

11.2.1 Identifying Things with URIs

426

11.2.1.1 Web Document, Information Resource, and URI

426

11.2.1.2 Non-information Resources and Their URIs

428

11.2.1.3 URIs for Non-information Resources: 303 URIs and Content Negotiation

429

11.2.1.4 URIs for Non-information Resources: Hash URIs

432

11.2.1.5 URIs for Non-information Resources: 303 URIs vs. Hash URIs

434

11.2.1.6 URI Aliases

434

11.2.2 Choosing Vocabularies for RDF Data

436

11.2.3 Creating Links to Other RDF Data

440

11.2.3.1 Basic Language Constructs to Create Links

440

11.2.3.2 Creating Links Manually

444

11.2.3.3 Creating Links Automatically

446

11.2.4 Serving Information as Linked Data

447

11.2.4.1 Minimum Requirements for Being Linked Open Data

447

11.2.4.2 Example: Publishing Linked Data on the Web

449

11.2.4.3 Make Sure You Have Done It Right

451

11.3 The Consumption of Linked Data

452

11.3.1 Discover Specific Target on the Linked Data Web

454

11.3.1.1 Semantic Web Search Engine for Human Eyes

454

11.3.1.2 Semantic Web Search Engine for Applications

456

11.3.2 Accessing the Web of Linked Data

458

11.3.2.1 Using a Linked Data Browser

458

11.3.2.2 Using SPARQL Endpoints

463

11.3.2.3 Accessing the Linked Data Web Programmatically

468

11.4 Linked Data Application

468

11.4.1 Linked Data Application Example: Revyu

469

11.4.1.1 Revyu: An Overview

469

11.4.1.2 Revyu: Why It Is Different

474

11.4.2 Web 2.0 Mashups vs. Linked Data Mashups

476

11.5 Summary

478

12 Building the Foundation for Development on the Semantic Web

480

12.1 Development Tools for the Semantic Web

480

12.1.1 Frameworks for the Semantic Web Applications

480

12.1.1.1 What Is a Framework and Why We Need It?

480

12.1.1.2 Jena

482

12.1.1.3 Sesame

482

12.1.1.4 Virtuoso

482

12.1.1.5 Redland

483

12.1.2 Reasoners for the Semantic Web Applications

484

12.1.2.1 What Is a Reasoner and Why We Need It?

484

12.1.2.2 Pellet

485

12.1.2.3 RacerPro

485

12.1.2.4 Jena

486

12.1.2.5 Virtuoso

486

12.1.3 Ontology Engineering Environments

487

12.1.3.1 What Is an Ontology Engineering Environment and Why We Need It?

487

12.1.3.2 Protégé

488

12.1.3.3 NeOn

489

12.1.3.4 TopBraid Composer

490

12.1.4 Other Tools: Search Engines for the Semantic Web

491

12.1.5 Where to Find More?

491

12.2 Semantic Web Application Development Methodology

491

12.2.1 From Domain Models to Ontology-Driven Architecture

491

12.2.1.1 Domain Models and MVC Architecture

491

12.2.1.2 The Uniqueness of Semantic Web Application Development

493

12.2.1.3 Ontology-Driven Software Development

495

12.2.1.4 Further Discussions

497

12.2.2 An Ontology Development Methodology Proposed by Noy and McGuinness

497

12.2.2.1 Basic Tasks and Fundamental Rules

497

12.2.2.2 Basic Steps of Ontology Development

498

12.2.2.3 Other Considerations

500

12.3 Summary

502

Reference

503

13 Jena: A Framework for Development on the Semantic Web

504

13.1 Jena: A Semantic Web Framework for Java

504

13.1.1 What Is Jena and What It Can Do for Us?

504

13.1.2 Getting Jena Package

505

13.1.3 Using Jena in Your Projects

508

13.1.3.1 Using Jena in Eclipse

508

13.1.3.2 Hello World! from Semantic Web Application

510

13.2 Basic RDF Model Operations

514

13.2.1 Creating an RDF Model

515

13.2.2 Reading an RDF Model

520

13.2.3 Understanding an RDF Model

522

13.3 Handling Persistent RDF Models

528

13.3.1 From In-memory Model to Persistent Model

528

13.3.2 Setting Up MySQL

529

13.3.3 Database-Backed RDF Models

530

13.3.3.1 Single Persistent RDF Model

530

13.3.3.2 Multiple Persistent RDF Models

535

13.4 Inferencing Using Jena

537

13.4.1 Jena Inferencing Model

537

13.4.2 Jena Inferencing Examples

538

13.5 Summary

544

14 Follow Your Nose: A Basic Semantic Web Agent

546

14.1 The Principle of Follow-Your-Nose Method

546

14.1.1 What Is Follow-Your-Nose Method?

546

14.1.2 URI Declarations, Open Linked Data, and Follow-Your-Nose Method

548

14.2 A Follow-Your-Nose Agent in Java

549

14.2.1 Building the Agent

549

14.2.2 Running the Agent

556

14.2.3 More Clues for Follow Your Nose

558

14.2.4 Can You Follow Your Nose on Traditional Web?

559

14.3 A Better Implementation of Follow-Your-Nose Agent: Using SPARQL Queries

561

14.3.1 In-memory SPARQL Operation

562

14.3.2 Using SPARQL Endpoints Remotely

566

14.4 Summary

569

15 More Application Examples on the Semantic Web

571

15.1 Building Your Circle of Trust: A FOAF Agent You Can Use

571

15.1.1 Who Is on Your E-mail List?

571

15.1.2 The Basic Idea

572

15.1.3 Building the EmailAddressCollector Agent

575

15.1.3.1 EmailAddressCollector

575

15.1.3.2 Running the EmailAddressCollector Agent

583

15.1.4 Can You Do the Same for Traditional Web?

584

15.2 A ShopBot on the Semantic Web

585

15.2.1 A ShopBot We Can Have

585

15.2.2 A ShopBot We Really Want

586

15.2.2.1 How Does It Understand Our Needs?

586

15.2.2.2 How Does It Find the Next Candidate?

590

15.2.2.3 How Does It Decide Whether There Is a Match or Not?

593

15.2.3 Building Our ShopBot

595

15.2.3.1 Utility Methods and Class

595

15.2.3.2 Processing the Catalog Document

601

15.2.3.3 The Main Work Flow

605

15.2.3.4 Running Our ShopBot

609

15.2.4 Discussion: From Prototype to Reality

611

15.3 Summary

612

Index

613