ROR (Resources of a Resource)

 

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

 

Overview

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.

                                                                                                                                                 

Status of this document

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

 

Table of Content

Namespace. 2

Introduction. 2

ROR General Vocabulary. 2

Description. 2

Classes and Properties. 4

ROR Web Vocabulary. 5

Description. 5

Classes Overview.. 6

Classes and Properties. 6

ROR Document 7

About the type Property. 8

About the RDF seeAlso Property. 8

Example. 9

 

 

 

 

Namespace

xmlns:ror           =  “http://rorweb.com/0.1/”

 

 

Introduction

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.

 

 

ROR General Vocabulary

Description

 

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/">

        


   <!-- Main Resource -->

   <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>


   <Resource rdf:about="thing-3">

       <title>Thing 3</title>

       <resourceOf  rdf:resource="thing-2"/>

       ...
   </Resource>

 

   <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"/>.

.

 

 

Classes and Properties

 

1. Classes

 

Resource

Defines a new resource or object (subclass of rdfs:Resource)

 

Main

Defines the main resource (subclass of Resource)

 

 

2. Properties

 

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).

 

ROR Web Vocabulary

Description

 

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>

 

 

 

Classes Overview

 

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

 

 

 

Classes and Properties
                                                                             

Address

Defines an address

 

name

Name of person, business or organization

address1

Address 1

address2

Address 2

stateRegion

State or Region

postalCode

Zip code, postal code,

city

City

country

Country code

 

 

AffiliateProgram

 

Defines an affiliate (or associate) program

 

commission

Commission offered by program (e.g. 20)

commType

Type of commission: percent, amount

commissionRecur

Recurring commission (e.g. 2.00)

commissionRecurType

Type of recurring commission: percent, amount

commissionRecurPeriod

Period of recurring commission (e.g. month)

commissionRecurRate

Rate of period of recurring commission (e.g. 2, 3, 4, …).

trackingDays

Tracking duration of program (in days, 0 means no tracking, -1 means forever)

signupFee

Signup fee

currency

Currency of commission

               

App

Defines a software application or tool

 

platform

Platform supported by the application

 

 

Business

Defines an business

 

name

Name of the business

founded

Date, year founded (e.g. 2000, 200-06, 2000-06-01)

industry

Industry of the business

employees

Number of employees

tradeSymbol

Trade symbol

 

 

Contact

 

Defines a contact (person, business, or organization)

 

name

Name of person, business or organization

address

Address

phone

Phone number

mobile

Mobile phone number

work

Work number

pager

Pager number

fax

Fax number

email

Email address

foaf

Friend of a friend resource (http://www.foaf-project.org)

 

Note: if needed, several contacts can be created and grouped under one main contact resource (e.g. support, sales, marketing, business development, etc).

                   

Discount

Defines a product discount

 

discountType

Type of discount: percent, amount

amount

Amount of the discount (e.g. 15)

for

Resource this discount applies to

startDate

Start date (e.g. 2005-01-01)

endDate

End date (e.g. 2005-12-31)

 

 

Event

Defines an event

 

starts

Start date and/or time

ends

End date and/or time

location

Place or location

 

Feed

Defines a web feed (rss, atom, ror)

 

feedType

rss, atom, ror

feedVersion

Version of the feed (e.g. 0.91, 1.0, 2.0)

 

Note: when feedType is ror, entries are identified through the resource or resourceOf properties

 

 

HttpService

Defines an http service

 

name

Name of the service

url

URL of the service

methodType

Type of http method: get, post

input

Input parameter

output

Output parameter

 

 

Image

Defines an image

 

width

Width

height

Height

animated

Is the image animated? yes, no

 

 

Legal

 

Defines legal information for a resource

 

privacy

Privacy page or text

disclaimer

Disclaimer page or text

copyright

Copyright page or text

tradmark

Tradmark page or text

patent

Patent page or text

agreement

Agreement page or text

 

 

Message

Defines a message (email, forum, etc)

 

sender

Sender

recipient

Recipient

cc

Copy to

bcc

Blind copy to

title

Title or subject

body

Body

thread

Thread

 

 

Newsletter

Defines a newsletter or ezine

 

circulation

Circulation of the newsletter

publishPeriod

Period of publishing (example: day, week, month, year)

publishRate

Rate of publishing period (example: 1, 2, 3, etc)

archive

URL of archive

 

 

Person

Defines a business

 

name

Name of the person

firstName

First name

lastName

Last Name

middleName

Middle name

birthDate

Birth date

gender

Gender

 

 

Product

Defines a product or service

 

price

Price of the product or service (one-time, initial, setup)

priceRecur

Recurring price, if any

priceRecurPeriod

Recurring period (example: minute, hour, day, week, month, year)

priceRecurRate

Frequency of price recurring period (example: 1, 2, 3, etc)

currency

Currency of the price

kind

Kind of product or service: goods, service

 

 

QA

Defines a Q&A element

 

question

A question

answer

The answer

 

 

Review

Defines a review (for a product, a resource, etc)

 

for

Object of the review  (a product name, a url, etc)

pros

Pros about the object of the review

cons

Cons about the object of the review

rating

Rating (from 0, bad - to 10, excellent)

 

 

WebService

Defines a web service

 

name

Name of the service

wsdl                  

Location of the WSDL document

 

 

[to be completed]

 

 

 

ROR Document

 

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="domain-registration">Domain Registration</span><br />

- <span resource="web-hosting">Web Hosting</span>

<span resource="discount">20% Discount</span>


Webpage elements (french):

 

<span resource="main">Notre Societe</span> offre les services suivant: <br />
- <span resource="domain-registration">Registration de Domaines</span><br />

- <span resource="web-hosting">Hebergement</span>

<span resource="discount">Rabais de 20%</span>

 

Corresponding resources:


<Resource rdf:about="main">

    <type>Main</type>

    <title>Acme Web Hosting</title>

    ...

</Resource>

 

<Resource rdf:about="domain-registration">

    <type>Product</type>

    <title>Domain Registration</title>

    ...

</Resource>


<Resource rdf:about="web-hosting">

    <type>Product</type>

    <title>Web Hosting</title>

    ...

</Resource>

<Resource rdf:about="discount ">

    <type>Discount</type>

    <title>Discount</title>

    ...

</Resource>

 

 

 

 

About the type Property

 

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>

 

 

 

 

About the RDF seeAlso Property

 

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)

 

 

 

Example

 

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/">

        


<!-- Main Resource -->

 

<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/">

        


<!-- Article Resources -->

 

<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>