Resource Description Framework

ResourceDescriptionFramework is a graph-based model for describing Internet resources (like web pages and email messages), and how these resources relate to one another. It can be considered as a means of representing a SemanticNet. It can be represented in a number of ways, using ExtensibleMarkupLanguage or RdfTriples. See PracticalRdf for a discussion of the alternatives. Part of the SemanticWebLayerCake described in the ExplorersGuide (to the SemanticWeb).

More information on RDF is available at

The EswWiki? is all about the SemanticWeb and RDF:

How is this related to RichSiteSummary (RSS)?

"RSS is an acronym for RichSiteSummary and also for RdfSiteSummary and they aren't the same thing. Do you agree?" -- PaoloCastagna

Moved from RdfPrimerOutline

A document being done by SeanPalmer and AaronSwartz.

1. Sales Pitch

    Narrative: Boss says we need an RDF export for our sprockets right away. 
    Why should I be using RDF anyway? What's this document going to tell me?
2. Right on! Wait a sec... what's RDF?
    Introduction to basics of RDF.
3. What's this Resource thing?
    Introduction to URIs and Resources.
4. But Bob says that's what XML is for!
    Introduction to uses of XML and self-describing documents.
5. So let's write some RDF...
    Writing out information and data into RDF formats.
6. Where do I go from here?
    RDF is developed by the W3C, but there's a large independent 
    community, lots of apps and implementations. (Lots of pointers 
    to related material.)

N.B. From here on down, it would be suitable to segue into the RDF Cookbook stuff; once they are able to deal with rudimentary serializations concepts, it should be a simple matter of guiding them through the rest.

 - Introduction to developing schemas.
 - More advanced stuff with DAML and WebOnt?.
 - Proof and digital signatures.

Online Query example (uses PrologLanguage) - see

RDF is generally loaded into what SemanticWeb folk call a "TupleStore?."

Around here, it seems to be called a "TupleSpace." - No, in fact a TupleSpace is something quite different, to do with sharing memory between different computer processes. -- JohnFletcher

Basically, a TupleStore? is a gigantic graph. See RdfTriples.

RDF describes a graph. The graph consists of nodes connected by edges. When you describe the graph, you do it in triples. That is, you do it like this: (Node A)----(is connected by edge E)----(to Node B). See? Three things, making a triple. "A,E,B." It's also called a tuple.

Together, a bunch of triples/tuples describe a graph.

ALL data, in the entire world, can be described with a graph. That is: a graph is the most generic data structure in the world. Think about it: All data represents stuff connected to other stuff. A graph isn't necessarily the most efficient way to do it, but it's a pretty generic way to do it.

Why is RDF important?

Because it's easy to merge.

If you have two graphs, it's easy to automatically snap them together.

Why is merging data together important?

I haven't seen the canonical reasons "why," but here are some reasons.

For instance, RSS v1 data is in RDF. If you want to extend the information there, you can just extend it with RDF. It'll "just work." Anything that knows how to interpret your additional graph nodes will be able to figure out what's going on. Anything that doesn't will (if it's reading the RDF right) just ignore it.

-- LionKimbro


Like everyone else, I wrote a brief introduction to RDF []:

A Brief Introduction to the Resource Description Framework

Note: The following is a draft. Will revise and webify. ASCII art is formatted for 80 character lines.


RDF is a language framework for describing directed graphs. First, some definitions:

Example Graphs in Pictures

Here's a graph composed of only one statement:

 -----------   predicate    ----------
 | subject |--------------->| object |
 -----------                ----------

A subject node for one statement can be the object node of another statement:

 -----------   predicate    -----------   predicate2    -----------
 | subject |--------------->| object1 |---------------->| object2 |
 -----------                -----------                 -----------

Node and Arrow String Values

Now each node can have a string value:

Note that every predicate MUST have a URI value; they can't be blank or arbitrary strings. It is also a VERY BAD IDEA to let predicates end with anything other than the characters a-z, A-Z, or 0-9 (that is, the end of the uri SHOULD be a valid xml name).

URI Examples

Here are some examples of URIs that could be a subjects, predicates, or objects. There is no way of knowing in isolation which is which. Each URI is DIFFERENT (even if they point to the same thing on the web).




4. file:///C:/Files/old/Video%20Game/mario.jpg


If the URIs are all predicates, then 1, 3, and 5 are formatted best. Here are some real-world examples of predicates:

Here are some example strings that could be literals:

Note that predicates can be objects. Thus RDF is capable of representing second-order-logic statements.


Literals can also have a property called its datatype. For example, the literal string "47" is also an integer, so it could be described by a datatype that means integer. This isn't required, of course, and many literals have no defined datatype.

The datatype is like a predicate and can only be a URI. Here are some real-life examples of datatypes:

Review of Values of Nodes and Arrows

In review:

Graphs as Databases

Graphs can be thought of as collections of statements, and statements can be thought of as subject/predicate/object tuples. I tend to think of statements as English sentences and graphs as paragraphs or stories. The analogy holds up pretty well.

Graphs can also be looked at as tables in a database. Here's an example (First set is the format):

        (Datatype) . "Jimmy" . "John" . . "Jimmy" .


There's a lot more, but these are the basics.

-- JimmyCerra

I soitenly hope this is ain't no secret attempt to resurrect JobControlLanguage (JCL). -Curly

It's not. The resources are not a machine resources needed but domain resources on offer. The resource description is metadata that describes data and services on offer by a domain. -- MartinSpamer.

See Also: DublinCore PracticalRdf SemanticWebLayerCake RedlandRdfLibraries ResourceDescriptionFrameworkInAttributes (RDFa)

CategoryFramework CategoryXml CategoryIdeaForm CategorySemanticWeb

EditText of this page (last edited June 13, 2011) or FindPage with title or text search