Created 2004/10/1
Last Update 2005/3/1
Copyright © 2004 - 2005 Rorweb.com
Permission is granted to everyone to use ROR, a patent-pending technology, for
describing their own website(s) or resource(s) for free. ROR is provided “as
is” without warranty, expressed or implied. Licensing of ROR will soon be made
available; we are currently testing it with several partners.
Keywords
Semantic Web, RDF, XML, Vocabulary, Resource Description, Website Description
The idea behind ROR is to provide a simple and structured way for resources to generically describe their content, resources, and relationships with other resources, and make this information available in one location on the resource, accessible to all interested.
This document is a work in progress and will be refined. The author makes no commitments at this point regarding future updates. Feel free to send your questions, comments or suggestions at
About the RDF seeAlso Property
xmlns:ror = “http://rorweb.com/0.1/”
The goal of ROR is to facilitate the exchange of information and meaning between resources and/or applications, by providing a simple set of terms and mechanisms for describing their content, resources, and relationships with other resources, exploring the possibilities of the Semantic Web.
ROR currently provides a set of two vocabularies:
- General Vocabulary: describes the general aspects of a resource and the general relationships between the resources it uses or is composed of (collection, tree, or network structures).
- Web Vocabulary: is an extension to the General Vocabulary and specializes in describing Internet resources like web sites, web stores, products, web feeds, sitemaps, web services, etc
ROR is built on top of W3’s RDF (Resource Description Framework) but adds some constraints so that both RDF/XML and XML parsers can easily read it.
A ROR document can be created and added to a resource, to describe it. See ROR Document for details.
The General Vocabulary describes the general aspects of a resource and the general relationships between the resources it uses or it is composed of. The vocabulary is designed to be used as a skeleton for connecting and organizing the resources of a resource, on which additional meaning can be added using other vocabularies (e.g. Dublin Core, Syndication, ROR Web Vocabulary, etc).
A resource can be anything (a website, an object, a person, a place, a file, a database record, etc). In a ROR document describing a website, the top resource would typically represent the website itself, the lowest level resources would represent things as granular as a link, a blog or feed entry, a webpage paragraph, a product, a forum message, etc. The idea of ROR is to“divide and describe”: describe resources by decomposing them into ever smaller resources that can be described more fully and precisely.
Below is an example of a resource described with the ROR General Vocabulary:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.rorweb.com/0.1/">
<Resource rdf:about="mything"> <type>Main</type> <title>My Thing</title> <url>http://www.my-thing-site.com/</url> <image>logo.jpg</image> ... </Resource>
<!-- Other Resources -->
<Resource rdf:about="thing-1"> <title>Thing 1</title> <resourceOf rdf:resource="mything"/> ... </Resource>
<Resource rdf:about="thing-2"> <title>Thing 2</title> <resourceOf rdf:resource="mything"/> ... </Resource>
<title>Thing 3</title> <resourceOf rdf:resource="thing-2"/>
...
<Resource rdf:about="thing-4"> <title>Thing 4</title> <resourceOf rdf:resource="thing-2"/> ... </Resource>
<Resource rdf:about="thing-n"> <title>Thing n</title> <resourceOf rdf:resource="mything"/> ... </Resource>
</rdf:RDF>
|
In a ROR document all elements are described using the Resource class. The elements can optionally be identified using the rdf:about attribute. Class types are identified by the type property (also optional). For example, the main resource of a ROR document has its type property set to “Main”: <type>Main</type>. The type property is also used by the Web Vocabulary to identify other types of resources. A property can hold a value, or a reference to another resource. An example of a value is <title>My Thing</title>, an example of a reference is <resourceOf rdf:resource="mything"/>.
.
Resource |
Defines a new resource or object (subclass of rdfs:Resource)
|
Main |
Defines the main resource (subclass of Resource)
|
id |
Identifier or short name of the resource |
title |
Title of the resource |
desc |
Short description of the resource |
descLong |
Long description of resource |
type |
Type of the resource (Resource, Main, or other class types, maps to rdf:type) |
category |
Category describing the content of the resource (comma-delimited text from general to specific, or third-party resource reference). |
keywords |
Keywords describing the content of the resource (comma-delimited text) |
url |
URL of the resource if applicable |
doc |
URL of documentation about the resource |
content |
Content of the resource |
format |
Mime format of the resource (e.g. text/html, video/mpeg, etc) |
size |
Size of the resource if applicable (in KiloBytes) |
creator |
Creator of the resource |
created |
Creation date of the resource (e.g. 2005-01-31) |
publisher |
Publisher of the resource |
published |
Published date of the resource (e.g. 2005-01-31) |
updated |
Last update date of the resource |
updatePeriod |
Update period of the resource (example: second, minute, hour, day, week, month, year) |
updateRate |
Rate of the update period of the resource is updated (example: 1, 2, 3, etc) |
image |
Image about the resource |
imageSmall |
Small image about the resource |
imageLarge |
Large image about the resource |
sortBy |
Sort order of resources of this resource by [property] (default is sortOrder) |
sortDir |
Sort direction up or down (default is up) |
sortOrder |
Order position of resource (e.g. 1, 2, 3, etc) |
language |
Language of the resource |
available |
Determines if the resource is currently available (default is yes) |
resource |
A resource or object associated with this resource |
resourceOf |
A resource or object this resource is associated with (inverse property of resource) |
seeAlso |
A resource or object with more information about this resource (maps to rdfs:seeAlso) |
Note: Some of the properties listed above will be mapped to properties of the Dublin Core vocabulary (http://dublincore.org).
The ROR Web Vocabulary is an extension of the General Vocabulary and specializes in describing web resources like websites, web pages, web stores, web feeds, products, web services, etc, resources that are common on the Web. All classes are subclasses of the ROR Resource class.
Below is an example of a resource describing a product offered on a website. Here too, the resource is described using the Resource class, and the type property is set to the name of the class of interest, here Product. Setting the type property to Product tells a ROR document reader that this resource is of class Product, and that properties attached to that class (e.g. price, currency, etc) may also be found. All properties are optional.
<Resource rdf:about="web-hosting"> <type>Product</type> <title>Web Hosting</title> <url>http://www.acme.com/webhosting.htm</url> <image>http://www.acme.com/domains.gif</image> <price>12.95</price> <priceRecur>9.95</priceRecur> <priceRecurPeriod>month</priceRecurPeriod> <priceRecurRate>1</priceRecurRate> <currency>USD</currency> <available>yes</available> <kind>service</kind> <resourceOf rdf:resource="products"/> </Resource>
|
Here is the current list of classes included in the vocabulary; they can be used in the type property. Of course this list is not final, many new classes and properties will be added regularly. Classes with properties are further documented below.
Ad, Address, AffiliateProgram, Affiliation, Alert, App, Article, Audio, Archive, Banner, Blog, Book, Business, Contact, Course, Data, Discount, Document, Download, EBook, Entity, Event, Favorite, Feed, File, Forum, Friend, Graph, HttpService, Image, Information, Legal, Link, Magazine, Menu, Message, Music, Newsletter, Organization, Partner, Person, Poll, Product, QA, Report, Review, Schedule, SiteMap, Song, Text, Tip, Tool, Tutorial, Video, Webpage, WebService, Website, Wiki
|
Address |
Defines an address
|
AffiliateProgram
|
Defines an affiliate (or associate) program
|
App |
Defines a software application or tool
|
Business |
Defines an business
|
Contact
|
Defines a contact (person, business, or organization)
|
Discount |
Defines a product discount
|
Event |
Defines an event
|
Feed |
Defines a web feed (rss, atom, ror)
Note: when feedType is ror, entries are identified through the resource or resourceOf properties
|
HttpService |
Defines an http service
|
Image |
Defines an image
|
Legal
|
Defines legal information for a resource
|
Message |
Defines a message (email, forum, etc)
|
Newsletter |
Defines a newsletter or ezine
|
Person |
Defines a business
|
Product |
Defines a product or service
|
QA |
Defines a Q&A element
|
Review |
Defines a review (for a product, a resource, etc)
|
WebService |
Defines a web service
|
[to be completed]
A ROR document(s) can be added to a resource to describe its content and resources (products, services, methods, sitemap, content, etc). The default ROR document name is ror.xml. This means that web agents and applications (e.g. search engine spiders, etc) can search for this document on a website and find valuable information about it and its resources.
If the resource is a webpage, it can reference this file or another ROR document in the HTML code (in the <head> section):
<link id="rorlink" rel="meta" type="application/rdf+xml" title="ROR" href="another-file.xml" />
|
A ROR document can be a simple static file or a document generated periodically or on-the-fly by the server using information pulled from a database.
To add meaning, elements of a
webpage (words, paragraphs, images, etc) can reference resources in the ROR document.
For example, the name of a product can include a reference to the product
resource itself:
Webpage elements (english):
<span
resource="main">Our company</span> offers the following
services: <br /> - <span
resource="web-hosting">Web Hosting</span> |
Webpage elements (french):
<span
resource="main">Notre Societe</span> offre les services suivant:
<br /> - <span
resource="web-hosting">Hebergement</span> |
Corresponding resources:
<type>Main</type> <title>Acme Web Hosting</title> ... </Resource>
<Resource rdf:about="domain-registration"> <type>Product</type> <title>Domain Registration</title> ... </Resource>
<type>Product</type> <title>Web Hosting</title> ... </Resource> <type>Discount</type> <title>Discount</title> ... </Resource>
|
The ROR type property is similar to the RDF type property, which is also supported by ROR. It is meant to be an easy way to say this:
<rdf:type rdf:resource=”http://rorweb.com/0.1/[ClassName]” />
The rdf:type property also provides a way to extend the ROR Vocabulary
As with RDF, ROR allows resources to have several types at the same time (be an instance of multiple classes). The example below shows how a website can describe a downloadable application:
<Resource rdf:about="domain-name-finder"> <type>App</type> <type>Download</type> <title>Domain Name Finder</title> <url>http://www.acme.com/domainfinder.htm</url> <platform>Windows 2000</platform> <platform>Windows XP</platform> <size>1000</size> <resourceOf rdf:resource="downloads"/> </Resource>
|
The RDF seeAlso property is used in ROR to state that further information can be found elsewhere (inside or outside a ROR document).
For example, elements of a SiteMap, which are generally just representations of other elements of the resource, can use the seeAlso property to identify the elements they represent.
The property can also be used to document the location of other ROR documents. Large websites might not want to store all information in one ROR document, but across several documents. For example, the main ROR document could contain a resource named “Articles” which points to another ROR document(s) containing the Article resources.
<rdfs:seeAlso rdf:resource=”http://acme.com/articles.xml” />
Another use of the property is for documenting other websites or resources (e.g. related websites, partners, etc)
Below is an example of a ROR document describing the resources of a website called Acme Web Hosting. Additional examples will be added soon.
Main Document (ror.xml)
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://rorweb.com/0.1/" xml:base="http://www.acme.com/ror/">
<Resource rdf:about="main"> <type>Main</type> <title>Acme Web Hosting</title> <url>http://www.acme.com</url> <image>http://www.acme.com/logo.gif</image> </Resource>
<!-- Contact Resource -->
<Resource rdf:about="contact"> <type>Contact</type> <title>Contact Information</title> <url>http://www.acme.com/contact.htm</url> <name>Acme Hosting, Inc</name> <address>123 Main Street\nBoston, MA 02211</address> <phone>800 555 1234</phone> <email>sales@acme.com</email> <resourceOf rdf:resource="main"/> </Resource>
<!-- Feed Resource -->
<Resource rdf:about="newsfeed"> <type>Feed</type> <title>News Feed</title> <url>http://www.acme.com/rssnews.xml</url> <resourceOf rdf:resource="main"/> </Resource>
<!-- Product Resources -->
<Resource rdf:about="products"> <type>Product</type> <title>Products</title> <url>http://www.acme.com/products.htm</url> <resourceOf rdf:resource="main"/> </Resource>
<Resource rdf:about="domain-registration"> <type>Product</type> <title>Domain Registration</title> <url>http://www.acme.com/domains.htm</url> <image>http://www.acme.com/domains.gif</image> <imageSmall>http://www.acme.com/smalldomains.gif</imageSmall> <priceRecur>9.95</priceRecur> <priceRecurPeriod>year</priceRecurPeriod> <available>yes</available> <currency>USD</currency> <kind>service</kind> <resourceOf rdf:resource="products"/> </Resource>
<Resource rdf:about="web-hosting"> <type>Product</type> <title>Web Hosting</title> <url>http://www.acme.com/hosting.htm</url> <image>http://www.acme.com/hosting.gif</image> <imageSmall>http://www.acme.com/smallhosting.gif</imageSmall> <priceRecur>12.95</priceRecur> <priceRecurPeriod>month</priceRecurPeriod> <available>yes</available> <currency>USD</currency> <kind>service</kind> <resourceOf rdf:resource="products"/> </Resource>
<!-- Method Resources -->
<Resource rdf:about="methods"> <title>Services</title> <resourceOf rdf:resource="main"/> </Resource>
<Resource rdf:about="webservice"> <type>WebService</type> <title>Web Services</title> <doc>http://www.acme.com/webservices.htm</doc> <wsdl>http://www.acme.com/webservices.wsdl</wsdl> <resourceOf rdf:resource="methods"/> </Resource>
<Resource rdf:about="search"> <type>HttpService</type> <title>Search</title> <url>http://www.acme.com/cgi-bin/search</url> <doc>http://www.acme.com/http-services.htm#search</doc> <methodType>get</methodType> <input>word</input> <input>sort-type</input> <input>sort-order</input> <resourceOf rdf:resource="methods"/> </Resource>
<!--Article Resources -->
<Resource rdf:about="articles"> <type>Article</type> <title>Articles</title> <rdfs:seeAlso rdf:resource="http://www.acme.com/articles.xml"/> <resourceOf rdf:resource="main"/> </Resource>
<!--Blog Resources -->
<Resource rdf:about="blog"> <type>Blog</type> <title>Blog</title> <sortBy>created</sortBy> <sortDir>down</sortDir> <resourceOf rdf:resource="main"/> </Resource>
<Resource rdf:about="blog-entry3"> <title>Entry 3</title> <desc>...</desc> <created>2004-10-03</created> <resourceOf rdf:resource="blog"/> </Resource>
<Resource rdf:about="blog-entry2"> <title>Entry 2</title> <desc>...</desc> <created>2004-10-02</created> <resourceOf rdf:resource="blog"/> </Resource>
<Resource rdf:about="blog-entry1"> <title>Entry 1</title> <desc>...</desc> <created>2004-10-01</created> <resourceOf rdf:resource="blog"/> </Resource>
<!--More Things -->
<Resource rdf:about="more-things"> <title>More Things</title> <keywords>some keywords here</keywords> <resourceOf rdf:resource="main"/> </Resource>
<Resource rdf:about="thing-1"> <title>Thing 1</title> <url>http://www.acme.com/thing1</url> <resourceOf rdf:resource="more-things"/> </Resource>
<Resource rdf:about="thing-2"> <title>Thing 2</title> <url>http://www.acme.com/thing2</url> <resourceOf rdf:resource="more-things"/> </Resource>
<Resource rdf:about="thing-11"> <title>Thing 1.1</title> <url>http://www.acme.com/thing11</url> <resourceOf rdf:resource="thing-1"/> </Resource>
<Resource rdf:about="thing-12"> <title>Thing 1.2</title> <url>http://www.acme.com/thing12</url> <resourceOf rdf:resource="thing-1"/> </Resource>
<!-- Legal Resources -->
<Resource rdf:about="legal"> <type>Legal</type> <title>Legal</title> <privacy>http://www.acme.com/privacy.htm</privacy> <copyright>Copyright 1996-2004 Acme Hosting, Inc</copyright> <resourceOf rdf:resource="main"/> </Resource>
<!-- Site Map Resources -->
<Resource rdf:about="sitemap"> <type>Sitemap</type> <title>Site Map</title> <resourceOf rdf:resource="main"/> </Resource>
<Resource rdf:about="map-about"> <title>About</title> <url>http://www.acme.com/about.htm</url> <resourceOf rdf:resource="sitemap"/> </Resource>
<Resource rdf:about="map-products"> <title>Products</title> <rdfs:seeAlso rdf:resource="products"/> <resourceOf rdf:resource="sitemap"/> </Resource>
<Resource rdf:about="map-feed"> <title>Feed</title> <rdfs:seeAlso rdf:resource="newsfeed"/> <resourceOf rdf:resource="sitemap"/> </Resource>
<Resource rdf:about="map-contact"> <title>Contact</title> <rdfs:seeAlso rdf:resource="contact"/> <resourceOf rdf:resource="sitemap"/> </Resource>
<Resource rdf:about="map-blog"> <title>Daily Blog</title> <rdfs:seeAlso rdf:resource="blog"/> <resourceOf rdf:resource="sitemap"/> </Resource>
<Resource rdf:about="map-articles"> <title>Articles</title> <rdfs:seeAlso rdf:resource="articles"/> <resourceOf rdf:resource="sitemap"/> </Resource>
</rdf:RDF>
|
Articles (articles.xml)
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://rorweb.com/0.1/" xml:base="http://www.acme.com/ror/">
<Resource rdf:about="article-1"> <type>Article</type> <title>Article 1</title> <descLong>article description</descLong> <url>http://www.acme.com/article1.htm</url> <author>John Smith</author> <resourceOf rdf:resource="articles"/> </Resource>
<Resource rdf:about="article-2"> <type>Article</type> <title>Article 2</title> <descLong>article description</descLong> <url>http://www.acme.com/article2.htm</url> <author>Jane Smith</author> <resourceOf rdf:resource="articles"/> </Resource>
<Resource rdf:about="article-n"> <type>Article</type> <title>Article N</title> <descLong>article description</descLong> <url>http://www.acme.com/articlen.htm</url> <author>John Smith</author> <resourceOf rdf:resource="articles"/> </Resource>
</rdf:RDF>
|