unlabelled [] form on its own can only represent a tree.
A node in such a graph can't have two "in" arcs.
Nothing specific to RDF syntax here - see JSON and XML. Any sharing
needs a pointer in some way. Applies to DAGs and cycles.
You can mix labelled and unlabelled forms.
Jena pretty prints your example using one label:
<a>
ex:relates _:b0 .
_:b0 ex:relates [ ex:relatedBy _:b0 ;
rdf:type ex:bar
] ;
rdf:type ex:foo .
Andy
On 04/12/2020 20:54, Dan Brickley wrote:
see also
https://www.w3.org/TR/turtle/#unlabeled-bnodes
On Fri, 4 Dec 2020 at 20:20, Martynas Jusevičius <[email protected]>
wrote:
I don't think you can use the [ ] form to create cycles.
On Fri, Dec 4, 2020 at 8:53 PM Jeffrey Kenneth Tyzzer
<[email protected]> wrote:
Hi, Group.
Consider this small model:
a --relates--> b
b --relates--> c
b <--relatedBy-- c
Note that the b to c relationship is reciprocal.
I’d like to represent b and c as blank nodes. Using the label form, it’s
seemingly straightforward (I’ve added a couple of additional rdfs:type
triples to fill-out a bit what I show next):
a ex:relates _:b
_: b rdfs:type ex:foo
_:b ex:relates _:c
_:c rdfs:type ex:bar
_:c ex:relatedBy _:b
Using the abbreviated form, though, doesn’t seem possible :
a ex:relates [ rdfs:type ex:foo ; ex: relates [ rdfs:type ex:bar ;
ex:relatedBy <what would go here to refer to the first (outer) blank node?>
] ].
I suppose I’m asking if something can be both the container and
contained, but perhaps there’s some syntactic sugar/legerdemain (or
Jena-specific syntax) I’m not aware of that makes this possible.
Thanks.
--Jeff