Syntaxes for Conveying Datasets

Do we need a multigraph syntax? This would be a new lanaguage like
N-Quads or TriG for somehow conveying multiple graphs in one document.

Should this language serialize exactly one RDF dataset in one document?

If so, should it also have a way to carry metadata, either about the
dataset, or about the graphs in the dataset?

TriG

N-Quads

... others tbd

Vocabularies for Conveying Datasets

These might be useful with or without multigraph syntaxes.

Datatypes for Graph Documents

Define datatypes for the different RDF graph syntaxes. The lexical
space is the space of valid input documents in that syntax; the value
space is the set of RDF graphs that can be serialized using that
syntax.

String Predicates for Graph Documents

Define predicates like eg:turtleSerialization, connecting RDF graphs
to their serializations. A b-node could be used to identify the graph
itself.

Reificiation Vocabularies

Define a vocabulary for completely describing g-snaps and perhaps datasets.

Semantics of Datasets

Can we assume the semantics of an RDF dataset are the same when it's
inside a SPARQL endpoint or conveyed in a multigraph syntax (eg TriG)
document?

Can we ignore b-nodes? Especially given our Skolemization
convention...

Can we ignore SPARQL "FROM" and "FROM NAMED"? (That is, they might
have interesting semantics. But maybe that's not our problem.)

For each of proposals below, assume D1 is the dataset:

{ <s0> <p0> <o0>. }
<t1> { <s1> <p1> <o1>. }

The Tag names something, globally

In these proposals, the tag (the "name" IRI in each name-graph pair in
a dataset) is interpreted like an IRI in RDF, naming something,
independent of any context. That is, the same tag in two different
datasets names the same thing.

The Tag names the G-Snap, Globally

t1 is a name of the RDF graph defined as being the triple <s1> <p1> <o1>.

The Tag names the G-Box, Globally

t1 is a name of a g-box which (currently?) happens to contain (only?)
the RDF graph consisting of the triple <s1> <p1> <o1>.

The Tag names the Primary Subject the G-Box, Globally

t1 is the name of something which is the primary subject of a g-box which (currently?) happens to contain (only?) the RDF graph consisting of the triple <s1> <p1> <o1>.

The Tag Names Something, Locally

In these proposals, the tag (the "name" IRI in each name-graph pair in
a dataset), although an IRI, is understood to be able to name
something different in each dataset.

The Tag Names the G-Snap, Locally

t1, in the context of d1, is a name of the RDF graph defined as being
the triple <s1> <p1> <o1>. In a different dataset, t1 could name
something else.

The Tag Names the G-Box, Locally

t1, in the context of d1, is a name of a g-box which (currently?)
happens to contain (only?) the RDF graph consisting of the triple
<s1> <p1> <o1>. In a different dataset, t1 could name something else.

The Tag Names the Primary Subject the G-Box, Locally

t1, in the context of d1, is the name of something which is the primary subject of a g-box which (currently?) happens to contain (only?) the RDF graph consisting of the triple <s1> <p1> <o1>. In a different dataset, t1 could name something else.

Other Proposals

Loose Association

The relationship between the tag and the given g-snap is left unspecified.

Out-of-Band Selection

The relationship between the tag and the given g-snap is left
unspecified in general, but a mechanism is defined by which a
publisher can convey the intended relationship, outside SPARQL and any
dataset syntax.

In-Band Selection

The relationship between the tag and the given g-snap is left
unspecified in general, but a mechanism is defined by which a
publisher can convey the intended relationship, inside SPARQL and
inside a dataset syntax.

Predicate + Graph Literal

Use an RDF graph with graph literals, like N3 or using graph
datatypes, and let authors pick the relation and put it as the
predicate.

For example, to select tag-names-g-snap:

<s0> <p0> <o0>.
<t1> owl:sameAs { <s1> <p1> <o1>. }.

or tag-names-g-box:

<s0> <p0> <o0>.
<t1> log:semantics { <s1> <p1> <o1>. }.

or tag-loosely-associated:

<s0> <p0> <o0>.
<t1> eg:associatedGraph{ <s1> <p1> <o1>. }.

ISSUE: this doesn't give a semantics to the name-graph relation in SPARQL.