The RDF-URI format is a simple way to deal with the problem of reification of RDF statements. Reification is the process of giving a statement an identifier so that you can make statements about the statement

For instance, you may have the statement "Britney loves Lance". Britney and Lance are obviously resources and "loves" is a predicate. This is a valid statement, at least in concept. (It would need to be formatted somewhat more formally to be a technically valid statment.) However, you may know it to be false. You could remove it from your database, but this would merely unassert it, not assert it to be false. In order to make a statement about this statement, let's designate the statement "Britney loves Lance" as statement X.

Now we can happily say "X has-truth-value false". Suddenly we have a whole new level of expressiveness. Let us call the statement "X has-truth-value false" statement Y. We can now assert "Y according-to Justin". And so on.

We are not confronted with the problem of how to assert that when we say X, we mean the statement "Britney loves Lance". There are some associated problems. My database may have associated the identifier X with this statement. Another database may associated Z with this statement and associated X with an entirely different statement. When merging databases containing metastatements all of these naming difficulties need to be resolved. Additionally, if I have only a portion of a database, I may have metastatement but not know what statements they are referring to, thus making the metastatement useless.

The solution to this is to have a universal, reversible function for turning a statement into an identifier. Given the same statement, this function should always generate the identifier. Given the identifier, it should always be possible to retrieve the original statement.

Since this function works universally, there is no need for a formal procedure for establishing that a particular identifier is associated with a particular statement. Each statement is implicitly associated with its universal identifier and each identifier is implicitly associated with its statement. Additionally, identifiers for a given statement will be the same in all databases. Also, given only metastatements, the statements which they refer to can be reconstructed.

The RDF-URI technique for generating universal identifiers is simple. The statement is first encoded in N-Triple format, with single spaces between each part. Then the string is URL encoded as per RFC 2396. The protocol identifier "rdfuri" is then appended to the string. Here is a rough example. Note that the following statements do not contain actually valid URIs. It's just a silly example I made up for fun which illustrate the encoding:

The statement "Britney loves Justin" is first encoded in N-Triple format:

<Britney> <loves> <Justin> .

It is the URL encoded:

%3cBritney%3e%20%3cloves%3e%20%3cJustin%3e%20.

And the rdfuri protocol is appended:

rdfuri:%3cBritney%3e%20%3cloves%3e%20%3cJustin%3e%20.

It's not pretty, but it's a valid URI, reversible, and universal.