RDF FAQ

Status: A cool bit of saturday night writing.

0. Where is the old FAQ?

1. What is RDF?

The Resource Description Framework (RDF) is a method for structuring information to support interoperation, application integration, and data longevity. Like XML, it is part of the puzzle of letting computers talk to computers: RDF provides a grammatical structure for constructing and composing simple knowledge statements in a machine-usable form.

When applications store and exchange data using RDF's structuring, the challenge of passing along knowledge becomes easier: all that's left is selecting a common vocabulary. The situation is somewhat like humans communicating about an obscure technical matter; they need to find a common technical vocabulary, but at least they are using the same sentence structures. Because RDF uses URIs as its "words", the web can help to establish that common understanding of vocabulary terms.

RDF was originally specified in RDF Model & Syntax and aimed at a somewhat more limitted range of applications. It is currently being refined by the RDF Core Working Group, which is producing a new set of specifications. The Primer is a good place to start.

2. What is RDF/XML?

Information in RDF is conceptually stored in "graphs", which are somewhat like databases or program data structures. To transmit a graph, it must be serialized as bytes or characters. RDF/XML is a standard serialization for RDF graphs as XML documents.

RDF/XML was originally specified by RDF M&S, which suggests it is the only RDF serialization. A _revised specification for RDF/XML_ is being developed.

Since RDF/XML is the only standard RDF serialization, it is often the default. Unfortunately, it has turned out to be surprisingly difficult to work with for some applications, so there is a demand for other serializations.

3. What is N-Triples?

N-Triples, like RDF/XML, is an RDF serialization format. It is specified by @@@ as a reference and comparison syntax, not intended to be used in communication like RDF/XML.

4. What is the role of RDF in the Semantic Web?

RDF is an important layer in the Semantic Web. All knowledge-communication is imagined to take place in or above the RDF layer.

5. Is RDF a universal language?

In a philosophical or mathematical sense, probably not. You can say anything in RDF in about the same sense that you can say anything in ones and zeros. Organizing your ones and zeros into an RDF serialization format just makes it easier to address certain problems in building information systems.

* How should I generate and publish RDF content?

(This is only a partial list!)

There are several approaches:

  1. hand-author RDF/XML, which is quite difficult
  2. + write in another language and using a tool to translate to RDF/XML (n3+cwm)
  3. + use an RDF editor http://www.w3.org/2001/11/IsaViz/ http://www.mindswap.org/~mhgrove/RIC/RIC.shtml
  4. + using an RDF library, construct your graph in memory and then have the library serialize it
  5. + Put your information in a relational database and put and RDF gateway in front of it
  6. + XML and transform

Some tools and lists of tools: http://www.xmlhack.com/read.php?item=1703

* What tools work with RDF information?

This list would be too long and active to maintain, so instead here are some sites which maintain such lists:

http://www.ilrt.bristol.ac.uk/discovery/rdf/resources/#sec-tools http://xml.coverpages.org/rdf.html#software

* What data is out there in RDF?

(This is only a partial list!) dmoz

* Who is using RDF?

adobe, sun, hp, w3c, mozilla, ...

Who invented RDF?

The idea of structuring information as a directed labeled graph (sometimes called a "semantic network") appears to date at least to the Greek philosopher Porphyry (c. 234-305 A.D.) Charles S. Peirce (1909) brought them into the era of modern logic as existential graphs. Pat Hayes argued convincingly (in 1979, "The Logic of Frames") that such conceptualizations were equivalent to a subset of first-order logic, and this view has been codified in the current draft RDF semantics document (coincidentally also written by Pat Hayes).

RDF itself has been developed as a collaborative effort. [etc] OCLC link broken

* Which Makes a good URI?

This question arises when you have a choice of two or more URIs to use to refer to something RDF content you are authoring, or when you are considering introducing a new URI.

There seem to be three qualities of a URI which can make it work well in RDF:

  1. Everyone using the URI should agree what it means. Is there currently a widespread consensus of meaning? Are there people or institutions who are likely to help maintain a consensus into the future? If the consensus is maintained in part by web-content (see point 2), is the content provider motivated and committed to continuing its stewardship for the life of the associated RDF data?
  2. It should be easy to obtain high-quality information about the referred-to thing (the resource) given only the URI. This makes the URI "clickable" and essentially self-describing. When you see a URI you don't recognize in a piece of RDF, you should be able to use it to find out more information. Clickability offers a potent tool in building a consensus of meaning, and generally provides more useful links within the semantic web.

    See Hash and Slash for a tricky aspect to this.

  3. It should be easy for people to think about, talk about, and type. This is relative, since all URIs sacrifice some brevity in the name of being globally unambiguous, but it remains a potential issue. Namespace/prefix mechanisms can turn "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" into "rdf:type", but can do little with a UUID/GUID like "454f5cbe-5ca7-11d7-808a-0050ba4812a6".

* Hash Or Slash?

If the URI functions as a normal web address it risks ambiguity as people start to use it to identify a source of web content as well as whatever it was originally intended to identify. (Of course, this is not a problem if the thing itself happens to be a web page or other traditional web resource.) There are two common approaches to addressing this problem, sometimes called "hash" and "slash":

The "hash" approach uses an http: URI with a fragment ID (separated by a "#" character, sometimes pronounced "hash"), like "http://www.w3.org/1999/02/22-rdf-syntax-ns#type". Here the full URI (sometimes called a URI-Ref) identifies an abstract property, while the non-fragment part "http://www.w3.org/1999/02/22-rdf-syntax-ns" identifies the associated web content. A potential drawback of this approach is that because fragment semantics are defined by the MIME content-type of retreived content, content-negotiation cannot safely be used to offer content in RDF along with other MIME types like text/html and application/xml.

The "slash" approach uses http: URIs which, during an HTTP operation, redirect with "302 Found" or "303 See Other" to the associated web content. The redirect (and the resulting change in the URI displayed in a browser's "Address" box) makes it fairly clear that the returned content has its own, separate URI.

Each of these approaches generally works and is deployed. Hash has conflicts with some kinds of content-negotiation; slash requires an extra HTTP round-trip to obtain the associated content. Some people have strong feelings about how URIs and the web are supposed to work which have sometimes make discussions of these issues difficult.

What is Reification? Is it okay?

It's when you put something into the domain of discourse, like to make a ternary predicate, or talk about RDF statements.

See PH's message about complexities

What is the expressive power of RDF as a KR language

Although its formal semantics define RDF as equivalent to the existential-conjunctive subset of first-order logic with no function terms and only dyadic predicates, the use of URIs may change matters.

The issue here is that a URI may be mutually understood to mean something more. ... OWL ...

RDF Collections?


This work is being done as part of the MIT/LCS DAML Project under the MIT/AFRL cooperative agreement number F30602-00-2-0593. This work is not on the W3C recommendation track and is not the product of a W3C working group or interest group.

Sandro Hawke
First: Sat Mar 22 18:16:15 EST 2003, This: $Id: faq.html,v 1.1 2003/03/23 05:55:39 sandro Exp $