Graphs Design 6.2

Here's a sketch of 6.2, which is similar to 6.1, but differs in the
areas where people have made me think they didn't like it.  I have not
put it on a wiki page or given it test cases yet.

The differences are:

  * Partial-graph semantics, instead of complete-graph semantics.  This
is more quad-like, and may be seen as more in keeping with RDF's usual
style of working with partial knowledge.   It makes it harder to reason
about what's unsaid, but few people are doing that anyway.  

  * A keyword "@union" may be given instead of the default graph,
indicating the default graph is the union of all the named graphs.  This
means everything in those graphs is asserted.    (Alternatively, we
could have "@asserted", perhaps parameterized by "all" or the names of
those graphs which are considered asserted.)

  * A class rdf:GraphAssociate containing all the things denoted by RDF
terms used as labels in datasets.     The label is an IRI or bNode, the
"associate" is the thing that IRI or bNode denotes.   The associate is
associated with the given graph.  This is a superclass of rdf:Graph,
because graphs have themselves as associates.   (I wouldn't mind a
better word, but haven't thought of one.)  

  * A class rdf:GraphContainer, a subclass of rdf:GraphAssociate.  A
GraphContainer differs from a Graph in that conceptually it can change
over time.   [We don't say anything about how to deal with it changing
over time, because (so far) RDF never talks about change-over-time.  If
it did (such as with rdf:starting and rdf:ending predicates) then that
solution would apply here as well.]   The trig document "{ <u> a
rdf:GraphContainer} <u> { <a> <b> <c> }" is true at exactly those times
that the Graph Container identified by "u" contains the triple expressed
as "<a> <b> <c>".    [Note well: I did not say "contains ONLY" that
triple.  Because of partial-graph semantics, the document is also true
if <u> also contains some other triples.]

The rest of 6.1 remains the same, including global-scope bNode labels,
bNodes allowed as graph labels, rdf:Graph, and rdf:hasGraph.   (I have
an idea for 6.3, but I don't have time to think it through before
today's meeting.)

    -- Sandro

Received on Wednesday, 25 April 2012 11:44:12 UTC