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 .
] ] .
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.