The Data Types

gRSShopper incorporates a number of distinct data types. Some of these data types are very general, while others are very specific. Each type of data is related to the other.

For example, the gRSShopper harvester will harvest a link from a given feed. A person, if he or she has admin privileges, can transform this link into a post, adding his or her own comments. The post will contain information about the original link's author and journal.

Different data types can be seen by the site administrator from any Admin screen - they are all listed on the left hand side of the screen. Site visitors, on the other hand, will see whatever the administrator wants them to see.

Here, then, are the data types:


An author is a person who writes a web resource. Authors are the creators of links, which are harvested by gRSShopper, and of resources referenced by posts.

It should be mentioned at this juncture that posts - which are like blog posts, and are authored by the owner of the site - are unlike the posts you'll find on Blogger or WordPress. Each post contains a field for a link, author and a journal. The idea is that a person using gRSShopper typically writes about something, and so there is a primary reference for each post.

The author, as one of those referents, can be identified with a name and a URL. I'd like this (eventually) to be the author's OpenID website. For now, it's just the author's home page.

On this site, visitors can view a separate page for each author. For example, here is the author page on this site for Stephen Downes. That's me. On the page, if the site owner encodes the view appropriately, you can see a list of the posts which reference the author.


A box is a bit of HTML text that can be inserted into any page on the website with a simple command (see page commands).

Boxes are useful because they are cached by the system, reducing the overhead on the system. They can also be used to access the database, which allows live contents (for example, a list of pages) to be displayed.

To the left you can see an example of a 'Contents' box. This box is a simple list of all the pages on the site. The contents box need never be updated; pages will be added automatically as they are created. If you have Admin access, you can see the encoding for the Contents box here.


A cite is created automatically by the harvester. It is a record that indicates that one resource (as defined by its URI) has referenced (or 'cited') another resource (also referenced by its URI).

(Note that cites are currently disabled in the code while I work out a more efficient way to do them...)


An event is, as the name implies, a record that describes something that is scheduled. Hence, events have a 'start' and an 'end' field, which would indicate when they take place, as well as a location field, for location information.

The event data type is a work in progress. I would like to be able to read and write event metadata, not only in iCal but also in RSS and JSON. The idea would be that you can use this site to create events, and also import events listings, and in turn use the site to update external calendars.