📄 syn-sparql2.sh
字号:
#!/bin/bash
# Query syntax examples
# More tests
function fname
{
R="$1"
N="$2"
E="$3"
[ "$E" = "" ] && E="rq"
echo $(printf "$R%02d.$E" $N)
}
# Not in original set of tests
N=0
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
SELECT * WHERE { <a><b><c> }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
SELECT * WHERE { <a><b>_:x }
EOF
## # Syntactic blank node in a filter - in the bad syntax area.
## N=$((N+1)) ; testBad $(fname "syntax-general-" $N) <<EOF
## SELECT * WHERE { <a><b>_:x FILTER(_:x < 3) }
## EOF
# Signed numbers
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
SELECT * WHERE { <a><b>1 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
SELECT * WHERE { <a><b>+11 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
SELECT * WHERE { <a><b>-1 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
SELECT * WHERE { <a><b>1.0 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
SELECT * WHERE { <a><b>+1.0 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
SELECT * WHERE { <a><b>-1.0 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
SELECT * WHERE { <a><b>1.0e0 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
SELECT * WHERE { <a><b>+1.0e+1 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
SELECT * WHERE { <a><b>-1.0e-1 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
# Legal, if unusual, IRIs
SELECT * WHERE { <a> <b> <?z> }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
# Legal, if unusual, IRIs
BASE <http://example/page.html>
SELECT * WHERE { <a> <b> <#x> }
EOF
N=$((N+1)) ; testGood $(fname "syntax-general-" $N) <<EOF
# Legal, if unusual, IRIs
BASE <http://example/page.html?query>
SELECT * WHERE { <a> <b> <¶m=value> }
EOF
# Keywords and qnames.
N=0
N=$((N+1)) ; testGood $(fname "syntax-keywords-" $N) <<EOF
# use keyword FILTER as a namespace prefix
PREFIX FILTER: <http://example.org/ns#>
SELECT *
WHERE { ?x FILTER:foo ?z FILTER (?z) }
EOF
N=$((N+1)) ; testGood $(fname "syntax-keywords-" $N) <<EOF
# use keyword FILTER as a local name
PREFIX : <http://example.org/ns#>
SELECT *
WHERE { ?x :FILTER ?z FILTER (?z) }
EOF
N=$((N+1)) ; testGood $(fname "syntax-keywords-" $N) <<EOF
# use keyword UNION as a namespace prefix
PREFIX UNION: <http://example.org/ns#>
SELECT *
WHERE { ?x UNION:foo ?z }
EOF
## More on lists
# Checking white space in () and []
N=0
N=$((N+1)) ; testGood $(fname "syntax-lists-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT * WHERE { () :p 1 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-lists-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT * WHERE { ( ) :p 1 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-lists-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT * WHERE { (
) :p 1 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-lists-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT * WHERE { ( 1 2
) :p 1 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-lists-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT * WHERE { ( 1 2
) }
EOF
## Blank node
N=0
N=$((N+1)) ; testGood $(fname "syntax-bnode-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT * WHERE { [] :p [] }
EOF
N=$((N+1)) ; testGood $(fname "syntax-bnode-" $N) <<EOF
PREFIX : <http://example.org/>
# Tab
SELECT * WHERE { [ ] :p [
] }
EOF
N=$((N+1)) ; testGood $(fname "syntax-bnode-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT * WHERE { [ :p :q
] }
EOF
# Function calls
N=0
N=$((N+1)) ; testGood $(fname "syntax-function-" $N) <<EOF
PREFIX q: <http://example.org/>
SELECT * WHERE { FILTER (q:name()) }
EOF
N=$((N+1)) ; testGood $(fname "syntax-function-" $N) <<EOF
PREFIX q: <http://example.org/>
SELECT * WHERE { FILTER (q:name( )) }
EOF
N=$((N+1)) ; testGood $(fname "syntax-function-" $N) <<EOF
PREFIX q: <http://example.org/>
SELECT * WHERE { FILTER (q:name(
)) }
EOF
N=$((N+1)) ; testGood $(fname "syntax-function-" $N) <<EOF
PREFIX q: <http://example.org/>
SELECT * WHERE { FILTER (q:name(1
)) . FILTER (q:name(1,2)) . FILTER (q:name(1
,2))}
EOF
## Result forms
## Select
N=0
N=$((N+1)) ; testGood $(fname "syntax-form-select-" $N) <<EOF
SELECT * WHERE { }
EOF
N=$((N+1)) ; testGood $(fname "syntax-form-select-" $N) <<EOF
SELECT * { }
EOF
## Ask
N=0
## N=$((N+1)) ; testGood $(fname "syntax-form-ask-" $N) <<EOF
## ASK {}
## EOF
N=$((N+1))
N=$((N+1)) ; testGood $(fname "syntax-form-ask-" $N) <<EOF
ASK {}
EOF
## Construct
N=0
N=$((N+1)) ; testGood $(fname "syntax-form-construct" $N) <<EOF
CONSTRUCT { ?s ?p ?o . } WHERE {?s ?p ?o}
EOF
N=$((N+1)) ; testGood $(fname "syntax-form-construct" $N) <<EOF
CONSTRUCT { ?s ?p ?o } WHERE {?s ?p ?o}
EOF
N=$((N+1)) ; testGood $(fname "syntax-form-construct" $N) <<EOF
CONSTRUCT { ?s <p1> <o> . ?s <p2> ?o } WHERE {?s ?p ?o}
EOF
N=$((N+1)) ; testGood $(fname "syntax-form-construct" $N) <<EOF
CONSTRUCT { ?s <p1> <o> . ?s <p2> ?o .} WHERE {?s ?p ?o}
EOF
N=$((N+1)) ; testGood $(fname "syntax-form-construct" $N) <<EOF
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
CONSTRUCT { [] rdf:subject ?s ;
rdf:predicate ?p ;
rdf:object ?o }
WHERE {?s ?p ?o}
EOF
N=$((N+1)) ; testGood $(fname "syntax-form-construct" $N) <<EOF
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
CONSTRUCT { [] rdf:subject ?s ;
rdf:predicate ?p ;
rdf:object ?o . }
WHERE {?s ?p ?o}
EOF
N=$((N+1)) ; testGood $(fname "syntax-form-construct" $N) <<EOF
CONSTRUCT {} WHERE {}
EOF
# Describe
N=0
N=$((N+1)) ; testGood $(fname "syntax-form-describe" $N) <<EOF
DESCRIBE <u>
EOF
N=$((N+1)) ; testGood $(fname "syntax-form-describe" $N) <<EOF
DESCRIBE <u> ?u WHERE { <x> <q> ?u . }
EOF
## Dataset description
N=0
N=$((N+1)) ; testGood $(fname "syntax-dataset-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT ?x
FROM <http://example.org/graph>
WHERE {}
EOF
N=$((N+1)) ; testGood $(fname "syntax-dataset-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT ?x
FROM NAMED <http://example.org/graph1>
WHERE {}
EOF
N=$((N+1)) ; testGood $(fname "syntax-dataset-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT ?x
FROM NAMED :graph1
FROM NAMED :graph2
WHERE {}
EOF
N=$((N+1)) ; testGood $(fname "syntax-dataset-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT ?x
FROM :g1
FROM :g2
FROM NAMED :graph1
FROM NAMED :graph2
WHERE {}
EOF
## Dataset access
N=0
N=$((N+1)) ; testGood $(fname "syntax-graph-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT *
WHERE
{
GRAPH ?g { }
}
EOF
# Now bad.
## N=$((N+1)) ; testGood $(fname "syntax-graph-" $N) <<EOF
## PREFIX : <http://example.org/>
## SELECT *
## WHERE
## {
## GRAPH [] { }
## }
## EOF
N=$((N+1)) ; testGood $(fname "syntax-graph-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT *
WHERE
{
GRAPH :a { }
}
EOF
N=$((N+1)) ; testGood $(fname "syntax-graph-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT *
WHERE
{
GRAPH ?g { :x :b ?a }
}
EOF
N=$((N+1)) ; testGood $(fname "syntax-graph-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT *
WHERE
{
:x :p :z
GRAPH ?g { :x :b ?a }
}
EOF
N=$((N+1)) ; testGood $(fname "syntax-graph-" $N) <<EOF
PREFIX : <http://example.org/>
SELECT *
WHERE
{
:x :p :z
GRAPH ?g { :x :b ?a . GRAPH ?g2 { :x :p ?x } }
}
EOF
## Escapes
N=0
N=$((N+1)) ; testGood $(fname "syntax-esc-" $N) <<EOF
SELECT *
WHERE { <x> <p> "\t" }
EOF
N=$((N+1)) ; testGood $(fname "syntax-esc-" $N) <<EOF
SELECT *
WHERE { <x> <p> "x\t" }
EOF
N=$((N+1)) ; testGood $(fname "syntax-esc-" $N) <<EOF
SELECT *
WHERE { <x> <p> "\tx" }
EOF
# Escpes in URIs, qnames and variables
N=$((N+1)) ; testGood $(fname "syntax-esc-" $N) <<EOF
PREFIX : <http://example/>
SELECT *
WHERE { <\u0078> :\u0070 ?xx\u0078 }
EOF
N=$((N+1)) ; testGood $(fname "syntax-esc-" $N) <<EOF
PREFIX : <http://example/>
SELECT *
# Comments can contain \ u
# <\u0078> :\u0070 ?xx\u0078
WHERE { <\u0078> :\u0070 ?xx\u0078 }
EOF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -