backend: support external SPARQL and named-graph snapshots
This commit is contained in:
25
backend_go/queryscope/scope.go
Normal file
25
backend_go/queryscope/scope.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package queryscope
|
||||
|
||||
import "strings"
|
||||
|
||||
// NamedGraph wraps a read pattern so app-generated queries read from any named graph via GRAPH ?g.
|
||||
func NamedGraph(pattern string) string {
|
||||
trimmed := strings.TrimSpace(pattern)
|
||||
if trimmed == "" {
|
||||
return " GRAPH ?g {\n }"
|
||||
}
|
||||
|
||||
return indent("GRAPH ?g {\n"+indent(trimmed, " ")+"\n}", " ")
|
||||
}
|
||||
|
||||
func AskAnyTripleQuery() string {
|
||||
return "ASK WHERE {\n" + NamedGraph("?s ?p ?o .") + "\n}"
|
||||
}
|
||||
|
||||
func indent(text string, prefix string) string {
|
||||
lines := strings.Split(text, "\n")
|
||||
for i, line := range lines {
|
||||
lines[i] = prefix + line
|
||||
}
|
||||
return strings.Join(lines, "\n")
|
||||
}
|
||||
Reference in New Issue
Block a user