blob: ca9eda1b752ff2c5569f04d16ee3649004facf8d [file] [log] [blame]
#!/bin/bash
# SPARQL Update (Recommendation) syntax examples
function fname
{
R="$1"
N="$2"
E="$3"
[ "$E" = "" ] && E="ru"
echo $(printf "$R%02d.$E" $N)
}
## Structure
N=0
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
BASE <http://example/base#>
PREFIX : <http://example/>
LOAD <http://example.org/faraway>
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
# Comment
BASE <http://example/base#>
# Comment
PREFIX : <http://example/>
# Comment
LOAD <http://example.org/faraway>
# Comment
EOF
## ---- LOAD
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
LOAD <http://example.org/faraway> ;
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
LOAD <http://example.org/faraway> INTO GRAPH <localCopy>
EOF
## ---- DROP
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DROP NAMED
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DROP DEFAULT
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DROP ALL
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DROP GRAPH <graph>
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DROP SILENT NAMED
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DROP SILENT DEFAULT
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DROP SILENT ALL
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DROP SILENT GRAPH <graph>
EOF
# CREATE
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
CREATE GRAPH <graph>
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
CREATE SILENT GRAPH <graph>
EOF
# CLEAR
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
CLEAR NAMED
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
CLEAR DEFAULT
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
CLEAR ALL
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
CLEAR GRAPH <graph>
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
CLEAR SILENT NAMED
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
CLEAR SILENT DEFAULT
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
CLEAR SILENT ALL
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
CLEAR SILENT GRAPH <graph>
EOF
## ---- INSERT DATA
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
INSERT DATA { <s> <p> 'o1', 'o2', 'o3' }
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
INSERT DATA { GRAPH <G> { <s> <p> 'o1', 'o2', 'o3' } }
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
INSERT DATA {
<s1> <p1> <o1>
GRAPH <G> { <s> <p1> 'o1'; <p2> <o2> }
GRAPH <G1> { <s> <p1> 'o1'; <p2> <o2> }
<s1> <p1> <o1>
}
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
INSERT
# Comment
DATA { GRAPH <G> { <s> <p> 'o1', 'o2', 'o3' } }
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
INSERT
DATA { }
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
INSERT
DATA { GRAPH <G>{} }
EOF
## ---- DELETE DATA
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DELETE DATA { <s> <p> 'o1', 'o2', 'o3' }
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DELETE DATA { GRAPH <G> { <s> <p> 'o1', 'o2', 'o3' } }
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DELETE DATA {
<s1> <p1> <o1>
GRAPH <G> { <s> <p1> 'o1'; <p2> <o2> }
GRAPH <G1> { <s> <p1> 'o1'; <p2> <o2> }
<s1> <p1> <o1>
}
EOF
## ---- Full modify form.
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
BASE <base:>
PREFIX : <http://example/>
WITH :g
DELETE {
<s> ?p ?o .
}
INSERT {
?s ?p <#o> .
}
USING <base:g1>
USING <base:g2>
USING NAMED :gn1
USING NAMED :gn2
WHERE
{ ?s ?p ?o }
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
PREFIX : <http://example/>
WITH :g
DELETE {
<base:s> ?p ?o .
}
WHERE
{ ?s ?p ?o }
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
PREFIX : <http://example/>
WITH :g
INSERT {
<base:s> ?p ?o .
}
WHERE
{ ?s ?p ?o }
EOF
## ---- DELETE WHERE
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
DELETE WHERE { ?s ?p ?o }
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
# Comment
DELETE
# Comment
WHERE
# Comment
{ GRAPH <G> { <s> <p> 123 ; <q> 4567.0 . } }
EOF
# ---- Compound
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
CREATE GRAPH <g> ;
LOAD <remote> INTO GRAPH <g> ;
EOF
# ---- Empty
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
# Empty
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
BASE <http://example/>
# Otherwise empty
EOF
N=$((N+1)) ; testGood $SPARQL11U $(fname "syntax-update-" $N) <<EOF
PREFIX : <http://example/>
# Otherwise empty
EOF
# Bad syntax
N=0
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
# No URL
LOAD ;
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
# Typo in keyword.
CREATE DEAFULT
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
# Variable in data.
DELETE DATA { ?s <p> <o> }
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
# Variable in data.
INSERT DATA { GRAPH ?g {<s> <p> <o> } }
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
# Nested GRAPH
DELETE DATA {
GRAPH <G> {
<s> <p> <o> .
GRAPH <G1> { <s> <p1> 'o1' }
}
}
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
# Missing template
INSERT WHERE { ?s ?p ?o }
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
# No separator
CREATE GRAPH <g>
LOAD <remote> INTO GRAPH <g>
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
# Too many separators
CREATE GRAPH <g>
;;
LOAD <remote> INTO GRAPH <g>
EOF
# Too many separators
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
CREATE GRAPH <g>
;
LOAD <remote> INTO GRAPH <g>
;;
EOF
# Bnodes in DELETE
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
# BNode in DELETE WHERE
DELETE WHERE { _:a <p> <o> }
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
# BNode in DELETE template
DELETE { <s> <p> [] } WHERE { ?x <p> <o> }
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
# BNode in DELETE DATA
DELETE DATA { _:a <p> <o> }
EOF
## Scope
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
DELETE { }
WHERE {
{SELECT * #?sub ?obj
WHERE {
?sub ?pred ?obj .
} GROUP BY ?sub }
}
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
INSERT { } WHERE { BIND(1 AS ?X) BIND(1 AS ?X) }
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
INSERT { } WHERE { ?s ?p ?X BIND(1 AS ?X) }
EOF
N=$((N+1)) ; testBad $SPARQL11U $(fname "syntax-update-bad-" $N) <<EOF
INSERT { } WHERE { {SELECT (?X+1 AS ?X) {}} }
EOF