Blank nodes in the RDF graph are distinct but have no RDF URI reference identifier. It is sometimes required that the same graph blank node is referred to in the RDF/XML in multiple places, such as at the subject and object of several RDF triples. In this case, a blank node identifier can be given to the blank node for identifying it in the document.
Blank node identifiers in RDF/XML
are scoped to the containing XML Information Set document information
item. A blank
node identifier is used on a node element to replace
rdf:about="RDF URI reference" or on a
property element to replace rdf:resource="RDF URI
reference" with rdf:nodeID="blank
node identifier" in both cases.
<http://www.w3.org/TR/rdf-syntax-grammar> <http://purl.org/dc/elements/1.1/title> "RDF/XML Syntax Specification (Revised)" .
<http://www.w3.org/TR/rdf-syntax-grammar> <http://example.org/stuff/1.0/editor> _:DB .
_:DB <http://example.org/stuff/1.0/fullName> "Dave Beckett" .
_:DB <http://example.org/stuff/1.0/homePage> <http://purl.org/net/dajobe/> .
stating that: W3C Recommendation "RDF/XML Syntax Specification (Revised)" was written by Dave Backett, and that his homepage is http://purl.org/net/dajobe
In the example above and below a blank
node identifier "DB" is given to the editor. The second
rdf:Description property element is about that blank node.
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:ex="http://example.org/stuff/1.0/">
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar" dc:title="RDF/XML Syntax Specification (Revised)">
<ex:editor rdf:nodeID="DB"/>
</rdf:Description>
<rdf:Description rdf:nodeID="DB" ex:fullName="Dave Beckett">
<ex:homePage rdf:resource="http://purl.org/net/dajobe/"/>
</rdf:Description>
</rdf:RDF>
A convention used by some linear representations of an RDF graph to allow several statements to reference the same unidentified resource is to use a blank node identifier, which is a local identifier that can be distinguished from all URIs and literals. When graphs are merged, their blank nodes must be kept distinct if meaning is to be preserved; this may call for re-allocation of blank node identifiers. Note that such blank node identifiers are not part of the RDF abstract syntax, and the representation of triples containing blank nodes is entirely dependent on the particular concrete syntax used.