2

RDF reification is pretty straightforward as long as subject, predicate and object are IRIs (or the object a literal). But what does the rdf:Statement look like when the object is a blank node (bNode)? An example ("I saw a man in a dirty raincoat"):

ex:I ex:saw [
    a ex:Man ;
    ex:wore ex:dirtyRaincoat ];

I could imagine two scenarios: 1) having only the bNode identifier in the object (requiring that I know what it is or that I create one myself.

[ a rdf:Statement ;
    rdf:subject ex:I ;
    rdf:predicate ex:saw ;
    rdf:object _:b1 ] .
_:b1 a ex:Man ;
    ex:wore ex:dirtyRaincoat .

2) to put all of the bNode into the object position of rdf:object:

[ a rdf:Statement ;
    rdf:subject ex:I ;
    rdf:predicate ex:saw ;
    rdf:object [
        a ex:Man ;
        ex:wore ex:dirtyRaincoat .
] ] .
Stanislav Kralin
  • 11,070
  • 4
  • 35
  • 58
LarsG
  • 33
  • 1
  • 6

1 Answers1

3

There is no difference: both your scenarios are actually exactly the same model. The square bracket notation you use in the second scenario is merely a syntactical shortcut you can use for blank nodes that have several properties. So it's a syntax variation in Turtle, but they are identical RDF models.

Jeen Broekstra
  • 21,642
  • 4
  • 51
  • 73