Resource Description Framework (RDF)

http://en.wikipedia.org/wiki/Resource_Description_Framework

What's so special about RDF?

Hierarchical vs. Relational Databases

Back when dinosaurs, err, IBM Mainframes ruled the land, everyone used hierarchical databases (if they used a database). IMS is the most well known.

IBM designed IMS with Rockwell and Caterpillar starting in 1966 for the Apollo program. IMS's challenge was to inventory the very large Bill of Materials for the Saturn V moon rocket and Apollo space vehicle.

How many of you use hierarchical databases today? How many use XML and relational databases? Strange considering that XML maps directly to a hierarchical database and certainly doesn't map directly to a relational database. It is also interesting to note that relational databases take a lot more clever software and horsepower to get reasonable performance in doing all the joins and indexing and copying needed to provide a coherent view of the data from all the deconstructed n-tuples, err, rows, of data.

The reason relational databases, and SQL in particular, have succeeded in spite of the apparent "complexity" (compared to storing the data in a way that conveniently matches the application's model) is because of what happens when applications change and when the need to reuse and repurpose the data arises.

RDF schemas have that same relationship with XML schemas. RDF represents the data as n-tuples which are just like rows in a relational database. That requires the same sort of normalization that is needed for relational database modeling, rather than encouraging the willy-nilly hierarchical models supported by XML Schema, and is thus responsible for the "complexity" that has garnered the scorn of so many XML hackers, err architects, who "just want to get the job done".

That mindset is what led to RDF being dropped in RSS 2.0 and Atom. RSS actually stands for RDF Site Summary (RSS 1.0), not Really Simple Syndication (RSS 2.0 & Atom).

But what happens when application designs change? And what about reusing and repurposing the data? These are things in great demand in the Web.

Open World Model

But RDF is more than a relational database, as it is tailored to the needs of the World Wide Web. In particular it is based on an "Open World Model" (aka OWA rather than "Closed World Model" (CWA), and also expects that data may arrive as a chaotic, multi-valued, arbitrary graph.

But if you like SQL, that is good news, because you can use SPARQL which takes all that chaos and makes it as easy to use as a relational database. Actually easier because there is a natural fit for graphs and trees (like XML Schema and Java Persistence) which the tables of relational databases are not.

http://www.w3.org/2001/sw/DataAccess/

Articles

See also AboutSemanticWeb.

Web site publishing with RDF

http://www.ukoln.ac.uk/web-focus/events/seminars/what-is-rdf-may1998/briefing-plain.html

JavaWorld excerpt from Wicked Cool Java

The Social Meaning of RDF, Kendall Grant Clark in XML.com on March 05, 2003

Applications

See also SemanticDesktop.

The world's data is mostly *not* in RDF. Hence an essential aspect of applying RDF is conversion and mapping with other formats. See also WebPageScraping.

TimBernersLee has created Tabulator which is a generic data browser featuring Google Maps and SPARQL.

Piggy-Bank is a Firefox extension that makes RDF accessible in a convenient way: http://simile.mit.edu/piggy-bank/

Solvent is another extension that is a nice companion for Piggy-Bank. It assists in writing Javascript-to-RDF web page scrapers: http://simile.mit.edu/solvent/

Bloged is "A very simple Blog Editor": https://bloged.dev.java.net/

INFO URI

The Fedora Object Repository project originated the "info" URI scheme (INFO URI FAQ). It looks like a good scheme for concepts that don't have a dereferenceable site.

Vocabularies

Wikipedia in RDF!
http://dbpedia.org/. This saves me a bunch of work on Folksonomies.

FOAF is very popular.

Other popular vocabularies include RSS, DOAP, geoURL.

Mozilla/Firefox also make significant use of RDF.

SKOS
"SKOS Core is a model and an RDF vocabulary for expressing the basic structure and content of concept schemes such as thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', other types of controlled vocabulary, and also concept schemes embedded in glossaries and terminologies."
The myGrid Ontology
The myGrid ontology describes the bioinformatics research domain in DAML, RDF, and OWL.
SIOC
http://sioc-project.org/

Resources

Dave Beckett's Resource Description Framework (RDF) Resource Guide

http://planetrdf.com/guide/

http://swik.net/ontology+tools

Java Tools

Jena (from HP) is one of the most popular RDF stores: http://jena.sourceforge.net/

Sesame is reputed to be faster than Jena: http://www.openrdf.org/

Nifty use of Java annotations to generate RDF: http://blogs.sun.com/roller/page/bblfish?entry=java_annotations_the_semantic_web

RDFReactor converts RDF Schemas into Java classes: http://rdfreactor.ontoware.org/

RDFX consists of several RDF tools for Eclipse: http://rdfx.org/

JRDF (Java RDF) http://jrdf.sourceforge.net/

Aperture Framework is supports RDF indexing and searching of desktop and web content. http://aperture.sourceforge.net/

An RDF crawler

Other Tools

The Redland RDF Application Framework is extensive and in C: http://librdf.org/

Redfoot is a Python-based RDF "operating system".