rNews 0.5: Introduction to rNews

rNews: Embedded Metadata For The News Industry

rNews is a set of specifications and best practices for using RDFa to embed news-specific metadata into HTML documents. In this document, we'll provide an overview rNews and an implementation guide. We'll get started by reviewing the class diagram of the rNews data model. Following that we'll review each individual class. After that we will use rNews to annotate a sample news document. We will conclude with a guide for implementors of rNews.

A Sample Story

Of course, it would be unconscionably boring of us to simply rattle off the technical specification of each class. To stave off boredom we're introducing a real-world example: a real New York Times story appearing in a make-believe newspaper called "The IPTC Herald Tribune."

Figure 1: Expert from our sample story.
Our sample article is headlined "Allies Are Split on Goal and Exit Strategy in Libya," and we'll be using it to show how to apply the rNews data model to real-world data. But before that, we need to review the data model itself.

 

The rNews Data Model

The typical news-focused website presents news in two major formats articles and media. Articles are composed of many attributes including dateline, body text, and word count. Media items come in many types such as audio, video, and image and are composed of attributes such as height, width and encoding. Articles and media items also share a number of common attributes including title, creation date, and copyright notice. The rNews data model, shown below, is built around these observations. This diagram shows each class and the relations between classes.

Figure 2: Class relations in the rNews Data Model.

As you can see, the rNews data model is centered around two classes NewsItem class and the Concept class. We'll start by describing the NewsItem class. This class models attributes common to both articles and media items. The NewsItem class is extended by two subclasses Article and Media which model attributes particular to each type. An Article object may be illustratedBy one or more Media objects. A NewsItem may be discussedBy one or more Comment objects.

The other central class is the Concept class. Below this class is shown below in greater detail.

Figure: Relations between the Concept class and its subclasses.

The Concept class is used to model abstract concepts. It is extended by subclasses that model specific types of real-world concepts. The Location class extends the Concept class with geospatial attributes. The Party class extends the Concept class with those attributes common to both people and organizations, such as contact information. The Party class is extended by both the Person and the Organization classes which model attributes particular to each type.

A number of relations exist between the NewsItem class and the Concept class and its subclasses. An article may be taggedBy a Concept object. And a newsItem may have several relations to the Party object.

  • If a Party is primarily responsible for the creation of a NewsItem, then a createdBy relation exists between the two objects.
  • If a Party has contributed to a NewsItem but is not the primary creator, then a contributedBy relation exists between the two objects.
  • If a Party is the legal entity responsible for a NewsItem, then a hasAccountableParty relation exists between the two objects. The practice of having a legally accountable party for a news item is more prevalent in Europe than elsewhere.
  • If a Party holds the copyright to a NewsItem, then a copyrightedBy relation exists between the two objects.
  • If a Party is the outlet most responsible for the creation of a NewsItem, then a hasSource relation exists between the two objects.
  • If a Party provides the NewsItem for publication, then a providedBy relation exists between the two objects.

 

The difference between a Party that provides a NewsItem and a Party that is the source for a NewsItem may be confusing, so lets consider an example. Suppose The Boston Globe writes a general interest article about an impending snowstorm and the Associated Press distributes the article. Then this article hasSource "Boston Globe" but is providedBy "The Associated Press." Incidentally, since the Boston Globe is owned by The New York Times Company, this article is copyrightedBy "The New York Times Company" not "The Boston Globe."

Like NewsItem objects, Comment objects may be associated with a creating Party via the createdBy relation.

One additional note about the rNews data model: all of the class relations have an equivalent inverse relation. For example if a NewsItem is illustratedBy a Media object, then we could also say that the Media object illustrates the NewsItem. Inverse relations have been omitted from the class diagram for the sake of clarity but are specified in the table below.

 

Subject ClassVerbObject ClassDefinition
NewsItem discussedBy Comment Specifies that a NewsItem is discussed by a Comment.
NewsItem taggedBy Concept Specifies that a NewsItem has a Concept
NewsItem createdBy Party Specifies that a NewsItem has been created by a Party.
NewsItem contributedBy Party Specifies that a NewsItem has been contributed to but not created by a Party.
NewsItem copyrightedBy Party Specifies that a NewsItem has its copyright held by a Party.
NewsItem hasSource Party Specifies that a NewsItem was created for a Party.
NewsItem providedBy Party Specifies that a NewsItem has been provided for publication by a Party.
NewsItem hasAccountableParty Party Specifies that a NewsItem has a legally accountable Party.
Article illustratedBy Media Specifies that an Article is illustrated by a Media object.
Media illustrates Article Specifies that an Media object illustrates an Article. Inverse of illustratedBy.
Concept tags NewsItem Specifies that an Concept corresponds to a NewsItem. Inverse of taggedBy.
Party creates NewsItem Specifies that a Party is a creator of a NewsItem. Inverse of createdBy.
Party creates Comment Specifies that a Party is a creator of a Comment. Inverse of createdBy.
Party contributes NewsItem Specifies that a Party is a contributor to a NewsItem. Inverse of contributedBy.
Party holdsCopyright NewsItem Specifies that a Party holds the copyright to a NewsItem. Inverse of copyrightedBy.
Party isSourceOf NewsItem Specifies that a Party is the entity for which the NewsItem was originally created. Inverse of hasSource.
Party provides NewsItem Specifies that a Party has provided a NewsItem for publication. Inverse of providedBy.
Party isAccountableFor NewsItem Specifies that a Party is the legally accountable entity for a NewsItem. Inverse of hasAccountableParty.
Comment createdBy Specifies that a Comment has been created by the specified Party. Inverse of creates.
Comment discusses NewsItem Specifies that a Comment discusses a NewsItem. Inverse of discussedBy.

 

Want to comment on rNews: we invite you to post your comment to the rNews Forum.