Hi Sandro,
I've heard you say two mutually incompatible things:
1. A Turtle file published at<i> containing graph G is an RDF dataset with only
named graph<i,G>
2. A Turtle file published at<i> containing graph G is an RDF dataset with
only a default graph
Which one is it? It can't be both.
If I said (1), it was a mistake.
I would rephrase (1) as a conditional:
A. If it is true that a turtle file serializing G is what is
published at<i>,
B. Then the dataset consisting of the named graph<i,G> is true.
-1.
We can postulate the existence of a *specific* dataset, let's call it the “web dataset”,
and can say that under the condition above the g-pair<i,G> is true in the web
dataset. (Formally, this could be done as a semantic extension, let's call it W-entailment
(for web). So if A is true then *every* dataset W-entails the g-pair<i,G>.)
But I will formally object to anything that defines truth *in general* in terms
of dereferencing. This is not a negotiable position.
Statement (2) is close to correct, but I'd change it slightly; it's not
that it "is" a dataset, but that it can reasonably be read as a dataset.
It's a type-conversion thing. A triple can be seen as a (trivial)
graph; a character can be seen as a (trivial) string; a graph can be
seen as a (trivial) dataset.
This is sloppy thinking. They are not the same, and by pretending that they
are, you are just confusing matters.
In practice, I see this manifesting in the kinds of APIs one uses for
loading and manipulating dataset. Can give the API a graph when it is
expecting a dataset and have it silently promote the graph to being a
dataset with that graph as its default graph?
The much more interesting case is the opposite situation: What happens when you
give a dataset to an API that expects a graph? That's after all the status quo;
anyone who goes to the web to load a Turtle file expects a graph, and that's
how it's been implemented for the last eight years. If we now define that a
Turtle parser must also be able to handle datasets, we've deeply broken every
existing implementation.
Alternative, we could define a class of things that is the union of the
class of graphs and the class of datasets -- that would be more crisp
and might be as convenient. But I expect people will be find just
using datasets as those things.
I don't see the point of this. If we define truth for datasets, and consider
the default graph as asserted, then an RDF graph is semantically equivalent to
an RDF dataset with just a default graph and no empty graphs. That's all we
need. But they are not the same.
Best,
Richard
To be clear: this is speculative. My point is not to say we should
standardize this, but I don't think we should rule it out.
-- Sandro
Best,
Richard