In RDF, a blank node (also called bnode) is a node in an RDF graph representing a resource for which a URI or literal is not given. The resource represented by a blank node is also called an anonymous resource. According to the RDF standard a blank node can only be used as subject or object of an RDF triple.
Blank nodes can be denoted through blank node identifiers in the following formats, RDF/XML, Turtle, N3 and N-Triples. The following example shows how it works in RDF/XML.
The blank node identifiers are only limited in scope to a serialization of a particular RDF graph, i.e. the node _:b
in the subsequent example does not represent the same node as a node named _:b
in any other graph.
Blank nodes can also be denoted through nested elements (in RDF/XML, Turtle and N3). Here is the same triples with the above.
Below there is the same example in Turtle.
Blank nodes are treated as simply indicating the existence of a thing, without using a URI (Uniform Resource Identifier) to identify any particular thing. This is not the same as assuming that the blank node indicates an 'unknown' URI.
From a technical perspective they give the capability to:
Below there is an example where blank nodes are used to represent resources in the aforementioned ways. In particular, the blank node with the identifier '_:students' represents a Bag RDF Container, the blank node with the identifier '_:ad' represents a complex attribute and those with the identifiers '_:a1' and '_:a2' represent events in the lifecycle of a digital object.
The ontology language OWL uses blank nodes to represent anonymous classes such as unions or intersections of classes, or classes called restrictions, defined by a constraint on a property.
For example, to express that a person has at most one birth date, one will define the class "Person" as a subclass of an anonymous class of type "owl:Restriction". This anonymous class is defined by two attributes specifying the constrained property and the constraint itself (cardinality ≤ 1)