|Connected Services Framework 3.0 Developers Guide|
|What is an RDF Blank Node?|
An RDF blank node is an RDF node that itself does not contain any data, but serves as a parent node to a grouping of data. From an RDF/XML syntactical standpoint, a blank node is an rdf:Description element that does not have an rdf:about attribute assigned to it.
A blank node can perform two roles in an RDF graph; it can be the object in one RDF statement and the subject in another. Therefore, in RDF you can group sub-properties within a parent property. For example, if you defined a Phone predicate in the RDF vocabulary you use for your Profile Manager data, you could also define a number of sub-properties for the Phone predicate. These could include predicates for home phones, mobile phones, and office phones.
The following RDF document creates a blank node to contain multiple types of phone numbers beneath a parent Phone predicate. The blank node is defined by the empty rdf:Description element just below the CSF:Phone element:
<rdf:RDF xmlns:csf="http://schemas.microsoft.com/connectedservices/pm#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
The following table contains the parsed triples associated with this RDF document.
The parser created a GUID, genid:ARP11, for the blank node when it parsed it as an object. The parser assigned the blank node the same value when it parsed the blank node as the subject of the child triples that involve the Phone-Home-Primary, Phone-Mobile-Other, and Phone-Office-Other predicates. This value changes every time the document is parsed.
The following figure is a graphical representation of this RDF document. The blank node is the object of the urn:upn_abc subject through the Phone predicate, and it is subject to the three phone numbers through the Phone-Home_Primary, Phone-Mobile-Other, and Phone-Office_Other predicates.