Search code examples
rdfsemantic-webblank-nodes

How to know if an RDF graph is lean?


I just discovered the definition of a lean graph and I don't always know how to define it and if someone can explain to me if this graphs are lean or not .

G1 :
_:X foaf:knows ex:bob
_:X foaf:knows _:Y

I think this is lean !

G2:    
_:X foaf:knows ex:bob
_:X foaf:knows _:X

G2 isn't lean !

G3
_:X foaf:knows ex:bob

I don't know XD

G4
_:X foaf:knows _:X

And I don't know XD

Thanks in advance.


Solution

  • The example at https://www.w3.org/TR/rdf11-mt/#dfn-lean

    For example, the graph

    ex:a ex:p _:x .
    _:y ex:p _:x .

    is not lean, but

    ex:a ex:p _:x .
    _:x ex:p _:x .

    is lean. Ground graphs are lean.

    In the question examples subject and object are flipped but otherwise G1 and G2 are the "RDF 1.1 Semantics" examples.

    G1 is not lean.

    You can remove "_:X foaf:knows _:Y" (or remove "_:y ex:p _:x") - that triple adds no new information. We know "_:X knows something" from the first triple "_:X foaf:knows ex:bob" and that is all the second triple says.

    Graphs G3 and G4 are lean.

    If we have G5: _:X foaf:knows _:Y then G5 is lean but G3 merge G5 is not lean.

    G2 is lean because the triple "_:X foaf:knows _:X" adds the information that there is some resource that knows itself. The first triple does not say that.