IMHO, 'sesame:default' is not descriptive enough. I'd rather call it something like 'sesame:NoContext' or 'sesame:NullContext'.
I'm struggling here myself. The idea behind "sesame:default' was to keep the term 'context' out of SPARQL. Of your two proposals, I think I like 'sesame:NoContext' best though.
OpenLink Virtuoso uses "sesame:nil" to identify the default graph which also seems like a good choice.
The Dataset object may contain the null context and the HTTP protocol may use the token "null" to pass along the null context as a default graph.
I think the behavior of SPARQL should be something for the user to be able to decide on setup. I would favor the default graph being the graph of all triples without context. that is where you put metadata about graphs. Having the union of all contexts does not make sense to me. I think the user should be able to decide this.
(@Henry, the user can decide this, albeit only programmatically. However, this is a different issue and in any case, the SPARQL 1.1 definition allows sparql processors to choose their own contents for the dataset when no FROM/FROM NAME clauses are given. A de facto dataset made up of an RDF merge of all graphs (contexts) is actually quite useful for many users.)
The problem described in this jira issue comes about, because it is not possible write a sparql query that is guaranteed to execute over only the default graph. Any use of FROM/FROM NAMED will explicitly exclude the default graph.
There is a kind of precedent in the SPARQL update language, where graph manipulation allows the symbol 'DEFAULT' when specifying exactly the default graph, e.g.
CLEAR DEFAULT
DROP DEFAULT
ADD DEFAULT TO <
http://example.com#graph2>
MOVE <
http://example.com#graph2> TO DEFAULT
COPY DEFAULT TO ....
In my simple world view, the ideal would be that the sparql WG allow this in sparql queries:
SELECT *
FROM DEFAULT
WHERE { ..... }
i.e. allow the symbol 'DEFAULT' where a URI is expected for a graph name
Whatever name is chosen (cf. above conversation) would it be possible to modify the sparql parser to allow 'DEFAULT' and substitute the agreed name?
By the way, my preferred Sesame name would have a local part of just "default"
Did a first implementation of this, SVN revision 11908. See
http://repo.aduna-software.org/websvn/listing.php?repname=aduna&path=%2Forg.openrdf%2Fsesame%2Fbranches%2F2.6%2F&rev=11908&sc=1
SPARQL query engine now accepts 'FROM DEFAULT' and 'FROM sesame:nil'. Both mean that _only_ triples with no context get queried.
We can continue discussions on whether 'sesame:nil' is the best name for this now :)