Foreword | |
Introduction | |
Introducing Semantic Web Programming | |
Preparing to Program a Semantic Web of Data | |
Defining the Semantic Web | |
Identifying the Major Programming Components | |
Determining Impacts on Programming | |
Establishing aWeb Data-Centric Perspective | |
Expressing Semantic Data | |
Sharing Data | |
Making Data Dynamic and Flexible | |
Avoiding the Roadblocks, Myths, and Hype | |
Semantic Web Roadblocks | |
Semantic Web Myths | |
Semantic Web Hype | |
Understanding SemanticWeb Origins | |
Exploring SemanticWeb Examples | |
Semantic Wikis (semantic-mediawiki.org) | |
Twine (www.twine.com) | |
The FOAF Project (www.foaf-project.org) | |
RDFa and Microformats | |
Semantic Query Endpoint (dbpedia.org/sparql) | |
Semantic Search (www.trueknowledge.com) | |
Summary and Onward | |
Notes | |
Hello Semantic Web World | |
Setting Up Your Semantic Web Development Environment | |
Programming the Hello Semantic WebWorld Application | |
Summary | |
Foundations of Semantic Web Programming | |
Modeling Information | |
Modeling Information in Software | |
Sharing Information: Syntax and Semantics | |
Serialized Objects | |
Relational Databases | |
Extensible Markup Language (XML) | |
Metadata and Data in Information Sharing | |
The SemanticWeb Information Model: The Resource Description Framework (RDF) | |
Nodes: Resources and Literals | |
Edges: Predicates | |
Exchanging Information with RDF | |
Statements as Points | |
RDF Serializations | |
RDF/XML | |
Terse RDF Triple Language (Turtle) | |
N-Triples | |
Quick Hack | |
More RDF | |
Blank Nodes | |
Reification | |
RDF Organizational Constructs | |
Summary | |
Incorporating Semantics | |
Semantics on the Web | |
Motivating Factors | |
Understanding the World WideWeb | |
Knowledge Domain Integration | |
Expressing Semantics in RDF | |
Vocabularies, Taxonomies, and Ontologies | |
A Vocabulary Language for RDF | |
An Ontology Language for the Web | |
Introduction to Ontologies | |
Distributed Knowledge | |
Open World Assumption | |
No Unique Names Assumption | |
Overview of Ontology Elements | |
Ontology Header | |
Classes and Individuals | |
Properties | |
Annotations | |
Data types | |
Elements of an Ontology | |
OWL 2 Typing | |
Ontology Header | |
Annotations | |
Basic Classification | |
Classes and Individuals | |
Instance versus Subclass | |
Defining and Using Properties | |
Property Domain and Range | |
Describing Properties | |
Top and Bottom Properties | |
Inverse Properties | |
Disjoint Properties | |
Property Chains | |
Symmetric, Reflexive, and Transitive Properties | |
Functional and Inverse Functional Properties | |
Keys | |
Datatypes | |
Data type Restrictions | |
Defining Datatypes in Terms of Other Datatypes | |
Negative Property Assertions | |
Property Restrictions | |
Value Restrictions | |
Cardinality Restrictions | |
Qualified Cardinality Restrictions | |
Advanced Class Description | |
Enumerating Class Membership | |
Set Operators | |
Disjoint Classes | |
Equivalence in OWL | |
Equivalence among Individuals | |
Equivalence among Classes and Properties | |
Summary | |
Modeling Knowledge in the Real World | |
Exploring the Components of the SemanticWeb | |
Semantic Web Frameworks | |
Storing and Retrieving RDF | |
RDF Store Implementations | |
Retrieving Information in a Knowledgebase | |
Realizing the Semantics of OWL | |
Understanding Forward Chaining Inference | |
Understanding Backward Chaining Inference | |
Choosing the Right Inference Method | |
Common Frameworks and Components | |
RDF Store Implementations | |
Retrieval Components | |
Reasoning Engines | |
Knowledgebase Performance | |
Exploring the Profiles of OWL | |
OWL Full and OWL DL | |
The Profiles of OWL | |
OWL EL | |
OWL QL | |
OWL RL | |
Demonstrating OWL Inference | |
The Ontology | |
The Example Application | |
The Results | |
Performing No Inference | |
Performing RDFS Inference | |
Performing OWL Inference | |
Working with Ontologies | |
Decoupling the Knowledge Model from the Application | |
Sharing across Domain and Application Boundaries | |
What Is a Foundational Ontology? | |
Common Foundational Ontologies | |
BFO | |
Cyc and OpenCyc | |
DOLCE | |
SUMO | |
Dublin Core Metadata Initiative | |
FOAF | |
GeoRSS and OWL-Time | |
Finding Ontologies to Reuse or Extend | |
Choosing the Right Foundational Ontologies | |
Summary | |
Discovering Information | |
Navigating the SemanticWeb | |
Searching the Semantic Web | |
Querying the Semantic Web | |
Quickstart with SPARQL | |
Four Foundational Query Forms | |
SELECT Essentials | |
RDF Datasets, FROM and FROM NAMED | |
Query Modifiers | |
DISTINCT | |
REDUCED | |
ORDER BY | |
Data Streaming with OFFSET and LIMIT | |
Flexible Querying with FILTER and OPTIONAL | |
FILTER | |
OPTIONAL | |
UNION | |
CONSTRUCT Essentials | |
DESCRIBE Essentials | |
ASK Essentials | |
SPARQL Entailment | |
Unsupported Functionality | |
Data Modification | |
Subqueries | |
Aggregation | |
Summary | |
Adding Rules | |
What Are Rules? | |
Reasons for Rules | |
No Support for Property Composition | |
Use of Built-ins | |
Ontological Mediation | |
Limiting Assumptions | |
Rule Languages | |
SWRL Essentials | |
The Abstract Syntax | |
The XML Concrete Syntax | |
var | |
imp | |
rlab | |
body | |
head | |
classAtom | |
datarangeAtom | |
individualPropertyAtom | |
datavaluedPropertyAtom | |
sameIndividualAtom | |
differentIndividualsAtom | |
builtinAtom | |
The RDF Concrete Syntax | |
Built-ins | |
Examples | |
DL-Safe Rules | |
Ontological Mediation | |
Mapping Friends without Upsetting Any of Them | |
The Power of Rules | |
Jena Rules | |
Rule Interchange Format | |
Delving into the Details | |
The Future of RIF | |
Summary | |
Building Semantic Web Applications | |
Applying a Programming Framework | |
Framing the Semantic Web | |
The Jena SemanticWeb Framework | |
Defining Jena Programming Concepts | |
Programming with Jena | |
Establishing the Jena Development Environment | |
Establishing the Knowledgebase: Setting Up the Model | |
Populating the Model with Semantic Web Data | |
Combining SemanticWeb Data | |
Interrogating Semantic Web Data | |
Reasoning across Semantic Web Data | |
Exporting SemanticWeb Data | |
Deallocating Semantic Web Data Resources | |
Managing Semantic Web Data | |
Getting Information Regarding Your Semantic Web Data | |
Generating Events Based on SemanticWeb Data | |
Dealing with Concurrency and Your Semantic Web Data | |
Customizing the Jena Framework | |
Serializing SemanticWeb Data | |
Common App Overview: FriendTracker | |
Summary | |
Combining Information | |
Combining Information | |
Representing Information | |
Translating between Representations | |
Addressing the Challenges of Translation | |
Maintaining Fidelity | |
Tracking Provenance Information | |
Reversing the Process | |
Handling Varying Data | |
Managing Data Volume | |
Introducing the FriendTracker Data Sources | |
Facebook XML Web Service | |
Jabber Java Client | |
Upcoming.org XML Web Service | |
WordPress Relational Database | |
Exposing XML-Based Web Services as RDF | |
Introducing the Weather.gov XML Feed | |
Exposing XML Using XSL Transformations | |
Traversing XML Documents with XPath | |
Applying XSLT to a Simple Example | |
Processing XML and XSLT Programmatically | |
Applying XSLT to the Facebook Data Source | |
Weighing the Benefits and the Costs of XSLT | |
Exposing XML Using XML Bindings and Velocity | |
Generating Java Bindings for XML Data | |
Unmarshalling XML Data into Java | |
Introducing the Velocity Template Engine | |
Generating RDF with Velocity | |
Weighing the Benefits and the Costs | |
Exposing Relational Databases as RDF | |
Exposing a WordPress Blog Using D2RQ | |
Creating D2RQ Mappings for theWordPress Database | |
Wrapping the D2RQ Instance in a Jena Model | |
Querying the D2RQ Exposed WordPress Database | |
Weighing the Benefits and the Costs of D2RQ | |
Exposing Other Sources of Data | |
Exposing Jabber with a Custom Streaming RDF Writer | |
Exposing Java Objects Using Reflection | |
Applying the RDF Generator to the Weather.gov XML Feed | |
Applying the RDF Generator to the Upcoming.org XML Feed | |
Summary | |
Aligning Information | |
Data Source, Domain, and Application Ontologies | |
Aligning Ontologies | |
Ontology Constructs | |
Translation via Rules | |
Explicit Translation | |
Ad Hoc Approaches to Translation | |
FriendTracker | |
Aligning Ontologies with OWL and SWRL | |
Aligning Ontologies with XSLT | |
Aligning Ontologies with Code | |
Aligning Simple Ontologies with RDFS | |
Record Linkage | |
Summary | |
Sharing Information | |
Microformats | |
eRDF | |
RDFa | |
Supported Attributes | |
xmlns | |
rel | |
rev | |
href | |
src | |
about | |
property | |
resource | |
datatype | |
typeof | |
Blank Nodes | |
Language Support | |
Tools and Frameworks | |
RDF Transformational Tools | |
SPARQL Endpoints | |
Joseki Installation and Operation | |
xOperator | |
Installation and Operation | |
Example Query | |
FriendTracker in RDFa | |
Summary | |
Expanding Semantic Web Programming | |
Developing and Using Semantic Services | |
Background | |
Discovery | |
Invocation | |
Negotiation | |
Error Handling | |
Monitoring | |
Composition | |
Implementing Semantic Services | |
Semantic Markup forWeb Services | |
ServiceProfile | |
ServiceModel | |
ServiceGrounding | |
Web Service Modeling Ontology | |
Semantic Annotations for WSDL | |
SAWSDL Example | |
SAWSDL Tools | |
Summary | |
Managing Space and Time | |
Space and Time in Software | |
Spatial Information | |
Temporal Information | |
Representing Spatiotemporal Data on the SemanticWeb | |
Spatial and Temporal Software with Jena | |
Working with Spatial Data | |
Example: Spatial Queries | |
Framing the Problem | |
Approach and Rationale | |
Components | |
Example: Transaction Time-Bounded Queries | |
Framing the Problem | |
Approach and Rationale | |
Components | |
Summary | |
Notes | |
Semantic Web Patterns and Best Practices | |
Aggregating Disparate Data Sources | |
Exposing Data Sources as RDF | |
Bringing Data into the Domain Knowledge Model | |
Storing Information in the Knowledgebase | |
Initiating the Flow of Data | |
Annotating Unstructured Data | |
Annotation Management | |
Ontology Management | |
Unstructured Data Sources and the Client Application | |
Coordinating Semantic Services | |
Applying SemanticWeb Best Practices | |
Creating URIs | |
Making URIs Unique | |
Making URIs Consistent | |
Making URIs Resolvable | |
Specifying Units of Measurement | |
Unit-Specific Properties and Datatypes | |
Statement Reification | |
Value Containers | |
Representing N-ary Relationships | |
Managing Bad Data | |
Summary | |
Moving Forward | |
Advancing Ontologies | |
Ontology Repositories and Registries | |
Linked Data | |
Versioning | |
Ontology Metrics | |
Advancing Integration | |
Semantic Pipes | |
Distributed Queries | |
Alignment | |
Advancing Reasoning | |
Rule Interchange Format (RIF) | |
Probabilistic Reasoning | |
Trust: Proof Markup Language | |
LarKC: The Large Knowledge Collider | |
Advancing Visualization | |
Summary | |
RDF | |
The OWL Web Ontology Language | |
SWRL | |
SPARQL | |
Jena Reference Guide | |
Installation Reference Guide | |
Index | |
Table of Contents provided by Publisher. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.