An Introduction to ROR (Resources of a Resource)

An Introduction to ROR (Resources of a Resource)

*** What is ROR?
ROR (Resources of a Resource) is an XML format for describing the content, objects,
and structure of websites in a generic fashion so search engines and other web
applications can find and understand information more easily.

For example if your website is selling products, ROR enables you to document your
product names, descriptions, prices, images, availability, affiliate programs,
etc. Or if your site or blog provides information on a given topic, it allows
you to describe how this information is organized (sitemap, topics, categories,
new information, archive, blogroll, etc). ROR also provides terms for documenting
objects such as contacts, articles, newsletters, feeds, images, audio, links,
reviews, privacy policy, copyrights, and more.

*** ROR File
ROR information can be easily added to your website by adding a ROR File called
ror.xml. ROR is actually quite simple. It is built on top of RDF, the W3 Resource
Description Language (http://www.w3.org/RDF).
If you are not familiar with RDF, don't worry, I won't go into any details here.

With ROR, all objects are represented by a <Resource> tag,
and can optionally have a <type> property to determine the
type (or class) of the object (e.g. Product, Article,
Event, etc). The other properties are typically determined by the
type you choose. Here is a simple example of a product described by ROR:

<Resource>
  <type>Product</type>
  <title>My Product</title>
  <desc>My great new product</desc>
  <url>http://www.my-web-site.com/my-product.htm</url>
  <price>19.95</price>
  <currency>USD</currency>
</Resource>

Pretty simple, isn't it? And if you want to describe other objects, ROR provides
other types like Contact, Article, Feed, Event, etc. You can find the current
list of object and their properties in the ROR Specification at http://www.rorweb.com/spec.htm.

Now let's see how to assemble several objects together in a ROR file. In a ROR
file the meaning of information is determined by both the objects and the relationship
between them. Depending how an object is linked to another object, it will provide
a different meaning. To link two objects together the property <resourceOf>
is used. Here is an example:

<Resource rdf:about="object-1">
  <title>Object 1</title>
  ...
</Resource>


<Resource>
  <title>Object 2</title>
  ...
  <resourceOf rdf:resource="object-1" />
</Resource>


<Resource>
  <title>Object 3</title>
  ...
  <resourceOf rdf:resource="object-1" />
</Resource>

The first object uses the rdf:about attribute to identify itself
so it can be referenced elsewhere. The <resourceOf> property is
then used to attach the second and third objects to the first. Attaching the two
objects to the first one is a way to say that they contain information that relates
to or further describes that object.

That's pretty much it! Now that you know the essential about ROR, let's create
a simple ROR file. Again I won't go into the details of RDF, but let's just say
this; since ROR is built on top of RDF, it is enclosed in the <rdf:RDF>
tag. Notice that the first object in this file has a type property set to Main.
This designates it as the entry point into the data structure of the ROR file.
<?xml version="1.0" ?> 
<rdf:RDF
xmlns="http://rorweb.com/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<Resource rdf:about="mysite">
<type>Main</type>
<title>My Website</title>
<url>http://www.my-web-site.com</url>
<desc>My great site with a ROR file to describe it</desc>
</Resource>


<Resource>
<type>Contact</type>
<name>John Doe</name>
<phone>555 1212</phone>
<fax>555 1213</fax>
<mobile>555 1214</mobile>
<resourceOf rdf:resource="mysite" />
</Resource>


<Resource rdf:about="products">
<type>Product</type>
<title>My Products</title>
<url>http://www.my-web-site.com/myproducts.htm</url>
<currency>USD</currency>
<resourceOf rdf:resource="mysite" />
</Resource>


<Resource>
<type>Product</type>
<title>Product 1</title>
<url>http://www.my-web-site.com/product1.htm</url>
<image>http://www.my-web-site.com/product1.gif</image>
<price>19.95</price>
<resourceOf rdf:resource="products" />
</Resource>


<Resource>
<type>Product</type>
<title>Product 2</title>
<url>http://www.my-web-site.com/product2.htm</url>
<image>http://www.my-web-site.com/product2.gif</image>
<price>29.95</price>
<resourceOf rdf:resource="products" />
</Resource>


<Resource rdf:about="myfeeds">
<type>Feed</type>
<title>My Feeds</title>
<resourceOf rdf:resource="mysite" />
</Resource>


<Resource>
<type>Feed</type>
<title>Daily News</title>
<url>http://www.my-web-site.com/dailynews</url>
<updatePeriod>day</updatePeriod>
<resourceOf rdf:resource="myfeeds" />
</Resource>


<Resource>
<type>Feed</type>
<title>Weekly News</title>
<url>http://www.my-web-site.com/weeklynews</url>
<updatePeriod>week</updatePeriod>
<resourceOf rdf:resource="myfeeds" />
</Resource>


</rdf:RDF>


*** Extending ROR
To make it easier to use, ROR provides a set of pre-defined objects. These are
objects that are commonly used on websites (Contact, Address,
Webpage, Product, Feed, etc). But ROR is
designed with simplicity and flexibility in mind, it can be easily combined with
other vocabularies. As a simple example, let's say you want to describe a list
of people. To do this you can combine ROR with the Friends of a Friend (FOAF at
http://www.foaf-project.org) vocabulary.
Here is what you would get: http://www.rorweb.com/examples/members.xml
. And of course you can also add terms from the Dublin Core vocabulary (http://www.dublincore.org).

*** ROR Tools
The ROR website (http://www.rorweb.com) offers
several tools to help you create a ROR file. The ROR File Editor makes it easy
to create and update a simple ROR file without any coding. The File Reader allows
you to create a ROR file from a tab-delimited text file with your products, articles,
links, or contacts information. This tools can also read a Froogle product feed
or a Yahoo Shopping feed. Finally, the ROR Explorer allows you to drill down into
the information of a ROR file.

Happy RORing!


About the Author

The Add Me Team
Search Engine Submission and Optimization
http://www.addme.com. You may reprint this article on your website, blog, newsletter, or magazine.