<gkellogg>
tjohnson: if graph_name coming as false, that’s a failure to isolate the behavior. That’s typically used in Repository#query_execute to distinguish the default graph, as in-memory the default graph uses false, not nil.
<gkellogg>
The idea had been that graph_name => nil would query across all graphs, and graph_name => false query just the default graph. We could maybe obsolete that behavior.
<tjohnson>
ah, that's helpful
<gkellogg>
BTW, just pushed changes to rdf and rdf-spec 2.0 branches. I think we’re close to being able to move those to develop.
<tjohnson>
gkellogg: if we still want to treat default graph's that way, then a NullObject pattern feels like a really good thought
<gkellogg>
You’ll need to explain what you mean by the “NullObject pattern"
<gkellogg>
Maybe raise an issue? I’m AFK for a bit.
<tjohnson>
in this case, a class whose instances act as an `RDF::Term`, but represent "no term". or, more specifically for the graph case, that represent `DefaultGraph`
<tjohnson>
but the implementation is fragile; if you do `pattern.node?` or `pattern.variable?` before making that switch, it breaks down on `NoMethodError` for `false`
<gkellogg>
It would seem a singleton extended with RDF::Term would work properly, then. I’ll look into that. Perhaps `RDF::Term::Null` is generic enough.
<tjohnson>
+1
<gkellogg>
`NullGraph` could be a synonym.
<gkellogg>
Are you good with mergint release-2_0 to develop?