ZedneWeb / Weblog RDF schema

Describing weblogs with RDF

Current version:
<http://www.eyrie.org/~zednenem/2002/weblog-rdf/>
This version:
<http://www.eyrie.org/~zednenem/2002/weblog-rdf/20020705.html>

Contents

  1. Introduction
  2. Namespaces
  3. Classes
  4. Properties

Introduction

The purpose of creating an RDF vocabulary for describing weblogs is to enable exchanges among systems which create or collect information about weblogs. If a system knows, for example, that Doc Searls includes David Weinberger in his “blogroll” (a list of weblogs he recommends to others), it can use RDF to express this fact in a way that other systems can understand.

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:blog="http://www.eyrie.org/~zednenem/2002/weblog-rdf/">
  
    <blog:Weblog rdf:about="http://doc.weblogs.com/">
        <blog:recommends rdf:resource="http://www.hyperorg.com/blogger/"/>
    </blog:Weblog>

</rdf:RDF>

The goal is to be able to express every weblog-specific fact about any given weblog using this vocabulary. This includes blogrolls, what posts are current, what weblog a post is part of, authorship, publication dates, and so forth. It builds upon the web threading vocabulary by creating a new set of names to describe weblog-specific information. Like the web threading vocabulary, it also recommends the Dublin Core vocabulary for describing cataloguing and publishing information.

Using RDF makes it trivial to provide additional information for weblogs, archives, and posts. For example, a syndication vocabulary could be applied to weblogs to indicate how frequently they are updated or a moderation vocabulary could allow people to rank posts by quality.

As an example, this description of ZedneWeb circa 2002-07-03 demonstrates many of the classes and properties described here.

Namespaces

This convention uses three vocabularies to describe weblogs. The prefixes given here are only for the purposes of this document. In real-world RDF, any value may be used for the prefix, so long as it is declared with the appropriate URI.

PrefixURIComment
thread: http://www.eyrie.org/~zednenem/2002/web-threads/ Describes threaded resources such as weblogs and message boards
blog: http://www.eyrie.org/~zednenem/2002/weblog-rdf/ Additional information specific to weblogs
dc: http://purl.org/dc/elements/1.1/ The Dublin Core; provides cataloging and publication information

For more information about the Dublin Core, see the reference description. The representation of Dublin Core elements is based on the suggested RDF encoding

Classes

These three classes describe the components of a weblog.

ClassComment
blog:Weblog The primary page of a weblog, used to represent the weblog as a whole.
thread:Archive A page containing one or more posts in their permanent locations.
thread:Post An individual weblog post.

Properties

The properties below are used to describe weblogs and their component parts. When given, the “Domain” column lists classes which the property can describe and the “Range” column lists classes which can be the value of the property.

PropertyCommentDomainRange
dc:creator A string describing the authors blog:Weblog
thread:Post [1]
dc:date A string giving the publication date [2] thread:Post [1]
dc:title The title of a post or weblog blog:Weblog
thread:Post [1]
blog:currentPosts An ordered lists of post considered to be current blog:Weblog rdf:Seq
blog:hasArchive An archive of posts from the weblog blog:Weblog thread:Archive
blog:inWeblog Indicates membership in a weblog thread:Archive
thread:Post
blog:Weblog
blog:recommends An item to which the weblog has a prominent link blog:Weblog
blog:linksPage A page containing a list of featured resources blog:Weblog
blog:rssChannel The location of an RSS channel associated with the weblog blog:Weblog
thread:agreedWithBy A post which agrees with this resource thread:Post
thread:agreesWith A resource which the post agrees with thread:Post
thread:commentedOnBy A post which discusses this resource thread:Post
thread:commentsOn A resource which the post discusses thread:Post
thread:disagreedWithBy A post which disagrees with this resource thread:Post
thread:disagreesWith A resource which the post disagrees with thread:Post
thread:followedUpBy A post which corrects or provides new information thread:Post thread:Post
thread:followsUp An earilier post which this post provides new information about thread:Post thread:Post
thread:hasPost A post in the archive or weblog blog:Weblog
thread:Archive
thread:Post
thread:inArchive The archive containing the post thread:Post thread:Archive
thread:next The post or archive following this one thread:Archive
thread:Post
thread:Archive
thread:Post
thread:pointedToBy A post which refers to this resource but does not discuss it thread:Post
thread:pointsTo A resource which the post refers to but does not discuss thread:Post
thread:prev The post or archive preceeding this one thread:Archive
thread:Post
thread:Archive
thread:Post
thread:quotedBy A post which quotes this resource thread:Post
thread:quotes A resource which the post quotes thread:Post
thread:refersTo A resource the post refers to thread:Post
thread:referredToBy A post which refers to this resource thread:Post

Note [1]: In general, dc:creator, dc:date, and dc:title can be applied to any resource. These listings are merely a suggestion of classes relating to weblogs where they make sense.

Note [2]: Timestamps will be formatted according to the W3C date/time note, which describes a profile of ISO 8601. Permissable granularities are day (2002-07-05), minute (2002-07-05T15:00Z), and second (2002-07-05T15:00:00Z). Times with reduced granularity are taken to mean “sometime during that period”. Thus, it cannot be said whether a post dated 2002-07-05T15:00Z comes before or after one dated 2002-07-05, only that they were published on the same date.

Dave Menendez