Re: Why does RDF* allow triples as objects?

> On 19 Sep 2019, at 16:41, Olaf Hartig <> wrote:
>> One use case for RDF* is to replace RDF Reification. RDF* can replace
>> many, but not all uses of RDF Reification, so it doesn't address that
>> use case completely.
>> Another use case for RDF* is to make RDF compatible with property
>> graphs. RDF* makes RDF almost, but not quite, compatible with
>> property graphs, so it doesn't address that use case completely.
> Fair enough. Thanks for the clarification!
> Now, back to your point that, due to not being able to address such use
> cases completely, some hard decisions will need to be made: I don't
> think there is any way to restrict/tighten what RDF* is such that
> complete compatibility with RDF reification can be achieved, and the
> same for complete compatibility with Property Graphs. For instance,
> disallowing triples in the object position of RDF* triples would not
> help in any of these two cases.

I agree with all that.

FWIW, in the SA version of RDF*, with Turtle* and SPARQL* extended with some new syntactic sugar for asserting and annotating the same triple, I see no particular difficulty with triples as objects. The syntactic sugar would only work on triples as subjects. But that is probably the more common case. The less common case of using an asserted triple in the object position would just require writing the triple twice:

    # asserted triple as object
    :s :p :o.
    :a :b <<:s :p :o>>.

    # asserted triple as subject -- don't use syntactic sugar
    :s :p :o.
    <<:s :p :o>> :a :b.

    # asserted triple as subject -- with syntactic sugar
    :s :p :o [[ :a :b ]].


Received on Thursday, 19 September 2019 16:06:33 UTC