You are previewing Programming the Semantic Web.
O'Reilly logo
Programming the Semantic Web

Book Description

With this book, the promise of the Semantic Web -- in which machines can find, share, and combine data on the Web -- is not just a technical possibility, but a practical reality Programming the Semantic Web demonstrates several ways to implement semantic web applications, using current and emerging standards and technologies. You'll learn how to incorporate existing data sources into semantically aware applications and publish rich semantic data. Each chapter walks you through a single piece of semantic technology and explains how you can use it to solve real problems. Whether you're writing a simple mashup or maintaining a high-performance enterprise solution,Programming the Semantic Web provides a standard, flexible approach for integrating and future-proofing systems and data. This book will help you:

  • Learn how the Semantic Web allows new and unexpected uses of data to emerge

  • Understand how semantic technologies promote data portability with a simple, abstract model for knowledge representation

  • Become familiar with semantic standards, such as the Resource Description Framework (RDF) and the Web Ontology Language (OWL)

  • Make use of semantic programming techniques to both enrich and simplify current web applications

Table of Contents

  1. Special Upgrade Offer
  2. A Note Regarding Supplemental Files
  3. Foreword
  4. Preface
    1. Conventions Used in This Book
    2. Using Code Examples
    3. Safari® Books Online
    4. How to Contact Us
  5. I. Semantic Data
    1. 1. Why Semantics?
      1. Data Integration Across the Web
      2. Traditional Data-Modeling Methods
        1. Tabular Data
        2. Relational Data
        3. Evolving and Refactoring Schemas
        4. Very Complicated Schemas
        5. Getting It Right the First Time
      3. Semantic Relationships
      4. Metadata Is Data
      5. Building for the Unexpected
      6. “Perpetual Beta”
    2. 2. Expressing Meaning
      1. An Example: Movie Data
      2. Building a Simple Triplestore
        1. Indexes
        2. The add and remove Methods
        3. Querying
      3. Merging Graphs
      4. Adding and Querying Movie Data
      5. Other Examples
        1. Places
        2. Celebrities
        3. Business
    3. 3. Using Semantic Data
      1. A Simple Query Language
        1. Variable Binding
        2. Implementing a Query Language
      2. Feed-Forward Inference
        1. Inferring New Triples
        2. Geocoding
          1. Using a free online geocoder
          2. Adding a geocoding rule
        3. Chains of Rules
        4. A Word About “Artificial Intelligence”
      3. Searching for Connections
        1. Six Degrees of Kevin Bacon
      4. Shared Keys and Overlapping Graphs
        1. Example: Joining the Business and Places Graphs
        2. Querying the Joined Graph
      5. Basic Graph Visualization
        1. Graphviz
        2. Displaying Sets of Triples
        3. Displaying Query Results
      6. Semantic Data Is Flexible
  6. II. Standards and Sources
    1. 4. Just Enough RDF
      1. What Is RDF?
      2. The RDF Data Model
        1. URIs As Strong Keys
        2. Resources
        3. Blank Nodes
        4. Literal Values
      3. RDF Serialization Formats
        1. A Graph of Friends
        2. N-Triples
        3. N3
        4. RDF/XML
        5. RDFa
      4. Introducing RDFLib
        1. Persistence with RDFLib
      5. SPARQL
        1. SELECT Query Form
        2. OPTIONAL and FILTER Constraints
        3. Multiple Graph Patterns
        4. CONSTRUCT Query Form
        5. ASK and DESCRIBE Query Forms
        6. SPARQL Queries in RDFLib
        7. Useful Query Modifiers
    2. 5. Sources of Semantic Data
      1. Friend of a Friend (FOAF)
        1. Graph Analysis of a Social Network
      2. Linked Data
        1. The Cloud of Data
        2. Are You Your FOAF file?
        3. Consuming Linked Data
      3. Freebase
        1. An Identity Database
        2. RDF Interface
        3. Freebase Schema
        4. MQL Interface
        5. Using the metaweb.py Library
        6. Interacting with Humans
    3. 6. What Do You Mean, “Ontology”?
      1. What Is It Good For?
        1. A Contract for Meaning
        2. Models Are Data
      2. An Introduction to Data Modeling
        1. Classes and Properties
        2. Modeling Films
        3. Reifying Relationships
      3. Just Enough OWL
      4. Using Protégé
        1. Creating a New Ontology
        2. Editing an Ontology
      5. Just a Bit More OWL
        1. Functional and Inverse Functional Properties
        2. Inverse Properties
        3. Disjoint Classes
        4. Keepin’ It Real
      6. Some Other Ontologies
        1. Describing FOAF
        2. A Beer Ontology
      7. This Is Not My Beautiful Relational Schema!
    4. 7. Publishing Semantic Data
      1. Embedding Semantics
        1. Microformats
        2. RDFa
        3. Yahoo! SearchMonkey
        4. Google’s Rich Snippets
      2. Dealing with Legacy Data
        1. Internet Video Archive
        2. Tables and Spreadsheets
        3. Legacy Relational Data
      3. RDFLib to Linked Data
  7. III. Putting It into Practice
    1. 8. Overview of Toolkits
      1. Sesame
        1. Using the Sesame Java API
        2. RDFS Inferencing in Sesame
        3. A Servlet Container for the Sesame Server
        4. Installing the Sesame Web Application
        5. The Workbench
        6. Adding Data
        7. SPARQL Queries
        8. REST API
      2. Other RDF Stores
        1. Jena (Open Source)
        2. Redland (Open Source)
        3. Mulgara (Open Source)
        4. OpenLink Virtuoso (Commercial and Open Source)
        5. Franz AllegroGraph (Commercial)
        6. Oracle (Commercial)
      3. SIMILE/Exhibit
        1. A Simple Exhibit Page
        2. Searching, Filtering, and Prettier Views
        3. Linking Up to Sesame
        4. Timelines
    2. 9. Introspecting Objects from Data
      1. RDFObject Examples
      2. RDFObject Framework
      3. How RDFObject Works
    3. 10. Tying It All Together
      1. A Job Listing Application
        1. Application Requirements
      2. Job Listing Data
        1. Converting to RDF
        2. Loading the Data into Sesame
      3. Serving the Website
        1. CherryPy
        2. Mako Page Templates
      4. A Generic Viewer
        1. Getting Data from Sesame
        2. The Generic Template
      5. Getting Company Data
        1. Crunchbase
        2. Yahoo! Finance
        3. Reconciling Freebase Connections
      6. Specialized Views
      7. Publishing for Others
        1. RDFa
        2. RDF/XML
      8. Expanding the Data
        1. Locations
        2. Geography, Economy, Demography
      9. Sophisticated Queries
      10. Visualizing the Job Data
      11. Further Expansion
  8. IV. Epilogue
    1. 11. The Giant Global Graph
      1. Vision, Hype, and Reality
      2. Participating in the Global Graph Community
        1. Releasing Data into the Commons
        2. License Considerations
        3. The Data Cycle
      3. Bracing for Continuous Change
  9. Index
  10. About the Authors
  11. Colophon
  12. Special Upgrade Offer
  13. Copyright