Suchen und Finden
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
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.