Skip to content

Why quoted triples, when we already have named graphs? #46

@lars-hellstrom

Description

@lars-hellstrom

This is not meant to suggest that RDF shouldn't have quoted triples, but rather to point out that this is likely an objection that some people will raise, and the specification should have some answer. Concepts seems the most natural document in the collection.

I'm quite the beginner, so I don't know what the answer might be. Quoted triples definitely seems an obvious way of making claims about other claims, but when suggesting an encoding in terms of quoted triples to people more experienced with semantic web things, I got the reply that "nah, you do that with named graphs instead". It took me a while to grok that — much literature still paints named graphs mainly as a tool for keeping track of remote datasources — but of course a single edge named graph is a way of speaking about that edge, and in a quadstore it is more feasible to search all graphs for a triple than it is to search for a blank node reifying that triple, so named graphs overcome problems with classic reification. Then what is the point of quoted triples as a completely different mechanism?

It is possible that there is some aspect of having just one term that is the quoted triple (s,p,o), instead of any number of size 1 graphs which contain exactly that triple, that is the important difference (at least that is one thing I cannot easily see how it would be simulated), but then that should probably be spelt out. This is the kind of requirement one throws in when aiming to introduce a quoting operation, but it is not entirely clear what application would benefit from it.

The counterargument against quoted triples is conceptual and implementation simplicity: quadstores are nicely flat data structures, whereas quoting brings the complexities of nesting. Of course, representing information that is inherently nested within a flat store only means that the nesting happens at a higher level of the representation, but since this could make it Someone Else's Problem it would probably have its proponents. Why not regard << >> and {| |} merely as syntactic shorthands for constructing a named graph? (It doesn't meet the spec, but why is the spec that way?)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions