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 http://www.w3.org/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 http://www.w3.org/1999/11/11-WWWProposal/atagdemo.
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.
-- LionKimbro
Weaknesses:
Like everyone else, I wrote a brief introduction to RDF [http://slashdot.org/~Quantum%20Jim/journal/94721]:
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.
Definitions
RDF is a language framework for describing directed graphs. First, some definitions:
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:
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).
2. http://example.com/subject/index.html
3. http://example.com#predicate
4. file:///C:/Files/old/Video%20Game/mario.jpg
5. http://www.google.com/search?q=mario
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:
Datatypes
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 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):
Subject Predicate Object (Datatype) . http://example.com#subject1 http://purl.org/dc/elements/1.1/creator "Jimmy" http://www.w3.org/2001/XMLSchema#string . http://example.com#subject1 http://purl.org/dc/elements/1.1/creator "John" . http://example.com#subject1 http://purl.org/dc/elements/1.1/creator http://example.com/subject2 . http://example.com/subject2 http://purl.org/dc/elements/1.1/creator "Jimmy" http://www.w3.org/2001/XMLSchema#string .Conclusion
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