Cover image for Practical RDF

Book description

The Resource Description Framework (RDF) is a structure for describing and interchanging metadata on the Web--anything from library catalogs and worldwide directories to bioinformatics, Mozilla internal data structures, and knowledge bases for artificial intelligence projects. RDF provides a consistent framework and syntax for describing and querying data, making it possible to share website descriptions more easily. RDF's capabilities, however, have long been shrouded by its reputation for complexity and a difficult family of specifications. Practical RDF breaks through this reputation with immediate and solvable problems to help you understand, master, and implement RDF solutions. Practical RDF explains RDF from the ground up, providing real-world examples and descriptions of how the technology is being used in applications like Mozilla, FOAF, and Chandler, as well as infrastructure you can use to build your own applications. This book cuts to the heart of the W3C's often obscure specifications, giving you tools to apply RDF successfully in your own projects. The first part of the book focuses on the RDF specifications. After an introduction to RDF, the book covers the RDF specification documents themselves, including RDF Semantics and Concepts and Abstract Model specifications, RDF constructs, and the RDF Schema. The second section focuses on programming language support, and the tools and utilities that allow developers to review, edit, parse, store, and manipulate RDF/XML. Subsequent sections focus on RDF's data roots, programming and framework support, and practical implementation and use of RDF and RDF/XML. If you want to know how to apply RDF to information processing, Practical RDF is for you. Whether your interests lie in large-scale information aggregation and analysis or in smaller-scale projects like weblog syndication, this book will provide you with a solid foundation for working with RDF.

Table of Contents

  1. Practical RDF
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. A Note Regarding Supplemental Files
    3. Preface
      1. Audience
      2. Structure of This Book
      3. Conventions Used in This Book
      4. How to Contact Us
      5. Acknowledgments
    4. 1. RDF: An Introduction
      1. 1.1. The Semantic Web and RDF: A Brief History
      2. 1.2. The Specifications
      3. 1.3. When to Use and Not Use RDF
      4. 1.4. Some Uses of RDF/XML
      5. 1.5. Related Technologies
      6. 1.6. Going Forward
    5. 2. RDF: Heart and Soul
      1. 2.1. The Search for Knowledge
      2. 2.2. The RDF Triple
      3. 2.3. The Basic RDF Data Model and the RDF Graph
      4. 2.4. URIs
      5. 2.5. RDF Serialization: N3 and N-Triples
        1. 2.5.1. A Brief Look at N3
        2. 2.5.2. N-Triples
      6. 2.6. Talking RDF: Lingo and Vocabulary
        1. 2.6.1. Graphs and Subgraphs
        2. 2.6.2. Ground and Not Graph
        3. 2.6.3. Entailment
    6. 3. The Basic Elements Within the RDF/XML Syntax
      1. 3.1. Serializing RDF to XML
        1. 3.1.1. Striped Syntax
        2. 3.1.2. Predicates
        3. 3.1.3. Namespaces and QNames
      2. 3.2. RDF Blank Nodes
      3. 3.3. URI References
        1. 3.3.1. Resolving Relative URIs and xml:base
        2. 3.3.2. Resolving References with rdf:ID
      4. 3.4. Representing Structured Data with rdf:value
      5. 3.5. The rdf:type Property
      6. 3.6. RDF/XML Shortcuts
      7. 3.7. More on RDF Data Types
      8. 3.8. RDF/XML: Separate Documents or Embedded Blocks
    7. 4. Specialized RDF Relationships: Reification, Containers, and Collections
      1. 4.1. Containers
        1. 4.1.1. Containers as Covered Within the Initial Specification Release
        2. 4.1.2. Containers as Typed Nodes
        3. 4.1.3. Containers Today
      2. 4.2. Collections
      3. 4.3. Reification: The RDF Big Ugly
        1. 4.3.1. Reified Statements
        2. 4.3.2. The Necessity of Reification and Metastatements
        3. 4.3.3. A Shorthand Reification Syntax
        4. 4.3.4. What Reification Solves
          1. 4.3.4.1. Implying trust
          2. 4.3.4.2. Metadata about statements
    8. 5. Important Concepts from the W3C RDF Vocabulary/Schema
      1. 5.1. RDF Vocabulary: Describing the Data
        1. 5.1.1. Metadata's Role in Existing Applications
        2. 5.1.2. RDF Schema: Metadata Repository
      2. 5.2. Core RDF Schema Elements
        1. 5.2.1. Overview of the RDF Classes
        2. 5.2.2. Demonstrations of the RDF Schema Properties
      3. 5.3. Refining RDF Vocabularies with Constraints
      4. 5.4. RDF Schema Alternatives
    9. 6. Creating an RDF Vocabulary
      1. 6.1. How RDF Vocabularies Differ from XML Vocabularies
      2. 6.2. Defining the Vocabulary: Business and Scope
      3. 6.3. Defining the Vocabulary: Elements
        1. 6.3.1. The PostCon Domain Elements
        2. 6.3.2. Prototyping the Vocabulary
        3. 6.3.3. Adding Repeating Values
        4. 6.3.4. Adding a Container
        5. 6.3.5. Adding in a Value
      4. 6.4. Formalizing the Vocabulary with RDFS
        1. 6.4.1. What Is a Class and What Is a Property?
        2. 6.4.2. Defining the Vocabulary Classes
        3. 6.4.3. Defining the Properties
      5. 6.5. Integrating the Dublin Core
        1. 6.5.1. An Overview of the Dublic Core MetaData Element Set
        2. 6.5.2. Dublin Core in RDF/XML
        3. 6.5.3. Qualified Dublin Core
        4. 6.5.4. Mixing Vocabularies
        5. 6.5.5. Using DC-dot to Generate DC RDF
    10. 7. Editing, Parsing, and Browsing RDF/XML
      1. 7.1. BrownSauce
      2. 7.2. Parsers
        1. 7.2.1. ARP2
        2. 7.2.2. ICS-FORTH Validating RDF Parser
      3. 7.3. Editors
        1. 7.3.1. IsaViz
        2. 7.3.2. RDF Editor in Java
    11. 8. Jena: RDF in Java
      1. 8.1. Overview of the Classes
        1. 8.1.1. The Underlying Parser
        2. 8.1.2. The Model
        3. 8.1.3. The Query
        4. 8.1.4. DAML+OIL
      2. 8.2. Creating and Serializing an RDF Model
        1. 8.2.1. Very Quick Simple Look
        2. 8.2.2. Encapsulating the Vocabulary in a Java Wrapper Class
        3. 8.2.3. Adding More Complex Structures
        4. 8.2.4. Creating a Typed Node
        5. 8.2.5. Creating a Container
      3. 8.3. Parsing and Querying an RDF Document
        1. 8.3.1. Just Doing a Basic Dump
        2. 8.3.2. Accessing Specific Values
      4. 8.4. In-Memory Versus Persistent Model Storage
    12. 9. RDF and Perl, PHP, and Python
      1. 9.1. RDF/XML and Perl
        1. 9.1.1. Ginger Alliance PerlRDF
        2. 9.1.2. Model Persistence and Basic Querying
        3. 9.1.3. Building an RDF Model
        4. 9.1.4. Parsing RDF/XML Documents
        5. 9.1.5. Querying RDF with RDF::Core
      2. 9.2. RDF API for PHP
        1. 9.2.1. Basic Building Blocks
        2. 9.2.2. Building an RDF Model
      3. 9.3. RDF and Python: RDFLib
    13. 10. Querying RDF: RDF as Data
      1. 10.1. RDF and the Relational Data Model
      2. 10.2. Roots: rdfDB QL
      3. 10.3. Inkling and SquishQL
      4. 10.4. RDQL
        1. 10.4.1. Jena's RDQL and the Query-O-Matic
          1. 10.4.1.1. The Query-O-Matic
          2. 10.4.1.2. Trying out the Query-O-Matic
        2. 10.4.2. PHP Query-O-Matic Lite
      5. 10.5. Sesame
    14. 11. A Brief Look at Additional RDF Application Environments
      1. 11.1. RDF and C#
      2. 11.2. Wilbur — RDF API CLOS
      3. 11.3. Overview of Redland—a Multilanguage-Based RDF Framework
        1. 11.3.1. Working with the Online Tools
        2. 11.3.2. Working with the Redland Framework
        3. 11.3.3. A Quick Demo
      4. 11.4. Redfoot
    15. 12. Ontologies: RDF Business Models
      1. 12.1. Why Ontology?
      2. 12.2. Brief History of the Ontology Movement
      3. 12.3. OWL Use Cases and Requirements
      4. 12.4. OWL Specifications
        1. 12.4.1. OWL Guide 1.0
        2. 12.4.2. OWL Reference 1.0
        3. 12.4.3. OWL Abstract Syntax and Semantics
        4. 12.4.4. Feature Synopsis for OWL Lite and OWL
      5. 12.5. Basic Constructs of OWL
        1. 12.5.1. OWL Header
        2. 12.5.2. OWL Classes and Individuals
        3. 12.5.3. OWL Simple Properties and Complex Data Types
      6. 12.6. Bits of Knowledge: More Complex OWL Constructs
        1. 12.6.1. Increasing the Power of the Property
          1. 12.6.1.1. Property characteristics
          2. 12.6.1.2. Property restrictions
        2. 12.6.2. Complex Classes
          1. 12.6.2.1. Intersection
          2. 12.6.2.2. Union
          3. 12.6.2.3. Complement
          4. 12.6.2.4. Enumeration
          5. 12.6.2.5. Disjoint
      7. 12.7. The Complementary Nature of RDF and OWL
      8. 12.8. Ontology Tools: Editors
        1. 12.8.1. SMORE—Semantic Markup, Ontology, and RDF Editor
        2. 12.8.2. Protégé
    16. 13. Subscription and Aggregation with RSS
      1. 13.1. RSS: Quick History
      2. 13.2. RSS 1.0: A Quick Introduction
      3. 13.3. A Detailed Look at the Specification
        1. 13.3.1. channel
        2. 13.3.2. title, link, and description
        3. 13.3.3. items
        4. 13.3.4. image
        5. 13.3.5. textinput
        6. 13.3.6. item
      4. 13.4. Extending the Specification Through Modules
      5. 13.5. The RSS Modules
        1. 13.5.1. Core: Syndication, Content, and Dublin Core
        2. 13.5.2. Extended Modules
      6. 13.6. RSS Aggregators
        1. 13.6.1. RSS Autodiscovery
        2. 13.6.2. AmphetaDesk
          1. 13.6.2.1. Using AmphetaDesk
          2. 13.6.2.2. More advanced customization
        3. 13.6.3. Meerkat
        4. 13.6.4. NetNewsWire and NetNewsWire Lite
      7. 13.7. Creating Your Own RSS Content
      8. 13.8. Build Your Own RSS Consumer
      9. 13.9. Merging RDF/RSS Files
    17. 14. A World of Uses: Noncommercial Applications Based on RDF
      1. 14.1. Mozilla
        1. 14.1.1. XUL Briefly
        2. 14.1.2. XUL Templates
      2. 14.2. Creative Commons License
      3. 14.3. MIT's DSpace System Documentation
      4. 14.4. FOAF: Friend-of-a-Friend
        1. 14.4.1. The FOAF-A-Matic
        2. 14.4.2. FOAF Technologies
    18. 15. A World of Uses: Commercial Uses of RDF/XML
      1. 15.1. Chandler: RDF Within an Open Source PIM
      2. 15.2. RDF Gateway, a Commercial RDF Database
      3. 15.3. Siderean Software's Seamark
      4. 15.4. Plugged In Software's Tucana Knowledge Store
      5. 15.5. RDF and Adobe: XMP
      6. 15.6. What's It All Mean?
    19. About the Author
    20. Colophon
    21. SPECIAL OFFER: Upgrade this ebook with O’Reilly