| |
| |
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 | |
| |
| |
data range Atom | |
| |
| |
individual Property Atom | |
| |
| |
data valued Property Atom | |
| |
| |
same Individual Atom | |
| |
| |
different Individuals Atom | |
| |
| |
builtin Atom | |
| |
| |
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 | |